野火RTT第25章异常
2018年12月29日
10:47
一、中断中使用RRT的IPC通信机制。
异常分为同步异常和异步异常。
中断属于异步异常。
RTT建议在中断中采用信号量、消息、事件来标记。
中断相关的硬件:外设、中断控制器、CPU。
中断过程:外设产生中断,中断控制器设置优先级等并向CPU发送中断信号,CPU执行执行中断。
二、
中断号:和外设相绑定、指示哪个外设。
中断向量:中断程序服务程序入口地址
中断向量表:保存中断向量的表,在表中,中断向量按照其中断向量号的顺序进行排列。
临界段:不允许中断打断的代码段、进入只是关中断。
关闭中断只是说不响应中断,只是将中断挂起,当开中断的时候还会处理中断。
三、
中断过程:外设中断,CPU到中断处理器读取中断向量号,查找中断向量表,找到对应中断服务程地址,并执行,这段时间也叫识别中断时间。
等待中断打开时间:允许中断嵌套下,高优先级中断打断低优先级中断优先执行完毕再执行低优先级中断。在不允许优先级嵌套下,一个中断执行时,其他中断等它执行完再执行。这都有个时间。
关闭中断时间:在操作系统中,对临界资源的访问时关中断,访问结束再打开中断,这段时间叫关闭中断时间。
中断延时:中断发生时刻到中断程序开始执行时刻之间的时间,再加其他延时时间。即:
中断延时=识别中断时间+等待中断打开时间+关闭中断时间。
四、中断向量表STM32默认是在启动文件中定义也就是.s文件中定义。
五、cortex -M系列和ARM7 ARM9的中断机制不一样,后者有个中断统一入口,方便OS管理,前者是已经固定了,有启动文件定义好了中断向量表。
所以RTT在中断上的使用和裸机一样。
中断
2018年12月29日
10:49
1.中断的重映射问题
CORTEX M系列单片机内核,其启动文件.s文件,定义了弱化的中断服务程序入口,
用户可以再定一个同名的中断服务程序入口来替换它,不定义也可以,那它执行的是默认的入口。
所以用不到的中断可以不写出来。
2.实时系统常用中断,轮循系统采用轮循方式。