CCS5.4烧写FLASH教程

更新时间:2024-04-13 04:16:01 阅读量: 综合文库 文档下载

说明:文章内容仅供预览,部分内容可能不全。下载后的文档,内容与下面显示的完全一致。下载之前请确认下面内容是否您想要的,是否完整无缺。

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、在主函数中添加一下代码: #ifdefFLASH

// 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 RAM

InitFlash(); // Call the flash wrapper init function #endif

并且在主函数前面定义变量:

externUint16RamfuncsLoadStart; externUint16RamfuncsLoadEnd; externUint16RamfuncsRunStart;

最终效果如下:

5、打开工程文件夹中的DSP28_SysCtrl.c,在程序开头添加以下语句:

#pragma CODE_SECTION(InitFlash, \);

并且检查此C文件中有没有定义InitFlash函数,如果没有,添加以下代码:

voidInitFlash(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(\); }

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工程文件,修改相应的错误。如果程序内容过大,如果不对CMD文件进行修改,就会出错。打开Release文件下的****.map地址映射文件,根据各部分的内存长度合理分配地址,然后回到CMD,对相应部分进行修改。

2、编译没有错误以后,点击debug按钮(绿色甲虫图标),完成FLASH程序的烧写。CCS5.4将擦除FLASH和下载.OUT文件都集成化了,这里不需要再进行额外的操作,如下图所示。

3、断开DSP电源,然后将仿真器连在DSP板子的一端拔走(注意:只断开仿真器的USB端和不断开连接DSP一端,会使DSP中的程序无法运行),最后再接

通DSP电源。

本文来源:https://www.bwwdw.com/article/7p0p.html

Top