This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

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

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

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

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

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

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

InitFlash();        这两句也加上了  

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


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


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

  • 你在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)

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

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

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

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

  • 有没有加code start .asm代码?

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

    ERIC

  • hi,

    Do you resolve this problem???

    你好

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

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

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

    谢谢!