DSP中FLASH烧写方法

合集下载

DSP程序烧写说明

DSP程序烧写说明

DSP程序烧写步骤:
1、连接好仿真器,目标板上电(通上电后仿真器的绿灯会亮)
2、打开CCS,双击此图标,如果目标板连接正常,则可进入如下图所示界面
3、如下图所示,加载meter.out文件。

文件路径:E:\test\ProgFlash
另外在归档文件中也有备份
4、成功加载后,如下图所示。

将窗口最大化,点击如下图所示的图标,运行程序
运行后(大概几秒钟)会弹出一个如下图所示对话框
在对话框中输入要烧写的bin文件路径及文件名(如果要烧写的文件就在此文件
夹内,则只输入文件名即可,不用再输入路径)
注:如果点击运行后立即弹出此对话框,说明程序未执擦除flash操作,此时将
不能正常烧
入程序。

此类
情况一般是
DSP或者
Flash等的数
据线没焊好
造成。

烧写过程中运行图标为不可用状态,如图1所示图1 图2
烧写完成后,恢复成可用状态,如图2所示。


此程序烧写完成。

DSP程序版本:
1、单相标准表烧smeter.bin
2、三相标准表烧DSPTX.bin
3、9700DB上用的DSP程序源上烧source.bin 表上烧DSPH.bin
烧写表上源DSP程序时,如果是新的DSP片子,先加载lj.out,运行一下,给DSP送一个基本参数。

再烧按平时操作方式烧写相应的应用程序。

但运行lj.out并未解决问题,运行后无任何反应。

TI DSP flash烧写及自启动

TI DSP flash烧写及自启动

问题描述:TI DSP flash烧写及自启动DSP型号:DM642所有的系统在结束了仿真器开发后,都需要解决一个问题,就是将程序烧写到外部存储芯片中,完成系统上点后的自启动和引导,大多数,就是flash的烧写和自启动。

一,系统初期,没有估计到这部分的工作量,直到与苏工结帐时仍然以为这是一个手到擒来的过程。

也许是以前在实验室,单片机和FPGA的开发过程中,没有遇到过类似的问题,所以我相当然地以为对于DSP也是同样的过程。

现在想想,单片机是用单独的编程器烧写,而FPGA因为开发板提供厂商已经把大量的底层都完善了,我们所需要做得仅仅是编译产生下载文件,下载,OK!按理说,如果我们也是采取购买开发板的途径进行开发,开发板提供厂商也应该把这部分工作做完了。

但是,我们找的是单独的小公司设计一块系统板,这部分工作,尤其是如果系统板和开发板有所不同的这部分工作,就应改在设计初期,签合同时,明确提出来是谁做,做到权责明析,很遗憾我们没有。

而且,在项目进行中和那个帮我们做板子的人有点不愉快,最要命的是我已经把项目款付给了人家,接下来的工作量,就不能不说是我们自找的了。

二,我意识到,我不得不自己去做这部分工作了,于是开始想要借力合众达。

合众达是TI的官方合作伙伴,中国TI DSP的技术支持。

一开始,合众达觉得我是它们开发板的潜在买家。

于是开始费力地给我介绍它们的VPM642。

于是我告诉它们,我的系统是自己设计的,希望能够得到它们的支持。

他们于是好奇地研究了研究我的板子,然后告诉我,它们这边只是支持合众达的VPM642开发板,而且我的板子和它们的不同,它们也不保证提供的在VPM642上work的东西在我的板子上也能正常工作。

anyway,我说给我吧,我可以作为参考。

于是我搞到两块板子的图纸,开始详细比较二者的不同。

三,根据我比较的结果,我认为,二者没有本质的不同,都是AMD的芯片,型号有差异,一个33,一个320,它们能用的我应该也能用。

基于CPLD译码的DSP外部Flash烧写方法

基于CPLD译码的DSP外部Flash烧写方法

一种基于CPLD译码的DSP外部Flash烧写方法张芝贤1,邱委华1,朱庆贤2,王时间:2009年08月17日字体:关键词:CPLDVHDLDSPTMS320C5509A摘要:以实际的图像监控系统为背景,介绍了对S29AL008D Flash存储器进行操作的指令格式和控制方法。

通过CPLD实现DSP和Flash存储器之间的硬件连接,给出了部分VHDL源程序。

利用TMS320C5509A DSP通过CPLD快速译码实现Flash烧写具有接口简单、通用性强的优点,在实践中证明了方法的有效性。

