Arduino 어셈블리?


12

Microprocessing을 시작한 이래로 나는 사용 가능한 방대한 자원 때문에 Atmel AVR을 사용하기로 결정했습니다. 그리고 Arduino는 스타터 키트가 "내 수준에서"

문제는 어셈블리에서 먼저 배우고 C / C ++로 이동하거나 Arduino에서 사용하지만 Arduino가 AVR 어셈블리를 사용하지 않는다고 들었습니다. 이것이 사실입니까? 그들 주위에 어떤 방법이 있습니까?

감사

편집 : 나는 ATMEL STK500과 함께 갈 것이지만 첫 번째 타이머는 매우 복잡해 보입니까? 8 비트 AVR을 가져 와서 브레드 보드에 놓고 실험 할 수없는 이유가 있습니까? (나는 그들을 인터페이스하는 방법을 알아 내야 할 것 같아 ....)

edit2 : 이것은 내가 생각한 것입니다

http://www.adafruit.com/index.php?main_page=product_info&cPath=17&products_id=193


요즘 어때? 어떤 솔루션을 고려 했습니까? Arduino Uo를 구입하고 어셈블러에서 개발할 방법을 찾고있었습니다
sll

답변:


5

Arduino 보드는 어셈블리로 프로그래밍 할 수 있습니다. 보드에 쓰려면 ICSP 케이블 (In Circuit Serial Programmer) 케이블과 ATMEL이없는 AVR 툴체인 만 있으면됩니다. 그런 다음 온보드 디버깅의 이점을 얻습니다.

당신이 제안한대로, 당신은 브레드 보드에 ATMEL 칩을 때리고 마을로 갈 수 있습니다.

참조한 키트는 훌륭한 출발점처럼 보입니다. 전원을 올바르게 조절하고 시계를 고려하는 한 칩을 보드에서 바로 꺼내 자신의 브레드 보드에 붙일 수 있습니다.


나중에 나는 내 자신의 브레드 보드에 그것을 넣지 말아라.

@ Sauron-어-어느 쪽이든 좋다. 당신이 무엇을 사로 잡는가! 좋은 점은 개별 칩이 꽤 저렴하다는 것입니다 (몇 달러 정도).
RQDQ


2

내가 아는 한이 어려운 당신이 .HEX 파일을 소유 업로드 할 수 있습니다 대신 C로 아두 이노 IDE의 어셈블리를 사용하지 못할 수있는 아두 이노 부트 로더에 대해 아무것도 구체적으로하지만 아두 이노 부트 로더 것 같습니다해야 STK500 호환 그래서 avrdude와 함께 사용할 수 있어야합니다.


예, 실제로 Arduino IDE 자체는 avrdude를 사용하여 업로드를 수행합니다.
Chris Stratton 2013

1

Arduino 보드 (어쨌든 Uno 및 Duemilanove)에는 AVR Studio를 통해 Atmel 프로그래머 및 디버거에서 지원하는 표준 AVR 프로그래밍 커넥터가 있습니다. Studio는 어셈블러와 C를 지원합니다. 적합한 프로그래머는 AVRISP MkII이며 AVR Dragon은 프로그래밍과 디버깅을 모두 제공합니다. 나는 후자를 얻었고, $ 50에 더 비싸지 만 디버깅 기능은 매우 중요합니다. 브레드 보드 또는 PCB에 연결된 표준 AVR 칩 (Arduino 아님)과 함께 해당 도구를 사용할 수도 있습니다.


1

Arduino는 하드웨어와 IDE의 두 가지로 구성됩니다. IDE는 주로 (완전하지는 않지만) C와 C ++로 제한합니다 (개발자가 구문 / 설탕과 조금 더 유사하게 만들기 위해 던진 구문 설탕으로). IDE가 표준 스케치 (.pde)와 동일한 디렉토리에서 .s 또는 .S 파일을 인식 할 가능성이 있지만 모자를 쓰지 않을 것입니다.

하드웨어에는 특별한 것이 없습니다. 그것은 µC neophytes가 높이 평가할 수있는 멋진 기능을 갖춘 훌륭하고 친근한 보드입니다. 그러나 ISP 헤더를 통해 AVR을 프로그래밍하고 싶다면 그렇게 할 수도 있습니다. 당신은 같은 것을해야합니다 Atmel은 AVRISP MKII , 또는 아두 이노 보드의 2 × 3 행 커넥터와 함께 작동 다른 프로그래머. 애플리케이션을 업로드하는 데 사용할 avrdude 프로그램과 호환되는 프로그램을 찾으십시오. Adafruit의 USBtinyISP에서 멀리 떨어지십시오. 나는 그것으로 끔찍한 행운을 얻었고, 마우저에서 40 달러 미만으로 연결된 Atmel을 구입하게되었습니다.


1
이상한, 나는 또한 buspirate는 다양한 플랫폼을위한 ISP, 좋은 작은 도구로 두 배로 Atmel의 IDE와 usbtiny에 아무것도하지만 좋은 경험 했어
crasic

1

전혀 어렵지 않습니다.

http://www.dwelch.com/arduino/

내 카드에서 ser.c가 어떤 카드를 선택하는지 생각해야합니다. 일부는 기본적으로 다른 직렬 포트 속도를 사용하고 프로그래밍 모드로 들어가기 위해 다른 재설정 구성표를 사용합니다. arduino 펌웨어를 보면 avr 프로그래밍 명령이 거의 지원되지 않는다는 것을 알 수 있습니다. 어쨌든 필요하지 않습니다.


1

Aruduino는 어셈블리에서 절대적으로 프로그래밍 할 수 있습니다. ICSP 케이블이 필요하지 않습니다!

좋아, 공정성,이는 없습니다 처음부터 순수 어셈블리를 프로그래밍과 같은.

그러나 C에서 어셈블리를 인라인 할 수 있습니다. 즉, 인라인 어셈블리가있는 Arduino에 코드를로드 한 다음 실행합니다. Arduino가 NTSC / PAL을 TV로 출력 할 수 있는 TVOut 라이브러리를 고려하십시오 .

이 라이브러리는 매우 시간에 민감합니다 (TV로 출력하기 때문에 각 스캔 라인을 적시에 작성해야합니다). 따라서 인라인 어셈블리를 사용하여 프로세스 속도를 높입니다. 라이브러리 에서이 파일의 89 행을 살펴보면 저자는 그가 작성한 일부 어셈블리 매크로 를 사용하고 있습니다.

지금. 나는 그가 기본 Arduino IDE를 사용하여 작성하지 않았다고 생각합니다. 그러나이 라이브러리는 인라인 asm 코드를 호출하여 누구나 인터페이스를 통해 가져오고 컴파일하고 실행할 수 있습니다.

행운을 빌어 요!


2
실제로, 어셈블리 소스 파일도 할 수 있습니다. Arduino IDE를 건너 뛰고 avr-gcc (또는 어셈블러로 사용하는 모든 것) 및 avrdude와 같은 백엔드 도구와 직접 상호 작용하면됩니다.
Chris Stratton 2013

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.