TI中文支持网
TI专业的中文技术问题搜集分享网站

28835程序RAM里运行正常,烧写到flash里不能正常运行的可能原因?

自己写的一个DSP程序在线RAM里调试时正常,但烧写到flash里不能正常工作。搜索网上相关资料,说有以下四种可能:

 1、CMD文件配置错误               后面因为空间不足是改过CMD文件,但为了排查这个可能找到以前没有改过的文件,烧写到flah里仍不行

2、编译选项不正确                     没有进行优化

3、定义了在RAM中运行的函数,但在调用函数之前没有将其复制到RAM中,使程序跑飞             检查过delay_us()和initflash()都没问题

MemCopy(&RamfuncsLoadStart, &RamfuncsLoadEnd, &RamfuncsRunStart);

InitFlash();        这两句也加上了  

4、FLASH寄存器配置不正确          用的官方的头文件,应该不太可能会有问题

请问诸位,还有什么其他可能造成这种现象?

Qing Yu1:

求指导啊,问题一直没有解决

自己写的一个DSP程序在线RAM里调试时正常,但烧写到flash里不能正常工作。搜索网上相关资料,说有以下四种可能:

 1、CMD文件配置错误               后面因为空间不足是改过CMD文件,但为了排查这个可能找到以前没有改过的文件,烧写到flah里仍不行

2、编译选项不正确                     没有进行优化

3、定义了在RAM中运行的函数,但在调用函数之前没有将其复制到RAM中,使程序跑飞             检查过delay_us()和initflash()都没问题

MemCopy(&RamfuncsLoadStart, &RamfuncsLoadEnd, &RamfuncsRunStart);

InitFlash();        这两句也加上了  

4、FLASH寄存器配置不正确          用的官方的头文件,应该不太可能会有问题

请问诸位,还有什么其他可能造成这种现象?

Gavin J:

你在RAM中运行的程序,是否已经有定义着RAM中? 例如:

#pragma CODE_SECTION(epwm1_timer_isr, "ramfuncs");

建议你检查下.map文件,看看这RAM里面运行的几个程序,是否都有被正确的复制到RAM中。

可以查看“SECTION ALLOCATION MAP”中的“ramfuncs” 来看看定义在RAM中运行程序是否都有在,起始地址是否正确。例如:

SECTION ALLOCATION MAP

output attributes/section    page   origin          length          input sections——–       —-      ———-       ———-        —————-ramfuncs  0        003f0000   0000001f    RUN ADDR = 00008000                             003f0000   0000001b   DSP2803x_SysCtrl.obj (ramfuncs)                             003f001b   00000004   DSP2803x_usDelay.obj (ramfuncs)

自己写的一个DSP程序在线RAM里调试时正常,但烧写到flash里不能正常工作。搜索网上相关资料,说有以下四种可能:

 1、CMD文件配置错误               后面因为空间不足是改过CMD文件,但为了排查这个可能找到以前没有改过的文件,烧写到flah里仍不行

2、编译选项不正确                     没有进行优化

3、定义了在RAM中运行的函数,但在调用函数之前没有将其复制到RAM中,使程序跑飞             检查过delay_us()和initflash()都没问题

MemCopy(&RamfuncsLoadStart, &RamfuncsLoadEnd, &RamfuncsRunStart);

InitFlash();        这两句也加上了  

4、FLASH寄存器配置不正确          用的官方的头文件,应该不太可能会有问题

请问诸位,还有什么其他可能造成这种现象?

HH Y:

无非就是有部分代码没有烧录到flash上而已。我以前碰到过,那是28035的CLA,用官方的例程,仿真时一切正常,断电重启就不行。折腾了三天,问了两个论坛,没人能说出个大概。后来终于明白,CLA自带的数学函数,用到一个表,这个表需要我自己配置在flash中,而官方的例程居然只有RAM的例子,没有flash的例子,想想看,CLA本来就冷门,资料少,CMD文件对于初学者无疑就是天书,配置CLA数学函数表的那些句子,谁知道是什么东西?谁能想到这个东西也需要配置?

学习TI的单片机就是苦,内心无数次想要放弃这个平台,可是,想想吧,这么难搞的平台,和STM32什么的满天飞比起来,不正显得我很高大上吗?我们的产品也有个亮点,现在竞争对手都是STM32或新塘或51,进口产品见过AVR和PIC的,就是没见到有人把TI的单片机用到此类产品上的。