关键词: DSP;S29AL008D;CPLD译码;Flash烧写数字信号处理器DSP因其运算精度高,实时性强等特点,在通信、工业控制和消费类电子等领域得到了广泛应用,成为进行数字信号处理的首选器件。

在图像监控系统中,往往要对大量的数据和应用程序进行处理和非易失性存储。

采用Flash存储器对这些大量数据和应用程序进行存储是一种性价比较高的选择。

本文设计的以TI公司DSP芯片TMS320VC5509A(以下简称VC5509A)为主处理器的图像监控系统中,使用了AMD公司S29AL008D Flash存储器作为数据和应用程序存储芯片。

使用VC5509A对S29AL008D进行操作,在硬件接口设计中采用CPLD进行译码和时序控制。

1 VC5509A及其外部存储空间TMS320VC5509A是TI公司的一款16位高速低功耗定点DSP芯片,主要应用于对音频、静态图像的数字信号处理,是设计便携设备的较佳解决方案。

该DSP芯片在核心电压为1.35 V时最大工作频率为144 MHz;地址线为24位,对地址的寻址范围为16 M×8 bit或8 M×16 bit。

VC5509A采用统一的编址方式,即存储空间地址没有重叠但是寻址方式却有2种不同的方式:字节寻址和字寻址[1]。

当DSP中的CPU访问VC5509A程序存储空间时,通过外部存储器接口(EMIF)对外部存储空间进行管理。

基于CCS的DSP片外Flash直接烧写设计

基于CCS的DSP片外Flash直接烧写设计

基于CCS的DSP片外Flash直接烧写设计引言自加载后DSP能够正常运行,关键是Flash中原程序代码的正确烧写。

CCS编译生成的.out格式文件不能直接用于Flash烧写,在TI公司给出的技术文档闭中,首先将.out 文件利用其HEX工具转换为.hex格式文件,然后利用Flash烧写工具将.hex格式映像文件写入到片外Flash中。

.out格式到.hex格式转换操作,需要编写特定格式的命令文件;将.hex格式文件烧写到Flash,需要严格按照.hex文件中的数据存放格式,编写相应的Flash烧写程序。

对于初学者而言命令文件、烧写程序的编写则不容易理解和掌握,其中任何一个环节出现错误都将导致Flash烧写的失败。

这里提出了一种简单且方便可行的DATA直接烧写方法,不需要数据格式的转换,保存有效的烧写DATA后,只需编写简单且容易理解的烧写程序即可完成Flash在线烧写。

2 DATA直接烧写原理TMS320C671l提供含有DEBUG模块的JTAG接口,可以通过JTAG接口访问DSP内部寄存器和挂在CPU总线上的设备,对DSP内部所有部件进行编程。

在工程开发初始阶段,一般都是通过JTAG口采用硬件仿真器进行调试,将CCS编译生成的.out文件,通过仿真器加载到DSP板卡系统中,加载成功后,会弹出一个Disassembly(反汇编)窗口,如图l 所示。

从窗口中可以看到程序加载的位置、对应的机器指令和汇编语言指令。

DSP器件正常工作,支持二进制机器指令代码,仿真器加载.out文件的操作完成了.out格式到.hex 格式的转换,将DSP运行所需要的二进制机器指令代码加载到DSP板卡。

其加载的位置可由CCS中的cdb配置文件设定,也可以用户编写Linking文件指定。

虽然.out文件不能直接用于片外Flash烧写,但CCS具有存储器内的数据保存和加载功能,所以,在仿真器加载.out完成后,将存储器中的二进制机器指令数据保存起来,再通过JTAG口采用在线编程的方式,将保存下来的数据烧写到片外Flash中。

TMS320C5509ADSP分页烧写FLASH存储器及自举引导的实现方法

TMS320C5509ADSP分页烧写FLASH存储器及自举引导的实现方法

TMS320C5509A DSP分页烧写FLASH存储器及自举引导的实现方法TI公司的DSP芯片TMS320C5509A(简称5509A)是性能卓越的低功耗定点DSP,在嵌入式系统中有着广泛的应用。

5509A没有自带的片上非易失性存储器,因此需要外部的非易失性存储介质,如EPROM或Flash,来存储程序和数据。

5509A片内有256K字节的RAM。

由于在片内RAM运行程序比片外运行有高速度低功耗等显著优点,通常上电后都需要从片外EPROM或Flash上加载程序到片内RAM,但是芯片自带的自举程序(简称Bootloader)只支持16K字节以内的外部程序加载,因此程序设计往往局限于16K字节空间内,限制了编程的灵活性,不能充分发挥性能,当程序空间大于16K字节时,就需要自己编写程序来实现自举。

