tms320c6000系列二次bootloader的设计与实精)

合集下载

DSP的二级加载及Bootloader研究

DSP的二级加载及Bootloader研究

DSP的二级加载及Bootloader研究
夏爽
【期刊名称】《电脑编程技巧与维护》
【年(卷),期】2009(000)010
【摘要】从C6000 DSP的启动过程出发.详细阐述了C6000 DSP加载的基本原理,COFF目标文件的主要构成,链接命令文件语法和二级加载的两种方式及boofloader启动代码,可作为DSP嵌入式系统启动代码设计的参考.
【总页数】5页(P8-11,16)
【作者】夏爽
【作者单位】国营第722厂,桂林,541001
【正文语种】中文
【中图分类】TP3
【相关文献】
1.嵌入式系统Bootloader分析及DSP56F800串口加载功能实现 [J], 张小平;谷勇;丰新龙
2.C6000系列DSP带加解密的bootloader研究与应用 [J], 伍微;王礼亮;刘小汇
3.基于TMS320DM642的Flash头文件烧写法的DSP二级BootLoader开发 [J], 张宇;张勤俭;沈海阔;刘伟;吴如煊
4.TMS320C6713基于DSP/BIOS的二级BootLoader开发 [J], 胡海龙;彭启琮
5.DSP的Bootloader装载研究 [J], 俞宗佐
因版权原因,仅展示原文概要,查看原文内容请购买。

基于TMS320C6000系列DSP的二次Bootloader研究

基于TMS320C6000系列DSP的二次Bootloader研究

基于TMS320C6000系列DSP的二次Bootloader研究王洁;苏东林;姜铁华
【期刊名称】《电子工程师》
【年(卷),期】2005(31)8
【摘要】进行二次Bootloader是使用C6000系列DSP进行产品化设计必不可少的步骤。

阐述了C6000系列DSP的自启动过程,在此基础上分析了如何实现二次Bootloader的功能,并给出了基于TMS320C6713的具体工程实现方法。

【总页数】3页(P53-55)
【关键词】DSP;二次Bootloader;自启动
【作者】王洁;苏东林;姜铁华
【作者单位】北京航空航天大学电子工程系
【正文语种】中文
【中图分类】TP319
【相关文献】
1.一种基于TMS320C6000系列芯片的多DSP程序动态加载方案 [J], 吴海燕;张晓玲
2.基于TMS320C6000系列DSPs的驱动模块设计 [J], 张路
3.基于TMS320C6000系列DSP的C代码优化方法研究 [J], 阳明晔;张志勇
4.基于McBSP实现TMS320C6000系列DSPs的帧传输处理 [J], 阚颖
5.TMS320C6000系列带中断向量表的二次Bootloader的设计与实现 [J], 谢世珺;李永超;马金岭
因版权原因,仅展示原文概要,查看原文内容请购买。

TMS320C6000系列DSP多应用的启动方法

TMS320C6000系列DSP多应用的启动方法

TMS320C6000系列DSP多应用的启动方法孙东亚(中航工业西安航空计算技术研究所,陕西西安710065)摘要:针对目前机栽硬件平台的通用化需求,通过分析TMS320C6000系列DSP启动原理和目标文件生成过程,改进DSP 的启动加栽过程和目标文件的生成和固化方法,实现了在通用D SP平台上多应用可选的启动方法。

关键词:通用化;DSP;启动;在线编程中图分类号:TM933.4 文献标识码:A文章编号:1673-1131( 2017 )03-0051-02〇引言当前,机载计算机的通用化设计成为关注的重点之一。

这 要求研制的计算机模块采用通用的硬件,以降低研制、生产的 成本;要求通用的硬件上驻留多个应用软件,能够根据不同的 应用场景、位置,选择运行不同的软件,以降低维护的复杂度 并减少出现错误的概率。

这对一些基于D SP的处理模块设计 提出了较髙的要求:一方面一些D SP没有操作系统不支持多 应用可选的运行;另一方面,由于对模块体积、硬件成本等方 面的要求,基于DSP设计的处理模块往往RAM容量有限,不 能满足全部应用同时加载的需要。

为了解决以上所述问题,针对TMS320C6000系列DSP,利用模块上电后读取设备位置信息,提出了一种多应用可选 启动的方法。

1TM S320C6000系列D S P启动过程分析TMS320C6000系列DSP提供了多种不同的启动方式,常用的有三种w启动方式:主机启动、仿真启动以及EMIF(外部 存储器接口)启动。

EMIF启动常用于系统的正常工作阶段,它从片外FLASH 启动系统,其原理18是:DSP系统在上电复位时序结束后,DMA 控制器从片外FLA SH的起始地址空间拷贝一定数目的代码 到片内RAM,并从R A M空间零地址处开始存放。

