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.

[参考译文] TMS320F28069F:当通用存储器写入对 TMS320F28069F 有效时、无法修改汇编中的 SFR(例如 0x006C/0x006D)

Guru**** 2427060 points
Other Parts Discussed in Thread: TMS320F28069F

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

https://e2e.ti.com/support/microcontrollers/c2000-microcontrollers-group/c2000/f/c2000-microcontrollers-forum/1546655/tms320f28069f-cannot-modify-sfrs-in-assembly-e-g-0x006c-0x006d-while-general-memory-writes-work-on-tms320f28069f

器件型号:TMS320F28069F


工具/软件:

您好 TI 支持团队:

我正在为 TMS320F28069F 开发一个组装程序来切换 GPIO5。 作为设置的一部分,我测试了对和等常规存储器位置的写入操作,这些操作可以正常工作 — 我可以在调试期间验证0x00200x0022 CCS 存储器浏览器中的更新值。

但是,当我尝试写入特殊功能寄存器 (SFR )0x006C0x006DGPAMUX1,如或(例如,通过配置 GPIO5 )时,这些值不会更新并保持不变(例如,)0xFFFF

以下是相关代码:

.sect “.text"</s>“
.global _c_int00

c_int00:
;测试常规内存写入
MOVW DP、#0x000 >> 6
MOV @0x20、#0x1234
MOV @0x22、#0x6666

EALLOW
MOVW DP、#0x0060
MOV AL、@0x006C
和 AL、#0xFCFF
或 AL、#0x0000
MOV @0x006C、AL

MOV AH、@0x006D
和 AH #0xF3
或 AH、#0x08
MOV @0x006D、AH
EDIS

此处:
B HERE、UNC

Tools️ μ s  工具链: Code Composer Studio
 brainμ s  观察结果: 存储器写入是有效的、但 GPIO/SFR 更改在调试中不会反映出来。

您能否帮助我确定在这种情况下哪些因素可能会阻止对 GPIO 寄存器的访问?

提前感谢!

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

    尊敬的 Majd:

    您能否仔细检查您的项目是否正确拉取了 C 头文件以映射到 EALLOW/EDIS 宏? 这些宏允许写入器件上受保护的寄存器、并且很可能是您看不到值变化的原因  

    否则、另一个调试点是使用位字段访问来写入所需的 GPIO 字段、然后在 CCS 中进行测试。 如果这样适合您、则可以查看 CCS 中的反汇编视图并将其用作汇编程序的参考

    此致、

    彼得