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

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

因为呀,你在写中断处理函数的时候,已经用了特殊的关键字来告诉编译器,这个函数是中断函数,所以就特殊处理了~必须用特殊关键字指定这个函数,这样编译器才会在蔽袭你不知道的背后,做些额外处理,比如压栈,出栈,如果你用汇编来写,这些都要宏前兄你自己做,但既然用C语言了,这些 *** 作又是比较通用的,所以编译器就会自动给你做了。同时,编译器会自动建立起中断向量的联系,让中断发生时能跳转到你的中断处理函数执行。这种方式在51,arm7,430都有使用,不同开悔仿发软件使用的关键字可能不同,语法也可能不同,但目的和作用基本相同。但在m3,m0中,中断向量在启动文件中定义了,不需要什么关键字申明函数。只要编写一个相同的函数名函数覆盖启动文件中对应硬件中断的函数即可,有一种称为弱定义的汇编关键字,启动文件中定义的向量入口都是弱定义的,也就是说:只要外面你再定义了一个同名的函数,就会使用你定义的函数,而不是使用原来默认的函数。

联调时在中断里慧搭设置断点(定时/计数器中断),然后全速执行基碧孝可以到中断服务程序中。但对于外部中断和串口中断用纯软件模拟应该是无法进入服务程序的。因为需要硬件触发。

个人认为没搏稿有必要使用联调功能。直接在Proteus中加载Hex文件就足够用了。仿真时一步一步来,不要一次加入太多程序,一边写程序一边就仿真了。


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/yw/12363565.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-24
下一篇 2023-05-24

发表评论

登录后才能评论

评论列表(0条)

保存