电脑桌面
添加小米粒文库到电脑桌面
安装后可以在桌面快捷访问

DSPBIOS总结

DSPBIOS总结_第1页
1/34
DSPBIOS总结_第2页
2/34
DSPBIOS总结_第3页
3/34
DSP/BISO 线程调度 DSP/BIOS 使用户的应用程序可以由一个线程集合构筑起来,每一个线程执行一个模块化的功能。通过允许高优先级的线程抢占低优先级的线程,以及允许阻塞、同步、通信等各种线程间的交互方式,使得多线程的应用程序可以在一个处理器上运行。DSP/BIOS 支持多种不同优先级的线程,每种线程类型都有不同的执行和抢占特性。这些线程按照优先级从高到低的顺序排列如下:  硬件中断(HWI),包括 CLK 函数。  软件中断(SWI),包括 PRD 函数。  任务(TSK)。  后台线程(IDL)。 在DSP/BIOS中,硬件中断有最高的优先级,然后是软件中断,软件中断可以被高优先权软件中断或硬件中断抢先。软件中断是不能被阻塞的。任务的优先权低于软件中断,共有15个任务优先权级别(加上TSK_idle应该16个)。任务在等待某个资源有效时可以被阻塞。后台线程idle_loop 是优先级最低的线程。线程优先级如下图表示: 下面具体介绍各种线程。 HWI module 硬件中断是用来处理应用程序响应外部异步事件时必须执行的关键操作。 在典型的DSP 应用中,硬件中断是由片上的外设或者DSP 外部的设备触发的。中断发生后处理器会通过中断向量跳转到相应的ISR 地址。一个中断的跳转由一个DSP/BIOS HWI 对象负责,跳转的地址可以是一个用户函数或者是通用的系统HWI 调度程序(dispatcher)的入口地址。 硬件中断ISR 可以使用汇编语言、C 语言或者混合编写。HWI 函数通常使用汇编来提高效率。如果要完全使用C 语言编写,应该使用系统的HWI 调度程序,它会在调用用户C 函数的前后分别惊醒现场环境保护与恢复。 所有的硬件中断都会一直运行到结束,如果一个硬件中断在其ISR 得到运行机会前被多次触发,该 ISR 也只运行一次。因此,用户必须尽量和减少HWI 执行的代码量。如果 GIE 位被使能,一个硬件中断可能被任何其他的被使能的中断抢占。 硬件中断没有优先级的区分;线程调度结果首先取决于该类就绪线程是被使能还是被禁止的。 下图表示 了 硬件中断的抢占线程以及 整 个调度过程: 当 第 一个硬件中断(HWI2)产 生时,相应的ISR 触发了 一个比 当 前运行的软 件中断线程(SWIB)优先级更 高的软 件中断(SWIA)。并 且 当 第 一个ISR 运行时,第 二 个硬件中断(HWI1)产 生。因为 第 一个ISR 没有屏 蔽 掉 第 二 个硬件中断,因此产 生第 二 个ISR 抢占了 第 一个ISR。由于优先...

1、当您付费下载文档后,您只拥有了使用权限,并不意味着购买了版权,文档只能用于自身使用,不得用于其他商业用途(如 [转卖]进行直接盈利或[编辑后售卖]进行间接盈利)。
2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。
3、如文档内容存在违规,或者侵犯商业秘密、侵犯著作权等,请点击“违规举报”。

碎片内容

确认删除?
VIP
微信客服
  • 扫码咨询
会员Q群
  • 会员专属群点击这里加入QQ群
客服邮箱
回到顶部