| HWI | SWI | TSK | IDL | ||||||
优先级 | 最高 | 次高 | 次低 | 最低 | ||||||
优先级 等级数 | 由具体DSP型号决定; | 15个优先级。其中,PRD周期函数的优先级与PRD_swi软件中断对象的优先级一致;TSK任务调度软件中断的优先级最低; | 16个优先级。其中包括用于idle循环的一个任务; | 只有一个优先级; | ||||||
能否中断(或推迟)自己的执行 | 不能。HWI硬件中断运行到结束,除非其它HWI硬件中断被抢先; | 不能。SWI软件中断运行到结束,除非被其它高优先级线程抢先; | 可以; | 不应该。否则会阻止PC主机获得DSP目标系统的信息; | ||||||
执行状态 | 不活动;(no active) 准备好;(ready) 运行中;(running) | 不活动; 准备好; 运行中; | 准备好;运行中; 阻塞或挂起;(pending) 终止;(terminated) | 准备好; 运行中; | ||||||
使线程无效的函数调用 | HWI_disable,HWI_enter (用某些屏蔽位为参数) | SWI_disable; | TSK_disable; | 从不抢占 | ||||||
如何被触发或变为运行 | 中断发生 | 以下函数调用:SWI_post,SWI_andn,SWI_dec,SWI_inc,SWI_or,SWI_tick; | TSK_create函数调用; | main( )返回,并且无其它线程正在运行; | ||||||
堆栈使用 | 系统堆栈(所有中断共用一个系统堆栈); | 系统堆栈(所有中断共用一个系统堆栈); | 任务堆栈(每个任务一个); | 使用默认的一个任务堆栈; | ||||||
被其它线程抢先时环境的保存 | 可由用户制定; | 固定寄存器保存到系统堆栈; | 整个任务环境保存到任务堆栈; | 没使用; | ||||||
暂停或阻塞时的环境保存 | 没使用; | 没使用; | 保存寄存器设置; | 没使用; | ||||||
线程如何使用共享的数据 | 流、队列、管道以及全局变量; | 流、队列、管道以及全局变量; | 流、队列、管道、邮箱、资源锁以及全局变量; | 流、队列、管道以及全局变量; | ||||||
线程的同步机制 | 没使用; | SWI邮箱; | 旗语,邮箱; | 没使用; | ||||||
钩子函数(HOOK) | 没有; | 没有; | 任务创建、删除、退出、任务切换以及任务就绪时可以使用钩子函数; | 没有; | ||||||
通过DSP/BIOS配置工具静态创建 | 包含在默认的配置模板中; | 可以; | 可以; | 可以; | ||||||
动态创建 | 可以; | 可以; | 可以; | 不可以; | ||||||
动态改变优先级 | 不可以; | 可以,调用函数SWI_raisepri, SWI_restorepri; | 可以,调用函数TSK_setpri; | 不能; | ||||||
暗含的事件记录 | 无; | 放到执行队列(post)和完成软件中断; | 任务就绪,任务开始,任务暂停,任务重新开始,以及任务终止; | 无; | ||||||
暗含的统计对象 | 监测值; | 执行时间; | 执行时间; | 无; |
欢迎光临 电子技术论坛_中国专业的电子工程师学习交流社区-中电网技术论坛 (http://bbs.eccn.com/) | Powered by Discuz! 7.0.0 |