어셈블리가있는 Arduino?

저는 마이크로 프로세싱에 대한 모험을 위해 사용 가능한 방대한 리소스로 인해 Atmel AVR을 사용하기로 결정했습니다. Arduino도 많은 것 같습니다. 스타터 키트가 내 수준에서 더 " 인 것 같습니다. "

문제는 먼저 어셈블리에서 배우고 나서 C / C ++ 또는 아두 이노가 사용하는 무엇이든 가고 싶습니다.하지만 아두 이노가 AVR 어셈블리를 사용하지 않는다고 들었습니다. 이것이 사실입니까? 그 문제를 해결할 방법이 있습니까?

편집 : ATMEL STK500을 사용하지만 첫 번째 타이머의 경우 매우 복잡해 보입니다. “8 비트 AVR을 가져와 브레드 보드에 올려 놓고 그런 식으로 실험 할 수없는 이유가 있습니까?”(그렇게 인터페이스하는 방법을 찾아야 할 것 같습니다.)

Edit2 : 이것이 제가 생각했던 것입니다.

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

댓글

  • 어떻게 진행되고 있습니까? 그래서 어떤 솔루션을 고려 했습니까? 저는 Arduino Uo를 구입하고 어셈블러로 개발할 방법을 찾고 있습니다.
  • 어셈블리 언어에 89c51 (8051) 컨트롤러를 사용하는 것이 좋습니다

답변

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

제안했듯이 브레드 보드에 ATMEL 칩을 치고 마을로 갈 수 있습니다.

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

편집 : 어셈블리 프로그램을로드하는 데 ICSP가 필요하지 않습니다 . 자세한 내용은 아래 설명을 참조하십시오.

설명

  • 예, 저는 ' 이제 내 브레드 보드에 넣지 않기를 원합니다. 회로.
  • @Sauron-하-어느 쪽이든 좋습니다. 무엇에 매료 되든 상관 없습니다. 좋은 점은 개별 칩이 매우 저렴하다는 것입니다 (몇 달러 정도).
  • 이 대답은 상당히 오해의 소지가 있습니다. ISP가 필요하지 않습니다 . Arduino에서 사용하는 부트 로더는 Arduino 프로젝트보다 이전 버전이며로드되는 파일이 컴파일러 또는 어셈블러에서 생성되었는지 전혀 알 수 없습니다. don ' 아두 이노의 부트 로더가 하드웨어를 대상으로하는 프로그램을 작성하는 방법과 관련이 있습니다. 모든 출처 의 코드를 칩으로 가져 오는 편리한 메커니즘입니다.
  • @ChrisStratton-피드백 감사합니다. 귀하의 의견을 반영하기 위해 ' 내 답변을 업데이트했습니다.

답변

Arduino IDE는 어셈블리 코드를 수용하기 위해 “고정”될 수 있습니다. 위키는 다음과 같습니다. http://www.cs.nmsu.edu/~jcook/arduino/index.php?n=Notes.AssemblyMods

댓글

  • URL이 깨진 것 같습니다

답변

내가 아는 한 C 대신 어셈블리를 사용하지 못하게 할 수있는 Arduino 부트 로더에 대해 구체적이지 않습니다. Arduino IDE는 소유 한 .hex 파일을 업로드하기 어렵게 만들 수 있지만 Arduino 부트 로더처럼 보입니다. STK500과 호환되므로 avrdude와 함께 사용할 수 있습니다.

댓글

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

답변

전혀 어렵지 않습니다.

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

선택하려면 내 페이지에서 ser.c를 확인해야합니다. 어느 카드. 일부는 기본적으로 다른 직렬 포트 속도를 사용하고 프로그래밍 모드로 들어가기 위해 다른 재설정 체계를 사용합니다. arduino 펌웨어를 살펴보면 avr 프로그래밍 명령이 실제로 지원되지 않는 것을 알 수 있습니다. 어쨌든 실제로 필요하지 않습니다.

Answer

arduino는 GCC-AVR Inline Assembler를 사용하여 어셈블리로 프로그래밍 할 수 있습니다. GCC-AVR 인라인 어셈블러 설명서

