基于TMS320C67系列DSP的FLASH烧写和程序加载研究

合集下载

TMS320C6x DSP的FLASH引导方法研究与实现

TMS320C6x DSP的FLASH引导方法研究与实现

TMS320C6x DSP的FLASH引导方法研究与实现关键词:摘要:介绍了TMS320C6x DSP的几种FLASH引导方法,比较了引导过程中基于软件流水的数据搬移方法和QDMA方式的数据搬移方法,并介绍了如何利用在系统编程(ISP)对上电引导程序进行FLASH编程。

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

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

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

在许多DSP的应用中,系统上电后需要将用户程序从FLASH存储器引导到高速数据存储器中运行。

这就需要给用JTAG接口调试通过的应用程序添加启动代码,将生成的目标文件进行格式转换使其能在线烧写,将转换过的文件利用FLASH烧写程序在线烧写到FLASH中。

本文将介绍引导过程中数据搬移的几种方法,包括QDMA方式的数据搬移方法、CPU直接数据搬移方法以及基于软件流水的数据搬移方法。

经过比较测试,证明了QDMA方式和基于软件流水的数据搬移方法具有优越性。

并且,根据COFF文件格式,编写了比TI公司的HEX60更为直接的转换工具,从而简化了文件的转换步骤。

1 应用程序的FLASH ROM引导当DSP的应用程序从FLASH ROM引导时,目标板都有一个自动的引导程序。

例如,对于TMS320C6x1x系列,目标板的自动引导程序会在系统上电时将FLASH ROM的前1K空间的内容复制到片内内存自0x00开始的地址空间,并从0x00地址处开始运行。

因为需要搬到内存中运行的应用程序的向量表、初始化段等往往超过1K大小,为了能在系统上电时自动引导应用程序运行,就需要在引导的1K代码中包括自定义的引导代码,以将额外需要的初始化代码段和数据段复制到内存中运行。

TMS320C6701自动加载及程序烧写的简化设计

TMS320C6701自动加载及程序烧写的简化设计
Ab s t r ac t : Af t e r a na l z i ng t he l o a di ng pr o c e s s o f TM S 32 0C67 01, p e r i ph e r a l ha r dwa r e c i r c u i t s ,c md f i l e a n d i nt e r r up t ve c t or t a bl e a r e de — s i g ne d. The a ut ol oa d i ng p r o c e s s o f DSP s y s t e m i s r e a l i z e d by l oa d i ng a t a t i m e, a n d DSP pr o gr a m wr i t i ng i s r e a l i z e d by de s i g ne d p r o gr a m
wr i t i n g p r o j e c t . Th e me t h o d s i mp l i f i e s DS P p r o g r a m wr i t i n g a n d l o a d i n g .
Ke y wo r d s: T M S3 20 C6 7 01; DSP; p r og r a m wr i t i ng; a u t ol oa di ng
中, L E ND I AN 引脚 接 高 电平 。
D S P应 用 系统 中 , 通 常 将 应 用 程 序 存 储 在 外 部 非 易 失 性 存
储器( 如 F LAS H、 E EP R 0M 、 P ROM 等 ) 中 。系 统 上 电 后 ,
外部程序存储 器选用 F L A S H 芯 片 AM2 9 L V1 6 0 , 3 2

DSP自动加载过程及程序烧写的简化设计

DSP自动加载过程及程序烧写的简化设计

DSP自动加载过程及程序烧写的简化设计TMS320C6701(以下简称C6701)是一款浮点运算DSP,适用于需要大量运算且实时性要求高的场合,如导航解算等。

在浮点DSP 芯片中,C6701 是一款可应用于恶劣环境并具有高可靠性的产品,因此该型DSP 芯片虽然推出较早,却依然在某些领域具有重要应用价值。

DSP 应用程序需脱离开发系统独立工作,在实时DSP 应用系统中,通常将应用程序存储在外部非易失性存储器(如FLASH、EEPROM、PROM 等)中。

系统上电后,DSP 将外部程序存储器的程序代码加载到可高速存取的RAM 中,加载完成后自动跳转到零地址开始运行。

因此DSP 程序烧写及自动加载是实时DSP 系统设计的重要部分。

本文采用的烧写方法不需要格式转换到外部辅助设备,同时DSP 程序不再进行二次加载,简化了烧写及程序自动加载的过程。

1 加载方案及电路设计1.1 外围电路设计C6701 有三种加载模式:不加载(No Boot)、ROM 加载(Rom Boot)、主机加载(Host Boot)。

这三种加载模式由C6701 的BOOTMODE[4:0]引脚电平设定,由这5 个引脚的设置共同决定使用何种存储空间映射模式。

在恶劣环境及高可靠应用场合中,可使用不加载方式,也可使用程序从ROM 中加载到DSP 片外高可靠RAM 存储器中的运行方式。

FLASH、EEPROM、PROM 等程序存储芯片多为8 位或16 位,在高可靠应用环境中8 位比较常见。

本文中设置BOOTMODE[4:0]为01010B,即程序由外部8 位程序存储器加载到外部32 位SRAM 中,LENDIAN 引脚接高电平。

外部程序存储器选用FLASH 芯片AM29LV160,32 位SRAM 芯片选用ACTS512K32V.FLASH 和SRAM 芯片与C6701 的硬件连接如。

一种基于TMS320C6713串口烧写FLASH实现自启动的方法

一种基于TMS320C6713串口烧写FLASH实现自启动的方法

