在KeilMDK5工程里使用优化级别定义#pragma O0 在IAR中要写成#pragma optimize=none 在KeilMDK5工程里定义全局变量按地址对齐关键字__align(4) 在IAR中要写成#pragma data_alignment=4 目前使用宏定义的方式 #if defined (__CC_ARM) /*!< ARM Compiler */ __align(4) uint8_t KEY_VALUE[16]= {1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16}; #elif defined ( __ICCARM__ ) /*!< IAR Compiler */ #pragma data_alignment=4 uint8_t KEY_VALUE[16]= {1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16}; #endif 还有什么快捷的办法可以让代码兼容这两种编译环境?不要手动在每个地方这样写 |
stm32u545 boot
明明已经包含了头文件,为什么编译会提示未定义符号错误?
myST账号无法注册导致stm32cubemx无法下载hal库的固件包
定义字符数据为什么会编译出错?
有没有官方,面向OV系列摄像头的驱动?
有没有STM32F030C8T6移植好RT-THREAD的模板
ST-LINK程序下载不进去
H743的PA6引脚外部中断映射,在参考手册和数据手册找不到具体说明?
有关电路原理图问题
MCSDK_v5.4.8工程生成失败!
可以用宏将不同定义统一起来。
> > #if defined (CC_ARM) > #define _ALIGN(n) align(n) > #elif defined ( ICCARM ) > #define _ALIGN(n) data_alignment=n > #endif > > _ALIGN(4) > > uint8_t KEY_VALUE[16]= {1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16};
[md]IAR Compiler额外加一个#pragma,所以不能用这种宏定义方式