当数据块 传输完成后,CPU脱离“阻塞”状态,开始从片内R A M的零地 址处执行相应的指令。

通过上述一次硬雜码加载往往难以将用户应用搬迁到 系统RAM,需要再编写二次拷贝代码,进而形成二次启动加载 程序。

TMS320C6000系列DSP的自启动设计

TMS320C6000系列DSP的自启动设计

TMS320C6000系列DSP的自启动设计翟丽杰【期刊名称】《河南科学》【年(卷),期】2012(030)007【摘要】In the DSP system design, the bootstrapping without the host and emulator after power on is needed in the system, which is essential aspect in DSP system design. The idea of moving automatically the CE1 starting address to the address OxOO by EMIF is introduced. The problem of BOOT program stored in the FLASH which is copied to starting address of RAM in the DSP to perform is solved. The functions of the boot program loaded from FLASH application by BOOTLOAD is completed. The BOOTLOAD procedures under the design ideas have been prepared in the application of SAR data storage system, running well.%DSP系统设计中,系统在加电后往往要脱离主机和仿真器自启动引导加载,主要介绍了在上电复位时DSP可以由EMIF引导自动搬移CE1起始地址1kbyte到地址Ox00的思想,解决了存放在FLASH中的BOOTLOAD引导程序复制到DSP的内部RAM起始地址去执行的问题,实现了由BOOTLOAD引导程序从FLASH中加载应用程序的功能,完成了DSP 的FLASH引导启动,该思路下设计的FLASH自启动设计已在SAR数据存储系统上应用,运行良好.【总页数】4页(P913-916)【作者】翟丽杰【作者单位】渭南师范学院,物理与电气工程学院,陕西渭南714000【正文语种】中文【中图分类】TP311【相关文献】1.基于TMS320C6000 DSP及DSP/BIOS系统的Flash引导自启动设计 [J], 王鹏;简秦勤;范俊锋2.TMS320C6000系列DSP的Flash启动设计 [J], 赵凡;丑武胜;刘敬猛;王田苗3.TMS320C6000系列DSPs板级设计分析 [J], 刘岚;熊承煜4.基于TMS320C6000系列DSPs的驱动模块设计 [J], 张路5.TMS320C6000系列DSP可选择引导加载方式的设计与实现 [J], 张谦;李世杰;李红波;高淑慧因版权原因,仅展示原文概要,查看原文内容请购买。

DSP二次Bootloader实现

DSP二次Bootloader实现

DSP 二次Bootloader 实现本文采用德州仪器公司的16 位定点DSP 芯片TMS320VC5509A(以下简称5509A),其PGE 封装形式只有14 根地址总线(A0~A13),最大只能寻址16KB 的Flash 存储器。

若要寻址更大地址空间,就需要控制Flash 存储器的高位地址线。

常见的解决方案是采用DSP 的通用输入输出GPIO(General Purpose Input/Output)引脚来控制Flash 的高位地址线,从而实现Flash 存储器的分页访问。

然而,对于较大容量的Flash 存储器,本文介绍了一种基于CPLD 快速译码的DSP 二次引导方法,利用CPLD 的时序严格、译码速度快、可在线编程等特点,在DSP 的外部存储器接口EMIF 的CE2 空间模拟了一个Flash 换页寄存器FPR(Flash Page Register),在上电复位后控制Flash 的高位地址线,从而实现Flash 的分页访问。

CPLD(Complex Programmable Logic Device)复杂可编程逻辑器件,是从PAL 和GAL 器件发展出来的器件,相对而言规模大,结构复杂,属于大规模集成电路范围。

是一种用户根据各自需要而自行构造逻辑功能的数字集成电路。

其基本设计方法是借助集成开发软件平台,用原理图、硬件描述语言等方法,生成相应的目标文件,通过下载电缆(在系统编程)将代码传送到目标芯片中,实现设计的数字系统。

CPLD 主要是由可编程逻辑宏单元(MC,Macro Cell)围绕中心的可编程互连矩阵单元组成。

其中MC 结构较复杂,并具有复杂的I/O 单元互连结构,可由用户根据需要生成特定的电路结构,完成一定的功能。

由于CPLD 内部采用固定长度的金属线进行各逻辑块。

TMS320C6000DSP自动引导的方法和编程实现

TMS320C6000DSP自动引导的方法和编程实现

