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.

TMS320F28034 Flash操作仿真与实际运行不一致

Other Parts Discussed in Thread: CONTROLSUITE

我最开始是进行在线仿真,flash擦除,写入均正常,断电直接从flash启动,进行擦除操作就会提示错误,错误为STATUS_FAIL_ZERO_BIT_ERROR,

开始说是因为flash操作需要放到ram中执行,我把需要操作flash的函数迁移到ram中,下面是迁移的代码:CMD

Main函数:

函数代码:

这样操作之后仍然不能在断电之后进行操作。

对于Flash_API的函数运行需要在SRAM,可是cmd文件并没有SRAM部分,有没有办法解决我在不进行仿真的情况下操作flash.???谢谢

  • 对于使用这段话,希望能得到解答

  • Eric:
    所以问题还是由于你没有把flash操作的代码复制到RAM中导致出错的。
    你可以参考controlSUITE中这个例程。

    C:\ti\controlSUITE\device_support\f2803x\v130\DSP2803x_examples_ccsv5\flash_programming
    在CMD中,有如此的定义

    Flash28_API:
    {
    -lFlash2803x_API_V100.lib(.econst)
    -lFlash2803x_API_V100.lib(.text)
    } LOAD = FLASHA,
    RUN = PRAML0,
    LOAD_START(_Flash28_API_LoadStart),
    LOAD_END(_Flash28_API_LoadEnd),
    RUN_START(_Flash28_API_RunStart),
    PAGE = 0
    同时包括这个函数:
    #pragma CODE_SECTION(Example_CallFlashAPI,"ramfuncs");
    void Example_CallFlashAPI(void)
  • 问题已经解决了,谢谢您的回答,具体愿意是需要:
    // EALLOW;
    // Flash_CPUScaleFactor = SCALE_FACTOR;
    // EDIS;
    //
    // EALLOW;
    // Flash_CallbackPtr = &MyCallbackFunction;
    // EDIS;
    添加了这两条语句就可以正常使用了,之前已经进行了搬运。谢谢