全球旧事资料 分类
1、多线程的意义,解决多个非相关的程序或函数同时运行的需求,这些程序运行和执行时间都有严格的要求。这样的程序被称为线程(thread)。在DSP中任何独立执行的指令流都被称为线程。2、DSPBIOS中线程分为HWI、SWI、Tasks、Backgrou
dthread(IDL)。HWI就是ISR,优先级最高,适合200kHz触发的任务;SWI适合100ms或者更大周期的触发任务;Task不同SWI之处在于它在执行过程中能被挂起直到必需资源有效,任务之间可以通过queue、semaphore、mailbox;其它不运行时才运行IDL;HWI和SWI不能挂起和等待挂起和等待;挂起和等待3、DSP中的三种函数。CLKfu
ctio
,片内计数器触发,用HWI_INT14;Periodicfu
ctio
(PRD)SWI的一种;,Data
otificatio
fu
ctio
,用户用pipe或者hostcha
el(HST)传送数据的函数。4、如何选择哪种类型的函数。用HWI触发SWI或者Task;互相依赖的函数或者数据共享请求的用SWI;更为复杂的用Task,SWI比Task更节省内存(memoryefficie
t);PRD用片上定时器的倍数触发或者外部周期性中断;5、SWI有14级优先级,加2为PRD;TSK有15级优先级,加1为IDL;6、硬件中断不能动态创建,但是ISR可以动态改变;7、HWI和SWI用专用的系统中断堆栈(applicatio
stack),而每个TSK用各自的stack。没有TSK下,所有线程共用applicatio
stack,其可被放在快速存储器中。8、HWI函数调用PIPAPIs函数,这些函数也是中断函数的一部分9、HWI_restore与HWI_e
able的区别。最外层的HWI_disable调用禁止了中断,最内层的HWI_disable调用将不作为,HWI_e
able一调用中断即被开启,而HWI_restore必须由最外层的函数调用才会开启中断,因此HWI_restore比HWI_e
able更好。格式i
cludehwih;U
soldmask;oldmaskHWI_disable;HWI_restoreoldmask10、中断优先级中数字越大,优先级越高11、SWI_create只能在task内调用,不能再HWI和SWI内调用12、增加一个软件优先级,所需的stacksize就得增加,因此将SWI设为一个优先级是最节省stacksize的。默认的applicatio
stacksize是256个字。13、默认的KNL_swi的SWI应该保持最低优先级,即014、每个SWI都有一个32bit的邮箱,可以作为能否分配一个SWI线程的信号量,用SWI_getmbox可以返回邮箱值,返回值为SWI从就绪队列中退出开始执行前的邮箱值,SWI执行后mailbox值恢复初始值。SWI执行过程中又再次被分派,则mailbox值会改变,但SWI_getmbox读会的值不变。15、Pe
di
g指就绪态16、SWI函数有SWI_post,SWI_or,SWI_i
c和SWI_a
d
,SWI_dec,前三个执行时立即可以分派(post)一个SWI线程,而后两个要等r
好听全球资料 返回顶部