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.

[参考译文] TMS320F280049M:从闪存运行的 CLA 示例

Guru**** 2529560 points
Other Parts Discussed in Thread: C2000WARE

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

https://e2e.ti.com/support/microcontrollers/c2000-microcontrollers-group/c2000/f/c2000-microcontrollers-forum/603463/tms320f280049m-cla-example-running-from-flash

器件型号:TMS320F280049M
主题中讨论的其他器件:C2000WARE

您好!

我正在尝试运行  一个具有构建配置 CPU1_FLASH 的 CLA CLA_ex1_ADC_fir 示例。 但我面临一个问题。 程序在 Interrupt_illegalOperationHandler (void)处结束、因此不执行 CLA 任务。 如果我将配置更改为 CPU1_RAM、则程序可以正常运行。 您知道什么可能出错了吗?  
我怀疑 memcpy 函数 ...  

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    我认为这与 ramfuncs 的 memcpy 和 CLA 代码/数据有关。 您是否正在使用最新的 C2000Ware? 这应该被修复。 之前、memcpy 的参数顺序不正确。

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

    [引用 USER="Sal Pezzino]]我认为这与 ramfuncs 的 memcpy 和 CLA 代码/数据有关。 您是否正在使用最新 的 C2000Ware? 这应该被修复。 之前、memcpy 的参数顺序不正确。

    SAL

    [/报价]

    感谢您的回复 Sal、

    我使用的是 C200Ware v1.00.01.00、因此它是最新版本。  
    我还验证了 memcpy 函数中的参数。

    memcpy (((uint32_t *)&Cla1ProgRunStart、(uint32_t *)&Cla1ProgLoadStart、(uint32_t)&Cla1ProgLoadSize);

    memcpy (((uint32_t *)&Cla1ConstRunStart、(uint32_t *)&Cla1ConstLoadStart、(uint32_t)&Cla1ConstLoadSize); 

    这些参数似乎顺序正确。

    现在、在执行 DEVICE_DELAY_US (1000)期间、程序仍在 INTERRUPT_ILLEGALOperationHandler (void)中结束;在按照所需的延迟对 ADC 进行初始化之后。  

    我删除了这个延迟(只是为了尝试)并且 CLA 任务被执行、然而一段时间后、 INTERRUPT_ILLEGALOperationHandler 再次发生。 因此、它与延迟函数无关。 我的观点是、处理器几乎没有执行任何操作、但仍然失败。
      INTERRUPT_ILLEGALOperationHandler (void)应该何时发生?
    当 CLA 执行任务时、存储器的某些部分是否有可能被意外地重新关闭?

    J.

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

    请更改.TI.ramfunc 的链接器命令文件分配


    .TI.ramfunc:load = flash_BANK0_SEC4,
    运行= RAMLS4、
    load_start (_RamfuncsLoadStart)、
    load_size (_RamfuncsLoadSize)、
    load_end (_RamfuncsLoadEnd)、
    run_start (_RamfuncsRunStart)、
    run_size (_RamfuncsRunSize)、
    run_end (_RamfuncsRunEnd)、
    PAGE = 0、ALIGN (4)

    SAL

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

    它正在工作! :-)

    谢谢你 Sal