TMS320C62x McEVM评估模块:从硬件架构到软件开发的DSP系统实战指南

1. 项目概述:深入解析TMS320C62x McEVM评估模块

在数字信号处理(DSP)的开发流程中,从算法仿真到最终的硬件实现,中间往往横亘着一道鸿沟。芯片数据手册上那些令人振奋的性能指标,如何在实际的电路板、时钟、电源和接口上稳定地跑起来?如何验证一个复杂的多通道语音处理算法在真实硬件上的实时性?这正是评估模块(Evaluation Module, EVM)存在的核心价值。它不是一块简单的演示板,而是一个完整的、经过严格验证的参考设计平台,是连接理论设计与产品原型的坚实桥梁。

今天我们要深入探讨的,是德州仪器(TI)在二十多年前推出的一款经典产品——TMS320C62x多通道评估模块。尽管其文档标注的日期是1999年,但其中蕴含的硬件设计思想、软件架构理念以及从评估到开发的完整方法论,对于今天从事嵌入式系统、实时信号处理,特别是通信基础设施开发的工程师而言,依然具有极高的参考价值。这款McEVM瞄准的是当时如火如荼的电信与数据通信市场,如语音网关、会议桥、回声消除器等需要处理大量并发语音通道的设备。其核心是一颗运行在200MHz主频、峰值性能高达1600 MIPS的TMS320C6201定点DSP。但它的强大之处远不止于这颗“大脑”,更在于其精心构建的“躯干”与“神经网络”:一个完整的PCI接口使其能无缝融入工控机或服务器,一块非阻塞的384x384通道MVIP-90电信交换矩阵提供了强大的多路语音数据路由能力,标准的T1/E1线路接口则直接对接运营商网络。

对于开发者来说,拿到这样一块功能强大的板卡,首要问题是如何“驯服”它。这涉及到硬件的正确安装、驱动的加载、基础功能的验证,以及最终将自己的算法加载并运行起来。McEVM配套的软件包提供了一整套工具链,从底层的板级支持库(BSL)、外设驱动,到上层的COFF文件加载器、板级配置工具和信心测试程序,形成了一个从主机(PC)到目标板(DSP)的完整控制链路。理解这套软硬件协同工作的机制,不仅能让你快速上手这块特定的板卡,更能让你掌握评估乃至开发一个复杂DSP系统平台的通用思路和方法论。

2. 硬件架构与核心功能模块深度拆解

TMS320C62x McEVM的硬件设计堪称一个教科书级的DSP系统参考设计。它不仅仅是将C6201 DSP和一堆存储器、外设芯片堆砌在一起,而是充分考虑到了系统级应用的可靠性、灵活性和可扩展性。下面,我们就来逐一拆解其核心功能模块,理解每个部分的设计意图和实现原理。

2.1 核心处理器与时钟系统:性能基石

板卡的核心是TMS320C6201B DSP。这款处理器基于TI的VelociTI超长指令字(VLIW)架构,在一个时钟周期内可以并行执行多达8条指令(两个数据通路各4个功能单元),在200MHz的时钟频率下实现了1600 MIPS的峰值性能。对于多通道语音处理(如G.729a编码,每通道约20 MIPS)或调制解调(如V.34,约70 MIPS)应用,这意味着单颗DSP就能处理数十个并发通道,展现了其强大的密度优势。

时钟系统是DSP稳定运行的脉搏。McEVM设计了一个灵活的四时钟支持方案,通过板载的两个晶振(33.25 MHz和50 MHz)和一个DIP开关(CLKMODE),可以组合出四种不同的DSP核心时钟(CLKOUT1)频率:

晶振选择 (CLKSEL)时钟模式 (CLKMODE)最终DSP核心频率适用场景
OSC A (33.25 MHz)x1 (旁路PLL)33.25 MHz低功耗调试、验证外部时钟
OSC A (33.25 MHz)x4 (启用PLL)133 MHz平衡性能与功耗
OSC B (50 MHz)x1 (旁路PLL)50 MHz需要特定时钟源的场景
OSC B (50 MHz)x4 (启用PLL)200 MHz全性能运行

实操心得:时钟配置的“坑”在实际调试中,时钟配置是第一个需要确认的点。我曾遇到过系统不稳定的情况,排查半天发现是DIP开关接触不良,导致PLL未能正确锁定在4倍频模式,DSP运行在低频下,虽然能工作,但性能测试结果远低于预期。因此,上电前务必用万用表或放大镜检查DIP开关状态,确保拨动到位。另外,从低频率向高频率切换时,建议先进行复位操作,让PLL重新锁定。