wr i t i n g p r o c e s s .Co n v e r s i o n f r o m t h e a p p l i c a t i o n il f e t y p e s ,s e r i a l p o r t t o s e n d a p p l i c a t i o n s a n d TM S 3 2 0 C67 l 3 h a r d wa r e p l a t or f m p r o g r a mm e r t h r e e a s pe c t s d e s c r i b e d i n d e t a i l t h r o u g h t h e s e r i a l p o r t t o s e n d t h e a p p l i c a t i o n c o d e p r o g r a mm e r
Ab s t r a c t :Ac c o r d i n g t o t h e T MS 3 2 0 C6 7 1 3 p l a t f o r m p r o g r a m me r a p p l i c a t i o n t o t h e F LAS H i n t r o u b l e .Th i s p a p e r
关键 词 :T M¥ 3 2 0 C6 7 1 3 ;F L AS H 烧 写 ; 自启 动
中 图分 类 号 :T J 0 2
文 献标 志码 :A
A TM S3 2 0C67 1 3 Se r i a l Pr og r a mm i n g FLA SH Re a l i z a t i o n Me t h od
摘要 :针对 T MS 3 2 0 C 6 7 1 3平 台烧 写应 用 程序 到 F L AS H 中时存 在 的 不便 ,介 绍 一种 方便 简洁的 代码 烧 写方 式 。 详 细 分析 了 T MS 3 2 0 C 6 7 1 3自启 动原 理 、 过程 和 烧 写流 程 。 从应 用 程序 文 件转 换 、串口发 送 应 用程序 和 T MS 3 2 0 C 6 7 1 3 硬 件 平 台烧 写 3个 方 面详 细描 述 了通 过 串口发 送 应用 程序 代 码 烧写 F L AS H 的 步骤 。分 析 结果证 明:该方 法使 用 一种 C , ' CS版 本 即可 完成 F L AS H 烧写 和应 用代码 的开发 , 并通 用 于各种 版本 C C S编译 / 开发 平 台, 极 大方便 了软 件开发 人 员。

TMS320C67xDSP Library在程序开发中的应用

TMS320C67xDSP Library在程序开发中的应用
马 克 雷
( 西安 电子 工程研 究所 ,陕西 西安 7 00 ) 1 10
摘 要 :介 绍 了T S irr  ̄主要 特 点及 其 下载和 安 装 方 法 ,分析 了T 3 0 6 x S i I PLbay D MS 2 C 7 PL— D
bay rr的使 用性 能及其 在程 序 开发 中的使 用 方 法 ,最后 给 出了一个T D PLbay 编写 实例 。 I S irr 关键 词 :T S irr ;程序 开发 ;程序 效 率 ;T 3 0 6 x I PLbay D MS 2 C 7
收稿 日期 : 0 0 0 — 7 2 1— 5 2
在 计算 机 中选定 的位 置 ( 认 位置 为 C\) 默 :i。安 装 t
之后 ,即可 在程序 开发 中使 用D P b S L 的库 函数 。 I
1 T S irr 的 使 用 . 3 I PLbay D
按 处 理 数 据 类 型 的 不 同 ,T S 分 为 定 点 I P D
子 、 自动 控 制 等领 域 。一个 软 件 两 部 分 组成 。在 硬 件 ( 要 是 D P 主 S 芯 片)相 同时 ,系 统 的性 能 将 主要 取 决 于 软件 部
T 3 0 6 0 。但 是 ,各 个 系列 D P i的基 本组 MS 2 C 0 0 S Lb 成 是 相 同 的 ,一 个 完 整 的D P i通 常 由Lb S Lb i 文件 夹 、icu e n ld 文件 夹和 其 它辅 助文 件组 成 。其 中l i b 文 件 夹用 于存 放 1 文 件 .其 内部封 装 着 手 工优 .b i 化 的 汇 编 程序 代 码 ,是 一个 D P i的核 心部 分 。 S Lb
用 C 言 和 汇 编语 言 编 写 的程 序 源代 码 。使 用 归 语 档器 可从 中提取 出这些 源 代码 :而icu e 件 夹 n ld 文 用 于存放 各 个库 函数 的 头文件 。通 常这些 文 件分 为C 序头 文件 和汇 编程 序头 文件 两部分 。 程

TMS320C6713DSP的FLASH自引导及一种另类的烧写方法

