自己写的一个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就有部分功能 函数不能实现了。
如果您解决了 能不能给我一点思路呀
谢谢!