OpenEdv-开源电子网

 找回密码
 立即注册
正点原子全套STM32/Linux/FPGA开发资料,上千讲STM32视频教程免费下载...
查看: 3856|回复: 3

使用memset初始化带枚举类型的结构体导致死机

[复制链接]

4

主题

15

帖子

0

精华

新手上路

积分
47
金钱
47
注册时间
2021-5-11
在线时间
13 小时
发表于 2022-2-11 21:32:29 | 显示全部楼层 |阅读模式
20金钱
开发板用的是阿尔法IMX6ULL核心的板子:编程代码的时候初始化了一个带枚举类型的结构体 导致死机
  1. /*! @brief GPIO 方向定义。 */
  2. typedef enum _gpio_pin_direction
  3. {
  4. kGPIO_DigitalInput = 0U, /*!< 将当前引脚设置为数字输入。*/
  5. kGPIO_DigitalOutput = 1U, /*!< 将当前引脚设置为数字输出。*/
  6. } gpio_pin_direction_t;


  7. /*! @brief GPIO中断模式定义。 */
  8. typedef enum _gpio_interrupt_mode
  9. {
  10. kGPIO_NoIntmode = 0U, /*!< 设置当前引脚通用 IO 功能。 */
  11. kGPIO_IntLowLevel = 1U, /*!< 设置引脚中断触发方式:低电平 */
  12. kGPIO_IntHighLevel = 2U, /*!< 设置引脚中断触发方式:高电平 */
  13. kGPIO_IntRisingEdge = 3U, /*!< 设置引脚中断触发方式:上升沿 */
  14. kGPIO_IntFallingEdge = 4U, /*!< 设置引脚中断触发方式:下降沿 */
  15. kGPIO_IntRisingOrFallingEdge = 5U, /*!< 启用边沿选择位以覆盖 ICR 寄存器的配置。(设置引脚中断触发方式:上升沿or下降沿)*/
  16. } gpio_interrupt_mode_t;


  17. /*! @brief GPIO 初始化结构定义。 */
  18. typedef struct _gpio_pin_config
  19. {
  20. gpio_pin_direction_t direction; /*!< 引脚方向。 */
  21. uint8_t outputLogic; /*!< 设置默认输出逻辑, 输入无效 */
  22. gpio_interrupt_mode_t interruptMode; /*!< 指定引脚中断模式,值为[url=home.php?mod=space&uid=203608]@Ref[/url] gpio_interrupt_mode_t. */
  23. } gpio_pin_config_t;

  24. gpio_pin_config_t gpio_pin_configStructs;
  25. memset(&gpio_pin_configStructs,0x00,sizeof(gpio_pin_config_t));
复制代码
使用 优化方案 -01 编译代码
为什么不用02 因为用02会报
如:array subscript 0 is outside array bounds of ‘CCM_Type[0]’ [-Warray-bounds]  等许多警告
这个问题在网上没查到如何解决 因此使用-02 和使用-01 优化方案都是一个结果 都是初始化该结构体如何导致死机

有没有这方面的大佬 能不能讲解以下问题,万分感谢
1. 使用memset初始化带枚举类型的结构体导致死机。
2.使用-02优化方案 会报许多[-Warray-bounds]类型警告。

正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165352
金钱
165352
注册时间
2010-12-1
在线时间
2108 小时
发表于 2022-2-13 18:41:09 | 显示全部楼层
回复

使用道具 举报

4

主题

15

帖子

0

精华

新手上路

积分
47
金钱
47
注册时间
2021-5-11
在线时间
13 小时
 楼主| 发表于 2022-7-13 23:06:58 | 显示全部楼层
memset函数对枚举类型初始化会导致异常问题
直接使用-o1
回复

使用道具 举报

3

主题

800

帖子

0

精华

论坛元老

Rank: 8Rank: 8

积分
3775
金钱
3775
注册时间
2017-3-7
在线时间
1645 小时
发表于 2022-7-28 10:48:30 | 显示全部楼层
不知道是哪个编译器,我这边是用在线编译器(应该是gcc-x86),是没有问题的
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则



关闭

原子哥极力推荐上一条 /2 下一条

正点原子公众号

QQ|手机版|OpenEdv-开源电子网 ( 粤ICP备12000418号-1 )

GMT+8, 2024-11-25 08:39

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

快速回复 返回顶部 返回列表