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.

[参考译文] TMS320F28379D:Tmdxiddk379d 开发套件迁移环境日常初始化失败

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

https://e2e.ti.com/support/microcontrollers/c2000-microcontrollers-group/c2000/f/c2000-microcontrollers-forum/1069086/tms320f28379d-tmdxiddk379d-development-kit-migration-endat-routine-initialization-failure

部件号:TMS320F28379D
“线程”中讨论的其它部件:TMDXIDDK379D

使用 TMDXIDDK379D 开发套件,我想将 EnDat 例程(PM_endat22_BasicPosAcc_DelComp)添加到例程(FCL_f2837x_tmdxiddk)中。 添加例程后,程序将滞留在   endat.c 中的“While (endat22Data.dataReady !=1){}”(EnDat_Init())(如附图所示);

当我使用 TMDXIDDK379D 开发套件时,仅运行 ENDat 例程(PM_endat22_BasicPosAcc_DelComp)不会出现此问题,我可以准确地读取编码器的位置值。
在比较两个程序运行期间的程序集代码后,发现存在细微差别,但我不知道如何解决,如图所示。

希望能得到帮助,谢谢!

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

    在一种情况下,编译器似乎每次都在读取 dataReady 变量,但在另一种情况下,它不是。  请仔细检查 dataReady 是否定义为易失性。  之所以需要这种方法,是因为 dataReady 是在该函数的范围之外进行更新的。  如果编译器不知道可以自由地假设该值不会更改。  

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

    我的问题已经解决。 谢谢!