2.2 存储器子系统:速度与容量的权衡

DSP系统的性能严重依赖于存储器的带宽和容量。McEVM的存储器设计体现了分层优化的思想:

  1. 高速缓存:同步突发静态RAM板载了128K x 32位(512KB)的SBSRAM,运行在133MHz。这片存储器通过DSP的CE2空间映射,其关键特性是支持“突发”访问模式。当DSP顺序访问连续地址时,SBSRAM能在第一个周期后,以每个周期一个数据的速度提供后续数据,极大地提高了数据吞吐量。这片内存通常被用来存放最核心、对延迟最敏感的代码段(如中断服务程序、关键循环)或数据缓冲区。

  2. 大容量存储:同步动态RAM板载了两块4M x 32位(共32MB)的SDRAM,运行在100MHz,分别映射到CE0和CE1空间。SDRAM的容量大、成本低,但访问延迟高于SRAM,且需要定期刷新。它非常适合存放大量的输入输出数据、中间处理结果以及相对不那么频繁调用的程序代码。EMIF(外部存储器接口)控制器会自动管理SDRAM的刷新和行/列地址切换。

  3. 存储空间映射与引导模式C6201支持两种存储器映射模式(MAP0和MAP1),这决定了上电后CPU从哪个地址开始取指执行。McEVM通过DIP开关(SW2-1至SW2-5)来配置引导模式:

    • 无引导(No Boot):CPU从地址0开始执行,该地址映射到SBSRAM或内部存储器。这是最常用的调试模式,代码通过JTAG或HPI由主机加载到SBSRAM的起始地址,然后CPU从那里开始运行。
    • HPI引导:CPU保持复位状态,主机通过PCI总线访问DSP的HPI端口,将程序代码写入DSP的内部或外部存储器,然后释放DSP复位,使其开始执行。这是PCI操作模式下的标准程序加载方式
    • ROM引导(需子卡):CPU从外部异步ROM(位于CE3空间)读取引导程序。这需要额外的子卡支持,用于独立(Stand-alone)运行场景。

2.3 关键外设接口:连接真实世界的桥梁

McEVM的强大之处在于其丰富的外设接口,使其能直接融入通信系统。

  1. PCI接口:这是板卡与主机PC通信的大动脉。它采用AMCC S5933 PCI控制器实现,符合PCI Local Bus Rev 2.1规范。该接口不仅让McEVM可以作为标准PCI卡插入电脑,实现“即插即用”,更重要的是它提供了三种关键访问路径:

    • 配置与状态寄存器:主机可以读取板卡ID、配置信息,控制复位和用户选项。
    • JTAG测试总线控制器(TBC):主机可以通过PCI总线直接访问DSP的JTAG口,实现无需额外仿真器的源代码调试,这是极大的便利。
    • 主机端口接口(HPI):主机可以通过PCI总线以DMA方式高速读写DSP的整个存储空间(包括内存和映射的外设寄存器),用于加载大型程序、传输批量数据。
  2. MVIP-90电信总线接口:这是多通道语音处理的核心。通过一颗MT90810 Flexible MVIP Interface Circuit (FMIC)芯片,实现了384x384通道的全无阻塞时隙交换。简单来说,它就像一个有384条入线和384条出线的数字电话交换机。板上的T1/E1接口的24/32个时隙、两个语音编解码器(VBAP)的通道,以及DSP的McBSP串口,都可以映射到这384个内部时隙中的任意一个,并能进行任意交叉连接。这使得DSP可以灵活地处理来自不同物理通道的数据,例如将T1线路1的时隙3的语音数据,经过DSP算法处理(如回声消除)后,再交换到MVIP总线的某个时隙,输出给另一个VBAP编解码器。

  3. T1/E1线路接口:通过一颗Bt8370单芯片收发器实现。T1(1.544 Mbps)和E1(2.048 Mbps)是传统的数字中继线路标准。该接口支持多种线路编码(AMI, B8ZS, HDB3)和成帧格式(D4, ESF, CRC4),能够直接连接运营商的数字线路或程控交换机。板载的RJ-48C接口和线路变压器提供了物理层连接。

  4. 语音编解码器接口:采用两片TCM320AC36/37 VBAP芯片,提供µ-law/A-law压扩(Companding)功能。它直接连接板载的3.5mm麦克风输入和耳机输出接口,可以用于模拟语音的采集和播放,方便进行语音算法(如编码、解码、增益控制)的演示和测试。

