![]() |
1
2
编辑: 最近的gcc版本支持内置的周期精确延迟:
(不过请注意:“ticks必须是编译时整数常量;不支持循环数可变的延迟。”)
我认为问题在于你对
如果它真的进行了编译,那可能只是因为编译器优化使gcc“识别”声明为变量的内容(
我的建议是这样的
不
使用
通过使用“正确”的约束,您可能会得到更健壮、更正确的代码,甚至可能更具性能,如:
使用“正确”约束还将要使用的特定寄存器集的选择留给gcc,这可能会导致围绕内联汇编语句进行更好的优化。
为了使事情更加可预测,您可能需要考虑强制gcc
总是
通过
有关avr-gcc中内联汇编程序约束的更多详细信息,请参见 avr-libc documentation 。此列表并非详尽无遗,因此请查看 gcc documentation 可能会不时被证明是有帮助的。 |
![]() |
MaPo · Linux,设置锁定ICMP_过滤器选项 5 月前 |
![]() |
Doohyeon Won · 内联函数上的奇怪现象?[关闭] 5 月前 |
![]() |
Bobby · 复合字面值总是左值吗? 5 月前 |
![]() |
9-Pin · C: 嵌套结构的堆栈内存分配 5 月前 |