打印
[ARM入门]

求问IAR编译器中字节对齐问题

[复制链接]
9612|8
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主

程序段如图所示,先是定义了一个结构体channel_ctrl,然后定义了一个结构体数组channel_ctrl channel_config[UDMA_CONF_MAX_CHANNEL + 1],对齐方式为__attribute__ ((aligned(1024))),编译时报错:Error[Pe065]: expected a ";" 该怎么解决?菜鸟求大神解救!

相关帖子

沙发
ayb_ice| | 2014-3-28 08:50 | 只看该作者
先全部屏蔽掉,然后写一点编译一点,就知道哪里有问题了

使用特权

评论回复
板凳
jplzl| | 2014-3-29 14:09 | 只看该作者
估计是后缀说明没写对

使用特权

评论回复
地板
aozima| | 2014-3-29 14:26 | 只看该作者
rtdef.h
/* Compiler Related Definitions */
#ifdef __CC_ARM                         /* ARM Compiler */
    #define ALIGN(n)                    __attribute__((aligned(n)))
#elif defined (__IAR_SYSTEMS_ICC__)     /* for IAR Compiler */
    #define ALIGN(n)                    PRAGMA(data_alignment=n)
#elif defined (__GNUC__)                /* GNU GCC Compiler */
    #define ALIGN(n)                    __attribute__((aligned(n)))
#elif defined (__ADSPBLACKFIN__)        /* for VisualDSP++ Compiler */
    #define ALIGN(n)                    __attribute__((aligned(n)))
#elif defined (_MSC_VER)
    #define ALIGN(n)                    __declspec(align(n))
#endif /* Compiler Related Definitions */
#define RT_ALIGN_SIZE  8
ALIGN(RT_ALIGN_SIZE)
static char finsh_thread_stack[2048];

使用特权

评论回复
5
vosamo007|  楼主 | 2014-4-3 09:50 | 只看该作者
aozima 发表于 2014-3-29 14:26
rtdef.h

请问这个rtdef.h文件是在哪里?意思是我直接用ALIGN(n)进行字节对齐吗?

使用特权

评论回复
6
aozima| | 2014-4-3 09:52 | 只看该作者
rtdef.h是RT-Thread的头文件。

截取这部分是告诉你几大常见编译器的不同写法。
可以像这样写一个定义,以方便不同平台的移植。

使用特权

评论回复
7
vosamo007|  楼主 | 2014-4-3 10:15 | 只看该作者
aozima 发表于 2014-4-3 09:52
rtdef.h是RT-Thread的头文件。

截取这部分是告诉你几大常见编译器的不同写法。

哦,谢谢!那有没有关于不同编译器对_attribute((naked))_的定义啊?

使用特权

评论回复
8
aozima| | 2014-4-3 10:25 | 只看该作者
vosamo007 发表于 2014-4-3 10:15
哦,谢谢!那有没有关于不同编译器对_attribute((naked))_的定义啊?

自己查编译器的文档呀。

使用特权

评论回复
9
vosamo007|  楼主 | 2014-4-3 20:07 | 只看该作者
aozima 发表于 2014-4-3 10:25
自己查编译器的文档呀。

我用的是IAR编译器,查过了,没有找到。。。

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

2

主题

5

帖子

0

粉丝