TMS320C6713DSP的FLASH自引导及一种另类的烧写方法
3 TMS320C6713 DSP的 FLASH自引 导
本 文 介绍 的DSP的Flash自引导属 于 上 述 3种 引导 模 式 中的ROM ̄B载 模 式 ,TMS320C6713 DSP每 次 只能 搬移 1Kb大 小 的 数据 到地 址 0处 ,而实 际使用 中程序 肯 定会 大 于 1K, 因此必 须进 行 二次 引导搬 运 (secondary bootloader)。二次 引导搬运是 指 ,DSP启动 后 ,CPU被 锁住 ,DMA/EDMA自动 从外 部Flash首 地址搬 移 1Kb的 程序 ̄I JDSP内部cache的首地址,搬移完成 ,激 活CPU,运 行该 1Kb的程序 ,而该 1Kb程 序是二次 引导搬 运程序 ,即 将真正 需要运行 的程 序从外部Flash搬运至DSP内部cache 中,完成后 ,进入 中断C int000,进行DSP系统 的初始化 , 开始运行main0主程序 ,完成 自启动 。下面介绍二次 引导 搬运程序也就是:BootloaderO程序 的编 写。
首 先Bootloader0程序一 般编 写都是采用汇 编语言来 实 现 ,可 以在 互联 网上找 到很多现 成 的例 子 ,这 里就 不 多做介 绍 。其 实用c语 言也一样 可 以实 现 ,并且 简单 易 懂 。:t4}Bootloader0程序 写入 料.C的文 件中然后加入 到 目 标工程 中即可 ,具体程 序如下:
TMS320C6713 DSP有三 种引导方式 ,其操作过程 分 别 如 下 :
1)不加载 。CPU直接开 始执行 地址0处 得存储器 中SDRAM的初始化完成 。
21主 机加 载 。核 I ̄,CPU停 留在复 位状 态 ,芯片 其余 部分保 持 正常状 态 ,在 这期 间 ,外部主 机通过 主机 接 口 初 始化 CPU的存储 空 间,包括 片 内配置 寄存器 。主机 完 成 所有 的初 始化 工作后 ,结束 引导过程 ,CPU退 出复位 状态 ,开始执行地址0处得 指令 。

TMS320C6701自动加载及程序烧写的简化设计

TMS320C6701自动加载及程序烧写的简化设计

TMS320C6701自动加载及程序烧写的简化设计夏金桥;周文涛;曾勇超【期刊名称】《单片机与嵌入式系统应用》【年(卷),期】2014(14)10【摘要】对TMS320 C6701加载过程进行分析后,外围硬件电路、cmd 文件、中断向量表等,采用一次加载的方法实现了DSP系统自动加载过程,并用自己建立的烧写工程实现了DSP程序烧写。

本文的实现方法简化了DSP程序烧写及加载过程。

%After analzing the loading process of TMS320C6701,peripheral hardware circuits,cmd file and interrupt vector table are de-signed.The autoloading process of DSP system is realized by loading at a time,and DSP program writing is realized by designed program writing proj ect.The method simplifies DSP program writing and loading.【总页数】4页(P18-21)【作者】夏金桥;周文涛;曾勇超【作者单位】北京航天时代光电科技有限公司,北京 100094;北京航天时代光电科技有限公司,北京 100094;北京航天时代光电科技有限公司,北京 100094【正文语种】中文【中图分类】TP274【相关文献】1.TMS320C6701 DSP自动加载研究 [J], 王硕果;肖强2.基于TMS320C6455 DSP自动加载及Flash烧写程序的设计 [J], 卫菊红3.AutoCAD 自动加载 VBA 程序研究 [J], 魏磊;田磊4.华中818A数控系统自动加载程序的方式 [J], 薛庆鑫;卢鹏5.TMS320C6701 DSP的程序引导方法及编程实现 [J], 崔旭涛;杨日杰;何友因版权原因,仅展示原文概要,查看原文内容请购买。

基于TMS320C67xx DSP的软件开发及优化

基于TMS320C67xx DSP的软件开发及优化

基于TMS320C67xx DSP的软件开发及优化
高学强;王玉晶;康锡章
【期刊名称】《现代计算机(专业版)》
【年(卷),期】2003(000)011
【摘要】本文介绍了TMS320C67xx的性能特点,给出了其程序开发流程,并详细讨论了常用的软件优化方法,这些方法有一定的工程应用价值.
【总页数】4页(P22-25)
【作者】高学强;王玉晶;康锡章
【作者单位】海军航空工程学院学员旅,烟台,264001;海军航空工程学院学员旅,烟台,264001;海军航空工程学院电子工程系,烟台,264001
【正文语种】中文
【中图分类】TP3
【相关文献】
1.基于TMS320C64XXDSP的软件开发及优化 [J], 郝建伟;芮国胜;倪保航
2.TMS320C64x系列DSP的软件开发和程序优化 [J], 武林伟;郑耀锋
3.TMS320C62x DSP的软件开发与优化编程 [J], 李小红
4.基于MATLAB/Simulink及dSPACE/TargetLink的AMT控制软件开发 [J], 李萍;兰海龙
5.基于GCC的TMS320C67xx汇编代码的优化 [J], 王浩
因版权原因,仅展示原文概要,查看原文内容请购买。

TMS320系列DSP芯片用户程序加载方法的探讨

TMS320系列DSP芯片用户程序加载方法的探讨

TMS320系列DSP芯片用户程序加载方法的探讨
刘高平;顾伟康
【期刊名称】《微处理机》
【年(卷),期】1996(000)004
【摘要】用户程序加载是开发应用TMS320系列DSP芯片过程中的一个重要环节,本文探讨了实现这项关键技术的各种方法。

【总页数】3页(P52-54)
【作者】刘高平;顾伟康
【作者单位】浙江大学信息与电子工程系;浙江大学信息与电子工程系
【正文语种】中文
【中图分类】TN911.72
【相关文献】
1.DDZ—S系列可编程仪表用户程序的编译,反编译及试运行的设计方法 [J], 吉志海
2.DSP芯片TMS320VC5402的并行自举加载方法 [J], 孙军英;刘波粒
3.TLC32040模拟接口电路与TMS320系列数字信号处理器的接口方法 [J], 王正洪
4.TMS320VC33用户程序加载的四种方法比较研究 [J], 黄杨明;车国轮;吴美平
5.TMS320VC33 DSP用户程序加载方法 [J], 王超;张桂林;杜峥
因版权原因,仅展示原文概要,查看原文内容请购买。