2.4 电源、复位与用户配置

  1. 电源设计:板卡通过PCI插槽的+5V供电,或通过一个4针的外部电源接口(J15)独立供电。板上集成了高效的开关稳压器,将+5V输入转换为DSP核心所需的1.8V和I/O所需的3.3V。这种设计保证了电源的纯净和稳定,是高速数字系统可靠工作的基础。
  2. 复位与监控:采用专门的电压监控芯片,监测1.8V和3.3V电源。任何一路电压跌落都会产生全局复位信号,确保系统不会在非正常电压下工作,保护DSP和外围芯片。此外,板上还有一个手动复位按钮。
  3. 用户配置与指示:除了前述的引导和时钟DIP开关,还有端序选择(大端/小端)、JTAG源选择(内部TBC/外部XDS510仿真器)以及3个用户自定义开关。7个LED指示灯(1个电源,2个用户可编程,4个T1/E1状态)为调试提供了直观的状态反馈。

3. 软件生态与开发工具链实战指南

硬件是舞台,软件才是灵魂。McEVM配套的软件包提供了一个从底层驱动到上层应用的完整生态系统,让开发者能快速聚焦于算法本身,而非硬件调试。

3.1 主机端软件:控制与通信枢纽

主机软件运行在Windows 95/98或NT 4.0系统上,其架构清晰地分为用户态(Ring 3)和内核态(Ring 0)两层。

  1. 内核态驱动:这是软件栈的基石。在Windows NT下是.sys文件,在Windows 95/98下是.vxd文件。它的职责是管理PCI设备,提供对McEVM板卡上配置空间、I/O端口和内存映射寄存器的安全、高效的底层访问。所有上层的工具和应用程序都必须通过它来与硬件对话。

  2. 用户态动态链接库evm6x.dll。它封装了内核态驱动的功能,提供了一组简洁、统一的应用编程接口。例如:

    • evm6x_open():打开指定索引的板卡句柄。
    • evm6x_read_memory()/evm6x_write_memory():通过HPI读写DSP内存。
    • evm6x_load():通过HPI加载COFF文件到DSP并启动执行。
    • evm6x_jtag_*()系列函数:通过嵌入式JTAG TBC访问DSP内核。 这个DLL是用户开发自定义主机控制程序的关键。
  3. 命令行工具集:这是开箱即用的利器。

    • 板卡配置工具evm6xrst.exe这个工具用于复位板卡并覆盖硬件DIP开关的配置。例如,即使DIP开关设成了50MHz x1模式,你仍然可以通过命令evm6xrst -s 3将DSP强制配置为200MHz(x4模式)运行。这在需要频繁切换时钟进行性能测试时非常方便,无需反复拔插板卡去拨动开关。

      # 复位板卡0,并配置为200MHz (speed=3),小端模式,使用内部JTAG evm6xrst -p 0 -r 1 -s 3 -e 0 -ji
    • COFF加载器evm6xldr.exe这是将编译链接好的DSP程序(.out文件)加载到板卡上运行的主要工具。它通过HPI接口进行加载,效率远高于JTAG。它还能重定向DSP的标准输入输出到主机文件,方便调试。

      # 将app.out加载到板卡0的DSP并运行,同时将DSP的printf输出保存到host_log.txt evm6xldr -p 0 app.out -o host_log.txt
    • 信心测试工具evm6xtst.exe这是一个全面的硬件自检程序。它会依次测试SBSRAM、SDRAM、DMA、定时器、McBSP、PCI EEPROM、T1/E1编解码器、MVIP交换矩阵等所有主要功能。任何新板卡上电后,第一件事就是运行这个测试,确保硬件基础功能完好。它会生成详细的日志文件。

      # 对板卡0进行完整测试,并输出日志 evm6xtst -p 0 test_result.log
    • 板卡I/O控制工具evm6xbio.exe这是一个高级脚本工具,它允许用户在不编写任何DSP代码的情况下,通过脚本命令配置外设并传输数据。例如,你可以写一个脚本,将MVIP总线某个时隙的语音数据录制到主机文件,或者将主机文件中的音频数据通过VBAP播放出来。这对于快速验证硬件连接和基本功能无比强大。

      # 执行一个配置MVIP和VBAP的脚本 evm6xbio @my_test_script.txt

