2812串口烧写Flash方法
TMS320F2812 SCI口FLASH编程操作指南
TMS320F2812 SCI Flash 编程操作指南
目录
胜翼科技
1 文档介绍 ............................................................................................................... 3 2 软件准备 ............................................................................................................... 3 3 环境配置 ............................................................................................................... 5 4 烧写操作 ............................................................................................................... 8 5 波特率设置及操作时间 ..................................................................................... 11
3
销售邮箱:Sales@
胜翼科技
SDFlash algorithms for F28xxx flash programming via an RS232 serial link 需要进行 安装,一般情况下与 CCS 3.3 保持一个目录即可。
SDFlash 软件在 Spectrumdigital 公司网站上提供的是非安装版,无需安装。但需 要注意的是,非安装版缺少了相关的配置文件(如 sdopts.cfg、sdtsrv.dll)。软件是无 法直接运行的。需要安装 SD 公司的 CCS Emulation Drivers 软件。如图 2‐1 所示:
2812串口烧写Flash方法
第一步:安装CCS3.1或更高版本下面以3.3为例第二步:安装串口编程算法项目文件插件:sdf28xx_v3_3_serial(不同CCS对应不同版本插件,此插件与CCS3.3对应),安装在CCS根目录下第三步:安装SdFlashV1.60或更高版本,安装在CCS根目录下第四步:编辑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,路径为…\CCStudio_v3.3\specdig\sdflash\bin下(在打开CCS的前提下,还需打开要加载的工程,SDFlash.exe才能打开)第六步:打开F2812SerialFlash.sdp工程路径为…\CCStudio_v3.3\sdflash\myprojects\sdf28xx_v3_3_serial\f2812打开Project-setting菜单,分别对target、erase、Programming、Verify进行设置Target:…\CCStudio_v3.3\sdflash\myprojects\sdf28xx_v3_3_serial\f2812\F281xRS232Flash.dll 若使用PC的COM1则选择仿真器为C1,COM2则选择C2Erase:…\CCStudio_v3.3\sdflash\myprojects\sdf28xx_v3_3_serial\f2812\F2812SerialFlash.out Programming:(1)…\CCStudio_v3.3\sdflash\myprojects\sdf28xx_v3_3_serial\f2812\F2812SerialFlash.out (2)flash data 载入要烧写的文件工程最好放在…\CCStudio_v3.3\MyProjects下,避免不必要的麻烦Verify:…\CCStudio_v3.3\sdflash\myprojects\sdf28xx_v3_3_serial\f2812\F2812SerialFlash.out 其余不用改动,按默认值就可以。
Flash28x 烧写指导
Flash28x 烧写指导本烧写程序支持 TMX F2810 Rev A ,TMS F2810 Rev C、TMX F2812 Rev A, TMS F2812 Rev C ,程序中所有默认值皆为烧写 F2812 Rev a ,Rev C 所做的设置,用户如果需要烧写2810可根据附录提供的资料自行修改。
软硬件准备:用户除具备基本的windows系统一套外还需如下设备或软件1、 DSP仿真器一套2、 TMS F2812 Rev C Silicon目标一套3、 CCS 2.0以上版本4、要烧写到Flash的目标程序5、本烧写程序安装程序安装:直接执行软件安装包setup.exe文件。
此文件存在于产品分发的光盘中或在闻亭网站( )下载得到。
安装过程中将需要您指定CCS2000的安装目录,安装完成后将在您指定的目录下生成WTFlash28x目录。
WTFlash28x目录中包括一个名为F2812LED的例子程序,TMX F28X Rev A及TMXF28X Rev C的Flash烧写算法包:l F2812LED程序为闻亭F2812DSK板专用,此程序使板上的LED闪烁l 烧写TMX F28X Rev A请使用WTFlash28x\tif28x_Rev_A目录中的算法l 烧写TMS F28X Rev C请使用WTFlash28x\tif28x_rev_C目录中的算法l 安装程序完成后在CCS2000的安装目录中的cc\bin目录里存在如下文件:wtflash2810.gelwtflash2810.out //TMS F2810 Rev C的烧写算法文件,默认时钟为150MHZwtflash2812.gelwtflash2812.out //TMS F2812 Rev C的烧写算法文件,默认时钟为150MHZwtflash2810.gel和wtflash2812.gel 为在CCS中应用的Falsh烧写程序.烧写准备:根据目标硬件的时钟频率对Flash算法进行重新编译。
2812 FLASH编程小结
//#define CPU_RATE 20.000L //for a 50MHz CPU clock speed (SYSCLKOUT)
#define CPU_RATE 33.333L //for a 30MHz CPU clock speed (SYSCLKOUT)
//#define CPU_RATE 41.667L //for a 24MHz CPU clock speed (SYSCLKOUT)
Flash_CPUScaleFactor=SCALE_FACTOR; Flash_CallbackPtr=NULL;
VersionFloat = Flash_APIVersion(); VersionHex = Flash_APIVersionHex(); //Flash_ToggleTest(GPAMUX,GPATOGGLE,GPIOA0); for(i=0;i<8;i++)
//#define CPU_RATE 8.333L //for a 120MHz CPU clock speed (SYSCLKOUT)
//#define CPU_RATE 10.000L //for a 100MHz CPU clock speed (SYSCLKOUT)
//#define CPU_RATE 13.330L //for a 75MHz CPU clock speed (SYSCLKOUT)
30M,PLL=2;
在直接编程前先做 Flash 编程频率测试,用 Flash_ToggleTest 实现;
用示波器测试频率大概在 10K 左右;
现在你可以使用 Flash API 函数编程了;
我没有把程序放到 Flash 里面,只是用仿真器在 RAM 里面运行,下面是我的测试
CCS5.4烧写FLASH教程
CCS5.4烧写FLASH教程(以TMS320F2812为例)一、前期文件准备如上图所示,CCS5.4环境下烧写FLASH必须将以上文件添加到工程文件夹中,DSP28xxx_CodeStartBranch.asm和DSP28xxx_SectionCopy_nonBIOS.asm可以将FLASH中的部分内容移植到RAM中,增加运行速度。
二、具体步骤1、如下图所示,打开工程设置,在general选项卡中,将configuration由Debug[Active]改为Release[Active],并将Linker command filer改为下图所示的CMD 文件。
2、在Predefined Symbols 选项卡中添加FLASH 预定义符号。
3、在Debug 选项中,修改FLASH下载基本设置,根据实际板子情况,修改晶振OSCCLK。
(实验室里的2812板子晶振为20MHz,而28335板子的晶振为30MHz)4、在主函数中添加一下代码:#ifdef FLASH// Copy time critical code and Flash setup code to RAM// The RamfuncsLoadStart, RamfuncsLoadEnd, and RamfuncsRunStart// symbols are created by the linker. Refer to the linke MemCopy(&RamfuncsLoadStart, &RamfuncsLoadEnd,&RamfuncsRunStart);// Call Flash Initialization to setup flash waitstates// This function must reside in RAMInitFlash(); // Call the flash wrapper init function#endif并且在主函数前面定义变量:extern Uint16 RamfuncsLoadStart;extern Uint16 RamfuncsLoadEnd;extern Uint16 RamfuncsRunStart;最终效果如下:5、打开工程文件夹中的DSP28_SysCtrl.c,在程序开头添加以下语句:#pragma CODE_SECTION(InitFlash, "ramfuncs");并且检查此C文件中有没有定义InitFlash函数,如果没有,添加以下代码:void InitFlash(void){EALLOW;FlashRegs.FOPT.bit.ENPIPE = 1;FlashRegs.FBANKWAIT.bit.RANDWAIT = 3;//5;FlashRegs.FBANKWAIT.bit.PAGEWAIT = 3;//5;FlashRegs.FSTDBYWAIT.bit.STDBYWAIT = 0x01FF;FlashRegs.FACTIVEWAIT.bit.ACTIVEWAIT = 0x01FF;EDIS;asm(" RPT #6 || NOP");}6、最后在F281x_nonBIOS_flash.cmd中添加以下代码:ramfuncs : LOAD = FLASH_CD,RUN = RAM_H0,LOAD_START(_RamfuncsLoadStart),LOAD_END(_RamfuncsLoadEnd),RUN_START(_RamfuncsRunStart),PAGE = 0最终效果如下:三、编译烧录1、Bulid工程文件,修改相应的错误。
2812串口烧写Flash步骤
旺仔教你学DSP考虑到众多买不起仿真器的劳苦大众!下面提供利用PC RS232 下载FLASH 到281x 的方法此教程, 适用与现在的所以C2000 系列,包括最小28335。
al,安装安装路径与CCS3.3 安装路 径相同; 2. 安装SDFlash 软件:SetupCCSPlatinum_v30329,安装路径与 CCS3.3 安装路径相同; 3. 编辑sdopts.cfg 文件(此目的是在SDFLASH 软件中能找到串口 端口号, 此文件存放在你所安装的windows 的System32 目录下(没 找到?(电脑的全部杀毒软件关了吗,赶紧关了再重新安装!))如下文本: C12IAL_FLASHC22IAL_FLASHC32IAL_FLASHC42IAL_FLASH3. F2812为从SCI-A 的启动模 式,复位时:GPIOF4=0 ,GPIOF12=0 ,GPIOF3=1, GPIOF2=1; (本人开发板配置跳线帽旁边已经标明配置电平例如MDXA 的 右边为一0,表示跳线帽接至0)(GPIOf4 为SCI_A TXD 端子,复位完成后应恢(要电脑的全部杀毒软件关了!!!)1、先安装sdf28xx_v3_3_seri (1)用记事本的方式打开sdopts.cfg(2)在"# End of sdopts.cfg”前加入[EmulatorId=C1]EmuPortAddr=0x EmuPortMode=RS23EmuProductName=SER [EmulatorId=C2]EmuPortAddr=0x EmuPortMode=RS23EmuProductName=SER [EmulatorId=C3]EmuPortAddr=0x EmuPortMode=RS23EmuProductName=SER [EmulatorId=C4]EmuPortAddr=0x EmuPortMode=RS23EmuProductName=SER 利用串口线连接DSP 与PC 机;配置复原DSP 能传输信号状态(拔出上面的跳线帽),否则无法进行FLASH 烧写)件夹,点击\sdf28xx_v3_3_serial\f2812默 lash.dll (for F281x devices),(路径在f2812 里)连接的串口,具体是哪个串口可查看:右击我的电脑-->看到具体是哪个串口,我的是COM4。
2812flash烧写flash心得、说明
//上面的放在程序之前
memcpy(&RamfuncsRunStart,
&RamfuncsLoadStart,
&RamfuncsLoadEnd - &RamfuncsLoadStart);
然后这个是放在系统初始化之后
下面这个是放在main函数之后
void InitFlash(void)
asm(" RPT#6 || NOP ");
}
不同频率下所需要插入的等待数目不一样
2812所用的外部时钟为30MHZ,在InitSysCtrl()函数中设置CPU的时钟频率,例如 PLLCR=0x0A 时,CPU的时钟频率为150MHZ;
在根据不同频率下片内flash所需要插入的等待数目:
这样子就可以了。
还可以这样子,将运行时所有的常量加载至RAM单元,但需要占用较多的RAM单元。
方法:复制整个.econst段至RAM单元。
在CMD文件和C文件中添加如下代码:
SECTIONS
{
.econst : LOAD = FLASHD, PAGE = 0
extern Uint16 RamfuncsLoadStart;
extern Uint16 RamfuncsLoadEnd;
extern Uint16 RamfuncsRunStart;
#pragma CODE_SECTION(InitFlash,"ramfuncs")
void InitFlash(void);
对时间敏感的函数代码如定时器加载到RAM中运行以优化性能
对关键的全局常量如数组加载至RAM运行以优化性能
2812的FLASH烧写
2812的FLASH烧写
TMS320F2812 FLASH烧写
1.1. 烧写软件的安装
打开“工具\CCS3.1烧写插件”目录下的文件:“C2000FlashPlugin1.13.0.exe”,并按照提示安装软件。
软件安装完成后,打开CCS 3.1,会出现下图红圈中的云状按钮。
1.2. 生成烧写文件
以键盘实验为例说明。
打开keyboard文件夹下面的.PJT工程文件。
从工程中移除文件:SRAM.cmd 。
如下图所示。
之后,添加FLASH.cmd 文件到工程。
如下图所示
在工具栏单击Release按钮,并重新编译。
Release 目录下的OUT 文件是最终烧写文件。
1.3. 烧写用户程序
点击云状物按钮,出现下图所示界面。
注意红框部分最好不要修改,也不要轻易点击“Lock”,否则2812 可能烧毁。
编程程序设定:
点击Execute Operation按钮即可开始烧写,此过程会出现多次进度条提示,分别是:clear、erase 、program 、check 等。
请耐心等待,程序会自动完成烧写过程。
烧写完成后关闭烧写界面。
如果信息栏出现如下图所示信息,说明烧写成功!
请将开发板断点后重新加电,即可。
F2812 Flash烧写步骤
F2812 Flash烧写步骤参考文档:TI手册:spra958f《Running an Application from Internal Flash Memory on the TMS320F28xx DSP》CCS帮助文档:TMS320F28xx On-Chip Flash ProgrammerSEED合众达电子论坛上的官方说明:使用F2812开发时需注意的问题最近有部分用户咨询:为何编译程序没有问题,可是烧录不进去,或者烧录成功了无法运行需要注意的问题:1,CMD:F2812与别的器件不同,在调试过程中使用的一般是对于SRAM的定义,编译一个SRAM.CMD,所以调试的时候没有问题,但是烧写FLASH的时候需要重新编写一个针对FLASH分配的FLASH.CMD文件,然后进行烧录。
注意:这个文件不能load到ram里面去。
2,lib:我们产品里面提供的lib文件是基于CCS2.2上面的,所以需要烧写的时候要求你的库文件随着CCS 的版本更新而更新库,否则无法烧录。
3,API:根据F2812的版本不同,烧写插件不同,需要注意一下,目前主要有CC, CE, CG,否则烧写一半会报错,然后CCS不能操控了。
调试过程总结:最开始直接参照CCS帮助文档的烧写步骤将开发板上的仿真例程直接烧录,天真的离谱!开始上网搜索FLASH.CMD,最终找到一个版本,并确认基本没有问题;2007-12-191.以合众达开发板SCI程序为模板:2.更换库文件为rts2800_ml.lib;3.更换链接文件为flash.cmd文件4.添加0x3F7FF6处的自动跳转汇编命令:spra958f第26页的CodeStartBranch.asm(代码同样可以在TI网站上免费下载),在CCS SCI 工程中将该文件添加到Source文件夹里即可;5.编译有Warning(待修改,Flash寄存器操作部分)[SCI_TEST.c] "C:\CCStudio_v3.3\C2000\cgtools\bin\cl2000" -g -k -q -fr"C:/CCStudio_v3.3/MyProjects/SCI/Debug" -d"_DEBUG" -d"LARGE_MODEL" -ml -v28 -@"Debug.lkf" "SCI_TEST.c"[Linking...] "C:\CCStudio_v3.3\C2000\cgtools\bin\cl2000" -@"Debug.lkf"<Linking>>> warning: load address of uninitialized section ramfuncs ignoredBuild Complete,0 Errors, 1 Warnings, 0 Remarks.6.参照CCS帮助文档:TMS320F28xx On-Chip Flash Programmer烧写步骤,注意的是CCS V3.3版本已自带最新的烧写插件Flash2812_API_V210版本,无需再去TI网站下载,只需按照帮助文档操作就可以了,网上也有徐工网友的翻译版操作流程。
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相同。
dsp2812falsh烧写经验总结
1、一般不用你换GEL.LIB文件,用原来的就可以.2、换完FLASH的CMD后,不要烧写,看下.MAP文件,主要是看 0X3F 7FF8处有没有烧内容.如果有别烧,改,直到这处没有烧入内容.3、如果没有烧入其他的内容,则可以烧了.烧完后,RESET CPU 看是不是到 0X3F FFC0处,如果不是,看是不是你的MP/MC=0了,并且是不是FLASH启动模式,即所有4个脚都是高(只要第一个脚是高就可以,即1XXX)4、如果RESET CPU 是到 0X3F FFC0处,即可以断电,并且拔掉与板子相连的仿真器接口(注意拔电脑上的USB不好使),然后上电,自动运行.注意:其中遇到的问题:烧写\时说初始化RAM,和寻找BOOT.ASM都不用管_如果说是 NOT AN execuTivefile ,则在PROJECT_BULIT OPTION_LINK_OUT MODLE _absolute file最重要是可以断电,并且拔掉与板子相连的仿真器接口(注意拔电脑上的USB不好使),然后上电,自动运行.我遇到的是这些,我用以上方法解决了,但不知道为什么,所以大家都说说经验,让新手烧走弯路,少LOCK28122812从内部flash启动的过程a)程序硬件复位或者软件复位b)判断mp/mc是否为0,微计算机模式(为1,当为微处理器模式时,2812内部的bootrom被禁止,通过zone7从外部调引导程序启动。
)c)为0则从boot rom启动,否则从外部启动(0x3F FC00)d) 到boot rom的0x3F FC00处取出复位向量,跳到boot函数:2812有一块flash地址从0x3F F000-0x3F FFFF在出厂时ti已经固化好了引导程序iniboot:Iniboot函数判断几个GPIO引脚来判断使用哪一种引导模式,比如flash boot模式,检测SPICLKA,SCITXA,GPIO34的电平,当都为高电平时表明是片内flash boot模式,那么initboot执行完后跳转到0x3F 7FF6处)e)采集io管脚状态,确定启动模式。
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\s pecdig'sdflash'mydrivers'DS P281x_v3_0\DS P281x_serial\build \F28xxSerialFlas h(2设置好你的目标板相应的时钟频率在Flash280x_API_Config.h中相应的PLL时钟,我使用的是20M晶掁则选择:#defi ne CP U_RATE 10.000L // for a 100MHz CPU clock sp eed (SYSCLKOUT(3保存并编译项目文件,生成F2812SerialFlash.out文件存放在:C:\CCStudio_v3.1\s pecdig'sdflash'mydrivers'DS P281x_v3_0\DS P281x_serial\bin注:确定你的程序空间定义在flash段,(在CMD文件修改第四步:安装SdFlashV1.60或更高版本第五步:编辑sdopts.cfg文件,此文件存放在你所安装的windows的System32目录下(1用记事本的方式打开sdopts.cfg(2在"# End of sdopts.cfg前加入如下文本:[Emulatorld=C1]Emu Po rtAddr=0xC1Emu PortMode=RS232EmuProductName=SERIAL FLASH[EmulatorId=C2]EmuPo rtAddr=0xC2EmuP ortMode=RS232EmuP roductName=SERIAL_FLASH[EmulatorId=C3]EmuP ortAddr=0xC3Emu PortMode=RS232EmuProductName=SERIAL FLASH[EmulatorId=C4]EmuPo rtAddr=0xC4Emu PortMode=RS232EmuProductName=SERIAL FLASH第六步:打开SDFlash按SDFIash_Serial_RefGuide_v3_0.pd提供的方法指定算法文件路径在Project设置中,若你使用PC的COM1则选择仿真器为C1,C0M2则选择C2第七步:将DSP的SCI_A和PC的RS232 口连接.将DSP的如下脚管置为相应的电平,然后复位复位时:GPIOF4=0 GPIOF12=0 GPIOF3=1 GPIOF2=1注:GPIOf4为SCI_ATXD端子,复位完成后应恢复原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相同。
DSP2812傻瓜式烧写步骤
本文关于DSP2812的烧写做一个简单的归纳,其实是防止自己忘记;
现在以该文件夹下的LQG_CTRL_2014.04.22V2zhengshiban工程为例,进行说明;1,将原来在ram中运行的ram.cmd替换成工程中的Flash_Link.cmd;
2,将DSP281x_CodeStartBranch.asm和DSP281x_MemCopy.c两个文件添加到工程中;
3,打开工程中的主函数,在主函数中添加一下语句
:
在添加这一语句之前要给出函数的初始化和变量的定义,主要是这几部分的定义和说明:
此语句可以加在经常用的DSP28_Device.h的头文件中
还有就是添加
这个函数和
这个函数;
4,以上几步做完之后就可以编译程序,编译完成之后可能会提示:
的警告,不用管,再次编译,则警告不见;
5,连接仿真器,使用tools下拉菜单中的f28xx on-chip flash programmer,打开后呈现如下界面:
6,下面就是设置系统的时钟,烧写密码,如果是第一次烧写,请点击Flash Programmer Setings呈现如下界面:
点击Browse得到如下的界面:
将上图中的.out文件打开,即可
7,点击右边的执行操作按钮,则会出现擦写、编程、校验的进度条(可以选择单独擦写或者其他的选择,具体的见于选择框)
8,烧写成功后,CCS的任务栏会出现烧写成功的提示:
9,断电,拔除仿真器,再次上电即可看到,程序执行的现象。
成功烧写TMS320F2812经验
}
SECTIONS
{
/* Allocate program areas: */
.reset : > BEGIN PAGE = 0
/* Peripheral Frame 2: */
SYSTEM : origin = 0x007010, length = 0x000020
SPI_A : origin = 0x007040, length = 0x000010
SCI_A : origin = 0x007050, length = 0x000010
XINTRUPT : origin = 0x007070, length = 0x000010
GPIOMUX : origin = 0x0070C0, length = 0x000020
GPIODAT : origin = 0x0070E0, length = 0x000020
CSM : origin = 0x000AE0, length = 0x000010
XINTF : origin = 0x000B20, length = 0x000020
CPU_TIMER0 : origin = 0x000C00, length = 0x000008
PIE_VECT : origin = 0x000D00, length = 0x000100
/* Peripheral Frame 1: */
ECAN_A : origin = 0x006000, length = 0x000100
ECAN_AMBOX : origin = 0x006100, length = 0x000100
通过串口烧写DSP片内Flash的新方法
通过串口烧写DSP片内Flash的新方法符玉襄;孙德新;刘银年【期刊名称】《科学技术与工程》【年(卷),期】2013(013)024【摘要】在DSP开发过程中,传统通过串口烧写Flash的方法有一个共同特点:必须事先在Flash里面放置初始代码,上电后先运行初始代码,再利用它把用户程序烧写到Flash.当DSP应用在卫星载荷上时,Flash的存储单元可能发生单粒子翻转,不论是用户程序还是初始代码都有失效的风险.以TMS320F2812为例,提出了一种通过串行通信接口烧写Flash的新方法;该方法利用DSP的自举引导功能,上电后先加载烧写程序,再加载用户程序,利用前者把后者烧写到Flash,从而不需要在Flash 中放置初始代码.地面实验表明,该方法可操作性强,程序运行稳定.%In the development of DSP,traditional methods of writing Flash via serial port have a common characteristic.The initial-code must be placed inside Flash in advance.After power on,the initial-code first be executed,then utilize it to write user-program into Flash.When DSP applied in satellite payload,single event effect may cause the Flash storage unit to happen flip.Both user-program and initial-code have the risk of failure.Based on TMS320F2812,a new method of writing Flash via SCI is proposed.This method utilized DSP's bootload.After power on,first loaded writing-program and then loaded user-program.The later was wrote into Flash by the former,thus avoiding placing initial-code inside Flash.Groundverification shows that this method is of strong operability,and program works well.【总页数】4页(P7219-7222)【作者】符玉襄;孙德新;刘银年【作者单位】中国科学院上海技术物理研究所,上海200083;中国科学院上海技术物理研究所,上海200083;中国科学院红外探测与成像技术重点实验室,上海200083;中国科学院上海技术物理研究所,上海200083;中国科学院红外探测与成像技术重点实验室,上海200083【正文语种】中文【中图分类】TP368.1【相关文献】1.一种烧写TMS320F2xxDSP片内 Flash存储器的方法 [J], 崔伟成;赵修平;吕小勇;刘林密2.TMS320F2812片内Flash在线烧写技术研究 [J], 李静;张树团3.基于CCS的DSP片外Flash直接烧写设计 [J], 孙秋生;陈尚峰4.一种基于TMS320C 6713串口烧写FLASH实现自启动的方法 [J], 官琴;赖文娟;张筱波5.基于串口通信的DSP在线烧写技术研究 [J], 刘浩;李荣冰;刘建业;周彬因版权原因,仅展示原文概要,查看原文内容请购买。
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启动。
F2812烧写个人总结----增加程序知识分享
F2812烧写个人总结----增加程序F2812烧写个人总结----增加程序在仿真器中将程序调试好,将程序烧入flash之前,需要做以下工作:一、硬件上确保DSP的XMP/MC管教接地,且SCIATXDA脚接高电平;XMP/MC接地为低电平:表示微机算计模式,那么0x3F FFC0指向的是2812的片内FLASH的地址。
上电复位后,复位向量是指向片内Flash的0x3F FFC0。
2812有一块flash地址从0x3F F000-0x3F FFFF在出厂时已经固化好了引导程序。
在0x3F FFC0处是一条跳转指令,跳到iniboot(地址0x3FFB50)函数处执行iniboot代码,该iniboot代码就是ti在dsp出厂时固化在flash中的。
Iniboot函数判断几个GPIO引脚来判断使用哪一种引导模式,比如flash boot模式,检测SPICLKA,SCITXA,GPIO34的电平,当都为高电平时表明是片内flash boot模式,那么initboot执行完后跳转到0x3F 7FF6处,此位置刚好在128位(CSM)密码位置之前,你要在0x3F 7FF6处放置跳转指令(codestart:>BEGIN,PAGE=0 ),以跳转到你要去的地方。
BEGIN : origin = 0x3F7FF6, length = 0x000002/* Part of FLASHA. Used for "boot to Flash" bootloader mode. */codestart : > BEGIN PAGE = 0SCIATXDA脚接高电平:是为那选择2812以FLASH作为引导模式我们在这里可以看到Flash启动模式,需要将GPIOF4,设置为高电平,其他三个引脚状态任意。
其配置如下:二、向工程中添加F2812_EzDSP_FLASH_lnk.cmd文件,它是用于flash烧写的CMD文件,用于替换原有的用于RAM中调试的F2812_EzDSP_RAM_lnk.cmd文件。
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)。
第一步:安装CCS3.1或更高版本下面以3.3为例
第二步:安装串口编程算法项目文件插件:sdf28xx_v3_3_serial(不同CCS对应不同版本插件,此插件与CCS3.3对应),安装在CCS根目录下
第三步:安装SdFlashV1.60或更高版本,安装在CCS根目录下
第四步:编辑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,路径为…\CCStudio_v3.3\specdig\sdflash\bin下(在打开CCS的前提下,还需打开要加载的工程,SDFlash.exe才能打开)
第六步:打开F2812SerialFlash.sdp工程
路径为…\CCStudio_v3.3\sdflash\myprojects\sdf28xx_v3_3_serial\f2812
打开Project-setting菜单,分别对target、erase、Programming、Verify进行设置Target:…\CCStudio_v3.3\sdflash\myprojects\sdf28xx_v3_3_serial\f2812\F281xRS232Flash.dll 若使用PC的COM1则选择仿真器为C1,COM2则选择C2
Erase:…\CCStudio_v3.3\sdflash\myprojects\sdf28xx_v3_3_serial\f2812\F2812SerialFlash.out Programming:
(1)…\CCStudio_v3.3\sdflash\myprojects\sdf28xx_v3_3_serial\f2812\F2812SerialFlash.out (2)flash data 载入要烧写的文件工程最好放在…\CCStudio_v3.3\MyProjects下,避免不必要的麻烦
Verify:…\CCStudio_v3.3\sdflash\myprojects\sdf28xx_v3_3_serial\f2812\F2812SerialFlash.out 其余不用改动,按默认值就可以。
如图所示
设置完成后保存工程。
第七步:将DSP的SCI_A和PC的RS232口连接以SCI-A模式重新上电或复位
DSP的SCI-A启动模式:GPIOF4=0 GPIOF12=0 GPIOF3=1 GPIOF2=1
特别注意:GPIOF4为SCI_A TXD端子,复位完成后(几秒钟后即OK),应马上恢复原DSP 能传输信号状态。
第八步:复位SDflash,点击Reset红色键
第九步:点击SdFlash菜单的Flash项,再点击Start即可。
第十步:烧写成功后,一定要掉电并拔掉RS232连接,重新上电以Flash模式启动。
系统默认采用30M晶振,如不是该频率,参考SDFlash_Serial_RefGuide_v3_3.pdf对算法工程文件进行修改。