한국어
Embedded
 

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

makersweb 2019.07.14 16:39 조회 수 : 1081

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

 

번호 제목 글쓴이 날짜 조회 수
52 GNU C 레퍼런스 메뉴얼 - 부록 D secret makersweb 2014.02.28 5
51 Rockchip VOP makersweb 2024.04.22 107
50 Raspberry Pi 와 ATtiny85 간 I²C 통신 file makersweb 2023.03.18 456
49 ATtiny85 개발보드(HW-260) file makersweb 2023.01.02 470
48 Raspberry Pi에서 I²C 그리고 Bit-bang (비트뱅) makersweb 2023.08.27 498
47 로직분석기와 함께 PulseView 를 사용해서 CAN 신호 캡쳐 file makersweb 2023.03.16 633
46 mainline 커널 및 etnaviv 를 사용하는 Wandboard(Freescale i.MX6Q)에서 eglfs를 사용 makersweb 2019.10.17 938
45 임베디드 비대칭 멀티 프로세싱(asymmetric multiprocessing) 시스템 file makersweb 2019.12.31 940
44 Yocto 프로젝트 3.4 릴리스(honister) 이상 버전으로 마이그레이션 시 참고 사항 makersweb 2023.03.21 961
43 Android 기기를 사용하여 Raspberry Pi SD 카드 작성 방법 file makersweb 2020.08.01 1006
42 RISC-V : 자유롭고 개방 된 RISC 명령어 세트 아키텍처 [2] file makersweb 2020.01.01 1033
» libopencm3 활용, Cortex-M 펌웨어 개발 makersweb 2019.07.14 1081
40 임베디드 개발자를 위한 Hex,Bin,Dec 변환기 유틸 file makersweb 2023.02.27 1137
39 라즈베리파이2에서 RTOS기반 GPIO제어(LED) file makersweb 2020.04.21 1651
38 라즈베리파이 부팅 가능한 sd카드 파티션 생성 makersweb 2020.04.15 1724
37 POSIX를 지원하는 오픈소스 RTOS, RTEMS file makersweb 2020.04.15 1738
36 Raspberry Pi 의 프레임버퍼(Framebuffer)구성 makersweb 2020.05.15 1833
35 STM32(Cortex-M3) LED Blink with PlatformIO file makersweb 2019.08.05 2039
34 Yocto를 이용한 wandboard BSP 및 Qt5 SDK 빌드 file makersweb 2019.09.29 2622
33 욕토 프로젝트를 이용한 Qt SDK 빌드 for 라즈베리파이3 file makersweb 2019.03.19 3063