关于dsp/bios的hwi和ecm的问题
2016-03-11 16:45
483 查看
#1. ECM:event combiner, 因为系统事件有多达128个,而CPU只有16个中断输入,通过事件组合器可以同时支持所有的事件响应。
#2. CPU的中断与系统事件之间可以一一映射,这样CPU最多只能响应16个系统事件。
#3. 系统事件可以通过Event Combiner产生中断信号EVT0~EVT3, 把EVTn与CPU的中断映射起来,在CPU响应EVTn的中断ISR里检查EVT的状态获知是哪一个系统事件产生的中断。每个EVT通过其Mask寄存器可以管理32个系统事件,这样CPU就可以管理所有的系统事件了。
以上请参考SPRUFK5a的interrupt章节。http://www.ti.com/litv/pdf/sprufk5a
二。 用了BIOS后,中断向量表由BIOS产生,不需要用户自己写中断向量表。在BIOS里的中断配置分为两种,
a. 一种是按你说的那样,将GPIO事件如44配置为CPU的中断4~15中的某一个,function设为ISR的函数名,在原文件名前要加下划线_,同时代码中ISR函数名前要加关键字interrupt, 如 interrupt void ISRFunction()
b. 另一种是用BIOS的dispatcher,这时代码中的ISR函数名前不要加interrupt。因为这时中断响应先进入系统的dispatch handler,中断的上下文切换由这个系统函数完成,而用户的ISR中是它调用的一个普通函数而已,所以不要加关键字interrupt。
#2. CPU的中断与系统事件之间可以一一映射,这样CPU最多只能响应16个系统事件。
#3. 系统事件可以通过Event Combiner产生中断信号EVT0~EVT3, 把EVTn与CPU的中断映射起来,在CPU响应EVTn的中断ISR里检查EVT的状态获知是哪一个系统事件产生的中断。每个EVT通过其Mask寄存器可以管理32个系统事件,这样CPU就可以管理所有的系统事件了。
以上请参考SPRUFK5a的interrupt章节。http://www.ti.com/litv/pdf/sprufk5a
二。 用了BIOS后,中断向量表由BIOS产生,不需要用户自己写中断向量表。在BIOS里的中断配置分为两种,
a. 一种是按你说的那样,将GPIO事件如44配置为CPU的中断4~15中的某一个,function设为ISR的函数名,在原文件名前要加下划线_,同时代码中ISR函数名前要加关键字interrupt, 如 interrupt void ISRFunction()
b. 另一种是用BIOS的dispatcher,这时代码中的ISR函数名前不要加interrupt。因为这时中断响应先进入系统的dispatch handler,中断的上下文切换由这个系统函数完成,而用户的ISR中是它调用的一个普通函数而已,所以不要加关键字interrupt。
相关文章推荐
- OMAPl138 +FPGA 学习
- 心得分享送奖品
- OMAPL138学习---CMEM
- OMAPL138学习----cmem加载问题
- OMAPL138学习----DSP BIOS
- OMAPL138学习----DSPLINK DEMO解析之LOOP
- 嵌入式Linux SD系统启动卡制作方法
- TI OMAPL138E Linux移植 (Davinci) (资源获取+从串口启动UBoot+从网络启动Linux与文件系统)
- OMAPL138控制板链接问题
- ios导航栏适配
- [iOS RunLoop初识](一)
- IOS-Socket
- iOS -雪花动画
- 使用symbolicatecrash分析iOS Crash文件
- iOS多线程之GCD
- iOS -NSArray
- iOS -强制转化
- iOS - 重写init方法的注意事项
- iOS -加载自定义xib
- iOS开发系列--通知与消息机制