下面首先介绍使用5509A对Am29LV800B Flash(简称Flash)存储器进行程序分页烧写的方法,然后介绍利用Bootloader来编程实现多页并行自举引导的方法。

一、分页烧写的实现1、Am29LV800B Flash的连接Flash与5509A的接口很方便,前者只需作为后者的外部数据存储器与其进行连接,而中间的逻辑电路采用CPLD实现即可。

Flash内部可以产生高电压进行编程和擦除操作;只需向其命令存储器写入标准的微处理器指令,具体编程、擦除操作由内部嵌入的算法实现。

文中采用1Mbytes Flash映射为5509A的片外数据存储空间,地址为:0x200000~0x280000,数据总线16位,用于16位方式的并行引导装载。

1MBytes的Flash被分为64页进行访问(表1)。

本文通过向0x20600地址写数据来改变A18——A13的值,从而控制Flash的换页引脚对各个分页进行访问。

地址线扇区扇区大小(KBytes) 页码A18 A17 A16A15A14A13SA0 0-3 0 0 0 0 X X 64 SA1 4-7 0 0 0 1 X X 64 SA2 8-11 0 0 1 0 X X 64 SA3 12-15 0 0 1 1 X X 64 SA4 16-19 0 1 0 0 X X 64 SA5 20-23 0 1 0 1 X X 64 SA6 24-27 0 1 1 0 X X 64 SA7 28-31 0 1 1 1 X X 64 SA8 32-35 1 0 0 0 X X 64 SA9 36-39 1 0 0 1 X X 64SA10 40-43 1 0 1 0 X X 64SA11 44-47 1 0 1 1 X X 64SA12 48-51 1 1 0 0 X X 64SA13 52-55 1 1 0 1 X X 64SA14 56-59 1 1 1 0 X X 64SA15 60-61 1 1 1 1 0 X 32SA16 62 1 1 1 1 1 0 8SA17 62 1 1 1 1 1 0 8SA18 63 1 1 1 1 1 1 16表1 页地址分配2、Am29LV800BFlash的操作命令字及其C语言程序对Flash的读取可以直接进行。

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处得 指令 。

C2000系列_Flash_烧写VerA

C2000系列_Flash_烧写VerA

1Q05
F28x Flash的访问 的访问
CPU对FLASH的读或取指操作有如下形式: 32位取指指令 16位或32位数据空间读操作 16位程序空间读操作 存储器访问类型: Flash存储器随机访问 Flash存储器页访问 NOTES:对存储器应先取得写操作被忽略 保护后读操作是正常的周期但返回0 支持零等待访问但CPU需要适应访问时间
1Q05
第一部分: 第一部分: TMS320F28x Flash 烧写指南
1Q05
第一章: 第一章:F28x FLASH 特点和应用
这部分主要讲述以下几方面内容: F28x Flash的特点 F28x Flash的存储器映像 F28x Flash的电源模式 F28x Flash的访问 F28x Flash流水线 F28x Flash的寄存器
1Q05
第三章: 第三章: F28x Flash CCS插件 插件
Code Composer Studio Plug-in 的特点: : 完美的整合到CCS中,并且提供大量的TI在线帮助 开发特定的CCS Flash设备并且提供了多样的设定。 不需要关闭CCS和开关工具即可实现Flash烧写和设置 支持CCS2.2及以上版本
F2810存储器区段地址
1Q05
F280x 与F281x 在Flash上的差别 上的差别
F280x与F281x在Flash的结构和烧写的方法上是完全相同不同点如下: 从容量来说是依次减小的,同时段的长度也是不断变化 F2808: 64K X 16 Flash F2806: 32K X 16 Flash
1Q05
F28x Flash的存储器映像 的存储器映像
地址范围 0x3D8000-0x3D9FFF 0x3DA000-0x3DBFFF 0x3DC000-0x3DFFFF 0x3E0000-0x3E3FFF 0x3E4000-0x3E7FFF 0x3E8000-0x3EBFFF 0x3EC000-0x3EFFFF 0x3F0000-0x3F3FFF 0x3F4000-0x3F5FFF 0x3F6000-0x3F7FF6-0x3F7FF7 0x3D8000-0x3D9FFF 程序和数据空间 段J,8K*16 段I,8K*16 段H,16K*16 段G,16K*16 段F,16K*16 段E,16K*16 段D,16K*16 段C,16K*16 段B,8K*16 段A,8K*16 boot到Flash的入口处 (此处有程序分支) 安全密码(128位)

