DSP串口烧写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相同。
TI DSP flash烧写及自启动
问题描述:TI DSP flash烧写及自启动DSP型号:DM642所有的系统在结束了仿真器开发后,都需要解决一个问题,就是将程序烧写到外部存储芯片中,完成系统上点后的自启动和引导,大多数,就是flash的烧写和自启动。
一,系统初期,没有估计到这部分的工作量,直到与苏工结帐时仍然以为这是一个手到擒来的过程。
也许是以前在实验室,单片机和FPGA的开发过程中,没有遇到过类似的问题,所以我相当然地以为对于DSP也是同样的过程。
现在想想,单片机是用单独的编程器烧写,而FPGA因为开发板提供厂商已经把大量的底层都完善了,我们所需要做得仅仅是编译产生下载文件,下载,OK!按理说,如果我们也是采取购买开发板的途径进行开发,开发板提供厂商也应该把这部分工作做完了。
但是,我们找的是单独的小公司设计一块系统板,这部分工作,尤其是如果系统板和开发板有所不同的这部分工作,就应改在设计初期,签合同时,明确提出来是谁做,做到权责明析,很遗憾我们没有。
而且,在项目进行中和那个帮我们做板子的人有点不愉快,最要命的是我已经把项目款付给了人家,接下来的工作量,就不能不说是我们自找的了。
二,我意识到,我不得不自己去做这部分工作了,于是开始想要借力合众达。
合众达是TI的官方合作伙伴,中国TI DSP的技术支持。
一开始,合众达觉得我是它们开发板的潜在买家。
于是开始费力地给我介绍它们的VPM642。
于是我告诉它们,我的系统是自己设计的,希望能够得到它们的支持。
他们于是好奇地研究了研究我的板子,然后告诉我,它们这边只是支持合众达的VPM642开发板,而且我的板子和它们的不同,它们也不保证提供的在VPM642上work的东西在我的板子上也能正常工作。
anyway,我说给我吧,我可以作为参考。
于是我搞到两块板子的图纸,开始详细比较二者的不同。
三,根据我比较的结果,我认为,二者没有本质的不同,都是AMD的芯片,型号有差异,一个33,一个320,它们能用的我应该也能用。
基于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中。
DSP中FLASH烧写方法
FLASH烧写程序方法:1、将要烧写的程序例如TIMER调通可以在线(用仿真器)下载。
注意其source文件中一定要包含boot.asm程序(见附件)其cmd文件设置如下:主要修改其L2的长度为8000*---------timer1.cmd---------MEMORY{L1 : o = 0h l = 0x400L2 : 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 = 0x4000000SRAM : origin = 0x00008000, len = 0x1f000}4、先load TIMER程序到内存,接着load FLASH_PRG程序并运行,这样就可以将TIMER程序烧入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的读取可以直接进行。
DSP系统应用中FLASH在线编程方法
摘 要: 介绍了在TI公司TMS320VC33 DSP应用系统中,通过JTAG口对DSP外部FLASH存储器实现在线编程在线编程的方法,给出了示例源程序,完成了DSP系统加电后的自动装载运行。 关键词: DSP JTAG FLASH存储器 在线编程 Bootload
2 TMS320VC33简介 TMS320VC33是美国TI公司推出的TMS320C3X系列的32位浮点数字信号处理器,它是在TMS320C31浮点DSP的基础上开发的一个价格更低的DSP,该产品具有高速、低功耗、低成本、易于开发等显著优点。TMS320VC33采用内部1.8V,外部3.3V供电,因而它的功耗比原有型号TMS320C31的功耗降低了大约一个数量级,而且能支持高达150M/FLOPS的运行速率。其主要特性如下: CPU是32bit的高性能CPU:可进行16/32b整数和32/40b的浮点操作;内含8个扩展精度寄存器;有2个地址发生器、8个辅助寄存器和2个辅助寄存器算术单元(ARAU)。 片内存储器为32bit指令字、24bit地址线、34K×32b(1.1Mb)的双静态RAM。 外围接口具有启动程序装载功能;内含5倍频的锁相环(PLL)时钟发生器;片内存储器可映射外设,其中包括一个串行口、两个32bit定时器和一个DMA;具有四个内部译码页选,可大大简化TMS320VC33与I/O及存储器的接口。3 TMS320VC33程序引导功能 TMS320VC33具有两种存储器映射方式,即MP(Microprocessor Mode)方式和MC/BL(Microcomputer/Bootloader Mode)方式,两种方式下中断向量的位置不同。常用的是MC方式。在该方式下,MCBL/MP引脚接高电平,内部ROM被映射到000~FFF空间。这段ROM中含有器件生产厂家固化的引导程序引导程序(BootLoader),该引导程序可以将DSP实时运行的程序和数据从外部低速ROM或串行口装入到高速RAM中。 TMS320VC33复位后即运行内部固化的引导程序,引导程序通过查询四个中断引脚来确定装入方式。这些引脚为低电平有效,查询顺序依次为INT3、INT0、INT1、INT2;当INT3有效时,为串行装入方式;当INT0有效时,从外部地址0x001000处装入(BOOT1);当INT1有效时,从外部地址0x400000处装入(BOOT2);当INT2有效时,从外部地址0xfff000处装入(BOOT3)。 TMS320VC33具有四个快速页选信号,用于对外部地址空间寻址,其映射如表2所示。
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位)
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
6.cmd 中以下代码如何解释? ramfuncs : LOAD = FLASHD, RUN = RAML0, LOAD_START(_RamfuncsLoadStart), LOAD_END(_RamfuncsLoadEnd), RUN_START(_RamfuncsRunStart), PAGE = 0
MemCopy(&RamfuncsLoadStart, &RamfuncsLoadEnd, &RamfuncsRunStart);将一些在内存中运行的代码从 flash 复制到内存中,然后程序才能正常运行。
5.写好的代码再 ram 中能正常运行但是烧写到 flash 中后,函数 DSP28x_usDelay()不能正常运行为什么? 因为在 DSP2833x_usDelay.asm 中有.sect "ramfuncs",即把该函数定义在段"ramfuncs"中, 而此段需要 在内存中运行,故需要使用函数
行可以看出段ramfuncs中的函数dsp28xusdelay的装载地址和运行地址是不同的本程序中装载在flash的块flashd中而在saraml0中运行这只是目标实际运行时dsp并不会自动将flash中的代码拷贝到saram中因此需要手动添加代码来完成
F28335 如何烧写代码到 flash 中并运行
第 1 行表示该段的装载在 PAGA0 的 FLASHD 中 第 2 行表示该段的运行地址在 PAGE0 的 RAML0 中 LOAD_ START(_RamfuncsLoadStart)令编译器创建了一个变量 RamfuncsLoadStart,该变量指向段 ramfuncs 的装载地址的首地址(LOAD_ START 为编译伪指令,请见 CCS 的帮助文档); LOAD_ START(_RamfuncsLoadEnd)令编译器创建了一个变量 RamfuncsLoadEnd,该变量指向段 ramfuncs 的 装载地址的末地址(LOAD_ END 为编译伪指令,请见 CCS 的帮助文档); LOAD_ START(_RamfuncsRunStart)令编译器创建了一个变量 RamfuncsRunStart,该变量指向段 ramfuncs 的运行地址的首地址(LOAD_ START 为编译伪指令,请见 CCS 的帮助文档); 从第 1 和 2 行可以看出,段 ramfuncs 中的函数 DSP28x_usDelay()的装载地址和运行地址是不同的,本程 序中装载在 Flash 的块 FLASHD 中,而在 SARAM L0 中运行,这只是目标,实际运行时 DSP 并不会自动将 Flash 中的代码拷贝到 SARAM 中,因此需要手动添加代码来完成。 在 C 函数中,为了使用变量 RamfuncsLoadStart、RamfuncsLoadEnd 和 RamfuncsRunStart,必须先声明, 本工程在文件 DSP2833x_GlobalPrototypes.h 中做了如下声明: extern Uint16 RamfuncsLoadStart; extern Uint16 RamfuncsLoadEnd; extern Uint16 RamfuncsRunStart; 然后就可以使用了。在 Main.c 中,使用 MemCopy()函数将段 ramfuncs 中的函数 DSP28x_usDelay()的代码 从装载地址 RamfuncsLoadStart—RamfuncsLoadEnd 拷贝到 RamfuncsRunStart 开始的 SARAM 空间中。之后 在程序运行时,只要调用 DSP28x_usDelay()函数,都会自动地指向 SARAM 中相应的函数入口地址,这一点 是自动完成的。MemCopy()函数原型在 MemCopy.c 中,DSP2833x_GlobalPrototypes.h 声明。
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中。
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中。
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启动。
DSP2812Flash烧写(基于TI官方库函数)
DSP_2812Flash烧写步骤(本文是基于TI官方提供的库文件来操作的)说明:本人是将TI提供的库函数里面的DSP281x_common文件夹和DSP281x_headers文件夹里面的内容放到一起整理为自己用的UserFile文件夹。
具体参看下图:(1)(2)下面就开始说怎么烧写程序了:1.首先在线调试好程序,调试没有错误后开始执行下面的步骤;2.下载烧写FLASH之前首先添加CMD文件、LIB文件、起始代码asm 文件以及需要用到的MemCopy函数所在的源文件。
CMD文件名称:DSP281x_Headers_nonBIOS.cmdCMD文件名称:F2812.cmdLIB文件名称:rts2800_ml.libASM文件名称:DSP281x_CodeStartBranch.asmMemCopy文件名称:DSP281x_MemCopy.C将这几个文件都添加到工程中。
同时移除F2812_EzDSP_RAM_lnk.cmd是必须的。
因为这个是在RAM中调试的时候用到的。
3.配置C文件:配置好主程序的C文件,才能将FLASH成功烧录,并且将FLASH中的文件拷贝到RAM中运行。
首先在F2812.CMD文件中,我们可以看到有关于加载FLASH到RAM的内容:ramfuncs : LOAD = FLASHD,RUN = RAML0,LOAD_START(_RamfuncsLoadStart),LOAD_END(_RamfuncsLoadEnd),RUN_START(_RamfuncsRunStart),PAGE = 0以及在C文件中调用FLASH 到RAM的函数memcpy,将它放在系统初始化(InitSysCtrl();)之后即可:依照这三句话即可。
InitSysCtrl();MemCopy(&RamfuncsLoadStart,&RamfuncsLoadEnd,&RamfuncsRunStart);Initflash();下面就解释下为什么这样用:a)根据上面的三行程序以及CMD文件可以看出,我们需要定义所用变量:extern Uint16 RamfuncsLoadStart;extern Uint16 RamfuncsLoadEnd;extern Uint16 RamfuncsRunStart;而这些变量的定义在TI提供的库文件中的DSP281x_GlobalPrototypes.h 当中,当然,你自己也可以放在其他系统初始化的地方(建议不用乱改TI提供的库文件)。
FLASH烧写的步骤
FLASH烧写的步骤大概如下
1、安装FLASH插件,CCS3.1版本的对应的插件版本(FLASH2X
for CCS3.1.EXE)要在1.12以上,否则不能烧写FLASH,安装完毕后,在CCS3.1的TOOLS工具中多一条F28XX on ship flash programmer。
2、将FLASH.CMD文件代替SRAM.CMD文件,编译程序后生成
“xx.OUT”文件。
3、点击TOOLS->F28XX on ship flash programmer,点击版面上的
“flash programmer Settings”后弹出一个对话框,点击BROWSE 按钮,选择弹出对话框中的文件:“FlashAPIInterface2812V2_10.out”,接着点击“OK”按钮。
注意改版面不要轻易修改任何参数,否则会造成DSP芯片死锁报废!不需要设时钟或者空间!!!
4、返回上一层界面后点击“Execute Operation”,DSP开始擦写
FLASH,在擦写过程中,禁止碰动DSP板子,防止出现烧写问题。
烧写完成后信息栏出现:
Erase/Program/V erify Operation succeeded
**** End Erase/Program/V erify Operation. ***
Device reset detected. Updating locked or unlocked
state of target in Flash Programmer.
The device is unlocked.
大功告成。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
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=0xC1
EmuPortMode=RS232
EmuProductName=SERIAL_FLASH
[EmulatorId=C2]
EmuPortAddr=0xC2
EmuPortMode=RS232
EmuProductName=SERIAL_FLASH
[EmulatorId=C3]
EmuPortAddr=0xC3
EmuPortMode=RS232
EmuProductName=SERIAL_FLASH
[EmulatorId=C4]
EmuPortAddr=0xC4
EmuPortMode=RS232
EmuProductName=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相同。
如果没有按照上述说明安装,会引起不必要的麻烦!
3.V3.0 SDFlash serial patch for flash programming via
an RS232 serial link. Includes algos for both F280x and
F281x devices. Uses TI F281x Flash API V2.10 and TI
F280x Flash API V3.00. Requires SDFlash v1.60 or later.
All previous serial algos are obsolete and not recommended. 4.使用串口烧写不像用Flash插件那样方便的设置密码,需要编写程序。
需要此程序,可以向本人索取!
5.RS232收发器最好用MAX202。
6.推荐上拉电阻用4K7,下拉电阻用2K2。
7.必须使用串口A(SCIA)
8.推荐波特率9600bps
9.Erase、Program、verify一次完成。
需要串口烧写软件,可以向本人索取! [/quote]。