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.
大家好、在 F2803x 多日技术讲座中、介绍了 F28x 原子读/修改/写。 示例如下:
因此、我在我的代码中进行测试、如下所示、将会出现错误:
警告#99922:"../example_2803xLEDBlink.c"、第35行:汇编语句"and
*XAR1,#0x1234"创建一个标签,可能不是预期的。 使用
在标签或非标签前的空格后面加上冒号、以使警告静音。
警告#99922:"../example_2803xLEDBlink.c"、第35行:汇编语句"and
*XAR1,#0x1234"创建一个标签,可能不是预期的。 使用
在标签或非标签前的空格后面加上冒号、以使警告静音。
1组装错误、无组装警告
>>编译失败
subdir_rules.mk:65:目标'example_2803xLEDBlink.obj'的配方失败
"C:\Users\a0223719\AppData\Local\Temp\{4543FEC9-CF37-4246-8C43-FE6DB9DEDA45}"、错误! 在第138行:
[E0002]
助记符规范无效
和*XAR1、#0x1234
1.为什么会出现错误?
2.我在 SPRU430F 中找不到任何像 "and *XAR2,#1234h"这样的原子指令,我只能找到类似的基本汇编语言指令
"MOV AL、* XAR2.
和 AL、#1234h
MOV *XAR2, AL"
是否提供了原子指令列表?
3.在汇编语言中、我能否直接写入原子指令而不是汇编语言指令? 如果我用 C 语言编写代码、编译器会在可能的情况下自动生成原子指令吗?
[引用用户="Howard Zou"]警告#99922:"../example_2803xLEDBlink.c",第35行:汇编语句"和
*XAR1,#0x1234"创建一个标签,可能不是预期的。 使用
在标签或非标签前的空格后面添加冒号以使警告静音。
在 C28x 汇编中、第一列保留用于标签。 您需要在"和和之间输入一个空格。 这会将和移出第一列。
asm ("和... ");
一般而言、我会避免使用 asm ("...")。 我记得、如果您在 asm (")语句中修改寄存器、会使 C 环境混乱、并且会干扰优化。 编译器论坛中的专家将能够在实际应用中更好地评论这种做法。
[引用用户="Howard Zou"]
2.我在 SPRU430F 中找不到任何像 "and *XAR2,#1234h"这样的原子指令,我只能找到类似的基本汇编语言指令
"MOV AL、* XAR2.
和 AL、#1234h
MOV *XAR2, AL"
是否提供了原子指令列表?
[/报价]
没有列表。 通常、执行读-修改-写的指令是原子-示例:OR、AND、XOR... 浏览 SPRU430、一些指令在说明中提到了这一点。 很遗憾、没有完整的列表。
XAR2、#1234h 是格式和 loc16、#16bitSigned 的指令、在第154页进行了说明。
[引用用户="Howard Zou"]3. 在汇编语言中、我能否直接编写原子指令而不是汇编语言指令? 如果我用 C 语言编写代码、编译器会在可能的情况下自动生成原子指令吗?
原子指令是汇编语言指令。
是的、编译器会尽可能使用这些指令。
-洛里