我对Arduino相当新,但不是编程。我最近买了一个Arduino Uno,尽管最初了解到它只能用c编程,我想看看我是否可以用汇编语言编程。如果有人能够告诉我如何在Mac OSx上或推荐任何教程来学习这一点,我将不胜感激。此外,如果这个问题多余,我很抱歉,但请将我的答案提交给我。
答案 0 :(得分:4)
有几种选择。
您可以在MAC下运行以下窗口。
对于任何操作系统
后者实际上使用Arduino的IDE直接在C ++旁边进行组装,因为它使用的是GCC,具有显着优势,可以继续使用Arduino Boot加载器。
你可以通过。\ arduino-1.5.5 \ hardware \ arduino进行grep(文件搜索)。搜索“asm”的目录看了很多例子
示例:1
asm("nop");//50ns on 20Mhz, 62.5ns on 16Mhz
示例:2
__asm__ __volatile__ \
( \
"movw r0, %3\n\t" \
"sts %0, %1\n\t" \
"spm\n\t" \
"clr r1\n\t" \
: \
: "i" (_SFR_MEM_ADDR(__SPM_REG)), \
"r" ((uint8_t)__BOOT_PAGE_FILL), \
"z" ((uint16_t)address), \
"r" ((uint16_t)data) \
: "r0" \
);
示例3:
asm volatile ( \
"clr r26 \n\t" \
"mul %A1, %B2 \n\t" \
"movw %A0, r0 \n\t" \
"mul %A1, %A2 \n\t" \
"add %A0, r1 \n\t" \
"adc %B0, r26 \n\t" \
"lsr r0 \n\t" \
"adc %A0, r26 \n\t" \
"adc %B0, r26 \n\t" \
"clr r1 \n\t" \
: \
"=&r" (intRes) \
: \
"d" (charIn1), \
"d" (intIn2) \
: \
"r26" \
)
答案 1 :(得分:0)
以下是可能会回答您问题的博文:http://forum.arduino.cc/index.php/topic,37130.0.html
但正如RuggedCircuits所说:“最后的建议:这真的不值得”
希望它有所帮助!