한국어
Embedded
 

MCU libopencm3 활용, Cortex-M 펌웨어 개발

makersweb 2019.07.14 16:39 조회 수 : 1080

libopencm3 프로젝트는 다양한 ARM Cortex-M 마이크로 컨트롤러 용 오픈 소스 펌웨어 라이브러리이다.

http://libopencm3.org/

 

현재 지원되는 마이크로 컨트롤러는 다음과 같다 :

▶ ST STM32F0xx/F1xx/F2xx/F30x/F37x/F4xx/F7xx/L0xx/L1xx/L4xx series

▶ Atmel SAM3A/3N/3S/3U/3X series, as well as SAMDxx and friends

▶ NXP LPC1311/13/17/42/43

▶ Stellaris LM3S series (discontinued, without replacement)

▶ TI (Tiva) LM4F series (continuing as TM4F, pin and peripheral compatible)

▶ EFM32 Gecko series (only core support)

▶ Freescale Vybrid VF6xx

 

ARM 용 GCC 툴 체인 (arm-elf 또는 arm-none-eabi)을 사용하며, 마이크로 컨트롤러에 대한 코드 플래싱은 OpenOCD ARM JTAG 소프트웨어를 사용하여 수행 할 수 있다.

 

libopencm3 프로젝트는 현재 진행 중이기 때문에 아직 마이크로 컨트롤러의 모든 기능을 지원하진 않는다.

또 라이브러리의 API는 아직 안정적인 것으로 간주되지 않으며 함수 이름, 매크로 이름 등의 변경은 사전 통보없이 언제든지 발생할 수 있다.

 

개발환경구축

 

Windows:

 

msys 다운로드 및 설치 - http://sourceforge.net/projects/mingw/files/MSYS/Base/msys-core/msys-1.0.11/MSYS-1.0.11.exe

Python 다운로드 및 설치 - http://www.python.org/ftp/python/2.7/python-2.7.msi (any 2.7 release)

arm-none-eabi/arm-elf 툴체인(toolchain) 다운로드 및 설치 - (for example this one https://launchpad.net/gcc-arm-embedded)

 

msys를 실행 후 환경변수 설정 (경로는 다를 수 있음)

export PATH="/c/Python27:/c/Program Files (x86)/GNU Tools ARM Embedded/4.9 2015q2/bin:/usr/local/bin:/usr/bin:/bin"

 

별도의 작업 디렉토리를 만들고 예제 템플릿과 라이브러리 소스 코드를 clone하여 컴파일한다.

$ git clone https://github.com/libopencm3/libopencm3-template.git
$ cd libopencm3-template/
$ git submodule update --init     -> 한번만 실행
$ make -C libopencm3              -> 한번만 실행
$ make -C my-project