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.

[参考译文] CCS/TMS320F28069F:CSM 不执行 OTP 内的程序

Guru**** 2551110 points


请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

https://e2e.ti.com/support/microcontrollers/c2000-microcontrollers-group/c2000/f/c2000-microcontrollers-forum/934158/ccs-tms320f28069f-csm-does-not-execute-programs-within-the-otp

器件型号:TMS320F28069F

工具/软件:Code Composer Studio

您好!

我使用了28069F 芯片并在 OTP(InstaSPIN)中使用了程序。 当我不使用 CSM 时、程序完全正常。 但是、一旦我使用了 CSM 函数、程序的其他部分是正常的、除了 OTP 中的程序无法正常调用、这会导致电机无法运行。原因是什么?


提前感谢您!

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    InstaSPIN 位于 ROM 中、而不是 OTP 中。 即使器件受到保护、应用程序也应在独立模式下正常运行。 您是否在尝试运行 InstaSPIN 代码之前解锁了器件? 您究竟看到了什么错误?

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

      在禁用 CSM。之前、电机旋转成功

    错误: 程序无法执行 InstaSPIN、电机无法工作。

    我执行了以下过程:

    #define CSM_ENABLE

    #ifdef csm_enable
    #pragma DATA_SECTION (halHandle、"ROM_accessed_data");
    #endif
    HAL_Handle halHandle;

    #ifdef csm_enable
    #pragma DATA_SECTION (gUserParams、"ROM_accessed_data");
    #endif

    在 CMD 文件中:

     ROM_accessed_data  :> RAMM1    page = 1.

    但我无法使用以下代码:

    #ifdef csm_enable
    //copy .econst 至 unsecure RAM
    if (* econst_end -* econst_start)

    Memcopy ((uint16_t *)&econst_start、(uint16_t *)&econst_end、(uint16_t *)&econst_ram_load);

    //copy .switch ot unsecure RAM
    if (* switch_end -* switch_start)

    Memcopy ((uint16_t *)&switch_start、(uint16_t *)&switch_end、(uint16_t *)&switch_ram_load);

    #endif

    因为 我不知道如何获取 &econst_start、&econst_.的地址。。。。。

    我知道如何将一个函数从闪存调用到 RAM 中执行、但 .econst 呢?

    这些提示是否可以帮助我成功使用 CSM?

    谢谢!!

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您可以使用链接器生成它们--请参阅您的 cmd 文件中的如何为 ramfuncs 生成起始值和结束值。 不过、我认为对于 F28069F 而言这不是必需的。

    您能否研究您的.map 文件并查看您是否可以识别不安全 SRAM (0xC000及更高版本以及 M0/M1)中是否有任何尝试访问安全 RAM/Flash 中任何变量的内容。

    惠特尼