IAR上__attribute__的用法

[复制链接]
324|6
 楼主 | 2019-6-6 15:58 | 显示全部楼层 |阅读模式
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。

使用特权

评论回复

评论

R2D2 2019-6-10 22:32 回复TA
睁着眼说瞎话,ARMCC User Guide是MDK的,楼主要从GCC移植到IAR,看这玩意儿有屁用! 
| 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)里面去。

使用特权

评论回复
| 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。

有道理有道理

使用特权

评论回复

评论

R2D2 2019-6-13 13:53 回复TA
胡扯蛋 
扫描二维码,随时随地手机跟帖
您需要登录后才可以回帖 登录 | 注册

本版积分规则

我要发帖 投诉建议 创建版块 申请版主

快速回复

您需要登录后才可以回帖
登录 | 注册
高级模式

论坛热帖

关闭

热门推荐上一条 /4 下一条

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