烧写Flash后的DSP程序运行不正常的情况分析

烧写Flash后的DSP程序运行不正常的情况分析

这段时间一直在调试DSP6713的Flash烧写,现在对Flash的烧写也算心中了如。

那天,非常Happy的发现将闪烁LED烧写到Flash成功了,然后,就以为一切都OK了……那天,成功烧写了一个300KB以上的程序,又认为,这次应该OK了……那天,写了个Timer中断程序,烧写到Flash,却死机了……那天,在RAM上运行很流畅的一个算法(算法中调用了CCS的atan函数),在烧写到Flash 后算法却死机了……那天,我开始思考:是什么情况导致RAM中跑得很Happy的程序烧写到Flash就运行得如此的不堪——众多的囧相。

“且行且珍惜”,珍惜这些次发现Bug的机会,因此,我要总结:在RAM中能正常运行,而烧写到Flash后无法正常运行的一些情况讨论。

中断向量表包含了所有中断的入口,在烧写Flash的时候,有两种方式可以保证中断能正常工作。

具体可参见TMS320C6713烧写Flash的通用方法的第5小节。

很多情况下,当出现数组越界时,在RAM中的程序都能正常运行,但在烧写Flash后运行就会出现死机或程序跑飞的现象。

比如定义一个数组,你使用x[5]=10这样的语句在RAM程序中是某些时候能正确运行的,在PC上应该也可以。

但将这种程序烧写到Flash之后运行,DSP果断和你说拜拜!因此,请谨慎地检查程序代码中的数组越界和指针操作。

在DSP程序中,坚决不使用C库函数中的malloc函数。

如果需要动态分配内存的操作,可以自己写一个,或使用uCOS II或DSP/BIOS 等嵌入式操作系统。

也不知道是什么原因,也可能是我对atan函数的使用方法不正确造成的吧。

在我的一个最初的程序中,我是直接这样计算atan(x)的,在RAM中以及在PC中都多次测试过没有任何问题。

烧写Flash之后,也不是死机,但程序运行到atan这个函数的时候会卡上很长一段时间,再接着往下运行。

难道是math.h中的atan运算效率太低?但为什么RAM中就能运行呢?这个还不清楚。

TMS320C6713B DSP的外部FLASH引导

TMS320C6713B DSP的外部FLASH引导

TMS320C6713B DSP 的外部FLASH 引导1 引言目前,TI 公司的TMS320C6713B 已经在生化分析仪器中广泛实用。

其运算速度快、精度高。

使其在牛化分析仪中具有独特的优势。

其改进的哈佛结构、先进的多总线和多级流水线机制、专用的硬件乘法器、高效的指令集,使其易于嵌入信号滤波、信息融合算法,而不会牺牲其实时性。

TMS320C6713B 的速度快、精度高、体积小、成本低、开发周期短、可靠性高以及抗干扰能力强等优点,可以满足生化分析仪对硬件系统的要求。

TMS320C6000 系列数字信号处理器(DSP)是TMS320 DSP 家族的重要系列。

该系列DSP 芯片具有定点和浮点两种,其中,TMS320C62x 和TMS320C64x 为定点系列,而TMS320C67x 为浮点系列。

目前,TMs320c6000 系列数字信号处理器均无程序存储器,必须进行扩展,才能用于生化分析仪。

2 DSP 芯片TMS320C6713BTMS320C6713B 是r11 公司推出的高性能浮点数字信号处理器,采用先进的超长指令字(VLIW)结构,最高时钟频率可达300MHz,每个时钟周期可以执行8 条32 位指令。

该芯片可以方便地与SDRAM,SBSRAM,SRMA,ROM 和FLASH 相连接。

由于该DSP 速度快,精度高,所以该DSP 广泛用于分析仪器、语音信号处理、各种计算模块等。

TMS320C6713B 还具有两个12C 接口、主机并行接口(HPI)、两个多通道音频串行口(MeASPs)、两个多通道缓冲串行口等。

可以方便的与外部器件接口。

由于其内部RAM(256K)空问较大,所以作为一般的应用,不必外扩RAM。

TMS320C6713B 具有三种引导(启动)方式:。

TMS320C6713 DSP的Flash启动设计

TMS320C6713 DSP的Flash启动设计

/data/html/2007-6-15/41753.html引言随着近年来数字信号处理器(DSP)技术的迅猛发展,其越来越广泛地应用于国民经济的各个领域中。

其中,TI公司推出的TMS320C6000系列DSP器件更是在许多需要进行大量数字信号处理运算并兼顾高实时性要求的场合得以应用。

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

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

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

本文主要讨论常用的EMIF加载方式。

1 EMIF加载分析实际应用中,通常采用的是EMIF加载方式,把代码和数据表存放在外部的非易失性存储器里(常采用Flash 器件)。

下面以TMS320C6000系列中最新的浮点CPU——TMS320C6713(简称“C6713”)为例,详细分析其EMIF 加载的软硬件实现。

硬件方面,其与16位宽度的Flash器件的接口如图1所示。

对于不同的DSP器件,加载方式的配置引脚稍有不同。

C6713的配置引脚及其定义如表1所列。

应用程序的大小决定了片上的Bootloadet工具是否足够把所有的代码都搬移到内部RAM里。

对于C6713,片上的Bootloader工具只能将1 KB的代码搬入内部RAM。

