DSP中FLASH烧写方法
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烧写及自启动DSP型号:DM642所有的系统在结束了仿真器开发后,都需要解决一个问题,就是将程序烧写到外部存储芯片中,完成系统上点后的自启动和引导,大多数,就是flash的烧写和自启动。
一,系统初期,没有估计到这部分的工作量,直到与苏工结帐时仍然以为这是一个手到擒来的过程。
也许是以前在实验室,单片机和FPGA的开发过程中,没有遇到过类似的问题,所以我相当然地以为对于DSP也是同样的过程。
现在想想,单片机是用单独的编程器烧写,而FPGA因为开发板提供厂商已经把大量的底层都完善了,我们所需要做得仅仅是编译产生下载文件,下载,OK!按理说,如果我们也是采取购买开发板的途径进行开发,开发板提供厂商也应该把这部分工作做完了。
但是,我们找的是单独的小公司设计一块系统板,这部分工作,尤其是如果系统板和开发板有所不同的这部分工作,就应改在设计初期,签合同时,明确提出来是谁做,做到权责明析,很遗憾我们没有。
而且,在项目进行中和那个帮我们做板子的人有点不愉快,最要命的是我已经把项目款付给了人家,接下来的工作量,就不能不说是我们自找的了。
二,我意识到,我不得不自己去做这部分工作了,于是开始想要借力合众达。
合众达是TI的官方合作伙伴,中国TI DSP的技术支持。
一开始,合众达觉得我是它们开发板的潜在买家。
于是开始费力地给我介绍它们的VPM642。
于是我告诉它们,我的系统是自己设计的,希望能够得到它们的支持。
他们于是好奇地研究了研究我的板子,然后告诉我,它们这边只是支持合众达的VPM642开发板,而且我的板子和它们的不同,它们也不保证提供的在VPM642上work的东西在我的板子上也能正常工作。
anyway,我说给我吧,我可以作为参考。
于是我搞到两块板子的图纸,开始详细比较二者的不同。
三,根据我比较的结果,我认为,二者没有本质的不同,都是AMD的芯片,型号有差异,一个33,一个320,它们能用的我应该也能用。
基于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直接烧写设计引言自加载后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存储器及自举引导的实现方法
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自引导及一种另类的烧写方法
本 文 介绍 的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
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的步骤。
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烧写方法剖析
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烧写说明文档
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启动模式进行详细的说明。
DSP串口烧写Flash方法(精)
281x无需仿真器,串口烧写Flash方法再发一次!希望版主不要再删!!考虑到众多买不起仿真器的劳苦大众!下面提供利用PC RS232下载flash到281x的方法:第一步:安装CCS2.2或更高版本以确保你的源代码能编译为下载源码:xxx.out文件第二步:安装串口编程算法项目文件:sdf28xx_v3_0_serial (Ti网站上有下载详情请阅读包含的:SDFlash_Serial_RefGuide_v3_0.pdf文件第三步:在算法项目文件中设置好相应的时钟频率,并生成.out文件(1在CC中导入F2812SerialFlash.pjt文件文件目录:C:\CCStudio_v3.1\specdig\sdflash\mydrivers\DSP281x_v3_0\DSP281x_serial\build \F28xxSerialFlas h(2设置好你的目标板相应的时钟频率在Flash280x_API_Config.h中相应的PLL时钟,我使用的是20M晶掁则选择: #define CPU_RATE 10.000L // for a 100MHz CPU clock speed (SYSCLKOUT (3保存并编译项目文件,生成F2812SerialFlash.out文件存放在:C:\CCStudio_v3.1\specdig\sdflash\mydrivers\DSP281x_v3_0\DSP281x_serial\bin注:确定你的程序空间定义在flash段,(在CMD文件修改第四步:安装SdFlashV1.60或更高版本第五步:编辑sdopts.cfg文件,此文件存放在你所安装的windows的System32目录下(1用记事本的方式打开sdopts.cfg(2在"# End of sdopts.cfg”前加入如下文本:[EmulatorId=C1]EmuPortAddr=0xC1EmuPortMode=RS232EmuProductName=SERIAL_FLASH[EmulatorId=C2]EmuPortAddr=0xC2EmuPortMode=RS232EmuProductName=SERIAL_FLASH[EmulatorId=C3]EmuPortAddr=0xC3EmuPortMode=RS232EmuProductName=SERIAL_FLASH[EmulatorId=C4]EmuPortAddr=0xC4EmuPortMode=RS232EmuProductName=SERIAL_FLASH第六步:打开SDFlash,按SDFlash_Serial_RefGuide_v3_0.pdf提供的方法指定算法文件路径在Project设置中,若你使用PC的COM1则选择仿真器为C1,COM2则选择C2第七步:将DSP的SCI_A和PC的RS232口连接.将DSP的如下脚管置为相应的电平,然后复位复位时:GPIOF4=0 GPIOF12=0 GPIOF3=1 GPIOF2=1注:GPIOf4为SCI_A TXD端子,复位完成后应恢复原DSP能传输信号状态第七步:点击SdFlash菜单的Flash项--->点击Start,即可!!!seed啊甘,你好,找你要个sdflash烧写软件,,~谢谢!seed啊甘,你好,找你要个sdflash烧写软件,,~谢谢!由于产品为了升级容易,所以要改用rs232烧写来升级,我按照你的方法做,就是没找到SDFLASH这个烧写软件!如果你看到此贴,麻烦你发给我,我email:wangyazix@ [quote][i]seed阿甘[/i] 写道:1.先安装sdf28xx_v3_0_serial,安装时按照默认路径安装;2.再安装SDFLASH,安装路径与sdf28xx_v3_0_serial相同。
2021DSP对AM29LV400BFlash存储器的烧写、擦除操作范文2
2021DSP对AM29LV400BFlash存储器的烧写、擦除操作范文 1.引言 Flash是一种可在线进行电擦写,掉电后数据不丢失的EEPROM存储器。
它具有功耗低、容量大、烧写和擦除速度快等优点,并且内部嵌入算法完成对芯片的操作,简化了软件的工作量,因而在数字信号处理系统中得到了广泛的应用。
DSP是一种高速数字信号处理器。
它具有高稳定性、可重复性、可大规模集成,特别是易编程性和易于实现自处理等特点,使得信号处理手段更灵活、功能更复杂、运算速度更快,在数字信号处理领域得到广泛地应用。
本文通过完整的实例,介绍以TMS320VC33(简称VC33)为嵌入式系统对AM29LV400BFlash存储器进行烧写和擦除的实现方法。
2.AMD公司AM29LV400BFlash存储器 AM29LV400B是AMD公司推出的Flash存储器,它是4兆位(8×512K/16×256K位)的CMOS工艺扇区擦除、字节编程的电可擦除只读存储器EEPROM。
它的主要特点包括如下几个方面:3.3V单电压供电;内部嵌入编程、擦除操作算法,只需向命令寄存器写入标准的微处理器指令,并且可通过查询特定的引脚或数据线来监控操作是否完成;对任一扇区进行烧写擦除操作时不影响其它的扇区数据;可进行100000次的烧写擦除操作,数据保存10年以上。
本文中Flash的数据映射到DSP的0x0400000空间,Flash的一个字节对应一个DSP的低8位数据,高24位为无效数据,可以直接按字节进行读写操作。
3.Flash存储器的基本操作命令以及程序设计流程 Flash存储器AM29LV400B的基地址为0x400000,每个偏移地址乘以4是因为Flash字节仅占用DSP空间低8位,而DSP的地址是字节地址,所以地址增量为4。
3.1Flash存储器的操作结束检测 FlashAM29LV400B内部的编程或擦除算法可自动完成相应操作,但必须了解其内部的操作检测机制,以便知道操作是否完成或正确。
在TI DSP开发板中烧写Flash程序
实现在FLASH存储器烧写程序一般有以下三种方法:一是通过编程器下载烧写;二是通过开发商提供的专门软件工具+在线仿真器烧写;三是自己编程通过DSP 烧写。
个人使用的是合众达电子SEED-VPM642开发板,在最新版本例程中提供了专用的烧写软件SeedConvertTool.exe;但为了实现通用的FLASHBURN烧写,我进行了一些尝试以便了解程序烧录过程及运行情况。
实现Bootloader自引导功能,除了需要生成可执行文件(.out),还需要进行如下步骤:1、合理配置工程文件(.pjt):需要添加一个boot.asm文件(做搬移时一些初始化和跳转工作),另外工程中.cmd文件也需要为bootloader保留空间。
2、将添加了boot.asm和修改cmd后重新生成的.out文件转化为.hex文件,这时需要一个转换.cmd文件(这个.cmd文件与工程文件中.cmd完全不同,前者是为了指明flash的属性(大小,数据宽度,起始地址和产生文件名)以实现转换.out文件为flash兼容的.hex文件,不能混淆)。
3、最后通过Flashburn工具将.hex文件写入Flash,这时需要转换.cmd文件、.hex文件和FBTC642.out文件。
介绍下各烧录中用到的文件(Flashburn、FBTC.out、hex6x.exe,.cdd和.cmd 文件)作用:1、FBTC.out文件:负责对flash的操作,比如flash的擦除、读、写等。
这里主要看个人板子上flash的型号,因为不同型号的flash,它们的操作命令不一样。
这样你就必须对FBTC工程进行修改,然后重新编译生成.out文件。
如DM642开发板使用的FBTC文件在安装ccs的根目录下(boards\evmdm642\flashburn\FBTC642)。
2、hex6x.exe:将用户工程生成的.out文件转换为二进制文件的工具,这样Flashburn就可以将.out文件以二进制方式烧进flash中。
DSP2812 flash 烧写成功方法,烧录器下载器 2812下载器 编程器
DSP2812成功批量烧录下载、调试仿真DSP2812_FLASH烧写成功经验总结初次接触DSP2812的FLASH烧写,在“成功”锁死2块DSP2812和处理了一堆报错后,终于烧写成功。
其中CMD\LIB\ASM文件,可以在网上下载到,大家找找就可以1. 一定要下载最新的FLASH烧写插件,可以避免很多奇怪的错误出现,这一点非常重要,本人就是在此问题困扰了一整天。
2.下载烧写FLASH配套CMD文件、LIB文件以及起始代码asm文件。
CMD文件名称:DSP281x_Headers_nonBIOS.cmdCMD文件名称:F2812.cmdLIB文件名称:rts2800_ml.libASM文件名称:DSP281x_CodeStartBranch.asm另外在RAM调试时用以下两个文件:F2812_EzDSP_RAM_lnk.cmdDSP281x_Headers_nonBIOS.cmd3.配置C文件配置好主程序的C文件,才能将FLASH成功烧录,并且将FLASH中的文件拷贝到RAM中运行。
关于C文件的配置。
首先在F2812.CMD文件中,我们可以看到有关于加载FLASH到RAM的内容,以及在C文件中调用FLASH 到RAM的函数memcpy,将它放在系统初始化(InitSystem();)之后即可,所以,我们需要定义所用变量,这些定义都是:DSP281x_GlobalPrototypes.h 当中,当然,也可以放在其他系统初始化的地方。
Memcpy这个函数应该是rts2800_ml.lib库文件中自带的,不需要我们定义。
关于FLASH的初始化配置Initflash(); 我把它放置在Memcpy 函数之后。
关于ramfuncs,则在系统初始化中定义即可。
如:sysctrl.c中#pragmaCODE_SECTION(InitFlash, "ramfuncs"); 另外,许多朋友没有注意需要定义自己其他子程序,导致最终运行的主程序还是在FLASH中,比如你需要运行的子程序ABC,则需要定义#pragma CODE_SECTION(ABC, "ramfuncs") 烧写成功后的注意事项:1 一定要拔除仿真器(JTAG端),给电路板重新上电,方能实现FLASH启动。
DSP串口烧写Flash方法(精)
DSP串口烧写Flash方法(精)281x无需仿真器,串口烧写Flash方法再发一次!希望版主不要再删!!考虑到众多买不起仿真器的劳苦大众!下面提供利用PC RS232下载flash到281x的方法:第一步:安装CCS2.2或更高版本以确保你的源代码能编译为下载源码:xxx.out文件第二步:安装串口编程算法项目文件:sdf28xx_v3_0_serial (Ti网站上有下载详情请阅读包含的:SDFlash_Serial_RefGuide_v3_0.pdf文件第三步:在算法项目文件中设置好相应的时钟频率,并生成.out文件(1在CC中导入F2812SerialFlash.pjt文件文件目录:C:\CCStudio_v3.1\specdig\sdflash\mydrivers\DSP281x_v3_0\ DSP281x_serial\build \F28xxSerialFlas h(2设置好你的目标板相应的时钟频率在Flash280x_API_Config.h中相应的PLL时钟,我使用的是20M 晶掁则选择: #define CPU_RATE 10.000L // for a 100MHz CPU clock speed (SYSCLKOUT (3保存并编译项目文件,生成F2812SerialFlash.out文件存放在:C:\CCStudio_v3.1\specdig\sdflash\mydrivers\DSP281x_v3_0\ DSP281x_serial\bin注:确定你的程序空间定义在flash段,(在CMD文件修改第四步:安装SdFlashV1.60或更高版本第五步:编辑sdopts.cfg文件,此文件存放在你所安装的windows 的System32目录下(1用记事本的方式打开sdopts.cfg(2在"# End of sdopts.cfg”前加入如下文本:[EmulatorId=C1]EmuPortAddr=0xC1EmuPortMode=RS232EmuProductName=SERIAL_FLASH[EmulatorId=C2]EmuPortAddr=0xC2EmuPortMode=RS232EmuProductName=SERIAL_FLASH[EmulatorId=C3]EmuPortAddr=0xC3EmuPortMode=RS232EmuProductName=SERIAL_FLASH[EmulatorId=C4]EmuPortAddr=0xC4EmuPortMode=RS232EmuProductName=SERIAL_FLASH第六步:打开SDFlash,按SDFlash_Serial_RefGuide_v3_0.pdf提供的方法指定算法文件路径在Project设置中,若你使用PC的COM1则选择仿真器为C1,COM2则选择C2第七步:将DSP的SCI_A和PC的RS232口连接.将DSP的如下脚管置为相应的电平,然后复位复位时:GPIOF4=0 GPIOF12=0 GPIOF3=1 GPIOF2=1注:GPIOf4为SCI_A TXD端子,复位完成后应恢复原DSP能传输信号状态第七步:点击SdFlash菜单的Flash项--->点击Start,即可seed啊甘,你好,找你要个sdflash烧写软件,,~谢谢!seed啊甘,你好,找你要个sdflash烧写软件,,~谢谢!由于产品为了升级容易,所以要改用rs232烧写来升级,我按照你的方法做,就是没找到SDFLASH这个烧写软件!如果你看到此贴,麻烦你发给我,我email:wangyazix@/doc/be5535093.html, [quote][i]seed阿甘[/i] 写道:1.先安装sdf28xx_v3_0_serial,安装时按照默认路径安装;2.再安装SDFLASH,安装路径与sdf28xx_v3_0_serial相同。
F28335 DSP FLASH烧写的方法
张掌柜讲F28335DSP系列之把DSP程序从烧到RAM变成烧到FLASH中的方法一、前言1、首先跟大家强调一点,阅读这个文档的前提是,已经阅读过本店《张掌柜讲DSP系列之CCS4.2 XDS100在CCS4.2环境下仿真编程新手入门.pdf》这个文档,并且熟练掌握里面的操作步骤。
我后面讲解的话语里面,如果有你看不懂的,请回过头去看《张掌柜讲DSP系列之CCS4.2 XDS100在CCS4.2环境下仿真编程新手入门.pdf》。
这个文档我写的比较简练,希望大家看的时候仔细一些。
2、其次,说明一下我写这个文档的原因,很多买家朋友在本店购买TMS320F 28335DSP开发板套装,在RAM程序调试完毕后,将程序固化到FLASH的过程中遇到困难。
因为这些困难是很多朋友都会遇到的,所以我专门写这个文档讲解一下。
3、提醒一下,用仿真器烧写DSP的FLASH程序完成后,给开发板断电,然后拔掉仿真器和DSP开发板之间JTAG的连接,然后再给开发板上电,否则DSP开发板连着DSP 仿真器的时候,无法正常运行FLASH中的程序。
4、最后说明一下,在CCS4的Debug界面下,可以成功的Connect(连接),可以成功的Load program到DSP的片内RAM中,这个就说明DSP仿真器和DSP开发板没有硬件上的损坏或者问题,完全可以放心。
二、把烧写到RAM程序修改成烧写到FLASH的首先,希望大家明白一点,想把一个原来是烧写到DSP的片内RAM的程序修改成是烧写到DSP片内FLASH的程序,不仅仅是修改一个cmd文件就结束了,还需要做其他几个步骤,这里我重点强调一下。
第一步:把28335_RAM_lnk.cmd这个从project中移除,用右键选择28335_RAM_lnk.cmd然后选delate。
如下图1,然后出现对话框,点YES,如图2。
图1图2第二步:右键选择project名称,然后选add file to project,如下图3,然后出现浏览框,在\Code of TMS320F28335 CCS4\v120\DSP2833x_common\cmd这个子文件夹下,选择F28335.cmd,点OK,至此可以在project的文件列表内看到F28335.cmd被添加到project中。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 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程序。