CCS开发DSP综合资料一

上传人:宝路 文档编号:5510281 上传时间:2017-09-06 格式:DOCX 页数:72 大小:1.45MB
返回 下载 相关 举报
CCS开发DSP综合资料一_第1页
第1页 / 共72页
CCS开发DSP综合资料一_第2页
第2页 / 共72页
CCS开发DSP综合资料一_第3页
第3页 / 共72页
CCS开发DSP综合资料一_第4页
第4页 / 共72页
CCS开发DSP综合资料一_第5页
第5页 / 共72页
点击查看更多>>
资源描述

《CCS开发DSP综合资料一》由会员分享,可在线阅读,更多相关《CCS开发DSP综合资料一(72页珍藏版)》请在金锄头文库上搜索。

1、DMA(直接存储器访问) 辑DMA(Direct Memory Access,直接内存存取) 是所有现代电脑的重要特色,它允许不同速度的硬件装置来沟通,而不需要依于 CPU 的大量中断负载。否则,CPU 需要从来源把每一片段的资料复制到暂存器,然后把它们再次写回到新的地方。在这个时间中,CPU 对于其他的工作来说就无法使用。1DMA原理DMA 请求DMA 响应DMA 传输DMA 结束2DMA传送方式停止 CPU 访问内存周期挪用DMA 与 CPU 交替访内1DMA原理DMA 传输将数据从一个地址空间复制到另外一个地址空间。当 CPU 初始化这个传输动作,传输动作本身是由 DMA 控制器来实行和

2、完成。典型的例子就是移动一个外部内存的区块到芯片内部更快的内存区。像是这样的操作并没有让处理器工作拖延,反而可以被重新排程去处理其他的工作。DMA 传输对于高效能 嵌入式系统算法和网络是很重要的。DMA在实现 DMA 传输时,是由 DMA 控制器直接掌管总线,因此,存在着一个总线控制权转移问题。即 DMA 传输前, CPU 要把总线控制权交给 DMA 控制器,而在结束 DMA 传输后,DMA 控制器应立即把总线控制权再交回给 CPU。一个完整的 DMA 传输过程必须经过 DMA 请求、DMA 响应、DMA 传输、DMA 结束 4 个步骤。DMA请求CPU 对 DMA 控制器初始化,并向 I/O

3、 接口发出操作命令,I/O 接口提出 DMA 请求。DMA响应DMA 控制器对 DMA 请求判别优先级及屏蔽,向总线裁决逻辑提出总线请求。当CPU 执行完当前总线周期即可释放总线控制权。此时,总线裁决逻辑输出总线应答,表示DMA 已经响应,通过 DMA 控制器通知 I/O 接口开始 DMA 传输。DMA传输DMA 控制器获得总线控制权后, CPU 即刻挂起或只执行内部操作,由 DMA 控制器输出读写命令,直接控制 RAM 与 I/O 接口进行 DMA 传输。在 DMA 控制器的控制下,在存储器和外部设备之间直接进行数据传送,在传送过程中不需要中央处理器的参与。开始时需提供要传送的数据的起始位置

4、和数据长度。DMA结束当完成规定的成批数据传送后,DMA 控制器即释放总线控制权,并向 I/O 接口发出结束信号。当 I/O 接口收到结束信号后,一方面停 止 I/O 设备的工作,另一方面向 CPU提出中断请求,使 CPU 从不介入的状态解脱,并执行一段检查本次 DMA 传输操作正确性的代码。最后,带着本次操作结果及状态继续执行原来的程序。由此可见,DMA 传输方式无需 CPU 直接控制传输,也没有中断处理方式那样保留现场和恢复现场的过程,通过硬件为 RAM 与 I/O 设备开辟一条直接传送数据的通路,使CPU 的效率大为提高。2DMA传送方式DMA 技术的出现,使得外围设备可以通过 DMA

5、控制器直接访问内存,与此同时,CPU 可以继续执行程序那么 DMA 控制器与 CPU 怎样分时使用内存呢 ?通常采用以下三种方法:(1)停止 CPU 访内存;(2) 周期挪用;(3)DMA 与 CPU 交替访内存停止 CPU访问内存当外围设备要求传送一批数据时,由 DMA 控制器发一个停止信号给 CPU,要求CPU 放弃对地址总线、数据总线和有关控制总线的使用权DMA 控制器获得总线控制权以后,开始进行数据传送在一批数据传送完毕后,DMA 控制器通知 CPU 可以使用内存,并把总线控制权交还给 CPU图(a) 是这种传送方式的时间图很显然,在这种 DMA 传送过程中,CPU 基本处于不工作状态