3.2 DSP端支持软件:外设驱动与板级支持库

DSP端的软件以库的形式提供,源码开放,是学习如何编程操作这些复杂外设的绝佳资料。

  1. 外设驱动库:这些库提供了操作特定硬件模块的API。

    • McBSP驱动:用于配置DSP的多通道缓冲串口,设置时钟、帧同步、数据格式等,实现与MVIP交换芯片、编解码器的数据收发。
    • MVIP库:用于配置MT90810 FMIC芯片,实现384个时隙的交叉连接控制。例如,fmic_connect(0, out_channel, in_channel)可以将输入时隙in_channel连接到输出时隙out_channel
    • T1/E1库:用于配置Bt8370线路接口单元,设置T1/E1模式、线路编码、成帧方式,并读取线路状态(如信号丢失、帧失步、报警指示)。
    • VBAP库:用于配置TCM320AC36/37编解码器,设置增益、输入输出路径、压扩律(µ-law/A-law)。
    • PCI库:用于DSP端初始化AMCC S5933 PCI控制器,并通过邮箱寄存器或FIFO与主机进行高速数据通信。
  2. 板级支持库board.lib。这是一个更高层次的抽象库,它基于上述驱动,提供了针对McEVM这块特定板卡的初始化、配置和控制函数。例如,board_init()函数可能会依次初始化PCI、配置MVIP时钟、设置T1/E1为默认模式、初始化VBAP等。使用BSL可以让你更快地搭建应用程序框架。

  3. C I/O接口库:这个库非常巧妙地将DSP的C标准库函数(如printfscanf)重定向到了PCI接口。这意味着在你的DSP程序中,可以直接使用printf(“Hello from DSP!\n”),而字符串会通过HPI或PCI邮箱传递到主机,并由主机端的COFF加载器或调试器显示出来。这极大地简化了调试信息输出

3.3 开发与调试流程全景

结合这些工具,一个典型的McEVM开发调试流程如下:

  1. 环境搭建:将McEVM插入PC的PCI插槽,安装驱动和软件。运行evm6xtst进行信心测试,确保硬件和基础驱动正常。
  2. DSP程序开发:在CCS中创建工程,编写C/汇编代码,调用板级支持库和驱动库API操作外设。
  3. 编译链接:使用C6000编译器(cl6x)和汇编器(asm6x)生成COFF格式的可执行文件(.out)。
  4. 程序加载与运行
    • 方式一(常用):使用evm6xldr通过HPI加载.out文件并运行。速度快,适合多次迭代。
    • 方式二(调试):启动Code Composer for EVMs。它会通过PCI总线上的嵌入式JTAG TBC连接DSP。你可以在CCS中设置断点、单步执行、查看变量和存储器。注意:如果DSP已在运行随机代码,CCS可能无法连接。此时需要先用evm6xrst -i1命令初始化DSP内存,或按一下板上的复位按钮。
  5. 系统集成测试:使用evm6xbio工具或编写自定义的主机控制程序(调用evm6x.dll),模拟真实场景的数据流,测试DSP算法的完整功能。

4. 实战操作:从安装到运行第一个程序

理论分析之后,我们进入实战环节。假设你刚刚拿到一块McEVM板卡和一张配套的CD-ROM,以下是让你快速“点亮”它的步骤。

4.1 硬件安装与注意事项

  1. 防静电处理:这是电子工程师的第一课。在接触板卡前,佩戴好防静电手环,并确保其可靠接地。板卡应一直存放在防静电袋中,直到准备安装。
  2. 检查PCI插槽:McEVM是一块全尺寸PCI卡。打开机箱,确认你选择的PCI插槽前方没有阻挡物(如巨大的CPU散热器、电源线束)。确保该插槽支持总线主控(Bus Mastering),这对于DMA数据传输至关重要。
  3. 安装板卡:关闭电脑电源并拔掉电源线。卸下机箱后部对应空插槽的挡板。将McEVM金手指对准PCI插槽,垂直均匀用力插入,直至板卡完全就位,然后用螺丝将挡板固定在机箱上。
  4. 连接外部线缆(可选):如果需要测试语音功能,将麦克风插入板卡挡板的MIC IN,耳机插入EAR OUT。如果需要连接T1/E1线路,将网线(RJ-45)插入LINE口。MVIP总线连接通常用于多板卡级联,单板测试一般不需要。
  5. 检查DIP开关:这是最容易出错的一步。根据你的需求设置开关。对于大多数初次PCI模式调试,推荐设置为:
    • SW2-1 to SW2-5:ON, ON, OFF, OFF, OFF(HPI引导, MAP1)
    • SW2-6:ON(x4 时钟模式, 以获得133/200MHz性能)
    • SW2-7:ON(选择33.25MHz晶振) 或OFF(选择50MHz晶振)
    • SW2-8:ON(小端模式,与x86主机一致)
    • SW2-9:OFF(选择内部JTAG TBC,用于PCI调试)
    • SW2-10 to SW2-12: 用户自定义,可暂设为OFF
  6. 上电与驱动安装:盖上机箱,连接电源并开机。如果系统是Windows 95/98,可能会提示发现新硬件,需要你指定驱动路径(CD-ROM上的.inf文件)。Windows NT 4.0则需要在后续软件安装中配置驱动。

