DSP串口烧写Flash方法

合集下载

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烧写及自启动

问题描述: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直接烧写设计

基于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烧写方法

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存储器及自举引导的实现方法

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在线编程方法

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

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烧写方法剖析

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,否则请检查一下在第三步操作的地方是不是有错误。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 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]。

相关文档
最新文档