图 : 代码生成流程图
汇 编 器 接 收 汇 编 优 化 器 或 编 译 器 产 生 的 2-C, 文 件 " 经 过 汇 编 后 产 生 可 重 新 分 配 地 址 的 5<MM 格 式 的 目 标 文 件 2($D % 该 格 式 文 件 包 含 了 汇 编 器 所 生 成 的 各 个 段 & 如 表
集成电路应用
行 指 令 ! 如 果 系 统 中 使 用 的 是 8E;F+ " 那 么 5GH 会 先 挂 起 " 直 到 8E;F+ 的 初 始 化 完 成 ! 7+89:35!:*I J 5!K*I 不具有这类方式! # : $ ;<+ 加 载 % 位 于 外 部 空 间 的 ;<+ 中 的 程 序 首 先 通 过 E+F J 6E+F 搬 入 地 址 3 处 ! 尽 管 加 载 过 程 是 在 芯 片外部被复位信号释放以后才开始的 "但是当芯片仍处 于内部复位保持时 "就开始了上述的传输过程了 ! 用户 可 以 指 定 外 部 ;<+ 的 存 储 宽 度 " 6+LM 会 自 动 将 相 邻 的
像 $雷达 $声纳和软件无线电等领域得到了广泛的应用 %
! "#$%&’()’’’ *ห้องสมุดไป่ตู้+ 硬 件 结 构 概 述
Y$#=0% "’%%% 是 Y. 公 司 生 产 的 Y$#=0% 系 列 产 品
中 新 一 代 高 性 能 的 -#, 芯 片 # 适 用 于 高 速 数 字 信 号 处 理 % Y$#=0%"’%%% 主 要 由 三 个 部 分 组 成 ’ ",8 内 核 $ 外 设 和 存 储 器 % ",8 中 Z 个 功 能 单 元 可 以 并 行 工 作 # 这 些 功 能单元被分成类似的两组#每组由 P 个基本功能单元组 成 % ",8 有 两 组 寄 存 器 # 每 组 寄 存 器 由 +’ 个 =0 位 寄 存 器组成% 由于在运行期间不做硬件数据相关性检查#所 以程序运行时可以同时执行 Z 条指令#极大地提高了芯 片处理速度#这使得该系列的芯 片 在 电 子 测 量 $测 控 $图

用两次下载法实现TMS320C6000 DSP系统的自举

用两次下载法实现TMS320C6000 DSP系统的自举

