1
2
编辑: 最近的gcc版本支持内置的周期精确延迟:
(不过请注意:“ticks必须是编译时整数常量;不支持循环数可变的延迟。”)
我认为问题在于你对
如果它真的进行了编译,那可能只是因为编译器优化使gcc“识别”声明为变量的内容(
我的建议是这样的
不
使用
通过使用“正确”的约束,您可能会得到更健壮、更正确的代码,甚至可能更具性能,如:
使用“正确”约束还将要使用的特定寄存器集的选择留给gcc,这可能会导致围绕内联汇编语句进行更好的优化。
为了使事情更加可预测,您可能需要考虑强制gcc
总是
通过
有关avr-gcc中内联汇编程序约束的更多详细信息,请参见 avr-libc documentation 。此列表并非详尽无遗,因此请查看 gcc documentation 可能会不时被证明是有帮助的。 |
conopizda2 · 为什么我的静态数组没有被memset清除? 2 年前 |
jhe4x · C按位OR返回的值不正确 2 年前 |
Tim · 如何用c语言打印程序的执行流程# 6 年前 |
jatinBatra · 关于嵌入式固件开发[已关闭] 6 年前 |
Will · 嵌入链接器脚本-是否正确放置“堆栈”和“堆”区域? 6 年前 |
K. Crow · 不等于PIC32上启用中断时操作员不工作[关闭] 6 年前 |
spiff42 · 清除位时唯一的最大不同字节值集 6 年前 |