FLASH烧写的步骤

FLASH烧写的步骤

FLASH烧写的步骤烧写FLASH是指将信息写入或擦除闪存芯片中的非易失性存储器。

在嵌入式系统中,通过烧写FLASH可以更新设备的固件或配置,以及存储和读取数据。

本文将介绍烧写FLASH的步骤。

1.准备工作:在进行烧写FLASH之前,首先需要准备好以下内容:-硬件平台:包括计算机或开发板、支持FLASH编程的烧写器等。

- 烧写软件:可根据实际需求选择合适的烧写软件,如Flash Magic、ST-Link Utility等。

-目标设备:需要烧写FLASH的设备,如单片机、嵌入式系统等。

-目标固件或数据:即要写入FLASH的固件或数据文件。

2.连接烧写器和目标设备:将烧写器与目标设备进行适当的连接。

通常情况下,烧写器通过USB接口连接到计算机,而目标设备则通过JTAG、SWD或SPI等接口连接到烧写器。

3.配置烧写软件:打开选择的烧写软件,并进行相应的配置。

首先,选择正确的硬件接口类型,例如JTAG、SWD或SPI。

然后,设置通信的参数,如波特率、时钟频率等。

最后,选择目标FLASH芯片的型号和存储器的起始地址。

4.擦除FLASH:在对FLASH进行写入操作之前,需要先擦除FLASH存储器。

擦除操作将清除存储器中的所有数据,包括原来的固件。

在烧写软件中,通常提供了擦除整个FLASH或指定范围的选项。

选择适当的选项后,点击擦除按钮,烧写软件将发送相应的命令到烧写器,进而擦除目标FLASH芯片中的数据。

5.写入FLASH:在完成擦除操作后,可以开始写入固件或数据到FLASH芯片中。

首先,选择要写入的固件或数据文件,并将其加载到烧写软件中。

然后,设置写入FLASH的起始地址和偏移量。

最后,点击写入按钮,烧写软件将发送相应的命令到烧写器,将数据写入FLASH存储器。

6.验证FLASH:在写入操作完成后,建议对FLASH芯片进行验证,以确保数据的正确性。

验证操作将读取FLASH存储器中的数据,并与写入的固件或数据进行比较。

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

FLASH烧写程序方法:
1、将要烧写的程序例如TIMER调通可以在线(用仿真器)下载。

注意其source文件
中一定要包含boot.asm程序(见附件)
其cmd文件设置如下:主要修改其L2的长度为8000
*---------timer1.cmd---------
MEMORY
{
L1 : o = 0h l = 0x400
L2 : o = 00000400h l = 00008000h /* not all SRAM */
}
SECTIONS
{
.boot_load > L1
.cinit > L2
.text > L2
.stack > L2
.bss > L2
.const > L2
.data > L2
.far > L2
.switch > L2
.sysmem > L2
.tables > L2
.cio > L2
}
2、查看TIMER程序的map文件,根据map文件中各段的地址和长度修改FLASH_PRG
程序(见附件)中flash_timer.h文件中的各段地址和长度如下:
/* 程序入口点 */
#define ENTRY_POINT 0x000015a0
/* boot段的长度和RAM中地址设定 */
#define BOOT_SECTION_SIZE 0x00000400
#define BOOT_SECTION_ADDRESS 0x00000000
/* cinit段的长度和RAM中地址设定 */
#define CINIT_SECTION_SIZE 0x00001000
#define CINIT_SECTION_ADDRESS 0x00001820
/* text段的长度和RAM中地址设定 */
#define TEXT_SECTION_SIZE 0x00001420
#define TEXT_SECTION_ADDRESS 0x00000400
/* end of table */
#define TABLE_END 0
其中ENTRY_POINT入口地址就是.map文件中的.text:_c_int00的地址,也就是load完程序后在反汇编界面上自动跳到的地址
3、FLASH_PRG程序的cmd文件中的MEMORY中SRAM要选在TIMER程序中SRAM
的后面,这里从0x00008000开始
MEMORY
{
FLASH : origin = 0x64000000, len = 0x4000000
SRAM : origin = 0x00008000, len = 0x1f000
}
4、先load TIMER程序到内存,接着load FLASH_PRG程序并运行,这样就可以将
TIMER程序烧入FLASH中。

可以对照memory 0-8000和64000000-64008000的数据是否一致。

数据查看方法是:file/data/save 可输入保存的初始地址和长度。

分别
保存并对照即可。

附件:
FLASH_PRG程序
BOOT.asm程序。

相关文档
最新文档