DSP程序烧写说明
TI DSP flash烧写及自启动

问题描述:TI DSP flash烧写及自启动DSP型号:DM642所有的系统在结束了仿真器开发后,都需要解决一个问题,就是将程序烧写到外部存储芯片中,完成系统上点后的自启动和引导,大多数,就是flash的烧写和自启动。
一,系统初期,没有估计到这部分的工作量,直到与苏工结帐时仍然以为这是一个手到擒来的过程。
也许是以前在实验室,单片机和FPGA的开发过程中,没有遇到过类似的问题,所以我相当然地以为对于DSP也是同样的过程。
现在想想,单片机是用单独的编程器烧写,而FPGA因为开发板提供厂商已经把大量的底层都完善了,我们所需要做得仅仅是编译产生下载文件,下载,OK!按理说,如果我们也是采取购买开发板的途径进行开发,开发板提供厂商也应该把这部分工作做完了。
但是,我们找的是单独的小公司设计一块系统板,这部分工作,尤其是如果系统板和开发板有所不同的这部分工作,就应改在设计初期,签合同时,明确提出来是谁做,做到权责明析,很遗憾我们没有。
而且,在项目进行中和那个帮我们做板子的人有点不愉快,最要命的是我已经把项目款付给了人家,接下来的工作量,就不能不说是我们自找的了。
二,我意识到,我不得不自己去做这部分工作了,于是开始想要借力合众达。
合众达是TI的官方合作伙伴,中国TI DSP的技术支持。
一开始,合众达觉得我是它们开发板的潜在买家。
于是开始费力地给我介绍它们的VPM642。
于是我告诉它们,我的系统是自己设计的,希望能够得到它们的支持。
他们于是好奇地研究了研究我的板子,然后告诉我,它们这边只是支持合众达的VPM642开发板,而且我的板子和它们的不同,它们也不保证提供的在VPM642上work的东西在我的板子上也能正常工作。
anyway,我说给我吧,我可以作为参考。
于是我搞到两块板子的图纸,开始详细比较二者的不同。
三,根据我比较的结果,我认为,二者没有本质的不同,都是AMD的芯片,型号有差异,一个33,一个320,它们能用的我应该也能用。
DSP程序烧写步骤

DSP程序烧写步骤⼀、连接好DSP电源及仿真器(设备管理器中能检测到仿真器)⼆、点击桌⾯图标三、选择对应的仿真器和DSP(图中已经选好了,直接保存并退出)“确认”四、进⼊仿真界⾯,此时系统与⽬标板还未连接在“Debug”中选择“Connect”将系统与⽬标板连接五、如图,右键“Projects”,载⼊⼯程⽂件⼯程⽂件⽬录为⽂件⽬录为C:\CCStudio_v3.3\MyProjects\DSP2812M_examples\DPS2812M_KEYBOARD (图中,点击后直接进⼊⼯程⽬录,此时直接选中.pjt⽂件并打开即可)六、打开后界⾯如下:注意:⼯程中的“F2812.cmd”⽂件(如下图所⽰)为烧写程序时⽤的cmd⽂件,编译及调试程序时⽤的cmd⽂件为“F2812_EzDSP_RAM_lnk.cmd”,两者均在⽬录C:\CCStudio_v3.3\MyProjects\DPS2812M_common\cmd下,如下图中所⽰:“F2812.cmd”⽂件和“F2812_EzDSP_RAM_lnk.cmd”⽂件所在⽬录如下:如果从调试程序到烧写程序或者相反过程,都需要更换cmd⽂件,更换后⼀定要先编译cmd ⽂件后才能避免出现问题七、烧写程序烧写程序即是将编译及调试正确的程序(.out⽂件)烧写到Flash中,本实验烧写的是DPS2812M_KEYBOARD.out⽂件,其⽬录为C:\CCStudio_v3.3\MyProjects\DSP2812M_examples\DPS2812M_KEYBOARD\Debug选择“Tools”下的“F28xx on-chip flash programmer”,如下图:设定时钟频率,这⾥取30,如图:如下图,选择相应的⽂件:“Browse”相应的⽂件,并“OK”即可:如图,出现如下界⾯,点击,开始程序烧写:不出意外,烧写过程会很快、很顺利,如果出现问题,考虑检查cmd⽂件是否选对了等。
DSP自动加载过程及程序烧写的简化设计

DSP自动加载过程及程序烧写的简化设计TMS320C6701(以下简称C6701)是一款浮点运算DSP,适用于需要大量运算且实时性要求高的场合,如导航解算等。
在浮点DSP 芯片中,C6701 是一款可应用于恶劣环境并具有高可靠性的产品,因此该型DSP 芯片虽然推出较早,却依然在某些领域具有重要应用价值。
DSP 应用程序需脱离开发系统独立工作,在实时DSP 应用系统中,通常将应用程序存储在外部非易失性存储器(如FLASH、EEPROM、PROM 等)中。
系统上电后,DSP 将外部程序存储器的程序代码加载到可高速存取的RAM 中,加载完成后自动跳转到零地址开始运行。
因此DSP 程序烧写及自动加载是实时DSP 系统设计的重要部分。
本文采用的烧写方法不需要格式转换到外部辅助设备,同时DSP 程序不再进行二次加载,简化了烧写及程序自动加载的过程。
1 加载方案及电路设计1.1 外围电路设计C6701 有三种加载模式:不加载(No Boot)、ROM 加载(Rom Boot)、主机加载(Host Boot)。
这三种加载模式由C6701 的BOOTMODE[4:0]引脚电平设定,由这5 个引脚的设置共同决定使用何种存储空间映射模式。
在恶劣环境及高可靠应用场合中,可使用不加载方式,也可使用程序从ROM 中加载到DSP 片外高可靠RAM 存储器中的运行方式。
FLASH、EEPROM、PROM 等程序存储芯片多为8 位或16 位,在高可靠应用环境中8 位比较常见。
本文中设置BOOTMODE[4:0]为01010B,即程序由外部8 位程序存储器加载到外部32 位SRAM 中,LENDIAN 引脚接高电平。
外部程序存储器选用FLASH 芯片AM29LV160,32 位SRAM 芯片选用ACTS512K32V.FLASH 和SRAM 芯片与C6701 的硬件连接如。
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中。
DSP2407的烧写过程