自己写的一个DSP程序在线RAM里调试时正常,但烧写到flash里不能正常工作。搜索网上相关资料,说有以下四种可能:

 1、CMD文件配置错误               后面因为空间不足是改过CMD文件,但为了排查这个可能找到以前没有改过的文件,烧写到flah里仍不行

2、编译选项不正确                     没有进行优化

3、定义了在RAM中运行的函数,但在调用函数之前没有将其复制到RAM中,使程序跑飞             检查过delay_us()和initflash()都没问题

MemCopy(&RamfuncsLoadStart, &RamfuncsLoadEnd, &RamfuncsRunStart);

InitFlash();        这两句也加上了  

4、FLASH寄存器配置不正确          用的官方的头文件,应该不太可能会有问题

请问诸位,还有什么其他可能造成这种现象?

??????:

您好,我是DSP的初学者但是也遇到过类似的情况,当时我是工程下缺少asm文件,因此烧写程序后不能实现flash中汇编语言到C语言的跳转,因此根本没有跳进C主程序中,而在ram中调试不需要asm文件的跳转所以能再ram中正常运行,我当时忽略了这个文件,不知你是否缺少这个跳转文件。

自己写的一个DSP程序在线RAM里调试时正常,但烧写到flash里不能正常工作。搜索网上相关资料,说有以下四种可能:

 1、CMD文件配置错误               后面因为空间不足是改过CMD文件,但为了排查这个可能找到以前没有改过的文件,烧写到flah里仍不行

2、编译选项不正确                     没有进行优化

3、定义了在RAM中运行的函数,但在调用函数之前没有将其复制到RAM中,使程序跑飞             检查过delay_us()和initflash()都没问题

MemCopy(&RamfuncsLoadStart, &RamfuncsLoadEnd, &RamfuncsRunStart);

InitFlash();        这两句也加上了  

4、FLASH寄存器配置不正确          用的官方的头文件,应该不太可能会有问题

请问诸位,还有什么其他可能造成这种现象?

ming chen3:

回复 ??????:

应该还有Boot配置的可能性~

自己写的一个DSP程序在线RAM里调试时正常,但烧写到flash里不能正常工作。搜索网上相关资料,说有以下四种可能:

 1、CMD文件配置错误               后面因为空间不足是改过CMD文件,但为了排查这个可能找到以前没有改过的文件,烧写到flah里仍不行

2、编译选项不正确                     没有进行优化

3、定义了在RAM中运行的函数,但在调用函数之前没有将其复制到RAM中,使程序跑飞             检查过delay_us()和initflash()都没问题

MemCopy(&RamfuncsLoadStart, &RamfuncsLoadEnd, &RamfuncsRunStart);

InitFlash();        这两句也加上了  

4、FLASH寄存器配置不正确          用的官方的头文件,应该不太可能会有问题

请问诸位,还有什么其他可能造成这种现象?

Eric Ma:

有没有加code start .asm代码?

另外在main文件入口处加个gpio口翻转,观测一下看有没有跑到那里面去。

ERIC

自己写的一个DSP程序在线RAM里调试时正常,但烧写到flash里不能正常工作。搜索网上相关资料,说有以下四种可能:

 1、CMD文件配置错误               后面因为空间不足是改过CMD文件,但为了排查这个可能找到以前没有改过的文件,烧写到flah里仍不行

2、编译选项不正确                     没有进行优化

3、定义了在RAM中运行的函数,但在调用函数之前没有将其复制到RAM中,使程序跑飞             检查过delay_us()和initflash()都没问题

MemCopy(&RamfuncsLoadStart, &RamfuncsLoadEnd, &RamfuncsRunStart);

InitFlash();        这两句也加上了  

4、FLASH寄存器配置不正确          用的官方的头文件,应该不太可能会有问题

请问诸位,还有什么其他可能造成这种现象?

user5309389:

hi,

Do you resolve this problem???

你好

请问你最后解决这个问题了吗?

我遇到了类似的问题,调试的时候正常运行,但是烧入Flash就有部分功能 函数不能实现了。

如果您解决了 能不能给我一点思路呀

谢谢!

赞(0)
未经允许不得转载:TI中文支持网 » 28835程序RAM里运行正常,烧写到flash里不能正常运行的可能原因?
分享到: 更多 (0)