DSP通过串口进行程序更新

【总结】DSP通过串口进行程序更新
绕了很多弯路,最终实现了通过串口更新程序,并未覆盖原始程序,使得如果更新程序不能正常运行的情况下,有重新恢复原始程序的可能。
几个主要步骤总结一下:
1、原始程序中已经有了相应的FlashAPI函数,并且正确烧写入Flash中,程序运行时可以监测串口中断,并将API函数放在RAM里运行。
2、更新的程序.cmd文件要合理配置,在我的程序里原始程序和更新程序存储在不同的Flash空间中,这样可以实现重新恢复原始程序的可能。
3、生成.hex文件。需要更新的程序经过编译没有错误后会生成.out文件,通过TI提供的Hex2000工具将.out文件转换成.hex文件。(文件开头为AA 08 00……)
4、转换的.hex文件中包含了所需更新程序的PC入口指针,每段数据块的大小以及数据块存储地址,这些数据应该准确无误的保存。这需要在原始程序中编写相关代码。特别提出的是,生成的.hex文件最后一些数是要写入0x3F7FF6出的值,这需要单独存储,这些数至关重要,只有正确写入才能执行正确的跳转指令,从而断电复位后运行更新后的程序。
5、.hex文件中的数据都是先写入RAM里,当接收完最后的值后,开始通过FlashAPI函数将这些数据正确无误的写入目的Flash地址。这里当然包括0x3F7FF6处的值。
最后,断电复位,新的程序就开始运行了!




TI DSP 281x无需仿真器,串口烧写Flash方法

作者:Free 文章来源:Free 点击数:320 更新时间:2009-10-20

注:此方法尚未经论证,按此方法操作之前,请慎重!

考虑到众多买不起仿真器的劳苦大众!下面提供利用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\F28xxSerialFlash

(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,即可!!!




相关文档
最新文档