通常情况下,用户应用程序的大小都会超过这个限制。

所以,需要在外部Flash的前1 KB范围内预先存放一小段程序,待片上Bootloader工具把此段代码搬移入内部并开始执行后,由这段代码实现将Flash中剩余的用户应用程序搬移入内部RAM中。

TMS320C6713的FLASH引导装载系统的研究与设计

TMS320C6713的FLASH引导装载系统的研究与设计

.q eu .q ・ .q ・u ,q ,a e
E [5o D 1:】 E [1 】 A2 : 2
1 3 0 C 7i ’ M¥ 2 6 3
CE1
头的 1 B代码传输到地址空间0处。它的数据传 K 输采用默认时序 , 用户可 以选择外部程序存储器 的宽度( 8位/6位/2位 ) 然后 由 E I 1 3 , M F自动将
几次读人的数据合成 3 位数据。传输 由 D P中 2 S
的E M D A通道以单帧的形式 自动运行 , 传输完成 后 , 序 从 地 址 0 处 开 始 运 行。 因 此 , 在 程 要 T S2 C 73中实现基于 F A H 的自引导功能 , M 30 6 1 LS
必须 将 F S A L H配置在 D P的 C 1 S E 地址 空 间中 。 在这 里 , 户 要 编 写 的 E F配 置 文 件 是 用 MI

M! R gl t r d 5 ¥ f c6 1 f i } 0  ̄ e A dr 8 ‘ 0 7 = v E v cr 眦 _o r . q O I O O : F q! b eu xO B OO O £ o a!c0 t n r0 1
Df

C Ei
20 05年推 出 的一 款 30 z的数 字 信 号 处 理 器 , 0 MH 处理 速度高 达 10 L P 。T S2 C 73可用 80MF O S M 30 6 1 的工 作时钟 和对应 指令周 期表 如表 1 所示 。
表 1 T 30 61 MS 2 C 7 3工作时钟和对应指令周期表 时钟 ( z MH ) 30 0
Fl k o u 1 t £ b at p ut 1t v
该 电路主要通过 D P的相关输 出管脚来控制 S F A H的擦除和读写。其中,0 A 9 LS A 一 1 为地址线, Do D 1 Q ~ Q 5为数据线 , E O 和WE 分别为输 出使能 和写使 能 ,E 为片使能。由于 T S2 C 7 3默 C1 M 30 6 1 认 的引导模式是从外 部 C 1 E 空间的 l 6位 F A H L S

TI TMS320C6713 DSP板FlashBurn程序设计

TI TMS320C6713 DSP板FlashBurn程序设计

TI TMS320C6713 DSP板FlashBurn程序设计王凤臣2,1,乔卫民1,李庆瑞2,1(1.中国科学院近代物理研究所,甘肃兰州 730000;2. 中国科学院研究生院,北京 1000039)摘要:分析了将程序代码写入FLASH的两种方法,并在基于T I TMS320C6713的DSP系统设计中,以28F128J3A为例,讨论了用FlashBurn软件和FBTC目标组件程序烧写FLASH的具体实现过程,给出了主要程序代码。

关键字:TMS320C6713;FLASH烧写;Flash Burn软件;FBTC目标组件程序中图分类号:TP303 文献标识码:BDesign of FLASH program for TI TMS320C6713 DSP boardWang Feng-chen2,1, Qiao Wei-min1, Li Qing-rui2,1(1. Institute of Modern Physics, Chinese Academy of Sciences, Lanzhou 730000 , China ;2. Graduate School, Chinese Academy of Sciences, Beijing 100039, China)Abstract: Analyze two methods of program FLASH, and in the system design based on T I TMS320C6713, taking 28F128J3A as an example, discuss how to program FLASH by FlashBurn program and FlashBurn Target Component, the main program code is also presented.Keywords:TMS320C6713; FLASH program; Flash Burn software; FlashBurn Target Component0.引言TMS320C6713是TI公司推出的TMS320C67xx系列浮点DSP中最新的一款芯片,每周期可以执行8条32位指令;支持32/64位数据;具有300MHz、3.3ns指令周期的运行速度和2400MIPS 或1800MFLOPS的处理能力。

基于TMS320C6678的多核DSP上电加载技术

基于TMS320C6678的多核DSP上电加载技术

基于TMS320C6678的多核DSP上电加载技术作者:刘章文刘七华谢川林袁学文来源:《现代电子技术》2013年第18期摘要:对于多核DSP应用技术来说,BootLoad技术是一个关键点,也是应用难点之一。

针对8核高性能DSP——TMS320C6678的根配置问题进行了研究,包括上电加载过程,单核和多核的emif NOR⁃FLASH存储器的映像文件的产生,二级加载器的编写和FLASH编程器的构成等。

其中,关键是在多核映像文件中,将辅助核的入口地址作为特殊数据来处理,使其他核触发更容易,这也是其他文献未涉及的。

该项技术已经用在某图像处理系统中。

关键词:多核DSP; TMS320C6678; BootLoad;映像文件中图分类号: TN964⁃34 文献标识码: A 文章编号: 1004⁃373X(2013)18⁃0111⁃040 引言在视频检测、医疗影像及红外图像快速跟瞄系统应用中,越来越复杂的二维、三维甚至四维的图像处理,需要并行化的处理系统,并能够运行复杂的算法[1⁃8]。

要实现这些复杂的系统,高端FPGA+高性能DSP是目前普遍采用的方案[5⁃6,8],而单个DSP的性能已发展至极限,所以解决复杂的并行算法,多核DSP是现在发展的全新方向,其中多核DSP的根加载技术是其难点之一[7,9⁃10]。

TI公司推出的DSP芯片TMS320C6678(C6678)具有8个内核的高性能DSP,每个内核工作频率均达1 GHz。

其支持的Boot模式有SPI、I2C、EMAC、SRIO和并口Emif16NOR⁃FLASH。

其中Emif16 NOR⁃FLASH模式是不用上位机参与、比较简单、独立成系统的一种,大多独立DSP系统采用该方式。

关于多核的加载,也有相关的文献报道[9],而文献[9]是DSP+ARM的双核。

网上也能搜索到关于C6472和C6678零星一些加载资料,都是借助于第三方转换工具,太过于笼统。

下面是针对C6678的并口Emif16 NOR⁃FLASH的上电加载作详细的探讨。

TMS320C6701DSP自动加载研究

TMS320C6701DSP自动加载研究

TMS320C6701 DSP自动加载研究0引言在许多DSP应用系统中,都需要DSP芯片能够在加电后自动从外部设备加载程序,也就是引导(Boot-load) o TI公司的TMS320C6000系列芯片有三种引导方式可供选择,分别是不加载、ROM 加载和主机加载,详细工作流程如下:不加载:CPU直接从地址0处开始执行代码。

如果该处内存是SDRAM,那么CPU会先挂起,等待SDRAM的初始化完成。

ROM加载:位于外部CE1空间的ROM中的代码首先通过DMA/EDMA被搬入地址0处。

加载过程在复位信号撤销后开始,此时CPU 内部保持复位状态,由DMA / EDMA执行一个单帧的数据块传输。

对于C620x / C670x, DMA从CE1空间中拷贝64 KB数据到地址0处。

传输完成后,CPU退出复位状态,开始执行地址0处的指令。

对于C62x /C67x,用户还可以指定外部加载ROM的存储宽度,EMIF会自动把相邻的8 b/16 b数据合成32 b的指令。

主机加载:也就是HPI加载。

CPU停留在复位状态,芯片其余部分保持正常状态。

引导过程中,外部主机通过主机接口初始化CPU的存储空间。

主机完成所有的初始化工作后,向接口控制寄存器的DSPIXT位写1,结束引导过程。

此时CPU退出复位状态,开始执行地址0处的指令。

1 ROM加载的实现究竟使用哪种引导方式取决于芯片引导模式设置,而引导模式由BOOTMODE[4: 0]管脚确定。

系统加电后,RESET信号有效,DSP 芯片复位,在RESET信号上升沿处锁存BOOTMODE[4: 0]管脚上的设置值,以此决定DSP芯片内存映射方式、地址0处的内存类型以及复位后芯片的引导模式。

本例中C6701的BOOTMODE值设为01101,即8 b ROM加载。

ROM加载是工程中最常见的加载方式,这种方式可以把程序代码段和数据段保存在ROM, FLASH等非易失存储器中,加载过程完全由DSP自动完成,在实际应用中十分方便。

最新-TMS320C672019的FLASH引导装载系统研究与设计 精品

最新-TMS320C672019的FLASH引导装载系统研究与设计 精品

TMS320C6711的FLASH引导装载系统研究与设计摘要引导装载是系统设计中必不可少的重要环节。

文章对公司3206711中引导装载的概念、方法及特点做了详细阐述,同时以公司的器39040为例,设计了一个利用进行引导装载的系统方案,并给出相应的自加载程序源代码。

关键词数字信号处理器存储器引导装载32067111概述在一些脱机运行的系统中,用户代码需要在加电后自动装载运行。

系统的引导装载是指在系统加电时,由将一段存储在外部非易失性存储器中的代码移植到高速存储器单元中去执行。

这样既可利用外部存储单元来扩展本身有限的资源,又能充分发挥内部资源的效能。

因此,在装载系统中,外部非易失性存储器和的性能显得尤为重要。

是一种高密度、非易失性的电可擦写存储器,而且单位存储比特的价格比传统要低,十分适合用于低功耗、小尺寸和高性能的便携式系统。

本文介绍了公司3206711浮点芯片和公司39040存储器的基本特点,同时给出了一具完整的用来实现系统引导装载的实现方案。

2硬件设计2.1器件介绍整个系统由3206711,外部存储器39040以及电源管理单元等构成。

下面主要介绍前面两个模块。

3206711数字信号处理器是美国公司推出的3206000系列浮点的一种,它采用256管脚的封装,33的电压和18的内核电压供电方式,并具有两级缓存结构和高达900的峰值运算能力,可广泛应用于图像处理等系统中。

39040是公司推出的存储器,该器件十分适合用作外扩存储器,它的存储容量为4,采用33单电源供电,无需额外提供高电压即可通过一些特殊的命令字序列实现对各个子模块的读写和擦除,并且可以重复十万次以上,因而可通过软件编程来实现对它的读写操作,十分适合于系统的调试和开发。

2.2硬件连接。

基于TMS320C6713的Flash烧写及BootLoad程序设计

基于TMS320C6713的Flash烧写及BootLoad程序设计

基于TMS320C6713的Flash烧写及BootLoad程序设计刘家兵;刘涛;王宗义;韩宏克【期刊名称】《应用科技》【年(卷),期】2008(035)008【摘要】在一些脱机运行的DSP应用中,通常需要在系统加电后自行将代码从外扩存储器中装载到内部DSP中去执行,实现此种功能的系统称为引导装载系统.这是DSP开发中的重点和难点之一,关系到系统的可靠性和处理速度.在分析T1公司TMS320C6713 DSP的引导加载过程及原理基础上,设计并实现了主机利用仿真器通过JTAG口实现对DSP外部配置的FLASH存储器的在线编程,并以TI公司的DSP结合ST公司的FLASH存储器(SST39VFSOOA)为例,叙述了从FLASH引导程序的实现方法,并针对其中重要的命令文件和用户引导程序,给出了相应的示例文件和部分源代码.【总页数】4页(P48-51)【作者】刘家兵;刘涛;王宗义;韩宏克【作者单位】哈尔滨工程大学,自动化学院,黑龙江,哈尔滨,150001;哈尔滨工程大学,自动化学院,黑龙江,哈尔滨,150001;哈尔滨工程大学,自动化学院,黑龙江,哈尔滨,150001;哈尔滨工程大学,自动化学院,黑龙江,哈尔滨,150001【正文语种】中文【中图分类】TP368【相关文献】1.基于EDMA的TMS320C6713片外Flash自举引导 [J], 段鲁生;李相平;吴魏;谢勇2.TMS320C6713 DSP的FLASH自引导及一种另类的烧写方法 [J], 张亮;刘延海3.TI TMS320C6713 DSP板FlashBurn程序设计 [J], 王凤臣;乔卫民;李庆瑞4.TI TMS320C6713 DSP板FlashBurn程序设计 [J], 王凤臣;乔卫民;李庆瑞5.基于SHA-1身份认证的Flash程序烧写系统 [J], 张铆;洪泽;蒋炯炜因版权原因,仅展示原文概要,查看原文内容请购买。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
1 概述
1997 年,美国 TI 公司发布了新一代 DSPs 芯片 TMS320C6000,包括定点系列和浮点系列。其 中定点系列是 TMS320C62xx,浮点系列是 TMS320C67xx,二者互相兼容。TMS320C67 系列 DSP 具有 高速处理能力以及强大对外接口能力,工程应用很广泛,在军事通讯、电子对抗、雷达系统和制 导武器等需要高度智能化的应用领域,占有不可替代的优势。
218
(3)使用 MAP1 方式,如果目标程序使用如反三角函数 asin(),atan()等基于查找表方式的
函数,因为查找表放置在.cinit 段中,该数据段必须放在片内数据存储器中才能被数据存储器
控制器 DMC 访问(如将.cinit 放入 PMEM,主机加载工作正常;但烧写 FLASH 后,上电加载程序,
MEMORY
{
PMEM1:
org=0000f000h len=00001000h
PMEM2:
org=00000000h len=00000200h
SBSRAM: org=00400000h len=00040000h
DMEM:
org=80002000h len=00008000h
}
(4)打开烧写程序工程 C,该程序将 SBSRAM 内数据烧写至 FLASH;操作时,先加载数据(工
NOP 5
MVC B0,PDATA_O
STP *A0
ADD A0,4,A0
SUB B2,1,B2
[B2] B NEXTR
NOP 5
SUB B2,1,B2
[B2] B NEXTR
NOP 5
搬运工程 B 调用该函数:
void main()
{
int i;
int *TempAddr = (int*)0x01420000; // FLASH ADDR,写入 FLASH 目的地址
TMS320C67 系列 DSP 使用外部存储器接口 EMIF 直接烧写 FLASH,DSP 通过 FLASH 加载程序。 EMIF 寄存器配置可以参考相关资料,本文不加以描述,本文重点阐述工程上实现 DSP 烧写 FLASH 的过程和程序加载过程。首先对文中几个术语和相关选项进行说明:
目标程序:完成指定功能编写的程序; 搬运程序:在 DSP 上电或复位后,将程序由 ROM/FLASH 搬运至片内存储器或片外存储器,供 DSP CPU 执行的程序代码; 烧写程序:将片内/外存储器数据烧写至 FLASH 的程序; 目标程序、搬运程序、烧写程序可以分别建立工程,也可以合并为一个或两个工程; 连接器选项选择:其中关系程序加载的主要是-c/-cr 选项,它的选择关系到全局/静态变量 的初始化问题,需要用户自己设置。-c 选项用于设置运行时初始化全局变量(Run-time Autoinitialzation ), -cr 选 项 用 于 设 置 在 加 载 时 初 始 化 全 局 变 量 ( Load-time
int *DestAddr = (int*)0x00000000; // PMEM ADDR,目标程序首地址
Init_DSP();
for(i=0;i<0xf000/4;i++) // PMEM,长度 60k
{
Write_PMEM(DestAddr,1,TempAddr);
DestAddr++;
TempAddr++;
MAP0,程序加载到片外 SDRAM/SBSRAM 中运行,运行速度较慢; MAP1,程序加载到片内程序存储器中运行,运行速度快。 ROM/FLASH 加载时,DMA 从 CE1 空间拷贝 64KB 数据到地址 0 处,长度有 64KB,一般情况下 资源足够用户使用。 工程应用中常用方法: (1)使用 MAP0 方式,配置好 HD[4:0],直接将目标工程程序存储器 SDRAM/SBSRAM 的 64kB 数据直接烧写至 FLASH 首地址处开始的 64kB 即可;作个烧写程序,功能是先擦除 FLASH,再烧写 SDRAM/SBSRAM 数据入 FLASH 即可,过程比较简单,使用 C 语言编写即可,可以参考 TI 公司的例 程,目录 ti\examples\dsk6211\board_util\flash\Dsp\flash_prog.pjt,本文不作介绍。 (2)使用 MAP1 方式,如果目标程序不使用如反三角函数 asin(),atan()等基于查找表方式 的函数,那么可以不使用搬运程序,直接将目标工程片内程序存储器 PMEM 的 64kB 数据直接烧写 至 FLASH 首地址处开始的 64kB 即可。这种方法与 1 相同,只是烧写数据换成 PMEM;
EMIF 总线加载。
TMS320C6701 加载方式选择由 HD[4:0]管脚在上电时状态决定,取部分内容见表 1
TMS320C671x 配置管脚
HD[4:0] (BOOTMODE[4:0])
存储器 映射 MAP0 MAP1 MAP1 MAP0
表 1 TMS320C670x 加载方式选择
电平
地址 0 处的存储器
217
Initialzation)。-c、-cr 选项可以通过 CCS 软件菜单 Project-Options 打开编译器设置对 话框,在 Linker 页中设置。这个选项对基于 JTAG 的开发关系不大,对于脱机运行的最终系 统关系很大,一般需要从 ROM/FLASH 加载的程序选择-c 选项。 由于 TMS320C670x 与 TMS320C671x 系列硬件结构不同,DSP 加载过程差别较大,下面分别加 以阐述。
0x01420000、0x01440000,长度分别为 64kB,60kB,len;见 2.2 搬运程序部分源代码。
随着集成电路制造工艺的不断提高,芯片集成度越来越高,存储器向小型化、贴片式发展。 从而使表面封装的存储器难以利用编程器编程。目前普遍采用的在系统编程 ISP(In System Programming)技术不需要编程器,通过系统的 DSP 可直接对用户板上的存储器编程,这样不仅节 省了通用编程器及适配器的费用,还减少了频繁插拔存储器的麻烦,从而大量节省了系统开发时 间,满足了用户程序在线更新的要求。
00000 01101 10101 11100
SDRAM,4 个 8 bit 芯片 内部 内部
1x 速度 SBSRAM
加载方式(BOOTMODE)
无 8 bit,ROM 加载 16 bit,ROM 加载 32-bit,ROM 加载
2.2 存储器映射方式选择和相关搬运程序编写
以 C6701 为例具体说明 C671x 存储器映射方式。C6701 片内存储器 IRAM 分为程序存储器 PMEM 和数据存储器 DMEM 两个独立的部分,长度均为 64kBytes。C6701 有 MAP0/MAP1 两种存储器映射 方式,通过设置 HD[4:0]来实现:
的部分数据也烧入 FLASH。
需特别注意的事,搬运程序中,将 FLASH 程序拷贝至 PMEM 时,必须使用汇编语句搬移指令
MVC,只有 MVC 可以访问控制寄存器,这需要用汇编语言写一简单的搬移函数如 Write_PMEM()完
成一个地址向片内某地址写数。下面是汇编文件 Write_PMEM.asm。
(2)打开要烧写目标工程 A,加载工程程序(File->Load Program),存储数据(工程菜单
File->Data->Save),片内程序存储器、片内数据存储器数据分别存入 PMEM.dat、DMEM.dat,长
度分别为 60kB,len(需要观察 map 文件内容,定片内数据有效长度,len=片内数据存储器有效字
( 3 ) 打 开 搬 运 工 程 B, 加 载 工 程 程 序 ( File->Load Program ), 存 储 数 据 ( 工 程 菜 单
File->Data->Save),片内 PMEM 数据存入 LOADER.dat,长度为 64kB;设定工程 B 存储器空间分配
如下, 实际只使用片内程序存储器的后 4KB:
程菜单 File->Data->Load),将存储好的 LOADER.dat、PMEM.dat、DMEM.dat 分别加载 SBSRAM 内,
地址分别为 0x00400000、0x00420000、0x00440000,长度不变;烧写程序的长度根据 len 设定,
功能是先擦除 FLASH,再烧写 SBSRAM 数据入 FLASH,三段数据的首地址位置分别在 0x01400000、
2 TMS320C670x 加载操作
2.1 加载方式选择(BOOTMODE)
不加载:直接由地址 0 处开始执oot):使用仿真器,通过 JTAG 口加载;
主机加载(Host Boot):通过主机口 HPI 加载程序入 DSP,使用 DSPINT;
外部存储器接口加载(EMIF Boot):程序由外部存储器,通过 DMA/EDMA 方式,从
TMS320C67 系列 DSP,片内没有集成用户可以使用的 ROM 存储器,用户程序必须存放在外挂 的程序存储器中。外挂的程序存储器通常选用容量大、存储速度快、功耗低、性价比高的 FLASH 存储器。
对程序存储器的编程(即离线编程)通常是通过通用编程器完成的,即用户将要写入的程序 转换成编程器能够接收的格式,再通过编程器写入存储器中。
*DestAddr++ = *TempAddr++;
asm("
nop 5");
//开始运行匹配程序
219
asm(" asm(" asm(" asm(" asm(" asm(" asm(" }
mvk 0,b0"); mvkh 0,b0"); b b0"); nop 5"); nop"); nop"); nop");
相关文档
最新文档