欢迎来到天天文库
浏览记录
ID:19803590
大小:40.50 KB
页数:12页
时间:2018-10-06
《基础类dspbios api调用》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库。
1、基础类的DSPBIOSAPI调用基础类的DSP/BIOSAPI调用一、时钟管理CLK(1)Unsncounts=CLK_countspms(void)返回每毫秒的定时器高分辨率时钟的计数值(2)LgUnscurrtime=CLK_gethtime(void)返回高分辨率时钟的计数值超过32bit归零高分辨率时钟是DSP时钟除以(TDDR+1)(3)LgUnscurrtime=CLK_getltime(void)返回低分辨率时钟的计数值超过32bit归零高分辨率时钟是DSP时钟除以(TDDR+1)再除以(PRD+1)(4)Unsperiod=CLK_getprd(void
2、)返回CLK管理器周期寄存器的值二、周期函数PRD(1)LgUnsnum=PRD_getticks(void)返回32位周期函数管理计数值(2)voidPRD_start(PRD_Obj*period)启动PRD模块计数器,一般地,mode=one-shot(3)voidPRD_stop(PRD_Obj*period)关闭PRD模块计数器(4)voidPRD_tick(void)对周期模块的计数器加1,以便周期模块管理器确定哪个周期性函数得以运行三、软件中断管理SWI(1)voidSWI_andn(SWI_Obj*swi,Unsmask)mask屏蔽字参数将邮箱值与ma
3、sk做与运算,并用结果代替以前的邮箱值,若为0,启动软件中断,恢复邮箱初始值(2)voidSWI_andn(SWI_Obj*swi)将邮箱值减1,并用结果代替以前的邮箱值,若为0,启动软件中断,恢复邮箱初始值(3)voidSWI_disable(Void)禁止软件中断(4)voidSWI_enable(Void)使能软件中断(5)Unsnum=SWI_getmbox(void)返回当前SWI对象在被执行的邮箱值,若中断已经开始执行,DSP/BIOS会先保存此值(6)Unskey=SWI_getpri(SWI_Obj*swi)返回指定的SWI对象的优先级(7)voidSW
4、I_inc(SWI_Obj*swi)将指定的SWI对象的邮箱值加1,同时启动软件中断,就算用户调用多次,最终执行一次。(8)voidSWI_or(SWI_Obj*swi,Unsmask)mask屏蔽字参数将启动指定的软件中断,并将此软件中断的邮箱值与mask做与运算,并用结果代替以前的邮箱值,等到中断完成之后,邮箱值恢复为初始值,一般地,调用SWI_getmbox获得触发此软件中断的邮箱值(9)voidSWI_post(SWI_Handleswi)启动指定的SWI对象的软件中断,此函数不受邮箱值的影响,也不影响邮箱值。一般地,周期性低启动一个软件中断,将_SWI_pos
5、t填入PRD对象的函数设置栏,启动软件中断的参数写入arg0(10)Unskey=SWI_raisepri(Unsmask)提高SWI软件中断的优先级,一般地key=SWI_raisepri(SWI_getpri(&swi_1));--accesssharedresouces--SWI_restorepri(key)(11)voidSWI_restorepri(Unskey)恢复原来的优先级(12)SWI_Obj*swi=SWI_self(void)当前执行的SWI对象的软件中断的地址四、信息输出管理LOG(1)voidLOG_disable(LOG_Obj*log)关
6、闭指定对向的日志功能(2)voidLOG_enable(LOG_Obj*log)开启指定对向的日志功能(3)voidLOG_error(Stringformat,Argarg0)voidLOG_message(Stringformat,Argarg0)前一个函数可以将一个事件、数据或出错信息按照指定的格式串写入系统日志,不受TRC跟踪管理模块的影响后一个函数类似于前一个函数,但是受到TRC跟踪管理模块的影响(4)voidLOG_event(LOG_Obj*log,Argarg0,Argarg1,Argarg2)将未格式化的事件消息写入日志中(5)voidLOG_prin
7、tf(LOG_Obj*log,Stringformat,intarg0,intarg1)指定的LOG窗口显示消息%d%x%o%s(6)voidLOG_reset(LOG_Obj*log)复位日志缓冲区五、存储器管理MEM(1)void*addr=MEM_alloc(intsegid,Unssize,Unsalign)指定存储段分配连续块,返回起始地址segid=存储段的标识符或者ID号size块大小等于多少个字align边界条件只为0或2的幂若align为0、1则无约束(2)void*addr=MEM_calloc(segid,size,
此文档下载收益归作者所有