- 1、本文档共11页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
嵌入式系统思考题
第二章:
1.微机原理中,外设与微处理器之间数据传递的实现方式?
2.在此方面,微机原理与嵌入式系统的区别体现在哪里?目的?
3.位带操作与互斥、可重入函数、事务等概念的特性对比,以及它们之间的联系与具体应用范围。可举例说明。
NVIC的功能配置与中断建立过程(主要寄存器介绍)
NVIC的功能配置
?目的:对中断进行有效管理;
?通过NVIC寄存器对NVIC功能进行配置;
?功能配置是静态的,功能的实现和中断管理是动态的;
NVIC寄存器
?NVIC 的寄存器以存储器映射的方式来访问。
?除了包含控制寄存器和中断处理的控制逻辑之外,NVIC 还包含了MPU的控制寄存器、SysTick定时器以及调试控制。
NVIC寄存器
?每个外部中断都在NVIC 的下列寄存器中“挂号”:
①使能与除能寄存器(32Bit*7+16Bit*1):
?SETENA0-7/CLRENA 0-7 Registers
?SETENAs: xE000_E100 –0xE000_E11C ;
?CLRENAs:0xE000E180 -0xE000_E19C
②悬起与“解悬”寄存器(32Bit*7+16Bit*1):
?SETPEND0-7/CLRPEND0-7 Registers
?SETPENDs:0xE000_E200 –0xE000_E21C ;
?CLRPENDs:0xE000E280 -0xE000_E29C
③优先级寄存器(8bit):
?PRI_0-PRI_239;
?0xE000_E400 –0xE000_E4EF
④活动状态寄存器ACTIVE Registers(32Bit*7+16Bit*1):
NVIC寄存器
?另外,下列寄存器也对中断处理有重大影响
⑤中断控制器类型寄存器ICTR 0xE000_E004:
??????????用以判断正在使用的芯片使用了多少位来表达优先级
?粒度为32的整数倍0x0表示32,0x1表示64,以此类推。
⑥异常掩蔽寄存器(PRIMASK, FAULTMASK 以及BASEPRI)
⑦应用程序中断及复位控制寄存器(AIRCR) 0xE000_ED0C:Bit[10:8]为优先级分组位段PRIGROUP
⑧向量表偏移量寄存器VTOR:0xE000_ED08
????????????????区
?Bit[29]=1:RAM 区
⑨软件触发中断寄存器STIR(8Bit);0xE000_EF00;写入8,则悬起IRQ #8。
⑩中断控制及状态寄存器ICSR 0xE000_ED04
?系统控制寄存器0xE000_ED10:涉及电源管理
?配置与控制寄存器0xE000_ED14
?中断优先级寄存器阵列0xE000_E400 –0xE000_E4EF:用于外设中断
NVIC寄存器
?系统异常优先级寄存器0xE000_ED18 -0xE000_ED23
?系统Handler控制及状态寄存器SHCSR 0xE000_ED24
?存储器管理fault 状态寄存器(MFSR) 0xE000_ED28
?总线fault 状态寄存器(BFSR) 0xE000_ED29
?用法fault 状态寄存器(UFSR),地址:0xE000_ED2A
?硬fault 状态寄存器0xE000_ED2C
?调试fault 状态寄存器(DFSR) 0xE000_ED30等
中断建立全过程
①当系统启动后,先设置优先级组寄存器。默认情况下使用组0(7位抢占优先级,1位亚优先级)。
②如果需要重定位向量表,先把硬fault和NMI服务例程的入口地址写到新表项所在的地址中。
③配置向量表偏移量寄存器VTOR ,使之指向新的向量表(如果有重定位的话)
④为该中断建立中断向量。
?因为向量表可能已经重定位了,保险起见需要先读取向量表偏移量寄存器的值
?再根据该中断在表中的位置,计算出服务例程入口地址应写入的表项,再填写之
?如果一直使用ROM中的向量表,则无需此步骤。
⑤为该中断设置优先级。
⑥使能该中断。
中断建立全过程
?如果应用程序储存在Flash/ROM中,并且不需要改变异常服务程序,则我们可以把整个向量表编码到Flash/ROM的起始区域(从0地址开始的那段)。在这种情况下,上例可以大大简化,只需3步:
①建立优先级组
②为该中断指定优先级
③使能该中断
?如果在I/O密集型系统中,软件需要控制大量的硬件设备,则可能必须要考虑如下因素:
?该芯片支持的中断数
?该芯片中表达优先级的位数
如何了解微处理器中断优先级支持情况?
?在CORTEX-M3的NVIC中,有一个名为“中断控制器类型寄存器ICTR ”,它提供了该芯片中支持的中断数目,粒度是32的整数倍。
?通过对每个SETENA位进
文档评论(0)