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.
请问,我声明了一个结构体,并定义了这个结构体对应的变量“ADC”,我将这个变量分配到了RAMLS7中,并且RAMLS7已经配置为了CLA的DATA RAM:
但是我在调试的时候,当我连接CPU的时候,变量窗口可以正确的读取其中成员的值,例如下图中的枚举:
而当我连接CLA进行调试的时候,所有的枚举成员的值都为0,并且右侧代码中的所有if条件语句都无法进入:
需要说明的是,这些枚举变量是在CPU中的CLA任务结束中断中进行更改的。
经过测试,发现,是因为enum在CPU和CLA中存储宽度不同导致的,在CPU中enum的类型为int16,而在CLA中eum的类型为int32,这导致在cla中读取enum类型的变量时结果不正确,可是应该如何让CLA能够正确的读取CPU定义的enum类型的变量?
我在英文论坛上找到了相同的问题,使用非enum类型的解决方案:
e2e.ti.com/.../tms320f28377s-size-of-enum-on-cpu-and-cla
但这让我在调试的时候很不舒服,因为无法使用enum的调试提示了