[资料分享] 在TMS320F28XXX DSP上实现从flash拷贝整个程序到ram运行的方法

嵌嵌dsp论坛   2012-12-17 10:14 楼主
在TMS320F28XXX DSP上实现从flash拷贝整个程序到ram运行的方法
1.     前言
TMS320F28XXX DSP 里,代码从内部flash里运行,比从内部RAM里运行要慢30%左右,所以对运行时间苛刻的程序直接在flash里运行,往往不能满足要求。故而,需要将代码拷贝到RAM以提高运行速度。TI文档只提供了部分代码从flash拷贝到RAM中的方法。然而,在一些应用中,需要将整个代码段都拷贝到RAM中执行,以提高整体运行速度。本文通过对TMS320F28XXX 的启动代码研究,来探讨如何在从FLASH启动后将整个代码段拷贝到RAM中,然后在RAM中运行的方法。
2.     F28XXX 启动过程
F28XXX启动代码固化在内部ROM中。当F28XXX上电或者热复位后,首先由芯片本身将一些寄存器初始化:
PIE disabled(ENPIE=0,VMAP=1,OBJMDE=0,AMODE=0,MOM1MAP=1),
然后dsp会对XMPNMC管脚采样,根据采样值的高低,来决定启动模式是“微处理器模式”还是“微计算机模式”。当XMPNMC=0时,为“微计算机模式”,此时,启动ROM存储器被使能而XINTF Zone 7被禁止。复位向量从内部启动ROM获取,启动ROM在复位期间一直被使能。
       启动ROM里的复位向量(位于0x3FFFC0)指向InitBoot函数(位于0x3FFC00)。在完成器件初始化(InitBoot)之后,Boot loader将检查GPIO管脚的状态,然后再决定选用的启动模式。启动模式有4种:跳转到flash,跳转到H0 SARAM,跳转到OTP或者调用片上启动程
       InitBoot Function 所做工作有:1.初始化状态寄存器;2.将堆栈指针设为0x400;3.读CSM密码保护部分;4.调用SelectBootMode;5.调用ExitBoot
       在完成选择启动模式过程之后,根据选择的启动模式,dsp会跳到相应的启动入口。也可以自己选择启动入口。这些入口地址都在这之前已经被dsp定义好的。

TMS320F28XXX DSP flash ram

在TMS320F28XXX DSP上实现从flash拷贝整个程序到ram运行的方法.pdf (453.07 KB)
(下载次数: 304, 2012-12-17 10:14 上传)

回复评论 (3)

如果RAM不够用,就不能“全部”拷贝到RAM中运行

实际上,不管在什么情况下,都不要把所有程序放在ROM中,

所以,用“启动”方式来决定是否装载到RAM中的方法,并不适用。
点赞  2012-12-17 19:27
谢谢楼主,下下来看看!
点赞  2014-10-20 14:27
谢谢分享
点赞  2016-9-27 23:31
电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 京公网安备 11010802033920号
    写回复