DSP2812 FLASH烧写成功经验总结

来源:本站
导读:目前正在解读《DSP2812 FLASH烧写成功经验总结》的相关信息,《DSP2812 FLASH烧写成功经验总结》是由用户自行发布的知识型内容!下面请观看由(电工技术网 - www.9ddd.net)用户发布《DSP2812 FLASH烧写成功经验总结》的详细说明。
简介:文章内容为个人的DSP2812 FLASH烧写成功的经验总结,希望对大家有用。

1.一定要下载最新的FLASH烧写插件,可以避免很多奇怪的错误出现,这一点非常重要,本人就是在此问题困扰了一整天。

名称是:

C2000-2[1][1].00-SA-to-UA-TI-FLASH2X.EXE

我使用的产品版本号为2.02.001

2.下载烧写FLASH配套CMD文件、LIB文件以及起始代码asm文件。

CMD文件名称:DSP281x_Headers_nonBIOS.cmd

CMD文件名称:F2812.cmd

LIB文件名称:rts2800_ml.lib

ASM文件名称:DSP281x_CodeStartBranch.asm

另外在RAM调试时用以下两个文件:

F2812_EzDSP_RAM_lnk.cmd

DSP281x_Headers_nonBIOS.cmd

附件给出了2个CMD文件、ASM文件、LIB文件以及C文件。

其中C文件仅仅作为大家参考。

3.配置C文件

配置好主程序的C文件,才能将FLASH成功烧录,并且将FLASH中的文件拷贝到RAM中运行。

关于C文件的配置。

首先在F2812.CMD文件中,我们可以看到有关于加载FLASH到RAM的内容:

ramfuncs: LOAD = FLASHD,

RUN = RAML0,

LOAD_START(_RamfuncsLoadStart),

LOAD_END(_RamfuncsLoadEnd),

RUN_START(_RamfuncsRunStart),

PAGE = 0

以及在C文件中调用FLASH 到RAM的函数memcpy,将它放在系统初始化(InitSystem();)之后即可:

InitSystem();

memcpy(&RamfuncsRunStart,

&RamfuncsLoadStart,

&RamfuncsLoadEnd - &RamfuncsLoadStart);

Initflash();

所以,我们需要定义所用变量:

extern Uint16 RamfuncsLoadStart;

extern Uint16 RamfuncsLoadEnd;

extern Uint16 RamfuncsRunStart;

我的这些定义都是:DSP281x_GlobalPrototypes.h 当中,当然,也可以放在其他系统初始化的地方。

Memcpy这个函数应该是rts2800_ml.lib库文件中自带的,不需要我们定义。

关于FLASH的初始化配置Initflash();

我把它放置在Memcpy函数之后。

关于ramfuncs,则在系统初始化中定义即可。如:sysctrl.c中

#pragma CODE_SECTION(InitFlash, "ramfuncs");

另外,许多朋友没有注意需要定义自己其他子程序,导致最终运行的主程序还是在FLASH中,比如你需要运行的子程序ABC,则需要定义#pragma CODE_SECTION(ABC, "ramfuncs")

烧写成功后的注意事项:

1.一定要拔除仿真器(JTAG端),给电路板重新上电,方能实现FLASH启动。

2.注意MP/MC引脚的电压。0为方式MC来作为计算机模式启动,3.3V为方式MP作为微处理器模式启动。

3.由于GPIO引脚的F4F12F3F2决定了DSP2812的启动顺序,而从FLASH必须要在F4(SCITXDA)为1,而F12F3F2随意的状态下启动。请大家启动前确认F4引脚电压。

提醒:《DSP2812 FLASH烧写成功经验总结》最后刷新时间 2024-03-14 01:08:09,本站为公益型个人网站,仅供个人学习和记录信息,不进行任何商业性质的盈利。如果内容、图片资源失效或内容涉及侵权,请反馈至,我们会及时处理。本站只保证内容的可读性,无法保证真实性,《DSP2812 FLASH烧写成功经验总结》该内容的真实性请自行鉴别。