Source : https://www.youtube.com/watch?v=jQZi81O3cMc
Video Title : CMSIS Tutorial #1- (CMSIS-CORE)
CMSIS 스펙에 있는 CMSIS-CORE의 File Structure는 하기와 같다.
From : http://www.keil.com/pack/doc/CMSIS/Core/html/_templates_pg.html
이 중에서 파란색 파일들은 Silicon Vendor가 제공하게 되며, 나머지 분홍색 파일들은 CMSIS Spec.에 있는 파일을 사용하게 된다.
파란색 파일들의 특징은 다음과 같다.
startup_<device>.s
- Start up code로 interrupt service routine등을 정의한다.
system_<device>.c
- Reset vector로부터 시작되는 초기 함수(예를 들면 SystemInit())를 포함하며, clock 설정등의 기본적인 설정 함수들이 포함된다.
<device>.h
- Peripheral의 주소나등 해당 chipset 고유의 register structure를 정의한다.
system_<device>.h
- system_<device>.c에서 정의한 함수들을 선언
본 예제에서 해당 파일들은 www.ti.com/tool/cmsis_device_headers에서 다운 받은 파일들을 사용한다.
이러한 파일들을 이용해서 실제 project를 만드는 방법은 다음과 같다.
1. inc 폴더와 src 폴더를 생성한다.
2. inc 폴더에는 <device>.h, system_<device>.h를 복사한다. (본 비디오에서는 LM4F120H5QR.h, system_LM4F.h)
3. src 폴더에는 system_<device>.c를 복사한다. (본 비디오에서는 system_LM4F.c)
4. startup_<device>.s를 root 폴더에 include한다. (본 비디오에서는 TI-CMSIS-Devices-8636/TI/LM4F/Source/IAR/startup_LM4F.s를 복사하여 사용함. 컴파일러에 따라서 사용해야 하는 파일은 틀려짐)
5. 컴파일러 옵션에서 CMSIS 스펙을 다운 받으면 있는 CMSIS/Include 폴더를 include path에 추가한다. (core_cm4.h등의 파일등이 있는 폴더)
6. root 폴더에 실행 내용이 없는 main.c(application)를 작성한다. (본 비디오에서는 main.c의 내용은 다음과 같음.
#include <LM4F120H5QR.h>
int main(void) {
;
}
7. 컴파일 후 실행한다.
본 Video를 통해서 CMSIS 프로젝트 구성 방법을 확인할 수 있다.
- End -