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/LAUNCHXL-F2.8377万S:移至闪存后,计时器ISR不能正常运行

Guru**** 2034120 points
Other Parts Discussed in Thread: CONTROLSUITE, C2000WARE
请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

https://e2e.ti.com/support/microcontrollers/c2000-microcontrollers-group/c2000/f/c2000-microcontrollers-forum/639463/ccs-launchxl-f28377s-timer-isr-doesn-t-perform-correctly-after-moving-to-flash

部件号:LAUNCHXL-F2.8377万S

工具/软件:Code Composer Studio

您好e2e:

我从 配有 controlSUITE的F2837xS_Examples_CPU1 v180中获取了buffdac_sine示例,并根据我的需要对其进行了修改。它的设计适合RAM,但工作正常。 但后来我不得不为UART添加sci,并将设计移至闪存。

计时器0 ISR通过向DAC写入样本来生成正弦波,不再执行预期的操作: 我看到的不是正弦波,而是DAC输出上对应于正弦波几个点的峰值,就好像ISR不是每隔一段时间执行一次,或者另一个中断的优先级高于它一样。

我读过,时间关键函数(如delay_us())应该复制到RAM中,这就是定义_flash时F2837xS_sysctrl.c的作用。 当我尝试为 整个中断例程指定ramfunc参数时,它抱怨链接器命令文件中缺少部分,即使它在__TI_Compiler_version >= 1500.9万中存在。 我还尝试了编译器无法识别的ramfuns参数,所以我决定寻求社区的帮助。

我对 链接器,编译器版本16.9 .4LTS使用标准2837xS_Generic_flash_lnk.cmd

我们非常感谢您的帮助

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

    您好,Ruslan,

    是否可以在C2000Ware中使用buffdac_sine示例? controlSUITE版本中存在一个错误,即闪存版本无法正常工作。

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

    谢谢Frank,

    使用c2000Ware的buffdac_sine示例和设备支持时仍然出现问题。

    我比较  了C2000Ware和controlSUITE中的buffdac_sine_cpu01.c,文件似乎是相同的。

    设备支持已更改(在 F2837xS_sysctrl.c和 2837xS_Generic_flash_lnk.cmd上可以看到),但两者都给了我不好的正弦波

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

    不应该是这样。 C2000Ware中的buffdac_sine示例应该使用“2837xS_FLASH_SGEN_Lnk_CPU1.cmd”进行闪存构建,而不是“2837xS_Generic_FLASH_lnk.cmd”。 除了定义_LAUNCHXL_F2.8377万S以使输出频率正确外,它仍应起作用。 仔细检查项目设置,确保闪存版本使用的是“2837xS_FLASH_SGEN_Lnk_CPU1.cmd”。 如果没有,请将其更改为,并查看其是否正常工作。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    没错,切换到 2837xS_FLASH_SGEN_Lnk_CPU1.cmd就成功了,谢谢

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    很高兴听到它现在在工作。 如果您还有任何疑问,请告知我们。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    我在CLA_ADC_FIR32示例之后,向项目添加了CLA功能。  当我将链接器命令文件更改为 2837xS_FLASH_CLA_lnk_CPU1.cmd以使我的CLA正常工作时,DAC输出上出现不齐正弦波的第一个POST返回。

    我在 buffdac_sine 示例中看不到任何数据节赋值,这些赋值将受到链接器文件从 2837xS_FLASH_SGEN_lnk_CPU1更改为 2837xS_FLASH_CLA_lnk_CPU1的影响

    是否可以在一个应用程序中运行SGEN和CLA?

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    您必须将以下内容添加到CLA链接器文件中:

    /*正弦表*/
    SINTBL :> FLASHN, PAGE =1 (页面=1)

    SINTBL DATA_SECA不是在buffdac_sin弦.c.中创建的 它是在示例链接的SGEN ASM文件之一中创建的。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    谢谢,它解决了我的问题