tksT 3 0 6 1 x mpeit d cstetieWa igme o hc p rtss l d cn e e t . a e MS 2 C 7 3 a ea l n ou e c dn t dw ih o ae i ya o v n nl s r h w h e mp n i y Ke ywod : P,B ol a e, ah IP, c odn e to r s DS o tod rf s ,S t e l igm hd _ l wi a Em si l r T 3 l ml l  ̄ _P 1 .
文章很多, 这些文章大多可归结为两种方法 :
方法一是利用 Ⅱ 提供 的转换工具 H xxee e6.x 将 CF O F格式的用户程序 .u 文件转换成 .e 文 ot hx 件输出, 或编写格式 转换程序将该 .e 文件 转换 hx 成 .n b 文件 , i 最后用专用的编程器将该 H x e 文件或
中图分类 号:P 1 T 3
To Re l Bo t a e fT S 2 C a ̄ o l d r o M 3 0 SD0 DS y tm sn wie L a i g M eh d o PSs e U ig T c o dn t o
U U
(h 2 steo ¥ Wua 40 7 ) Te72I t t f I n i C C, hn 30 9 u
b i n文件 写入 Fa 。 lh s
2 T S2C 7 3 M 30 6 1 简介
r S2C 73是 Ⅱ 公 司推 出 的 T S2C 7x r 30 6 1 M M 30 6x
系列产品中新一代高性能 的 D P芯片 , S 其时钟频
方法二是采用 F h l 在系统编程 I ( y e s a S I Ss m Pn t P mn m i 技 术。对 于转换 工 具 H xx e e6 .x 出 e输 的.e 文件用编程器可以直接写入 , hx 但采用 I 技 S P

TMS320C6000系列DSP程序固化方式分析

TMS320C6000系列DSP程序固化方式分析

TMS320C6000系列DSP程序固化方式分析TMS320C6000系列DSP程序固化方式分析引言本章内容主要针对TMS320C6000系列芯片,其他类型芯片可能会有差别,但总体思路应该都有指导作用。

随着近年来数字信号处理器(DSP)技术的迅猛发展,其中,TI公司推出的TMS320C6000系列DSP器件更是在许多需要进行大量数字信号处理运算并兼顾高实时性要求的场合得以应用。

TMS320C6000系列DSP的系统设计过程中,DSP器件的程序加载是较难解决的问题之一。

C6000系列DSP的加载方式包括不加载、主机加载和EMIF加载3种。

不加载[No boot]:方式仅限于存储器0地址不是必须映射到RAM空间的器件,否则在RAM空间初始化之前CPU会读取无效的代码而导致错误;主机加载[Host boot]:要求必须有一外部主机控制DSP的初始化,这将增加系统的成本和复杂度,在很多实际场合是难以实现的;EMIF加载[EMIF boot]:DSP与外部ROM/Flash接口较为自由,但片上Bootloader工具自动搬移的代码量有限(1 KB/64 KB)。

本文讨论的就是在EMIF加载方式下的程序各种不同的固化方式。

包括在线烧写,使用CCS提供的FlashBurn工具,使用专有烧写工具[编程器],一、DSP加载方式的选择DSP使用哪种加载方式进行启动,是通过硬件配置的方式选择,当DSP的RESET引脚无效后,DSP读入外围的配置引脚信息,确定加载启动的具体方式。

具体的配置管脚设定可以参考< >literature number: SPRS200二、EMIF加载方式启动过程当RESET变成高电平的时候,在CE1空间开始的1K字节的ROM 代码通过EDMA 被复制到地址为0 的地方(用DSP EMIF最慢的时序),在此期间DSP核一直处于“停止”状态。

数据被存储成系统所用的字节序格式。

在这种情况下,EMIF自动的把要搬移的8位宽数据拼接为32位指令字。

TI DSP c6000的二次boot

TI DSP c6000的二次boot

C6000EMIF接口EEPROM启动的二次bootloader140lab of uestc一,二次boot概述C6000有3种启动方式✓直接执行方式。

这种方式中,DSP采用map0储器映射方式,即地址0x00000000指向片外的存储器。

上电后DSP直接从地址0x00000000开始执行。

注意这种模式并不适用于TMS320C621x/C671x系列的芯片。

✓主机启动模式。

主机通过DSP的HPI口搬移代码和启动DSP。

✓EMIF接口的并行ROM启动模式.上电后DSP通过EMIF接口装载代码,在上述各种启动模式中,ROM启动模式实现简单,速度较快,在实际系统应用中也最为广泛,本文会主要介绍这种启动模式,当采用EMIF接口的并行ROM启动模式时,大多数6000系列的DSP芯片只能从CE1向地址0处搬移1K bytes的代码,那么当应用程序代码超过1K bytes时就需要两次的代码搬移,这就是所说的二级启动过程。

简单过程如下。

1,DSP上电或硬复位时通过EDMA自动地从EMIF接口的BE1空间搬移的1k bytes的二次boot代码到片内ram的0x00000000到0x00000400空间2,搬移完成后自动跳转到地址0x00000000处执行搬移进来的二次boot代码。

3,二级boot代码将应用程序从外部存储器搬移到内部RAM中,并且在代码搬移完后跳转到程序入口地址c_int00。

当需要访问外部存储器时,二级启动代码应包括对EMIF寄存器的配置,这些寄存器包括EMIF_GCR,EMIF_CE0,EMIF_SDCTRL及EMIF_SDRP,对这些寄存器的配置可根据原理图的设计及程序的要求用户自己进行编写。

对于有内部PLL控制时钟的DSP6000芯片,TI推荐在二级启动代码中配置PLL以提高启动的速度。

二次boot 代码长度必须小于1k个bytes,这使得我们很难用c语言来编写二次boot代码。

因为初始化c运行环境需要空间不小。

C6000DSP的引导方式和bootloader

C6000DSP的引导方式和bootloader

C6000DSP的引导方式和bootloaderC6000是TI的高端DSP,它有3种引导方式:㈠无引导;㈡ROM引导;㈢主机引导㈠–无引导:CPU直接从地址0处开始执行代码。

㈡– ROM引导,加载过程:①当CPU的Reset引脚处于低电平状态时,BOOTMODE的引脚状态根据预设设定, RESET信号处于上升沿的时候,相应加载方式启动。

②ROM加载方式是通过DMA控制器,将外部ROM的一段固定大小的代码复制到内部RAM中(加载时CPU处于stall状态),对于不同型号芯片,复制的代码大小不同。

对于C620x/C670x,DMA从CE1空间拷贝64K数据到地址0处对于C621x/C671x/C64x,EDMA从CE1空间拷贝1K数据到地址0处。

③加载完毕后,CPU开始从0地址执行。

对于上述步骤②的第二种(C621x/C671x/C64x),1K是不能解决问题的,所以,一般在0地址处建立一个叫做“bootloader”的段(代码小于1KB),这一小段程序也叫“引导程序”,上电或者重启后首先执行它,完成将其余程序(真正完成用户要求算法的程序)加载,然后跳转到主程序入口地址运行。

㈢–主机引导:对具有不同接口的芯片,分别有以下三种渠道连接:HPIXBUSPCI介绍了TMS320C6x DSP的几种FLASH引导方法,比较了引导过程中基于软件流水的数据搬移方法和QDMA方式的数据搬移方法,并介绍了如何利用在系统编程(ISP)对上电引导程序进行FLASH编程。

通过对实际的TMS32C6711 DSP电路调试实验,证明了以上方法简单易行。

关键词:FLASH存储器上电引导COFF文件格式DSPFLASH存储器是在EPROM和EEPROM的基础上发展起来的一种非易失性存储器,在掉电情况下仍能保证数据不丢失,并能够在不离开电路板或据设备的情况下实施擦除和再编程操作。

由于其具有结构简单、维护便利、存取速度快、对环境适应能力强、抗振性能好等优点十分适合于嵌入式系统的设计和开发,并且已成为目前流行的数字信号处理系统的一个基本配置。

++++TI TMS320 C6000系列DSP的BOOTLOAD程序设计

++++TI TMS320 C6000系列DSP的BOOTLOAD程序设计

程在系统处于复位状态时就已经开始了。系统的 Z/.\ 接口可以自动的将 & 位或 %) 位宽度的数据合 并为 #! 位的数据。自动拷贝的程序大小根据处理 器类型有所不同: 1)!"] Y 1)("], 2/7 从 1Z% 空间拷 贝 ),F 字 节 数 据 到 地 址 " 开 始 的 空 间; 1)!%] Y 1)(%] Y 1),, Z2/7 从 1Z% 空间拷贝 %F 字节数据到 地址 " 开始的空间。拷贝程序结束后, 系统退出复 位, 从地址 " 开始运行。 可以看出, 程序长度不大于系统复位时 2/7 Y 是不需要 455-6572 的。 Z2/7 自动拷贝的字节数, 一般来讲, 当程序长度大于系统复位时 2/7 Y Z2/7 自动拷贝的字节数时, 通过 455-6572 程序完成对 程序、 数据段等的加载。
455-6572 程序要完成 203 系统硬件和软件的 复位, 主要完成的任务包括: (%) 系统硬件初始化 在 203 系统复位时, 各接口处于不定的状态。 如果不进行及时的初始化, 可能会影响系统其他部 分的运行情况, 甚至出现运行异常。通过在 455-8 可以使系统 6572 程序中写入硬件初始化的指令, 稳定可靠。
・ ’! ・
工业仪表与自动化装置
!"", 年第 ) 期
!" !#$%&’ ()’’’ 系列 *$+ 的 ,--!.-/* 程序设计
蒲中奇% , 张 伟% , 施克仁% , 吴玉林!
(%+ 清华大学 机械工程系无损检测实验室, 北京 %"""&,; 北京 %"""&,) !+ 清华大学 热能工程系, 摘要: 介绍了 -. -/0#!" 1)""" 系列 203 的 455-6572 程序功能、 特点及设计思路。按照该设 计思路编制的 455-6572 程序已在水轮机空化在线监测系统中应用, 系统运行稳定可靠。 关键词: 数字信号处理器 -/0#!" 1)"""; 455-6572; 文献标识码: 文章编号: (!"",) 中图分类号: -3#%%+’! 4 %"""8")&! ")8""’!8"#