6、或者说保持状态优点: 控制简单,它适用于数据传输率很高的设备进行成组传送。缺点: 在 DMA 控制器访内阶段,内存的效能没有充分发挥,相当一部分内存工作周期是空闲的。这是因为,外围设备传送两个数据之间的间隔一般总是大于内存存储周期,即使高速 I/O 设备也是如此。例如,软盘读出一个 8 位二进制数大约需要 32us,而半导体内存的存储周期小于 0.5us,因此许多空闲的存储周期不能被 CPU 利用周期挪用当 I/O 设备没有 DMA 请求时, CPU 按程序要求访问内存;一旦 I/O 设备有 DMA 请求,则由 I/O 设备挪用一个或几个内存周期。这种传送方式的时间图如下图(b) :?I/O

7、设备要求 DMA 传送时可能遇到两种情况:(1)此时 CPU 不需要访内,如 CPU 正在执行乘法指令。由于乘法指令执行时间较长,此时 I/O 访内与 CPU 访内没有冲突,即 I/O 设备挪用一二个内存周期对 CPU 执行程序没有任何影响。(2)I/O 设备要求访内时 CPU 也要求访内,这就产生了访内冲突,在这种情况下 I/O 设备访内优先,因为 I/O 访内有时间要求,前一个 I/O 数据必须在下一个访问请求到来之前存取完毕。显然,在这种情况下 I/O 设备挪用一二个内存周期,意味着 CPU 延缓了对指令的执行,或者更明确地说,在 CPU 执行访内指令的过程中插入 DMA 请求,挪用了一

8、二个内存周期。 与停止 CPU 访内的 DMA 方法比较,周期挪用的方法既实现了 I/O 传送,又较好地发挥了内存和 CPU 的效率,是一种广泛采用的方法。但是 I/O 设备每一次周期挪用都有申请总线控制权、建立线控制权和归还总线控制权的过程,所以传送一个字对内存来说要占用一个周期,但对 DMA 控制器来说一般要 25 个内存周期(视逻辑线路的延迟而定) 。因此,周期挪用的方法适用于 I/O 设备读写周期大于内存存储周期的情况。DMA与 CPU交替访内如果 CPU 的工作周期比内存存取周期长很多,此时采用交替访内的方法可以使 DMA传送和 CPU 同时发挥最高的效率。这种传送方式的时间图如下:

9、此图是 DMA 与 CPU 交替访内的详细时间图假设 CPU 工作周期为 1.2us,内存存取周期小于 0.6us,那么一个 CPU 周期可分为 C1 和 C2 两个分周期,其中 C1 专供 DMA控制器访内,C2 专供 CPU 访内。这种方式不需要总线使用权的申请、建立和归还过程,总线使用权是通过 C1 和 C2分时制的。CPU 和 DMA 控制器各自有自己的访内地址寄存器、数据寄存器和读/写信号等控制寄存器。在 C1 周期中,如果 DMA 控制器有访内请求,可将地址、数据等信号送到总线上。在 C2 周期中,如 CPU 有访内请求,同样传送地址、数据等信号。事实上,对于总线,这是用 C1,C

10、2 控制的一个多路转换器,这种总线控制权的转移几乎不需要什么时间,所以对 DMA 传送来讲效率是很高的。这种传送方式又称为“透明的 DMA”方式,其来由是这种 DMA 传送对 CPU 来说,如同透明的玻璃一般,没有任何感觉或影响。在透明的 DMA 方式下工作,CPU 既不停止主程序的运行,也不进入等待状态,是一种高效率的工作方式。当然,相应的硬件逻辑也就更加复杂。用 CCS开发 DSP应用程序的代码结构、加电装载及在线编程1、DSP 应用程序代码结构,有三种: 纯汇编; 纯 C 语言; 汇编+C 语言。这三种结构还可插入带 CSL 或不带 CSL 的 DSP/BIOS API。为了加快应用程序

