我正在尝试学习Arduino Uno的程序集,目前,我正在使用Arduino IDE和.S文件,其中我覆盖了设置和循环功能。我想让Arduino收到一个连续字符并根据收到的字符做一些事情。但是,我似乎无法从.S文件中找到如何调用标准Arduino函数。具体来说,我想调用Serial.begin,Serial.read和Serial.available函数。如果有人能指出我正确的方向,我会非常感激。
修改
我能够从汇编中调用C函数(在这种情况下是延迟函数)并传递参数。现在我已经尝试为#34; Serial.begin(9600)"做同样的事情。以下代码:
.extern Serial.begin
setup:
ldi r22, 0b10000000 ; set 9600 as a long for the first parameter
ldi r23, 0b00100101
clr r24
clr r25
call Serial.begin ; call serial begin
...
我的想法是在寄存器r22:r25中移动9600,因为据我所知,它是第一个参数。我很肯定有更好的方法来做到这一点,但这就是我提出的方式。编译它会产生错误:"未定义引用`Serial.begin'"
如果有人能帮助我,我会很感激。