打印

__attribute__ 的用法

[复制链接]
2905|2
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
crazyavr|  楼主 | 2010-4-16 19:02 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
TE, ST, AN, ck, ic
本帖最后由 crazyavr 于 2010-4-16 19:10 编辑

最近新学STM32,在编程时碰到了这个问题

如在中断头文件中声明
void SysTick_Handler(void)    __attribute__ ((alias("SysTickHandler")));
编译后就能正常工作。

但如果我写成void  SysTickHandle(void);后该中断就不能工作,编译没报错。
自己也上网查了下__attribute__ 的用法,感觉还不是很明白。

想请教下原因,谢谢。

keil.rar

551.58 KB

代码

沙发
hgjinwei| | 2010-4-16 19:43 | 只看该作者
中断向量表里的是 “SysTick_Handler”
你的函数是“SysTickHandle“ ,
发生中断是只能进入 “SysTick_Handler”,而非“SysTickHandle”。
而用void SysTick_Handler(void)    __attribute__ ((alias("SysTickHandler")));
后,编译器就会认为 “SysTickHandler” = “SysTick_Handler”,
相当于
#define SysTickHandler   SysTick_Handler;

不知道有没有说错。

使用特权

评论回复
评分
参与人数 1威望 +1 收起 理由
crazyavr + 1 谢谢
板凳
hsbjb| | 2010-4-16 21:37 | 只看该作者
同意楼上的解释

使用特权

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

本版积分规则

0

主题

2

帖子

1

粉丝