libopencm3 프로젝트는 다양한 ARM Cortex-M 마이크로 컨트롤러 용 오픈 소스 펌웨어 라이브러리이다.
현재 지원되는 마이크로 컨트롤러는 다음과 같다 :
▶ 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를 실행 후 환경변수 설정 (경로는 다를 수 있음)
별도의 작업 디렉토리를 만들고 예제 템플릿과 라이브러리 소스 코드를 clone하여 컴파일한다.