TMS320C6000DSP自动引导的方法和编程实现

TMS320C6000DSP自动引导的方法和编程实现

TMS320C6000DSP自动引导的方法和编程实现TMS320C6000 DSP自动引导的方法和编程实现摘要:TI高速信号处理器TMS320C5X和TMS320C6X需要从外部的存储器(ROM或FLASH)中引导应用程序?这是开发中的重点和难点之一,关系到系统的可靠性和处理速度。

以TMS320C6000DSP为例,介绍了应用程序的三种引导方式;以实际工程为背景详细叙述了从ROM中引导程序的实现方法,并钟对其中重要的命令文件和用户引导程序,给出了相应的示例文件和程序。

关键词:TMS320C6000 DSP CMD 引导1TMS320C6000DSP硬件结构概述TMS320C6000是TI公司生产的TMS320系列产品中新一代高性能的DSP芯片,适用于高速数字信号处理。

TMS320C6000主要由三个部分组成:CPU内核、外设和存储器。

CPU中8个功能单元可以并行工作,这些功能单元被分成类似的两组,每组由4个基本功能单元组成。

CPU有两组寄存器,每组寄存器由16个32位寄存器组成。

由于在运行期间不做硬件数据相关性检查,所以程序运行时可以同时执行8条指令,极大地提高了芯片处理速度,这使得该系列的芯片在电子测量、测控、图像、雷达、声纳和软件无线电等领域得到了广泛的应用。

(范文先生网收集整理)2加电后DSP的运行过程系统加电后,RESET信号为低,芯片复位。

在RESET信号上升沿处,锁存BOOTMODE[4:0]信号,借以决定芯片的存储器映射方式、地址0处的存储器类型以及复位后芯片的自举模式,复位结束后,芯片从存储器的0地址开始执行指令。

TMS320C6000器件可以设置成三种自举方式,其加载过程分别叙述如下:(1)不加载。

CPU直接从存储器的0地址处开始执行指令。

