第7章TIDSP/BIOS第3节DSP_BIOS:线程调度7
1线程调度概述许多实时DSP应用都需要同时执行许多不相关的功能(functions,函数),这些功能一般是对外部事件的响应
这些功能就叫线程
DSP/BIOS定义线程为任何独立的指令流
可以是一个函数,或一个中断服务程序
DSP/BIOS使应用程序按线程结构化设计,每个线程完成一个模块化的功能
多线程程序中允许高优先级线程抢占低优先级线程,以及线程间的同步和通讯7
1线程的类型DSP/BIOS支持4种线程:(1)硬件中断(HWI):频率可达200KHz(5us),处理时限在2us~100us
(2)软件中断(SWI):时限100us以上,SWI允许HWI将一些非关键处理在低优先级上延迟执行,这样可以减少在中断服务程序中的驻留时间(3)任务(TSK):任务与软件中断不同的地方在于在运行过程中可以被挂起
DSP/BIOS提供了一些任务间同步和通讯的机制,包括队列、信号灯和邮箱
(4)后台线程(IDL):MAIN->空闲循环:运行那些没有执行期限(deadlines)的函数7
1线程的类型(续)在DSP/BIOS中还有另外几种函数可以执行,它们是在某一种类型的线程上下文中被执行的:时钟(CLK)函数:在每个定时器中断的末尾执行
缺省情况下,这些函数是按HWI函数执行的
周期(PRD)函数:在片上定时器中断或其它事件多次计数后执行周期函数,周期函数是一种特殊类型的软件中断
数据通知函数:在使用管道(PIP)或主机通道(HST)传输数据时执行
2线程的选择(1)SWI、TSK与HWI之间的选择:硬件中断只处理时间要求苛刻的关键任务
HWI可以处理发生频率在200KHz左右的事件
软件中断或任务可以用于执行时间限制在100ms以上的事件
HWI函数应该触发(post)软件中断