DSP模块概述
DSP模块使用自主设计的 DSP指令集,可以进行加法、乘累加、移位、饱和等单周期算术指令,以及除法、开方、三角函数等多周期算术运算指令;具备 load/store等 访存指令,无条件跳转以及条件跳转等分支指令,还有中断提起等杂项指令。 有断点指令和寄存器赋值等伪指令可以在模拟器上用于调试。
DSP有两种运行模式,自主运行、被动调用。
所谓自主运行即DSP读取 CODE MEM中的指令和 DATA MEM中的数据进行 DSP程序执行,独立于 ARM Cortex M0,此时 DSP_SC.PAUSED=0,即 DSP处于运行状态; CODE MEM和 DATA MEM 允许 DSP访问但不允许 CPU访问改写。
被动调用是指
DSP作为一个外设模块被 ARM Cortex M0所调用, CPU直接访问 DSP内部的算
术运算资源如除法、开方、三角函数等。此时 DSP_SC.PAUSED=1,即 DSP不运行 DSP程序,处于
暂停状态, CODE MEM和 DATA MEM允许 CPU进行访问改写,对于不进行 DSP程序开发的用户,
推荐使用此种模式,通过 CPU运行的软件直接调用 DSP的算术单元。
DSP配备独立的程序存储器 (CODE MEM)和数据存储器 (DATA MEM)。在 DSP暂停即
DSP_SC.PAUSED=1时可以通过 CPU访问这两个独立的存储区域,在 DSP初始化的过程中需要由 CPU将 DSP运行的程序和初始数据分别写入 DSP的 CODE MEM和 DATA MEM。 DSP具备提起中断的指
令,中断置位后, DSP同时进入暂停状态,此时允许 CPU通过总线接口访问 DATA MEM与 DSP进
行数据交互,包括 读 取 DSP运算结果,以及 写 入 DSP后续运行所需的数据等。
此外,为充分灵活利用
DSP,在 DSP暂停时允许 CPU通过 DSP寄存器接口直接访问 DSP除法
器、开方器、三角函数等运算模块,即允许 CPU将 DSP当做简单的运算协处理模块使用。
|