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.

28027 flash烧写,不用initflash和memorycy()程序只改CMD可以吗?

28027 flash烧写,不用initflash和memorycy()程序只改CMD可以吗?

我将RAMCMD改成flashcmd,程序可以烧写进flash,只要程序里不包括DSP28x_usDelay(Uint32 Count);

系统运行起来就没有问题。

我想请教各位学霸,这种方法和传统的memorycy()那种方法有什么区别???非常困惑!!!

程序里包含DSP28x_usDelay(Uint32 Count)时,系统运行就会进入错误中断中,请问如何解决!!请

赐教,感激不尽!!!

 

  • 如果用到memorycy()  也就是代码搬移   可能要用到初始化flash

    不做搬移   烧写到flash    利用CCS的烧写插件    就没啥问题

    关于usDelay延时     不调用的话  可以不使用

  • 我现在就是要用到28027中的adc模块,所以必须要用到DSP28027_usDelay();请问如何解决

    我查了资料说,把DSP28027_usDelay();放在程序靠后的地方,不要导致程序进入ram后,因为

    调用DSP28027_usDelay().obj而导致程序跑飞,但是按照这样的方法还是解决不了,请问如何做呢?

  • 已经解决进入非法中断问题,现在的问题是,直接烧写程序到FLASH和用

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

    方法的区别?谢谢! 

  • 主要是运算速度的问题,flash中运行比ram中运行要慢很多,所以一般运用会将关键代码搬移到ram中运行,以提高性能

  • DSP28027_usDelay();汇编文件中的位置加入.text

    .text
    .def _DSP28x_usDelay
    .sect "ramfuncs"

    .global __DSP28x_usDelay
    _DSP28x_usDelay:
    SUB ACC,#1
    BF _DSP28x_usDelay,GEQ ;; Loop if ACC >= 0
    LRETR