如果系统中使用的是SDRAM,那么CPU会先挂起,直到SDRAM的初始化完成。

TMS320C621X/C671X不具有这类方式。

(2)ROM加载。

C6000系列DSP Flash二次加载技术研

C6000系列DSP Flash二次加载技术研

C6000 系列DSP Flash 二次加载技术研
TI 公司C6000 系列DSP 具有强大的处理能力,在嵌入式系统中有着广泛的应用。

由于程序在DSP 内部存储器的运行速度远大于片外存储器的运行速度,通常需要将程序从外部加载到DSP 内部运行。

由于C6000 系列DSP 均没有片上非易失性存储器,而最常用的方式为采用非易失Flash 存储器进
行程序的存储和加载。

然而,该系列DSP 的推出是一个渐进的过程,其芯片内部结构随着上市时间的先后有着较大的不同,而TI 公司没有给出统一的加
载方式。

针对该问题,本文全面研究了不同DSP 芯片的加载方法与差异,并根据这些特点提出了通用的二次加载方法。

1 TI 公司提供的二次加载方法
TI 公司的DSP 芯片二次加载的原理是一致的,加载步骤如下:
①通过一次加载将二次加载程序载入DSP 片内或片外存储器;。

TMS320C6000系列二次Bootloader的设计与实(精)

TMS320C6000系列二次Bootloader的设计与实(精)

TMS320C6000系列二次Bootloader的设计与实(精)TMS320C6000系列二次Bootloader的设计与实现,DSP,二次Bootloader,Flash存储器,中断向引言随着DSP(数字信号处理器)系统的广泛应用,其程序规模也随之不断扩大,使用芯片本身自带的Boot-loader 通过Flash存储器来引导DSP程序,往往受到程序大小和结构的制约,比如程序很大超过厂商固化boot的范围,再如中断向量表的不同位置对程序boot跳转的影响,等等,因此越来越需要更加灵活的引导方式。

系统上电后,引导程序将DSP的应用程序从该存储器引导到DSP应用板上的高速存储器(如内部SRAM、SDRAM等)中。

于Flash存储器具有引言随着DSP(数字信号处理器)系统的广泛应用,其程序规模也随之不断扩大,使用芯片本身自带的Boot-loader通过Flash存储器来引导DSP程序,往往受到程序大小和结构的制约,比如程序很大超过厂商固化boot的范围,再如中断向量表的不同位置对程序boot跳转的影响,等等,因此越来越需要更加灵活的引导方式。

系统上电后,引导程序将DSP的应用程序从该存储器引导到DSP应用板上的高速存储器(如内部SRAM、SDRAM等)中。

于Flash存储器具有电信号删除功能,且删除速度快,集成度高,因此已成为此种存储器的首选。

于Flash存储器的存取速度较慢,写入Flash存储器的程序将在系统上电时被DSP 装载到快速的存储器中运行,这个过程称为Boot loader。

不同的DSP有不同的引导方式。

以TI公司TMS320C6000系列芯片为例,自举方式有3种:无自举(No Boot),CPU直接开始执行地址0处的指令;主机自举(Host Boot),系统复位后主机通过CPU的HPI(主程序设计接口)初始化DSP的存储空间;ROM自举(ROM Boot),DMA控制器从CEl空间复制固定长度程序的地址0处,然后从地址0处开始执行。

用两次下载法实现TMS320C6000 DSP系统的自举

用两次下载法实现TMS320C6000 DSP系统的自举

用两次下载法实现TMS320C6000 DSP系统的自举
李莉
【期刊名称】《舰船电子工程》
【年(卷),期】2006(026)001
【摘要】介绍了TMS320C6000系列DSP系统的自举原理和Flash在线编程技术,并以TMS320C6713为例提出了一种两次下载法简便快捷地实现DSP系统的自举.
【总页数】4页(P80-82,86)
【作者】李莉
【作者单位】中国船舶重工集团公司第七二二研究所,武汉,430079
【正文语种】中文
【中图分类】TP31
【相关文献】
1.基于TMS320C6000和同步FIFO的多DSP系统设计与实现 [J], 薛永辉;刘云
2.基于Flash的TMS320VC5416 DSP系统自举实现 [J], 徐菲;刘同怀;黄鲁
S环境两次编程实现DSP串行EEPROM自举的方法 [J], 朱磊
4.TI C6x DSP系统通用自举代码实现 [J], 彭映杰
5.TMS320C6000 DSP系统的引导设计 [J], 陆侃芸;宋莹;季晓勇
因版权原因,仅展示原文概要,查看原文内容请购买。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

