ARM

GNU ARM Eclipse : DOCUMENTATION : GENERIC CORTEX-M TEMPLATE

siwall 2015. 2. 16. 18:38

Generic Cortex-M template

플러그인은 몇 가지 프로세서에 대한 템플릿을 제공합니다. 템플릿이 제공되지 않는 프로세스를 위해 Cortex-M template을 사용하여 프로젝트를 생성하는 방법을 제공하고 있습니다.

 

Requirements

템플릿을 사용해서 프로젝트를 거의 완성할 수 있지만, device specific file들은 사용자가 직접 포함시켜야만 합니다.

생성된 프로젝트를 사용하기 전에, 다음과 같은 CMSIS vendor specific file들을 확인해야 합니다.

 

- CMSIS 헤더 파일 (for example stm32f4xx.h)

- CMSIS 시스템 헤더 파일 (for example system_stm32f4xx.h)

- CMSIS 시스템 소스 파일 (for example system_stm32f4xx.c)

- 인터럽트 벡터 (for example vectors_stm32f4xx.c)

 

처음 3개의 파일은 제조사 패키지에서 복사해 올 수 있습니다. 인터럽트 벡터들의 정의는 보통 어셈블리 파일로 되어 있습니다. 벡터의 이름을 확인해서, 그것들을 .c vectors 파일에 입력해 두는 것을 권장합니다.

 

Create a new project

- 이클립스 메뉴에서 File >> New >> C++ Project

- Executables group에서 Hello ARM Cortex-M C/C++ Project를 선택합니다.

New Cortex-M project

코어 타입과 프로젝트 설정들을 선택합니다.

Define target core and project settings

위의 모든 설정들은 프로젝트가 만들어진 이후에도 프로젝트 설정 메뉴 또는, Preprocesser 선언을 다르게 함으로써 변경할 수 있습니다.

 

폴더 이름을 지정합니다.

Define destination folders names

Vender CMSIS name 항목에는 DEVICE 대신에 제조사에서 제공하는 이름을 사용하는 것을 권장합니다

예를 들면, stm32f4-stdperiph.

 

Accept the default configuration names:

Build configurations

 

Define the toolchain name and path:

Toolchain path

완성된 프로젝트는 다음과 같은 구조가 됩니다.

Project structure

Copy vendor specific files

생성된 프로젝트에서 system/include/cmsissystem/src/cmsis 폴더를 확인하고, vendor specific file들을 이 폴더에 복사해 넣습니다.

 

- CMSIS 헤더파일은 (for example stm32f4xx.h) system/include/cmsis 폴더에 복사해서 DEVICE.h 파일을 대체시킵니다.

- CMSIS 시스템 헤더파일은 (for example system_stm32f4xx.h) system/include/cmsis 폴더에 복사해서 system_DEVICE.h 파일을 대체시킵니다.

- CMSIS 시스템 소스파일은 (for example system_stm32f4xx.c) system/src/cmsis 폴더에 복사해서 system_DEVICE.c 파일을 대체시킵니다.

- 인터럽트 벡터는(for example vectors_stm32f4xx.c) system/src/cmsis 폴더에 복사해서 vectors_DEVICE.c 파일을 대체시킵니다.

 

 

메모리맵 확인하기

ldscripts/mem.ld 파일에 생성된 메모리맵을 확인하고, 디바이스와 일치하지 않다면, 수정합니다.

예를들면, flash origin 또는 ram origin.