- 1、本文档共16页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
DSP/BIOS 常用API总结 DSP/BIOS API使用目的 DSP/BIOS 内核提供大约150个API函数调用,而且几乎都可以使用C或C++语言直接调用。通过这些API,用户可以完成硬件中断的管理,软件中断的启动,任务的切换,各个线程之间的同步和数据通信。对DSP/BIOS的掌握,也就是熟练的使用这些API调用。 几种常见的模块的API调用 LOG 模块 SWI 模块 TSK 模块 SEM 模块 LOG模块 当目标程序执行时,可以使用LOG模块中的事件日志来记录实时的事件。运行程序后在CCS的DSP/BIOS选项的Message Log ,可以看到通过LOG_printf函数输出的信息。 LOG模块常用的API函数包括 LOG_disable,LOG_enable,LOG_printf LOG_disable(LOG_Obj *log) LOG_disable 将关闭指定对象的日志记录功能,这时日志缓冲区的内容将不会被更新 LOG_enable(LOG_Obj *log) 与LOG_disable函数相反,LOG_enable函数将允许日志可以记录事件。DSP/BIOS默认情况下日志记录功能是打开的。 LOG_printf(LOG_Obj log,String format, Int arg0) LOG_printf可以在指定的LOG窗口显示消息,等效于标准C语言中的print()函数。 SWI模块 SWI模块管理软件中断服务程序。这些软件服务程序与HWI硬件中断服务程序有密切的联系。一般情况下,会将日常的大多数处理函数放到这些软件中断中去处理。 所有的SWI共享一个堆栈,当SWI发生时,新的线程会加栈顶,系统执行一次任务的切换。 每个SWI对象都设置一个16位的邮箱可以利用这个邮箱有条件的启动这个软件中断。 所有的软件中断都是通过DSP/BIOS内核的API调用来启动,所有SWI中常用的API都是实现包括启动软件中断,改变软件中断的优先级等操作,SWI的API包括如下: SWI_disable, SWI_enable, SWI_create,SWI_getpri, SW_getmbox SWI_andn, SWI_or , SWI_dec, SWI_inc , SWI_post, SWI_raisepri , SWI_restorepri, SWI_self SWI_disable(void) SWI_enable(void) SWI_create(SWI_attrs attrs) SWI_disabel调用后将禁止软件中断,SWI_enable调用后将开启软件中断,必须在已调用SWI_disable后才能调用,一般组合使用保护重要代码,如下: SWI_disable() /*需要禁止软件中断和线程切换的重要代码*/ SWI_enable() SWI_create 是用于动态的创建一个软件中断,也可以在配置文件中静态创建。 SWI_getpri(SWI_Obj *swi) SWI_getmbox(Void) SWI_getpri用于获得SWI对象的优先级 SWI_getmbox用于获得当前SWI对象的邮箱值 SWI_andn(SWI_Obj *swi ,Uns mask) SWI_or(SWI_Obj *swi ,Uns mask) SWI_inc(SWI_Obj *swi ) SWI_dec(SWI_Obj *swi ) SWI_post(SWI_Obj *swi ) 其中SWI_Obj 软件中断句柄 ,Uns 无符号8位 启动软件中断,其中SWI_andn和SWI_or分别是对邮箱值按位与和或操作。SWI_inc和SWI_dec分别是对邮箱值加一和减一操作,SWI_post忽略对邮箱进行操作。 在这5个API函数中,其中SWI_or, SWI_inc, SWI_post调用时就能启动软件中断,而SWI_dec和SWI_post 必须等邮箱变为0时启动软件中断。 SWI_raisepri(Umask)用于提高SWI软件中
文档评论(0)