中断服务程序

[复制链接]
 楼主| 历史暴君 发表于 2017-6-30 23:26 | 显示全部楼层 |阅读模式
中断是嵌入式系统中重要的组成部分,但是在标准C中不包含中断。许多编译开发商在标准C上增加了对中断的支持,提供新的关键字用于标示中断服务程序(ISR),类似于__interrupt、#program interrupt等
 楼主| 历史暴君 发表于 2017-6-30 23:27 | 显示全部楼层
当一个函数被定义为ISR的时候,编译器会自动为该函数增加中断服务程序所需要的中断现场入栈和出栈代码。
 楼主| 历史暴君 发表于 2017-6-30 23:28 | 显示全部楼层
不能返回值;
zb0830 发表于 2017-6-30 23:28 | 显示全部楼层
不能向ISR传递参数;
zb0830 发表于 2017-6-30 23:28 | 显示全部楼层
ISR应该尽可能的短小精悍;
zb0830 发表于 2017-6-30 23:29 | 显示全部楼层
printf(char * lpFormatString,…)函数会带来重入和性能问题,不能在ISR中采用
comeon201208 发表于 2017-7-26 22:07 | 显示全部楼层
zb0830 发表于 2017-6-30 23:29
printf(char * lpFormatString,…)函数会带来重入和性能问题,不能在ISR中采用

这个说的是,需要注意的
vivilzb1985 发表于 2017-7-30 21:54 | 显示全部楼层
历史暴君 发表于 2017-6-30 23:27
当一个函数被定义为ISR的时候,编译器会自动为该函数增加中断服务程序所需要的中断现场入栈和出栈代码。 ...

这个是中断服务程序自定义的?
vivilzb1985 发表于 2017-8-15 22:07 | 显示全部楼层
这个是一一对应的,,每一个中断服务程序会对应一个中断的。。
vivilzb1985 发表于 2017-8-15 22:08 | 显示全部楼层
而每一个中断的都会有相应的地址进行统一管理的。
vivilzb1985 发表于 2017-8-15 22:11 | 显示全部楼层
访问某个中断服务程序,就会根据其对应的地址进行调用的。
firstblood 发表于 2017-8-16 20:05 | 显示全部楼层
这个关键字是非常重要的,每一个中断服务程序都一样。
smilingangel 发表于 2017-8-20 21:27 | 显示全部楼层
中断程序的应用是必要的。
comeon201208 发表于 2017-8-23 22:32 | 显示全部楼层
这些不是很明白的
angerbird 发表于 2017-8-23 23:08 | 显示全部楼层
ISR中不要用延时函数的
baimiaocun2015 发表于 2017-8-25 22:34 | 显示全部楼层
这个关键字是很重要的,在库文件里面都会定义好的。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

35

主题

312

帖子

0

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