DSP中FLASH烧写方法
- 格式:doc
- 大小:31.50 KB
- 文档页数:2
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烧写及自启动DSP型号:DM642所有的系统在结束了仿真器开发后,都需要解决一个问题,就是将程序烧写到外部存储芯片中,完成系统上点后的自启动和引导,大多数,就是flash的烧写和自启动。
一,系统初期,没有估计到这部分的工作量,直到与苏工结帐时仍然以为这是一个手到擒来的过程。
也许是以前在实验室,单片机和FPGA的开发过程中,没有遇到过类似的问题,所以我相当然地以为对于DSP也是同样的过程。
现在想想,单片机是用单独的编程器烧写,而FPGA因为开发板提供厂商已经把大量的底层都完善了,我们所需要做得仅仅是编译产生下载文件,下载,OK!按理说,如果我们也是采取购买开发板的途径进行开发,开发板提供厂商也应该把这部分工作做完了。
但是,我们找的是单独的小公司设计一块系统板,这部分工作,尤其是如果系统板和开发板有所不同的这部分工作,就应改在设计初期,签合同时,明确提出来是谁做,做到权责明析,很遗憾我们没有。
而且,在项目进行中和那个帮我们做板子的人有点不愉快,最要命的是我已经把项目款付给了人家,接下来的工作量,就不能不说是我们自找的了。
二,我意识到,我不得不自己去做这部分工作了,于是开始想要借力合众达。
合众达是TI的官方合作伙伴,中国TI DSP的技术支持。
一开始,合众达觉得我是它们开发板的潜在买家。
于是开始费力地给我介绍它们的VPM642。
于是我告诉它们,我的系统是自己设计的,希望能够得到它们的支持。
他们于是好奇地研究了研究我的板子,然后告诉我,它们这边只是支持合众达的VPM642开发板,而且我的板子和它们的不同,它们也不保证提供的在VPM642上work的东西在我的板子上也能正常工作。
anyway,我说给我吧,我可以作为参考。
于是我搞到两块板子的图纸,开始详细比较二者的不同。
三,根据我比较的结果,我认为,二者没有本质的不同,都是AMD的芯片,型号有差异,一个33,一个320,它们能用的我应该也能用。
一种基于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直接烧写设计引言自加载后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中。
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的读取可以直接进行。
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存储器中的数据,并与写入的固件或数据进行比较。
DSP28335—FLASH烧写的方法(2013-10-17 14:09:59)转载▼分类:学习交流标签:dsp文章来自:百度文库把烧写到RAM程序修改成烧写到FLASH的首先,希望大家明白一点,想把一个原来是烧写到DSP的片内RAM的程序修改成是烧写到DSP片内FLASH的程序,不仅仅是修改一个cmd文件就结束了,还需要做其他几个步骤,这里我重点强调一下。
第一步:把28335_RAM_lnk.cmd这个从project中移除,用右键选择28335_RAM_lnk.cmd 然后选delate。
第二步:右键选择project名称,然后选add file to project,然后出现浏览框,在\Code of TMS320F28335 CCS4\v120\DSP2833x_common\cmd这个子文件夹下,选择F28335.cmd,点OK,至此可以在project的文件列表内看到F28335.cmd被添加到project中。
第三步:在main()函数中添加如下语句MemCopy(&RamfuncsLoadStart, &RamfuncsLoadEnd, &RamfuncsRunStart); InitFlash();上述两句话添加在InitPieVectTable();这句的下面的一行。
添加语句的时候,注意不要添加错了,每一个字母都要正确,括号也要用英文括号。
第四步:添加DSP2833x_MemCopy.c这个文件到project中,右键选择project名称,然后选add file to project,然后出现浏览框,找到\Code of TMS320F28335 CCS4\v120\DSP2833x_common\source文件夹中的DSP2833x_MemCopy.c这个文件,然后点OK。
第五步:编译,点rebuild,编译至少要保证没有ERROR,否则请检查一下在第三步操作的地方是不是有错误。
flash烧写说明文档烧写说明:准备工作:1:安装Flash burn软件,安装的路径要与ccs安装路径一致,按默认的路径安装就行。
2:把提供的hex文件夹拷贝至C:根目录下。
移除CODEC.cmd文件project。
在文件类型中选择*.s*依次添加boot_c671x_2.s62,c6713_emif.s62两个文件。
在文件类型中选择*.cmd,添加lnk2.cmd文件。
然后点击Rebuid all按钮重新编译所有文件。
到DEC6713_CODEC.out文件,复制该文件到C:根目录下的hex文件夹下。
双击“命令提示符快捷方式”文件。
后关键命令窗口。
然后复制hex文件至工程文件夹下,C:\ti\myprojects\fft080111endDEC6713_CODEC.pjt工程。
打开TOOL下的FlashBurn工具。
在file中单击new。
在conversion Cmd框中添加hex文件夹下的boot.cmd文件。
在File to burn中添加hex文件夹下的DEC6713_CODEC.hex文件。
在FBTC program file框中添加FBTC6713文件夹下的FBTC6713.out文件。
在flash physical 填写0x90000000 ,bytes 0x40000,然后保存,关闭Flshburn界面。
在file工具栏选择load GEL,加载DEC6713.gel文件。
文件。
如上图说明连接正常。
首先点击Erase Flash选项。
单击program下的proram Flash工具,等待烧写完毕,然后关闭ccs,重新给目标板上电,烧写过程结束。
TMS320C62x HPI引导过程的实现摘要:TMS320C62x和TMS320C67x DSPs提供了几种不同的启动模式,不同的启动模式决定了DSP复位后的初始化以及代码装载方式。
本文就TMS320C62x DSP 的HPI启动模式进行详细的说明。
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程序。