ARM

GNU ARM Eclipse : DOCUMENTATION : FEATURES

siwall 2015. 2. 16. 01:16

Features

GNU ARM Eclipse plug-in의 특징:

- Eclipse CDT를 이용해서 ARMAArch64 어플리케이션을 create/build/manage 할 수 있습니다. , makefile을 직접 만들거나 관리할 필요가 없습니다.

- 몇몇 ARM Cortex-M processor에 대한 템플릿을 제공합니다.

- flash 메모리에 다운로드하기 위해 필요한 binary file을 생성할 수 있습니다.

- 향상된 툴체인 경로(Path) 관리 방법을 제공합니다. 

 

 

Supported toolchains

32bit, 64bit ARM 프로세서를 위한 대부분의 툴체인을 지원합니다.

 

ARM toolchains

- GNU Tools for ARM Embedded Processors (arm-none-eabi-*)

- Linaro ARMv7 Linux GNU EABI HF (arm-linux-gnueabihf-*)

- Linaro ARMv7 Big-Endian Linux GNU EABI HF (armeb-linux-gnueabihf-*)

- Mentor Sourcery CodeBench Lite for ARM EABI (arm-none-eabi-*)

- Mentor Sourcery CodeBench Lite for ARM GNU/Linux (arm-none-linux-gnueabi-*)

- devkit ARM EABI (arm-eabi-*) (obsolete, no longer maintained)

- Yagarto, Summon, etc. ARM EABI (arm-none-eabi-*) (obsolete, no longer maintained)

 

AArch64 toolchains

- Linaro AArch64 bare-metal ELF (aarch64-none-elf-*)

- Linaro AArch64 big-endian bare-metal ELF (aarch64_be-none-elf-*)

- Linaro AArch64 Linux GNU (aarch64-linux-gnu-*)

- Linaro AArch64 big-endian Linux GNU (aarch64_be-linux-gnu-*)

Extra build steps

ELF 파일 뿐만 아니라, flash에 프로그램하기 위한 Binary file(ihex, srec, binary)을 생성할 수 있습니다.

프로그램 사이즈 확인, 리스트 생성 기능을 제공합니다. 


Discovery Options & Indexing

이것은 CDT의 특징이지만, 이를 작동시키기 위해서 플러그인은 컴파일러 명령어나, 컴파일러 옵션과 같은 툴체인의 세부적인 것들을 CDT에 제공합니다.

Discovery Option을 이해하기 위해, Indexing이 무엇인가를 알아야 할 필요가 있습니다. 이클립스에서 선언, 정의, 자동완성, 리팩토링과 같은 훌륭한 기능들을 사용자에게 제공하기 위해, 소스파일에 대해서 컴파일러와 동일한 정보들을 가지고 있어야 합니다.

이를 위해컴파일 타임에 사용된 시스템 헤더파일과 컴파일러에 의한 디폴트 전처리기 설정 역시 필요합니다. 

GCC provides a magic combination of command options to do this (-E -P -v -dD ${plugin_state_location}/specs.c), so the CDT needs to issue the proper compiler commands (one for each language, C & C++). 

build plug-in은 이러한 세부사항들을 각 툴체인에 제공합니다.


이러한 특성은 환경을 적절히 설정했는지에 대한 빠른 체크를 제공합니다.  

새로운 프로젝트 생성 후, Includes 라는 폴더를 볼 수 있을 것입니다. 이 폴더에는 컴파일러에서 사용되는 시스템 인클루드 파일들의 경로가 들어 있습니다. 만일

이것을 볼 수 없다면, 툴체인 path를 잘못 설정한 것입니다. 

Example of automatically detected include paths.

Fully configurable toolchains

Toolchain definition은 접미사(prefix)와 경로(path) 뿐만 아니라, 대부분의 세부적인 설정을 포함하고 있습니다. 

Improved project portability

프로젝트의 이식성을 높이기 위해서, 툴체인 path가 workspace에 저장됩니다. 이것은 프로젝트에 저장된 path보다 우선합니다. 

이것은, 서로 다른 운영체제를 사용하면서 협업으로 프로젝트를 진행중인 개발자들 관계에서 유용합니다. 

커밋된 프로젝트를 넘겨받았을 때, 프로젝트 설정을 변경하는 일이 없도록 해줍니다. 자세한 내용은 Project portability page 를 참조하세요

 

Functional ready to run templates

For beginners, who need initial help to put all details together for their first project, a complete sample, with startup code, linker scripts, semi-hosting enabled and all necessary options already set, can be a major time saver.


자세한 내용은 Tutorial: Create a test project 를 참조하세요.

Debugging support

프로젝트 진행시, 대부분의 시간이 디버깅에 소모되며, 신뢰성 있는 디버깅 장비는 필수입니다.

많은 디버깅 기술과 툴이 있지만, 여기서는 두가지 솔루션을 제안합니다:

- J-Link Pulg-in 을 통한 SEGGER J-Link probe와 GDB 서버

- 많은 다른 JTAG probe와 openOCD GDB 서버

The packages manager perspective

GNU ARM Eclipse plug-inARM이 권장하는 새로운 CMSIS Packs technology 의 장점을 이용하는 첫 번째 오픈소스 툴입니다.

패키지는 software component, hardware description과 문서를 구조화된 방법으로 배포하는 간편한 방법입니다.

주로 Keil에서 지원하는 사용 가능한 많은 패키지들이 존재합니다.

Peripherals registers view in debug

CMSIS Pack의 훌륭한 특징 중 하나는 모든 Coretx-M 디바이스에 대해 하드웨어 description을 사용할 수 있다는 것입니다.

description들은 memory mapped peripheral register들을 시험하고 수정하는 디버거를 지원하는 방향으로 사용 할 수 있습니다.



Device and board documentation files

CMSIS packs는 datasheet, 사용자 매뉴얼레퍼런스 매뉴얼회로도 등, 수많은 문서 파일들을 제공합니다.

Outline view 옆을 보면, 독립된 View 안에 Documents 파일의 리스트가 출력되어 있습니다. 

Documents view가 나타나지 않는다면, C/C++ perspective를 리셋해야 합니다. (right click the perspective button and select Reset).

더블클릭으로 문서파일을 열어 볼 수 있습니다. (현재 회색으로 표시된 C/C++ 버튼이 perspective button입니다)