11、的开发,现在的 DSP 程序一般都采用:汇编+C 语言+带 CSL 的 API。其中,汇编代码用于特殊要求,如 Flash 编程及对速度要求很高的关键部分;C 语言则是整个应用程序主框架,但主要是运算处理部分;而与硬件打交道的工作全部由 CSL API 来完成。DSP 应用程序工程模式有两种:调式仿真(debug)模式与应用发布(release)模式。 仿真模式用于开发调式阶段,使用仿真器通过 JTAG 口从 PC 机中下载到 DSP 片内RAM 中运行,可设置断点进行调式,由于是存放在 RAM 中,因此断电后程序会丢失; 应用程序完全调式通过后,必须写入外部 Flash 中,断电后不再丢失。

12、加电后,由引导程序装入 DSP 片内 RAM 运行,这就是产品生产阶段的发布模式。很明显,发布模式的 DSP 应用程序工程(发布工程)比仿真调式阶段的应用程序工程(仿真工程)要复杂些,发布工程除应用程序本身外,还要增加如下处理: 自带的二次引导程序(当应用程序大于 1KB 时); Flash 在线编程代码; COFF 格式文件到 Flash 用的二进制格式文件(BIN)转换。此外,“发布工程”的 DSP/BIOS 配置文件及连接地址分配文件也要比 “仿真工程”复杂,好在它们可以用 CCS 自带的配置工具通过对话方式来设置生成。2、DSP 应用程序加电装载(Bootload)过程DSP 加电复位

13、后,应用程序从外部 Flash 装入 DSP 片内 RAM 中运行,这个过程称为“加电装载”或“ 引导装载” (Bootload),其流程如下:DSP 加电复位DSP 内置的引导程序将外部 Flash 前 1KB(Flash-boot 区)的二次引导程序装入 DSP 片内 RAM 运行二次引导程序开始运行 二次引导程序将外部 Flash 地址在 1KB 以上的程序 /数据区(Flash-rest 区)装入 DSP 片内 RAM,其中程序部分放入片内程序存储器,从 0 地址开始存放;数据部分放入片内数据存储器的指定区域。装完后跳转到应用程序入口。应用程序开始运行要注意一点的是,DSP 应用程序可

14、配置为好几种装载(Boot)方式,如外部存储器(Flash 、EEPROM 等)、PCI、HPI 、XBUS 等,其中以外部 Flash 最常用。3、DSP 应用程序在线编程DSP 应用程序发布后,一般是存放在目标板的 Flash 中,要将应用程序写入 Flash,最容易想到的方法是使用通用编程器,但这要求 Flash 是可拆卸的,而且最好是 DIP 封装的,如果是表贴且焊死在目标板上的,就只有使用在线编程方法了。与一般的 MCU 在线编程(ISP)不同, TI 公司并没有提供工具来完成这一工作,只有用户自己编程来实现。通常有两种方法可以使用: 根据所使用的 Flash 型号,设计一个专用 D

15、SP 程序,该程序用仿真器下载至 DSP 片内RAM 运行,然后由它将应用程序目标代码文件写入 Flash 中。 如果目标板上有 USB 接口,可以在应用程序中插入一段专门写 Flash 的代码,在应用程序运行中,由 PC 机通过 USB 口将待更新的应用程序传至 DSP 片内未用 RAM 区,再由应用程序中的专用程序将其写入 Flash 覆盖原来的老程序,加电复位后装载运行的就是新程序了。在 TI DSP开发板中烧写 Flash程序实现在 FLASH 存储器烧写程序一般有以下三种方法:一是通过编程器下载烧写;二是通过开发商提供的专门软件工具+在线仿真器烧写;三是自己编程通过 DSP 烧写。个

16、人使用的是合众达电子 SEED-VPM642 开发板,在最新版本例程中提供了专用的烧写软件SeedConvertTool.exe;但为了实现通用的 FLASHBURN 烧写,我进行了一些尝试以便了解程序烧录过程及运行情况。实现 Bootloader 自引导功能,除了需要生成可执行文件( .out),还需要进行如下步骤:1、合理配置工程文件(.pjt): 需要添加一个 boot.asm 文件(做搬移时一些初始化和跳转工作),另外工程中.cmd 文件也需要为 bootloader 保留空间。2、将添加了 boot.asm 和修改 cmd 后重新生成的.out 文件转化为.hex 文件,这时需要一个转换.cmd 文件(这个.cmd 文件与工程文件中.cmd 完全不同,前者是为了指明 flash 的属性(大小,数据宽度,起始地址和产生文件名)以实现转换.out 文件为 flash 兼容的.hex文件,不能混淆)。3、最后通过 Flashburn 工具将.hex 文件写入

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 行业资料 > 其它行业文档

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号