基于TMS320C672X系列DSP处理器BootLoader设计

2023-03-02

TMS320C672X系列DSP是TI公司高性能的32/64位浮点处理器的新一代产品, 无线通信、语音识别、多媒体、因特网等新应用, 都有赖于DSP提供强大的实时处理能力。随着DSP系统的广泛应用, 其程序规模也随之不断扩大, 使用芯片本身自带的Boot程序来引导DSP程序, 往往受到程序大小和结构的制约, 因此越来越需要更加灵活的引导方式。

1 概述

在CCS开发环境下, PC机通过不同类型的JTAG电缆与用户目标系统中的DSP通信, 帮助用户完成调试工作。当用户在CCS环境下完成开发任务, 编写完成用户软件之后, 需要脱离依赖PC机的CCS环境, 并要求目标系统上电后可自行启动并执行用户软件代码, 这就需要用到BootLoader技术。

系统上电后, 由DSP本身自带的Boot程序将DSP的应用程序加载到DSP应用板上的高速存储器 (如内部SRAM、SDRAM等) 中, 这个过程称为Boot loader。采用SPI从方式方便灵活, 接口简单, 速度可达10mbps, 成为引导DSP的应用程序佳选。不同的DSP有不同的引导方式。以T I公司系列芯片TMS320C672X为例, TMS320C672X共可实现4种引导方式, 分别为EMIF引导、HPI引导、SPI、I2C主方式引导、SPI、I2C从方式引导。本文针对SPI从方式引导深入了解BootLoader技术, 一般采用EMIF引导使用NorFLASH, 但该芯片体积大, 成本高, 因此采用SPI从方式由上位处理器加载DSP程序, 更方便, 更灵活, 可扩展性强, 又丰富了DSP接口。

2 系统设计

关于TI公司的TMS320C6X芯片在许多文献都介绍过, 二次Bootloader的运行过程, 由DSP本身自带的Boot程序只能将DSP的应用程序加载到DSP的片内RAM中, 由于片内RAM大小有限, 该Boot程序只能加载小型的应用程序, 本文不作分析, 本文描述通用的Bootloader过程, 采用二次Bootloader方式, 即由芯片本身自带的Boot程序将二次Bootloader程序加载运行起来, 然后由二次Bootloader程序负责把DSP的应用程序加载到指定的运行区域上运行。

2.1 系统描述

本系统由DSP (TMS320C6722) 及处理器 (C8051F120) 和高速存储器及相关的扩展单元构成。DSP与处理器采用SPI (串行设备接口) 接口通信, 采用四线方式 (SCLK (时钟) 、SIMO (数据) 、SOMI (数据) 、SCS (片选) ) , DSP与处理器的连接如图1所示。

引导就是将原先存储在处理器中的用户代码加载到DSP内部执行, 为了使引导具有通用性, 采用了二次引导方式, 首先加载二次Bootloader程序, 由二次Bootloader程序负责加载应用程序, 二次Bootloader程序可以完成DSP运行环境初始化使加载过程更快速, 更安全, 还可以实现其他功能 (如可以采用除SPI方式其他方式加载应用程序) 。

由于DSP有多种引导方式, 根据DSP的芯片手册确定SPI从引导模式, 例如TMS320C6722硬件设计时, Dsp复位之前保证Dsp的引脚号110 (spi0_SIMO) 、111 (spi0_SOMI) 、108 (spi0_SCLK) 的管脚输入电平符合表1。

2.2 软件设计

2.2.1 处理器程序设计

处理器SPI模式设置为主方式, 16位, MSB (高位) 先发, SCLK空闲时保持高电平, SCLK下降沿输出数据, 上升沿接收数据。

由TMS320C672X本身自带的Boot程序流程如下 (处理器侧流程) , 分为4个步骤,

第1步:开始字同步, DSP等待处理器建立开始字同步;第2步:通信测试, 确认物理通道可靠连接;第3步:程序下载, 将二次Bootloader程序下载到DSP中;第4步:程序运行, 指示DSP运行二次Bootloader程序。

处理器程序设计符合该流程, 实现二次Bootloader程序的加载运行 (二次Bootloader程序或应用程序烧写在处理器的存储器中) 。

2.2.2 DSP二次Bootloader程序设计