TMS320C6000系列二次Bootloader的设计与实(精)TMS320C6000系列二次Bootloader的设计与实现,DSP,二次Bootloader,Flash存储器,中断向引言随着DSP(数字信号处理器)系统的广泛应用,其程序规模也随之不断扩大,使用芯片本身自带的Boot-loader通过Flash存储器来引导DSP程序,往往受到程序大小和结构的制约,比如程序很大超过厂商固化boot的范围,再如中断向量表的不同位置对程序boot跳转的影响,等等,因此越来越需要更加灵活的引导方式。

系统上电后,由引导程序将DSP的应用程序从该存储器引导到DSP应用板上的高速存储器(如内部SRAM、SDRAM等)中。

由于Flash存储器具有引言随着DSP(数字信号处理器)系统的广泛应用,其程序规模也随之不断扩大,使用芯片本身自带的Boot-loader通过Flash存储器来引导DSP程序,往往受到程序大小和结构的制约,比如程序很大超过厂商固化boot的范围,再如中断向量表的不同位置对程序boot跳转的影响,等等,因此越来越需要更加灵活的引导方式。

系统上电后,由引导程序将DSP的应用程序从该存储器引导到DSP应用板上的高速存储器(如内部SRAM、SDRAM等)中。

由于Flash存储器具有电信号删除功能,且删除速度快,集成度高,因此已成为此种存储器的首选。

由于Flash存储器的存取速度较慢,写入Flash存储器的程序将在系统上电时被DSP装载到快速的存储器中运行,这个过程称为Boot loader。

不同的DSP有不同的引导方式。

以TI公司TMS320C6000系列芯片为例,自举方式有3种:无自举(No Boot),CPU直接开始执行地址0处的指令;主机自举(Host Boot),系统复位后主机通过CPU的HPI(主程序设计接口)初始化DSP的存储空间;ROM自举(ROM Boot),DMA控制器从CEl 空间复制固定长度程序的地址0处,然后从地址0处开始执行。

对于620x/670x DMA,复制64 kB数据从CEl到地址0;而对于621x/671x EDMA,复制1 kB数据从CEl地址开始到地址0。

关于TI公司的C6000芯片二次Bootloader在许多文献都介绍过,包括二次Bootloader的PLL、EMIF的设置和搬移表的设置和Flash存储器的烧写过程,但是对于有中断向量表的二次Bootloader实现的文献很少。

本文以TI公司高性能DSP的代表作TMS320C6000系列芯片为例,介绍了一种带中断向量表的二次Bootloader 的新途径,从而为TMS320C6000系列DSP的开发提供了一种新的思路。

该方法在实际中得到具体应用,系统运行稳定可靠。

1 二次Bootload的过程TMS320C6713是TI公司推出的TMS320C67xx系列浮点DSP中最新的一种芯片。

TMS320C6713每周期可以执行8条32位指令;支持32/64位数据;具有最高225MHz的运行速度和1800 MIPs(百万次运算每秒)或1350 MFLOPS(百万次浮点运算每秒)的处理能力;同时是有强大的外设支持能力;EMIP(外部存储器接口)可以很方便地与SDRAM、SBSRAM、Flash存储器、SRAM等同步和异步存储器相连,16位EHPI接口可以与各种处理器接口;另外,还有优化的多通道缓存串口和多通道音频串口,这些外部接口使设计人员可以很容易实现自己的应用系统。

在选择ROMBoot方式时,RESET由低变高后,C6713的CPU内核处于复位状态,而C6713的其他部分则开始工作,此时EMIF的CEl空间根据ROM Boot的方式自动地配置为8/16/32位异步存储器接口,并且CEl空间读/写时序自动地配置为最大,随后将CEl空间的前1 kB复制到0x0000 0000地址处。

通过这1 kB的数据实现对其他程序的引导。

对于中断向量表设在0x0000 0000~0x0000 0400处的程序来说,1 kB数据中处包含EMIF设置代码和搬移程序外,必然也包含中断向量表。

本文重点叙述带中断向量表的Bootloader的过程,中断向量表起始地址为0x00000000。

如果程序长度小于1 kB,那么就不需要二次bootloader,但是往往程序长度都会大于1 kB,所以二次bootloader是必然的过程。

二次Bootloader的实现需要引入EMIF设置和搬移的程序,即编写boot_c671x_2.s62、c6713_emif.s62,lnk2.cmd和boot.cmd3个文件。

本文以实现多通道缓冲串口的程序进行说明,实现二次Bootload的过程框图如图1所示。

首先调入调试好的用户程序工程文件MeBSP_test.pjt工程作为例程,然后在此工程文件中引入3个文件。

程序编写好后,要引入3个很重要的文件;EMIF的值定义文件(c6713_emif.s62);关于EMIF的设置和数据搬移的程序(boot_c67lx_2.s62);cmd 配置文件(lnk2.cmd)。

同时,其原来的mcbsp.cmd文件要去掉。

图2做了一个对比。

