Engineering Agit

[8051 Micro-processor study 05] - How to set environment for develop 8051 on Mac OSX (10.15) 본문

Embedded Lab. @ Modu inst./2020 Session 01 (2020.02~)

[8051 Micro-processor study 05] - How to set environment for develop 8051 on Mac OSX (10.15)

Sean_Kim95 2020. 4. 22. 15:47

#1 Intro

맥으로 8051을 개발하는 방식은 초기 환경 조성에 어려움이 있다. 이는 수많은 구글링과 테스팅으로 방식을 찾아야하기 때문이다. 또한 catalina부터는 32bit 프로그램을 지원하지 않기에 구글에서 찾은 방식이 적용안되는 경우가 허다하다. 따라서 이를 명심하고 정보를 찾아야한다.


#2 

  1. SDCC (Small Device C Compiler)

<Fig. 1-1 SDCC 설치사이트 출처: http://sourceforge.net>

C/C++로 개발하는 상황에서는 이를 8051이 이해할 수 있는 HEX 파일로 변환해주는 compiler가 필요하다. 대게 이는 IDE(Integrated Development Environment)에서 가능하기에 신경을 크게 쓸 필요가 없었다. 8051의 경우에도 'mcu8051ide', 'uvision(KEIL)'등 ide가 존재한다. MS Windows OS를 사용하는 경우에는 이를 이용할 수 있다. 하지만 OSX의 경우에는 기본적으로 KEIL에서 지원을 하지 않고 있으며, mcu8051ide를 이용하는 것도 불가하다(예전에는 가능했던 것 같은데 현재는 링크를 검색하여 다운로드하려해도 열리지 않는다...). VSCode에 PlatformIO IDE를 plugin하여 IDE를 구성하는 방법도 있으나, AT89S52를 지원하지 않는다. 따라서 SDCC라는 tool을 이용하여 compile 한다. 

기본적으로 SDCC는 다음과 같이 terminal에서 실행한다.

<Fig. 1-2 Terminal environment에서 실행한 SDCC>

매번 이렇게 하는 것은 번거로울 수 있다. 그래서 이를 Eclipse IDE에 plugin하여 IDE를 구축하는 방법으로 번거로움을 덜 수 있다. 하지만 구글링 결과 명확한 방법을 찾지 못하였다.

따라서 VSCode로 C/C++ 코드를 작성하고 이후에 terminal를 이용하여 SDCC를 통해 .ihx 또는 .hex파일로 변환한다.

 

  2. AVRDUDE

Windows에서는 업로드 방법을 편리하게 하기 위하여 avrdudess를 사용했는데 osx의 경우에는 32bit 프로그램을 더이상 지원하지 않으므로 terminal을 이용하여 업로드 하기로 한다. 이때 다운로더는 Arduino UNO에 

[Avrdude.exe의 위치는 (mac에서는 그냥 avrdude) Arduino.app을 두손가락으로 클릭한 다음에 show package contents안에 /Applications/Arduino.app/Contents/Java/hardware/tools/avr/bin path를 따라가면 있다.]

기존의 파일은 32bit이므로 이를 64bit로 변경해야한다. 아래의 두 파일은 각각 64bit용 AVRDUDE, 그리고 AT89S52를 포함한 8051 MCU를 다루는 .conf 파일이다.

avrdude-6.3.0-arduino17-x86_64-apple-darwin12.tar.bz2
0.27MB
avrdude.conf
0.46MB

 

터미널에서 다음과 같이 입력을 해야 연결 확인이 가능하다. 여기에서는 위의 두 파일을 저장한 directory path를 입력하면 된다. 연결포트는 arduinoide에서 확인하거나 터미널에 "ls /dev/tty.usb*"로 검색하면 나오며 이름은 "/dev/tty.usbmodem(번호)”형식이다.

➜  ~ /Applications/Arduino.app/Contents/Java/hardware/tools/avr/bin/avrdude -C /Applications/Arduino.app/Contents/Java/hardware/tools/avr/etc/avrdude.conf -c stk500v1 -P /dev/cu.usbmodem144201 -p 89s52 -b 19200

<Fig. 2-1 AVRDUDE를 이용한 AT89S52 연결확인>

 

파일 업로드는 -U를 포함해야한다.

➜  ~ /Applications/Arduino.app/Contents/Java/hardware/tools/avr/bin/avrdude -C /Applications/Arduino.app/Contents/Java/hardware/tools/avr/etc/avrdude.conf -c stk500v1 -P /dev/cu.usbmodem144201 -p 89s52 -b 19200 -U flash:w:/Users/taehoonkim/Desktop/study/Personal_projects/EmLab_Modu_inst/SDCC_test/main.ihx:i

<

 

 

Refernce

http://www.rau-deaver.org/MacEmbeddedLinks.html
https://www.xanthium.in/programming-8051-8052-using-opensource-small-device-c-compiler-tutorial
https://www.pololu.com/docs/0J36/5.c
https://sourceforge.net/projects/sdcc/
Comments