新手上路
- 积分
- 47
- 金钱
- 47
- 注册时间
- 2021-5-11
- 在线时间
- 13 小时
|
20金钱
开发板用的是阿尔法IMX6ULL核心的板子:编程代码的时候初始化了一个带枚举类型的结构体 导致死机
- /*! @brief GPIO 方向定义。 */
- typedef enum _gpio_pin_direction
- {
- kGPIO_DigitalInput = 0U, /*!< 将当前引脚设置为数字输入。*/
- kGPIO_DigitalOutput = 1U, /*!< 将当前引脚设置为数字输出。*/
- } gpio_pin_direction_t;
- /*! @brief GPIO中断模式定义。 */
- typedef enum _gpio_interrupt_mode
- {
- kGPIO_NoIntmode = 0U, /*!< 设置当前引脚通用 IO 功能。 */
- kGPIO_IntLowLevel = 1U, /*!< 设置引脚中断触发方式:低电平 */
- kGPIO_IntHighLevel = 2U, /*!< 设置引脚中断触发方式:高电平 */
- kGPIO_IntRisingEdge = 3U, /*!< 设置引脚中断触发方式:上升沿 */
- kGPIO_IntFallingEdge = 4U, /*!< 设置引脚中断触发方式:下降沿 */
- kGPIO_IntRisingOrFallingEdge = 5U, /*!< 启用边沿选择位以覆盖 ICR 寄存器的配置。(设置引脚中断触发方式:上升沿or下降沿)*/
- } gpio_interrupt_mode_t;
- /*! @brief GPIO 初始化结构定义。 */
- typedef struct _gpio_pin_config
- {
- gpio_pin_direction_t direction; /*!< 引脚方向。 */
- uint8_t outputLogic; /*!< 设置默认输出逻辑, 输入无效 */
- gpio_interrupt_mode_t interruptMode; /*!< 指定引脚中断模式,值为[url=home.php?mod=space&uid=203608]@Ref[/url] gpio_interrupt_mode_t. */
- } gpio_pin_config_t;
- gpio_pin_config_t gpio_pin_configStructs;
- 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]类型警告。
|
|