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.

[参考译文] TMDS570LS31HDK:正确的汇编语法

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

https://e2e.ti.com/support/microcontrollers/arm-based-microcontrollers-group/arm-based-microcontrollers/f/arm-based-microcontrollers-forum/784843/tmds570ls31hdk-correct-assembly-syntax

器件型号:TMDS570LS31HDK

您好!

我正在处理一个包含共享数据的项目、我将尝试通过互斥量来保护该项目。  我最初是通过启用和禁用中断来执行此操作、但在进一步读取时、我意识到这不是一种高效的方法、ARM 提供了有关原子性的特殊指令、主要是 LDREX、STREX。  在相关线程中、有一篇文章、其中包含 ARM 应用手册的链接、其中介绍了带有互斥量示例的 LDREX 和 STREX。

infocenter.arm.com/.../DHT0008A_arm_synchronization_primitives.pdf

我要查看的代码片段如下:

我不使用汇编语言、但我尝试将其集成到我的项目中、不幸的是、我仍然会遇到编译错误、例如非法符号、非法助记符、非法操作数... 是的、正如您所说的、装配不是我的强身。  是否有人可以帮助我、并在 code composer 中为我展示此代码的正确语法?

谢谢!

 

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

    我不太了解 ARM 汇编器语法、因此不能提供帮助。  例如、什么是 PROC?  这是启动函数还是宏的某种方式?   

    不是在汇编语言中实现、而是考虑在 C 语言中实现它、而是使用_LDREX 和_strex 等 ARM 编译器内在函数。  内在函数类似于函数调用、但通常在单个指令中实现。  在 ARM 编译器手册 中搜索标题为  ARM 指令内在函数的子章节。

    谢谢、此致、

    乔治

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

    尊敬的乔治:
    仅供参考:是的、PROC (过程开始)和 ENDP (结束过程)用于通知 ASM 编译器函数声明。
    自 i8086发布以来、这在古代汇编器中很常见。 一种更简单的方法是给出一个类型为"FUNC_001:"的标签、然后再调用它。
    BR
    Michail