在keilc中,中断子程序和函数有何不同

 我来答
匿名用户
2017-06-02
展开全部
因为呀,你在写中断处理函数的时候,已经用了特殊的关键字来告诉编译器,这个函数是中断函数,所以就特殊处理了~必须用特殊关键字指定这个函数,这样编译器才会在你不知道的背后,做些额外处理,比如压栈,出栈,如果你用汇编来写,这些都要你自己做,但既然用C语言了,这些操作又是比较通用的,所以编译器就会自动给你做了。同时,编译器会自动建立起中断向量的联系,让中断发生时能跳转到你的中断处理函数执行。这种方式在51,arm7,430都有使用,不同开发软件使用的关键字可能不同,语法也可能不同,但目的和作用基本相同。但在m3,m0中,中断向量在启动文件中定义了,不需要什么关键字申明函数。只要编写一个相同的函数名函数覆盖启动文件中对应硬件中断的函数即可,有一种称为弱定义的汇编关键字,启动文件中定义的向量入口都是弱定义的,也就是说:只要外面你再定义了一个同名的函数,就会使用你定义的函数,而不是使用原来默认的函数。
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式