4.2 软件安装与配置

  1. 运行CD-ROM根目录下的setup.exe
  2. 选择安装“Device Drivers & Support Software for TMS320C6x McEVM”。建议使用默认安装路径(如C:\ti\EVM6x01)。
  3. 选择安装“Code Composer Version 4.0”。这是专门为EVM定制的CCS版本,它集成了对PCI-EVM调试的支持。
  4. 安装完成后,启动“Code Composer Setup”。
  5. 在设置工具中,点击“Install Device Driver”,然后浏览并选择C:\ti\c6000\drivers\tievm6xnt.dll(NT系统)或对应的VxD文件(95/98系统)。
  6. 将新出现的tievm6xnt图标拖到“My System”栏目下。
  7. 在右侧组件栏,将一个TMS320C6xCPU图标拖到tievm6xnt图标下。这样就建立了一个通过PCI-EVM驱动连接C6x DSP的调试配置。
  8. 保存并退出设置。

4.3 运行信心测试与结果解读

打开命令提示符,切换到信心测试程序所在目录(例如C:\ti\EVM6x01\conftest),执行:

evm6xtst.log

程序会开始一系列测试。一个成功的输出结尾应该是:

***** C6x EVM/McEVM Confidence Test Complete – No Errors.

如果测试失败,日志文件会明确指出是哪个环节出了问题,例如“SDRAM0 A5 Test … FAILED”。常见的失败原因有:

  • DIP开关设置错误:特别是时钟和端序设置。
  • 板卡接触不良:重新插拔板卡。
  • PCI中断冲突:尝试将板卡换到另一个PCI插槽。在Windows设备管理器中检查是否有感叹号。
  • 电源不足:某些老式PC的PCI插槽供电能力不足,尝试使用外部电源接口(J15)供电。

4.4 编译、加载与运行示例程序

软件包中自带示例程序。我们以一个简单的示例为例:

  1. 定位示例代码:示例通常位于C:\ti\EVM6x01\examples目录下,可能有helloledaudio_loop等文件夹。
  2. 编译:进入示例目录,通常会有一个makefile。在命令提示符下运行make(需要确保C6000编译工具链的路径已加入系统环境变量)。这将生成一个*.out文件。
  3. 加载运行:使用COFF加载器运行程序。例如,对于hello示例:
    cd C:\ti\EVM6x01\examples\hello evm6xldr hello.out
    你会在主机命令行看到DSP程序通过C I/O重定向打印出的“Hello World”信息。
  4. 使用CCS调试:打开Code Composer,选择你之前配置好的EVM调试环境。点击Debug -> Connect,CCS会通过PCI-JTAG连接到DSP。然后使用File -> Load Program加载hello.out。现在你可以设置断点,单步执行,查看寄存器和内存了。

5. 高级应用与故障排查实录

掌握了基本操作后,我们可以探索更复杂的应用场景,并了解如何解决可能遇到的问题。

5.1 多板卡系统与MVIP总线应用

McEVM的设计支持构建多DSP处理系统。通过板载的40针MVIP-90连接器,可以将多块McEVM(或其他兼容MVIP标准的板卡)的电信总线连接在一起,形成一个背板。这样,一块板卡上的T1/E1线路的语音时隙,可以通过MVIP总线路由到另一块板卡的DSP进行处理,再路由回来或发送到其他地方。这为构建高密度、多功能的电信服务器(如IP-PBX、媒体网关)提供了原型基础。

