2014-01-18 59 views
0

我對Arduino相當陌生,但不是編程。我最近買了一個Arduino Uno,儘管最初知道它只能用c編程,但我想看看我能否用匯編語言編程。如果任何人能夠告訴我我如何可以在Mac OSX上或推薦任何教程來學習這一點,將不勝感激。此外,如果這個問題是多餘的,我很抱歉,但請轉到我回答我的問題的答案。如何在os x上用匯編語言編寫Arduino?

回答

4

幾個選項。

  1. 您可以使用avr-as.exe或make文件來AVR GCC。
    1. 對於Mac,我會推薦AdaFruit's Mac Setup Guide
    2. avr-gcc-4.8_2013-03-06_mingw32.zip download最新。您還可以使用與Arduino的的IDE

您可以得到以下窗口MAC下運行提供4.3.2。

  1. WINAVR瓦特/ AVR GCC website
  2. WINAVRASM tutortial

而對於任何OS

  1. Arduino的IDE與聯彙編。 (偉大,因爲在裝配腳溼)

後來實際使用的Arduino的IDE有沿一側的C++直接組裝,因爲它是用GCC,有顯著好處是可以繼續使用Arduino的引導裝載機。

您可以通過。\ 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" \ 
) 

http://www.nongnu.org/avr-libc/user-manual/inline_asm.html

+0

您可能w ^螞蟻指向的OS X工具,而不是... –

+0

我的壞。更新了MAC信息AdaFruit涵蓋了MAC的安裝工具鏈,非常透徹 – mpflaga