嵌入式系统基础知识答案.ppt

  1. 1、本文档共82页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
禁止中断来解决图4-3中的共享数据问题 static int iTemperatures[2]; void interrupt vReadTemperatures(void) { iTemperatures[0]=//从硬件中读出温度值 iTemperatures[1]=//从硬件中读出温度值 } void main() { int iTemp0, iTemp1; while (TURE) { disable(); iTemp0= iTemperatures[0]; iTemp1= iTemperatures[1]; enable(); if(iTemp0!=iTemp1) //发出报警; } } ... DI MOV R1, (iTemperature[0]) MOV R2, (iTemperature[1]) EI SUBTRACT R1,R2 JCOND ZERO, TEMPRATURES_OK … ;发出警报 … TEMPRATURES_OK: … 3.“原子区”和“临界区” 程序中不能被中断的部分代码成为“原子的”。任务是用“原子的” 指不能被任何可能扰乱正在使用数据的操作所中断。 更精确看法是:中断程序、任务代码共享数据和使用共享数据的任务代码不是原子的。只要在任务代码使用共享数据的时候禁止中断,就可以保证那些代码是原子的。 我们把必须是“原子的”以保证系统正常运转的指令的集合定义为临界区。 4.中断延迟时间 所谓中断延迟时间是指系统响应一个中断所需要花费的时间,主要取决于以下四个因素: (1)中断被禁止的最长时间; (2)任一个优先级更高的中断的中断服务程序执行时间; (3)处理器停止当前任务、保存必要的信息以及执行中断程序中的指令所需要花费的时间; (4)从中断程序保存上下文到完成一次响应所需要的时间。 中断延迟= 关中断的最长时间 + 开始执行中断服务子程序的第一条指令的时间 (2-1) 5.中断响应 中断响应定义为从中断发生到开始执行用户的中断服务子程序代码来处理这个中断的时间。中断响应是系统在最坏情况下的响应中断的时间. 对前后台系统,保存寄存器以后立即执行用户代码,中断响应时间由式(2-2)给出。 中断响应时间 = 中断延迟 + 保存CPU内部寄存器的时间 (2-2) 可剥夺型内核的中断响应时间由表达式(2-3)给出: 中断响应 =中断延迟 + 保存CPU内部寄存器的时间 + 内核的进入中断服务函数的执行时间 (2-3) 7.中断延迟、响应和恢复 一个中断的完成时间是由多方面因素共同决定的。 前后台系统、实时操作系统内核相应的中断延迟、响应和恢复过程。 实时操作系统内核中断延迟、响应和恢复 8.中断处理时间 中断处理时间一般指中断服务程序需要执行的时间。中断服务的处理时间应该尽可能的短,但是对处理时间并没有绝对的限制。 9.非屏蔽中断(NMI) 所谓非屏蔽中断是指在任何情况下都不能禁止的中断,非屏蔽中断可以用增加外部电路的方法禁止掉。 10.中断的一些常见问题 (1)在中断发生时,微处理器怎么知道去哪里执行中断服务程序呢? (2)使用中断向量表的微处理器怎么知道中断向量表在哪里呢? (3)一条指令在执行过程中,微处理器能被中断吗? (4)如果两个中断同时产生,微处理器会优先执行那一个中断服务程序呢? (5)一个中断请求信号能够中断另外一个中断程序吗? (6)在中断被禁止的时候发生中断请求会怎么样? (7)可以用C语言写中断程序吗? 10.中断的一些常见问题 (1)在中断发生时,微处理器怎么知道去哪里执行中断服务程序呢? (2)使用中断向量表的微处理器怎么知道中断向量表在哪里呢? (3)一条指令在执行过程中,微处理器能被中断吗? (4)如果两个中断同时产生,微处理器会优先执行那一个中断服务程序呢? (5)一个中断请求信号能够中断另外一个中断程序吗? (6)在中断被禁止的时候发生中断请求会怎么样? (7)可以用C语言写中断程序吗? 10.中断的一些常见问题 (1)在中断发生时,微处理器怎么知道去哪里执行中断服务程序呢? (2)使用中断向量表的微处理器怎么知道中断向量表在哪里呢? (3)一条指令在执行过程中,微处理器能被中断吗? (4)如果两个中断同时产生,微处理器会优先执行那一个中断服务程序呢? (5)一个中断请求信号能够中断另外一个中断程序吗? (6)在中断被禁止的时候发生中断请求会怎么样? (7)可以用C语言写中断程序吗? 2.4 嵌入式系统中断管理与系统启动 2.4.2 Boot Loader 的概念 简单地说,Boot Loader 就

您可能关注的文档

文档评论(0)

1112111 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档