在软件上,你需要:

  1. 正确配置每块板卡上FMIC芯片的时钟和帧同步源。通常需要指定一块板卡作为“主时钟”,其他板卡作为“从时钟”。
  2. 使用fmic_connectAPI,在每块板卡上独立地配置所需的时隙交叉连接。
  3. 确保各板卡DSP程序之间的数据格式(如线性PCM、µ-law)和同步机制一致。

5.2 独立运行模式

除了插在PC中,McEVM也可以脱离PC,在实验台上独立运行。这需要:

  1. 外部电源:通过J15接口提供+5V, ±12V电源。
  2. 外部仿真器:如XDS510,通过14针JTAG头(J14)连接DSP。此时,必须将DIP开关SW2-9设置为ON,以选择外部JTAG。
  3. 程序加载方式:只能通过XDS510仿真器加载代码,或者通过自定义的ROM引导子卡启动。

独立模式适用于最终产品原型的测试,或需要脱离PC环境运行的场合。

5.3 常见问题与排查技巧

以下是我在实际项目中遇到的一些典型问题及解决方法:

问题现象可能原因排查步骤与解决方案
系统无法识别板卡,设备管理器有黄色感叹号。1. PCI插槽接触不良。
2. 驱动程序未正确安装。
3.PCI中断(IRQ)冲突(最常见)。
1. 重新插拔板卡,确保完全插入。
2. 重新运行安装程序,指定正确驱动。
3.尝试更换PCI插槽。进入BIOS,检查PCI设置,确保“即插即用操作系统”设为“Yes”(让Windows分配IRQ)。在设备管理器中手动为冲突设备分配空闲IRQ。
信心测试中SDRAM测试失败。1. 时钟设置错误(如DSP运行在200MHz但SDRAM是100MHz规格)。
2. SDRAM芯片或布线故障。
3. 电源噪声大。
1. 检查DIP开关SW2-6和SW2-7,确保时钟配置正确(如50MHz x4=200MHz DSP, 但SDRAM时钟需独立确认)。
2. 运行内存测试时,用手触摸SDRAM芯片,看是否因过热导致失败(接触不良)。
3. 尝试在独立模式下用外部线性电源供电测试,排除PC电源干扰。
Code Composer无法连接DSP,提示“Cannot initialize the EVM”。DSP正在执行随机代码,JTAG访问被挂起。1.首选方案:在命令行执行evm6xrst -i1。这个-i1参数会在DSP内存地址0处写入一个无害的死循环指令,确保JTAG可访问。
2.备用方案:按下板卡上的手动复位按钮,然后在CCS尝试连接的同时迅速点击“Connect”。
通过HPI加载大型程序(>几百KB)非常慢或失败。1. PCI总线主控(Bus Mastering)未启用或有问题。
2. 主机端DMA缓冲区设置问题。
1. 确保McEVM插入的PCI插槽支持并已启用总线主控。可尝试更换插槽。
2. 检查evm6x.dll的版本,或尝试在主机应用程序中减小单次HPI传输的数据块大小。
T1/E1链路无法同步,LOS(信号丢失)告警。1. 线路未连接或连接错误。
2. 线路编码/成帧模式设置不匹配。
3. 电缆过长或质量差。
1. 确认RJ-45线已连接至正确的T1/E1端口(如通道单元)。
2. 使用t1e1_initAPI或evm6xbio工具,确保DSP程序中的线路模式(T1/E1)、编码(AMI/B8ZS/HDB3)、成帧(D4/ESF/CRC4)与对端设备完全一致。
3. 对于T1(100欧姆)和E1(120欧姆),阻抗匹配很重要,使用高质量的双绞线。

5.4 性能优化点滴

  • 存储器使用策略:将最关键的循环代码和经常访问的数据放入片内RAM(C6201有64KB)。将次关键的代码和中等规模的数据放入SBSRAM。将大数据块(如语音帧缓冲区)放入SDRAM。利用DMA在SDRAM和片内RAM之间搬运数据,解放CPU。
  • Cache配置:C6201的片内RAM可以部分配置为Cache。对于指令访问随机性大的代码,启用Cache能极大提升性能。可以通过配置CSR寄存器的CC位来启用。
  • MVIP数据搬运:利用McBSP的多通道模式DMA,可以自动接收/发送MVIP总线上一整帧(如256个时隙)的数据,无需CPU逐个时隙干预,极大降低中断负载。
  • 主机-DSP通信:对于大批量数据传递,使用PCI控制器的FIFO DMA通道,而不是速度较慢的邮箱寄存器。