IAR上__attribute__的用法

[复制链接]
3554|7
 楼主| zhxingyu 发表于 2019-6-6 15:58 | 显示全部楼层 |阅读模式
TE, IAR, ADC, dc, AD
1. const uint8 Channel[16]  __attribute__ ((aligned(16))) ={
                1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16
} ;
2. uint16 ADCBuffer[512] __attribute__ ((section(".adc_data0")));
请问这两句移植到IAR ARM版本上需要怎么修改?__attribute__这个怎么去掉?谢谢!
千岁寒 发表于 2019-6-10 14:07 | 显示全部楼层
去掉应该会影响使用。
IAR 的 ARM  的 attribute 可以参考 ARMCC User Guide。

评论

睁着眼说瞎话,ARMCC User Guide是MDK的,楼主要从GCC移植到IAR,看这玩意儿有屁用!  发表于 2019-6-10 22:32
R2D2 发表于 2019-6-10 22:37 | 显示全部楼层
GCC:__attribute__ ((aligned(16)))
IAR:#pragma pack(16)

GCC:__attribute__ ((section(".adc_data0")))
IAR:#pragma section="adc_data0"
这个更改仅仅改c文件是远远不够的,链接脚本也要改,注意adc_data0在ld文件(GCC)中的写法,移植到icf文件(IAR)里面去。
linqing171 发表于 2019-6-11 08:04 | 显示全部楼层
ADCBuffer 这种的,用个volatile uint16 * ADCBuffer = (volatile uint16 *) 地址;   其中地址用链接期里面的 .adc_data0 段的地址,来代替,这样什么编译器都能用。
或者#define一下也可以。

那16个const里面存16个数更是无稽之谈,查个表和加个1的速度应该没有什么意义,还整16地址对齐,
千岁寒 发表于 2019-6-12 09:38 | 显示全部楼层
千岁寒 发表于 2019-6-10 14:07
去掉应该会影响使用。
IAR 的 ARM  的 attribute 可以参考 ARMCC User Guide。

有道理有道理

评论

胡扯蛋  发表于 2019-6-13 13:53
 楼主| zhxingyu 发表于 2019-6-18 20:51 | 显示全部楼层
R2D2 发表于 2019-6-10 22:37
GCC:__attribute__ ((aligned(16)))
IAR:#pragma pack(16)

谢谢回复!
您需要登录后才可以回帖 登录 | 注册

本版积分规则

69

主题

309

帖子

3

粉丝
快速回复 在线客服 返回列表 返回顶部