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.

关于擦写F28M35H52C1的FLASH

使用芯片F28M35H52C1,需要在C28核代码中植入擦写程序,擦写区域是C28的全部FLASH,用的是F021_API_C28x_FPU32.lib库函数,并且在程序中使用pragma将操作FLASH的代码都指定到了ram区。但是在F021_API_C28x_FPU32.lib库函数中调用了rts2800_fpu32.lib库中的LL$$OR,并且无法用pragma将rts2800_fpu32.lib指定到ram区,在擦写rts2800_fpu32.lib所在区域的FLASH时就会产生错误。以前用F28335时也做过类似的代码,也是使用的TI提供的FLASH库函数,就没有这种问题。请问怎么解决?

  • 你在CMD文件中自定义一个段,然后在后边跟上 “ { -l rts2800_fpu32.lib < ***.obj > (.text) } ”,“***.obj” 可以替换为“LL$$OR”,就可以将“LL$$OR”,函数单独放到你指定的这个自定义段中。

  • 请问是这样么?

    GROUP
    {
         ramfuncs
         { -l F021_API_C28x_FPU32.lib}

         { -l rts2800_fpu32.lib } ”

    } LOAD = FLASHD,
    RUN = RAML0,
    LOAD_START(_RamfuncsLoadStart),
    LOAD_SIZE(_RamfuncsLoadSize),
    RUN_START(_RamfuncsRunStart),
    PAGE = 0

    这个方法我们试过,这样修改后程序就不能正常运行了

  • 是的,你把F021_API_C28x_FPU32.lib调用到的那个函数单独搬移到GROUP中试试,不搬移整个rts2800 library。