- 1、本文档共99页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
本资源来源于互联网,版权为原作者所有。若侵犯到您的版权,请提出指正,我们将立即删除。
2003 (C) DSP Technology Center of SJTU 1、初始化DSP和硬件 软件堆栈指针、存储器等待状态、存储器配置寄存器 由DSP/BIOS库中的boot.c 文件执行 2、BIOS_init( ) 函数自动调用 -初始化DSP/BIOS模块 3、main() 系统初始化 在总中断使能前使能用户中断 必须返回以完成程序初始化!!!! 4、BIOS_start( ) 函数自动调用 启动DSP/BIOS 使能全局中断 5、落入DSP/BIOS “后台循环” 初始化主机通信以便于实时分析 DFT计算量: N(N-1) 复数次 ‘加’ N2 复数次‘乘’ 伪代码表示: For each stage For each group of butterfly For each butterfly compute butterfly end end end x(0) x(1) x(2) x(3) x(4) x(5) x(6) x(7) x(0) x(2) x(4) x(6) x(1) x(3) x(5) x(7) x(0) x(4) x(2) x(6) x(1) x(5) x(3) x(7) FFT实现 算法逆序 index address 000 000 100 001 010 010 110 011 001 100 101 101 011 110 111 111 FFT实现 DSP/BIOS-系统工具使用-程序模块执行状态图 多任务运行分配图(设断点使用animate观察) DSP/BIOS-系统工具使用-消息日志窗口 以文本形式观察程序模块执行状态图详情 DSP/BIOS-系统工具使用-主机通道控制 基础类DSP/BIOS API的调用 从高到低优先级四种主要线程 -硬件中断(HWI) -软件中断(SWI) -任务(TSK模块) -后台线程(IDL线程) API调用方法 -静态说明(在DSP/BIOS配置文件中说明) -动态调用(运行过程中调用DSP/BIOS内核函数) 基础类DSP/BIOS API的调用 时钟管理CLK 时钟模块: CLK_countspms CLK_gethtime CLK_getltime CLK_getprd 基础类DSP/BIOS API的调用 C调用CLK_API举例 void showTicks() { LOG_prinft(trace, “time=%d”,(int)CLK_gethtime()); } 打印高分辨率时钟计数值。 注意:汇编调用时为_CLK_gethtime,返回值在A中。 通用算法 ssbx SXM ;sign extention mode on ld @d_Den, 16, A mpya @d_NumH ;B has sign of quotient abs A sth A , @d_Rem ;d_Rem = abs(Den) temporarily ld @d_NumH, 16, A adds @d_NumL, A abs A sth A, @d_QuotH ;d_QuotH = abs(NumH) temporarily stl A, @d_QuotL ;d_QuotL = abs(NumL) temporarily ld @d_QuotH,16,A rpt #(15–1) subc @d_Rem, A 除法实现 ( 有符号32bit除16bit,使用subc指令) d_NumH, d_NumL: 32bit有符号被除数; d_Den: 16bit有符号除数; d_QuotH, d_QuotL: 32bit商 d_Rem: 16bit余数 除法实现(续) stl A, @d_QuotH ;AH = abs(QuotH) xor @d_QuotH, A ;clear AL add @d_QuotL,15,A ;AL = abs(NumL) rpt #(16–1) subc @d_Rem, A stl A, @d_QuotL ;AL = abs(QuotL) sth A, @d_Rem ;AH = Rem bcd DivModI32Skip, BGEQ ;if B neg, then Quot=–abs(Quot) ld @d_QuotH, 16, A adds @d_QuotL, A neg A sth A, @d_QuotH stl A,@d_QuotL DivModI32Skip: ret 扩展精度的实现(64bit加法) 扩展精度的实现(续) A
文档评论(0)