2014-01-18 3 views
0

Я довольно новичок в Arduino, но не для программирования. Недавно я купил Arduino Uno и, несмотря на то, что изначально узнал, что его можно запрограммировать только в c, я хотел посмотреть, могу ли я его программировать на ассемблере. Если бы кто-нибудь смог показать мне, как я могу на Mac OSX, или рекомендовать любые учебники для изучения этого, было бы весьма полезно. Также, если этот вопрос лишний, извините, но, пожалуйста, обратитесь к ответу, который отвечает на мой вопрос.Как программировать Arduino на языке ассемблера на os x?

ответ

0

Вот блог, который может ответить на ваш вопрос: http://forum.arduino.cc/index.php/topic,37130.0.html

Но как RuggedCircuits говорит: «Окончательное слово совета: это действительно не стоит»

Надеется, что это помогает!

4

Несколько вариантов.

  1. Вы можете использовать AVR GCC с помощью avr-as.exe или с файлом make.
    1. Для Mac я бы порекомендовал AdaFruit's Mac Setup Guide полностью.
    2. avr-gcc-4.8_2013-03-06_mingw32.zip download последних. Вы также можете использовать 4.3.2, который поставляется с IDE Arduino в

Вы можете быть в состоянии получить следующие окна для запуска под MAC.

  1. WinAVR ж/АВР НКУ website
  2. WINAVRASM tutortial

И для любой ОС

  1. Arduino IDE с встроенного ассемблера. (Отлично подходит для получения ноги мокрые в сборе)

Чем позже на самом деле с помощью IDE в Arduino, чтобы иметь сборку непосредственно вдоль стороны C++, так как она использует GCC, имеет существенное преимущество, что вы можете продолжать использовать Arduino бутсу погрузчик.

Вы можете grep (поиск файлов) через. \ Arduino-1.5.5 \ hardware \ arduino. каталоги ищут "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

Вы можете вес ant, чтобы указать на инструменты OS X ... –

+0

мой плохой. обновлено с помощью MAC-информации AdaFruit полностью устанавливает целую цепочку инструментов для MAC – mpflaga

Смежные вопросы