仍然沿用SPI连接方式下载应用程序, 二次BootLoader程序, 完成硬件环境的基本初始化工作, 包含SPI重新初始化, 达到高速可靠下载应用程序。

CCS用户程序主要包含三种文件:工程文件 (.pjt) , 命令配置文件 (.cmd) , 源程序文件 (c源文件.c/.h, 汇编源文件.s/.asm) 。

命令配置文件 (.cmd) 用于程序代码数据在存储空间的定位如下:

为了更好的发挥SPI功能使用中断方式, 这样需要中断向量表, 通常使用汇编语言源文件, 如下。

中断方式中要注意中断向量表的设置, 指定中断号的中断使能, 全局中断标志使能等, 否则将不能产生期望的中断, 不同的DSP初始化方式不完全一致。

二次BootLoader程序功能如下。

主要包含:系统环境初始化模块, 程序数据初始化模块, SPI中断初始化模块, SPI接收模块, SPI发送模块, 加载应用程序协议分析模块, 交权给应用程序接口。

系统环境初始化模块使DSP工作于期望的理想环境中, 为应用程序提供统一的运行环境, 最基本的是要设置CPU工作时钟, 设备接口工作时钟, SDRAM配置, SPI配置。

程序数据初始化模块, 完成系统所需全局数据初始化, SPI中断初始化模块, SPI接收模块, SPI发送模块, 用于驱动SPI接口设备的驱动程序。

加载应用程序协议分析模块, 完成加载应用程序, 校验加载的是否成功, 其功能框图见图2。

确认加载成功, 关闭SPI接口, 交权给应用程序运行, 整个BootLoader过程成功结束。

2.2.3 DSP测试应用程序

以下是测试应用程序, 在指定的io脚上输出方波的源代码, 编译后生成执行代码经格式转换后烧写在处理器的存储器中。

2.2.4 DSP执行文件格式转换

通过CCS开发环境附带hex6x.exe工具可以把执行文件转化成.hex格式文件, 可以方便烧写到处理器的存储器中。该工具需要命令配置文件.cmd, 格式如下。

3 测试结果

利用上述方法, 使得系统在脱机状态下实现DSP测试应用程序加载, 实现在DSP的指定io端口输出均匀方波。

经过二次Bootloader程序及测试应用程序编译、连接、格式转换烧写在处理器之后, 系统就可以实际脱机运行了。加电一段时间后, 测试应用程序运行, 可以通过示波器测量得到指定io端口的均匀方波, 证明BootLoader加载测试应用程序成功。

4 结语

本文以TI公司高性能系列芯片为例, 介绍了SPI从方式进行引导, 其中对Bootloader的过程及程序作了详细叙述, 从而为TMS320C6000系列DSP的开发提供了一种新的思路。DSP的BOOTLOASDER技术在DSP嵌入式系统开发中有着至关重要的作用。如果开发者掌握这项技术, 就会大大方便系统的调试, 缩短开发时间。该方法简单可行该方法已在实际工程中得到具体应用, 如在民航声音比选设备中采用了本文的Boo loader技术, 系统性能稳定。

摘要:在DSP技术的工程应用中, BootLoader是一项关键技术。文中以TI公司的DSP芯片TMS320C672X系列芯片为例介绍了BootLoader设计的步骤, 了解BootLoader的基本原理与方式, 从而掌握其他系列DSP芯片的BootLoader技术, 本文介绍了在TMS320C672X DSP系统中采用从SPI来实现DSP的BOOTLOADER的一个方案。在民航无线通信设备中如内话通信设备, 声音比选设备, 延时设备等通信设备中均采用了DSP技术实现, DSP技术在民航无线通信中有着广泛的应用, 通过本文的介绍对深入了解DSP研发, 掌握DSP技术起着抛砖引玉的作用。

关键词:DSP,TMS320C672X,BOOTLOADER,SPI

参考文献

[1] TMS320C6727, TMS320C6726, TMS320C6722 Floating-Point Digital SignalProcessors.

[2] Texas Instuments Incorporated.Usingthe TMS320C672x Bootloader[EB/OL].h t t p://w w w.t i.c o m/c n/l i t v/p d f/spraa69, (2009-09-01) [2010-03-02].

本文来自 99学术网(www.99xueshu.com),转载请保留网址和出处

上一篇:如何构建现代乡镇行政管理体制论文下一篇:建筑施工企业加强成本控制研究论文