打印

[转帖]DSP2812_FLASH烧写成功经验总结

[复制链接]
2404|17
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
linhai2009|  楼主 | 2009-10-15 22:18 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
DSP2812_FLASH烧写成功经验总结
        初次接触DSP2812的FLASH烧写,在“成功”锁死2块DSP2812和处理了一堆报错后,终于烧写成功。在此过程中在HELLODSP论坛中看到很多朋友也遇到过与我类似的问题,为了让更多的新手朋友少走弯路,将我4天折磨的烧写过程经验与大家分享,本人菜鸟初学,有错误之处,敬请指教。
        其中CMD\LIB\ASM文件,我都是在一个同事给北京瑞泰开发板给的例程中找到,大家可以参照。
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引脚的F4\F12\F3\F2决定了DSP2812的启动顺序,而从FLASH必须要在F4(SCITXDA)为1,而F12\F3\F2随意的状态下启动。请大家启动前确认F4引脚电压。

另外:对于在汇编程序的FLASH烧写,我有同事正在做,到时候整明白了,一起放上来给大家。
错误之处,各位GGMM请多指教。

相关帖子

沙发
beny5566| | 2009-10-16 12:58 | 只看该作者
学习了
总结的挺好啊

使用特权

评论回复
板凳
20801233| | 2009-10-16 14:30 | 只看该作者
学习了
谢谢

使用特权

评论回复
地板
swolf| | 2009-10-16 14:41 | 只看该作者
谢谢
收藏了

使用特权

评论回复
5
thf2008| | 2009-10-16 23:42 | 只看该作者
好东西,收藏了

使用特权

评论回复
6
linhai2009|  楼主 | 2009-10-17 13:13 | 只看该作者
呵呵,这么多人收藏啊,继续去发现新东西

使用特权

评论回复
7
Dongfangyuxiao| | 2010-3-26 00:46 | 只看该作者
正在学习中!谢谢分享!:handshake

使用特权

评论回复
8
god_like| | 2010-3-26 08:36 | 只看该作者
好东西,学习了

使用特权

评论回复
9
happytiger2010| | 2010-3-26 08:46 | 只看该作者
这个不错,一定要吸取经验

使用特权

评论回复
10
ivws228138| | 2010-3-26 13:57 | 只看该作者
咋看起来比C6000外部FLASH的还复杂!

使用特权

评论回复
11
love_life| | 2010-3-28 22:27 | 只看该作者
写的不错,谢谢LZ 分享

使用特权

评论回复
12
hulan1985| | 2010-4-4 00:10 | 只看该作者
用2812的可得好好看看了

使用特权

评论回复
13
tiger2010| | 2010-4-4 10:24 | 只看该作者
听说2812很难买到,市场上有很多翻新货,不知道是不是真的

使用特权

评论回复
14
juventus9554| | 2010-4-7 17:39 | 只看该作者
中发好多都是旧的,真可恶!

使用特权

评论回复
15
llljh| | 2010-4-7 20:46 | 只看该作者
搞2812的人真多

使用特权

评论回复
16
god_like| | 2010-4-8 11:21 | 只看该作者
恩,2812用的挺火的

使用特权

评论回复
17
520810| | 2010-4-8 20:07 | 只看该作者
学习一下,

使用特权

评论回复
18
五谷道场| | 2010-4-8 20:40 | 只看该作者
成功者的经验啊,借鉴一下

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

191

主题

1930

帖子

2

粉丝