图2(a)为原程序,图2(b)为生成要烧写的数据的程序,图2(b)中加入了3个文件,原有的mcbsp.cmd去掉了。

其中boot_c67lx_2.s62是通用的,c6713_emif.s62要根据具体实际的芯片配置EMIF的参数。

其中boot_c671x_2.s62包含了.boot_load的函数,这个函数包含几个过程,如图3所示。

c6713_emif.s62文件包括EMIF的几个参数配置。

Ink2.cmd文件位COFF 的配置。

其次,就是把生成的*.out文件首先使用CCS开发环境自带的工具Hex6x.exe把工程生成的*.out文件转化成hex格式,在DOS环境下指令为>Hex6x.exeboot.cmd。

最后根据Flash存储器芯片的要求把hex文件烧写到Flash存储器中指定的地址即可。

本例采用的AM29LV800BB-70ecFlash存储器芯片,采用3.3 V供电,完全兼容JEDEC标准,并支持在系统编程,用户只需向其内部的命令寄存器写入命令序列即可实现部分擦除、全部擦除、数据写人等功能;同时可提供硬件和软件方法来检查Flash 存储器的操作执行情况。

首先需要对芯片进行擦除全部变为0xFFFF,然后再进行烧写。

由于Flash存储器是以16位进行访问的,所以对Flash存储器而言其物理地址以16位为单位进行编址,而程序中使用的逻辑地址是以字节为单位进行编址的,二者之间的关系如下:逻辑地址=物理地址2 带有中断向量表的二次Bootloader的实现第1节介绍了一般的二次Bootload过程,但当需要boot带中断向量表的程序时,需要仔细考虑3个重要文件的编程,否则将会遇到意想不到的后果。

2.1 配置文件Ink2.cmdInk2.cmd有了细微差别,此时有中断向量表,所以在分配时要考虑vectors的分配空间。

在配置文件中差异主要在Memory中,section的部分如下:SECTIONSMEMORY的差别具体如下:a) 没有考虑中断向量表配置的部分程序:b) 考虑中断向量表配置的部分程序:.vectors为中断向量表,其有0x200的长度的数据,必须放在0x90000000的地址处,.boot_load紧接着放置。

2.2 中断向量表文件vec.asm还有一个很重要的一点是图2中vec.asm文件的变化。

在调试程序时,中断向量表开始会直接跳到c_int00处,但是待烧写的前1 kB数据,首先要进行EMIF设置和搬移过程,所以其指向要发生变化。

vecter.asm部分程序如下:a) 原程序的vecter.asm部分程序:b) 产生Bootload数据的程序的vecter.asm部分程序:以上程序中,程序a)开始是指向c_int00,程序b)为指向_boot,即.boot_load()的人口。

这是因为在1 kB的程序复制完成后,程序即开始执行。

首先应执行二次boot程序,即入口点_boot,完成二次boot后,再执行正常的初始化C语言环境代码,进而跳转到用户main函数。

此时生成的.out的文件,通过hex6x.exe转化成可烧写的数据。

2.3 转换数据的配置文件boot.cmd 通过hex6x.exe可以把boot.out文件转化成boot.hex形式,方便烧写到Flash 存储器中。

此时Boot.cmd的也要做相应的变化,把中断向量表的程序同.boot_load 程序,程序段,数据段一样转化过来。

boot.cmd配置程序如下:a) 没有考虑中断向量表的boot.cmd配置:b) 考虑中断向量表boot.cmd配置:以上程序中len可以根据实际程序的长度进行修改,如果用hex6x.exeboot.cmd进行转化,程序长度过短时,会产生警告提示。

此时可以查看map文件,看看程序和数据占用的空间来定len的大小,只要len大于实际的程序长度即可。

Romwidth根据所用的Flash存储器的位数来定,如果是8位的就写8,如果是16位的就换成16。

以上程序中,程序b)与程序a)不同的是加入了.vectors,使得生成的boot.hex文件中0x0000 0000地址就为vectors的程序。

此时生成的*.hex的文件可以烧写到Flash中。

3 结束语本文以TI公司高性能DSP TMS320C6000系列芯片为例,介绍了从Flash存储器进行引导,带中断向量表的二次Bootloader的新途径,其中对Bootloader的程序需要改写的部分详细叙述了具体的差别,从而为TMS320C6000系列DSP的开发提供了一种新的思路。

该方法简单可行,在TI公司提供的文档上,只要稍做修改就可以得到正确的结果,该方法已在实际工程中得到具体应用,系统性能稳定。

一般情况下中断向量表的首地址都为0x0000 0000,如果中断向量表没有设在0x0000 0000地址时,要对boot_c671x_2.s62文件中ISTP进行设置,此时vectors就不需要放在1 kB的数据中,而是在1 kB的程序空间中指向vectors的初地址。

相关文档
最新文档