转换AC6后,ST的USB库出现编译警告,影响大吗?
警告信息如下:libstm32/STM32_USB_OTG_Driver/src/usb_core.c(182): warning: '__packed__' attribute ignored when parsing type [-Wignored-attributes]
USB_OTG_WRITE_REG32( fifo, *((__packed uint32_t *)src) );
^~~~~~~~
./user/usbh_mass_storage\usb_conf.h(216): note: expanded from macro '__packed'
#define __packed __attribute__ ((__packed__))
^~~~~~~~~~
./libstm32/STM32_USB_OTG_Driver/inc/usb_defines.h(224): note: expanded from macro 'USB_OTG_WRITE_REG32'
#define USB_OTG_WRITE_REG32(reg,value) (*(__IO uint32_t *)(reg) = (value))
^~~~~
libstm32/STM32_USB_OTG_Driver/src/usb_core.c(208): warning: '__packed__' attribute ignored when parsing type [-Wignored-attributes]
*(__packed uint32_t *)dest = USB_OTG_READ_REG32(fifo);
^~~~~~~~
./user/usbh_mass_storage\usb_conf.h(216): note: expanded from macro '__packed'
#define __packed __attribute__ ((__packed__))
^~~~~~~~~~
需要手动改一下语法吗?
最好手动改一下,__packed涉及到结构体内部成员的对齐,搞不好会hardfault 在CMSIS软件包里面,AC6对应的叫cmsis_armclang.h, 对照全部修改了即可。
另外使用ST的USB库的话,就用AC5即可,用AC6意义不大,没性能提升。
https://img.anfulai.cn/dz/attachment/forum/202303/29/123000vlk5k1hl5r8eqwzm.png
eric2013 发表于 2023-3-29 12:31
在CMSIS软件包里面,AC6对应的叫cmsis_armclang.h, 对照全部修改了即可。
另外使用ST的USB库的话,就用A ...
还是搞不好。以下几种定义都试了,总是相同的警告。
#define __packed __attribute__((__packed__))
#define __packed __attribute__((packed))
#define __packed __PACKED
都不行。
完全没法理解这个mdk官方的建议怎么执行:
caicaptain2 发表于 2023-3-29 14:40
还是搞不好。以下几种定义都试了,总是相同的警告。
#define __packed __attribute__((__packed__) ...
那就别改它了,意义不大,ST的USB库就用AC5即可。等他们官方升级了,直接使用新版
页:
[1]