DSP2407的烧写过程昨天完成了DSP2407的烧写,烧写之前在网上找了不少资料,但没有完整的烧写过程,浪费了不少时间,所以想在这里分享下我的烧写过程,以方便其他网友。
1、CMD文件的设置。
程序空间要避开0x40~0x43,这里是密码。
以下是我的CMD文件。
复制内容到剪贴板/*-----------------------------------------------------------------------*//* CMD命令文件 - 存储空间的划分 */ /*-----------------------------------------------------------------------*/MEMORY{PAGE 0:VECS: origin = 0000h, length = 0040h /* 程序复位 */ PVECS: origin = 0044h, length = 0100h /* 外围中断向量 */ PROG: origin = 0150h, length = 6EB0h /* 片内FLASH */ PAGE 1 :B2: origin = 0060h, length = 0020h /* 内部双口RAM,B2块 */B0B1: origin = 0200h, length = 0200h /* 内部双口RAM,B0B1块 */SARAM_IN: origin = 0800h, length = 0800h /* 内部单访问RAM,数据区*/SARAM_EX: origin = 8000h, length = 8000h /* 外部扩展RAM,数据区*/}/*-------------------------------------------------------------------------*//* CMD命令文件 - 程序段、数据段配置 */ /*-------------------------------------------------------------------------*/SECTIONS{.vectors : { } > VECS PAGE 0 /* 指向自己定义的中断向量表 */.pvecs : { } > PVECS PAGE 0 /* 中断子向量表 */.text : { } > PROG PAGE 0 /* 程序代码 */.cinit : { } > PROG PAGE 0.bss : { } > SARAM_IN PAGE 1 /* RAM*/.const : { } > SARAM_IN PAGE 1 /* RAM */.stack : { } > B2 PAGE 1 /* 堆栈,块B2*/.data : { } > B0B1 PAGE 1 /* 初始化的变量 */}2、设置SCSR2位MC方式。
DSP烧录方法

烧录DSP芯片的注意事项1打开CCS2000软件。
2若找到芯片,则直接进入CCS2000,截图如下:
3若未发现芯片,则截图如下:
或
或
可重新插拔仿真器的USB端口,重新启动CCS。
4点击项目栏“Tools”菜单下的“On-Chip Flash Programmer”,弹出提示框后选择LF2407后点击“OK”。
5“On-Chip Flash Programmer”菜单下,操作界面如下:
a)烧录时“PWL3、PWL2、PWL1、PWL0”都为0xFFFF,默认即可。
b)Browse 该项后选择路径,即浏览要烧录的文件并选中到框中。
6选择好文件后,点击“Execute”项即可烧录程序,等待约1分钟时间,尽量不要做任何操作。
7加密:
将“PWL3、PWL2、PWL1、PWL0”都改为0x1234。
点击“Lock”。
至此,已经完成烧录过程。
重新上电之后芯片开始工作,通讯灯(N)的闪烁频率约为一秒两次。
二〇一三年四月三日星期三研发部。
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,否则请检查一下在第三步操作的地方是不是有错误。
DSP程序烧写说明

视频DSP程序烧写说明1. 先安装sdf28xx_v3_3_serial,安装时按照默认路径安装,与CCS3.3 安装路径相同;2. 安装SDFlash 软件:SetupCCSPlatinum_v30329,安装路径与CCS3.3 安装路径相同;3. 编辑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_FLASH4. 利用串口线(两端端为母头,也可接USB转串口)连接DSP 与PC机;插好跳线帽,JP1、JP4上端两个插针插跳线帽,JP2、JP3下端两个插针插跳线帽;下载程序时需要把JP5的下面两个插针插跳线帽,COM1为烧写测距DSP程序的串口,COM2为烧写测速DSP程序绿色端子接口,测速、测距程序的烧写过程大体一致,只是源程序不同;5. 打开SDFlash,路径为:C:\CCStudio_v3.3\specdig\sdflash\bin 下SDFlash.exe,如下图所示:6. 打开F2812SerialFlash.sdp 工程,路经为:C:\CCStudio_v3.3 \specdig\sdflash\myprojects\sdf28xx_v3_3_serial\f2812(此步骤只需要一次,下次使用时,无须重复此过程);7. 打开Project-Settings 菜单,对工程进行配置,在Emulator中设置串口端口,C1对应COM1,C2对应COM2,依此类推;8. 单击Programing,在“Flash Data”栏中选择要下载的程序;8.其他设置采用默认即可,单击确定,保存SDFlash工程;9.DSP 上电或复位,首先单击:File 按钮,选取.out文,然后单击红色按钮,(工具栏中的红色“R”图标);10.单击Flash按钮,在红色按钮左侧,在弹出的对话框中单击start,如图所示:11.等待烧写完毕,软件窗口提示烧写成功,测速程序的下载与此相同,把JP5的跳线帽插到上面两个插针上,给系统重新上电,DSP进入运行状态,指示显示如下表所示,代表程序正常运行起来;。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
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并未解决问题,运行后无任何反应。