http://web.stanford.edu/class/ee281/projects/aut2002/yingzong-mouse/media/GCCAVRInlAsmCB.pdf

Answer

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

댓글

  • ' ICSP 헤더가 있다는 것은 사실이지만 '는 사용할 필요가 없습니다. 부트 로더는 모든 프로그램 제작 수단과 똑같이 잘 작동하며 실제로 Arduino IDE조차도 기존의 명령 줄 유틸리티 프로그램 avrdude에 의존하여 부트 로더를 작동합니다.

Answer

Arduino는 하드웨어와 IDE의 두 부분으로 구성됩니다. IDE는 주로 (완전하지는 않지만) C 및 C ++로 제한합니다 (개발자가 처리 / 자바와 좀 더 비슷하게 만들기 위해 일부 구문 설탕을 사용함). IDE가 표준 스케치 (.pde)와 동일한 디렉토리에있는 .s 또는 .S 파일을 인식 할 가능성이 있지만, 나는 그것에 대해 내 모자를 걸지 않을 것입니다.

아무것도 없습니다. µC 초보자가 좋아할 멋진 기능이 많이있는 멋지고 친근한 보드이지만 ISP 헤더를 통해 AVR을 프로그래밍하려는 경우에도 그렇게 할 수 있습니다. Atmel AVRISP mkII 또는 Arduino 보드의 2×3 행 커넥터와 함께 작동하는 다른 프로그래머가 필요합니다. 호환되는 프로그램을 찾으세요. 응용 프로그램을 업로드하는 데 사용할 avrdude 프로그램입니다. Adafruit의 USBtinyISP를 멀리하십시오. 나는 그것으로 끔찍한 운을 보였고 마우저로부터 40 달러 미만에 연결된 Atmel을 구입하게되었습니다.

댓글

  • 이상합니다. ' Atmel IDE 및 usbtiny에 대한 좋은 경험 외에는 아무것도 없었습니다. 또한 buspirate는 다양한 플랫폼, 훌륭한 작은 도구에서 ISP로 두 배가 될 것입니다.
  • ' ICSP 어댑터가 필요하지 않습니다. 부트 로더는 모든 프로그램 제작 수단에서 잘 작동합니다.

Answer

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

좋아요, 공정하게 말해서 이것은 처음부터 순수 어셈블리로 프로그래밍하는 것과 같지 않습니다 .

하지만 C로 어셈블리를 인라인 할 수 있습니다. 즉, 인라인 어셈블리가있는 Arduino에 코드를로드 한 다음 실행할 수 있습니다. TVOut 라이브러리를 고려하세요. , Arduino가 NTSC / PAL을 TV로 출력 할 수 있도록합니다.

이 라이브러리는 시간에 매우 민감합니다 (TV로 출력하기 때문에 각 스캔 라인은 오른쪽에 작성해야합니다. 시간.) 따라서 프로세스 속도를 높이기 위해 인라인 어셈블리를 사용합니다. 라이브러리에서 이 파일의 89 행 을 살펴보면 작성자는 어셈블리 매크로

이제 그는 기본 Arduino IDE를 사용하여 작성하지 않은 것 같습니다.하지만이 라이브러리는 그의 인라인을 호출합니다. 누구나 인터페이스를 통해 가져오고, 컴파일하고, 실행할 수있는 asm 코드입니다.

행운을 빕니다!

Comm ents

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

답변

호스트 플랫폼으로 Linux를 사용하지만 이러한 도구는 Windows 버전에서도 사용할 수 있다고 생각합니다.

나는 16 진수 코드로의 어셈블리에 " avra "를 사용합니다. 변환기 (컴파일러)

그런 다음 USBTiny 프로그래머와 " avrdude " 프로그래밍 도구를 사용하여 칩을 프로그래밍합니다.

두 도구 모두 오픈 소스라고 생각합니다.

답글 남기기

이메일 주소를 발행하지 않을 것입니다. 필수 항목은 *(으)로 표시합니다