본문 바로가기
기술정보 및 자료/EBIMU_6DOF

IAR 컴파일러에서 STM32F10x 프로젝트 만들기

 



다음은 IAR 컴파일러의 프로젝트 생성 부터 옵션설정, 컴파일 까지의 설명입니다.


 
한 프로젝트당 위의 3개 폴더구조를 가진다.

EWARMv5

IAR컴파일러의 프로젝트관련 파일들이 저장됨. hex또는 bin등의 최종출력물도 이폴더에 저장됨.

Lib

CMSIS등 ST에서 제공하는 라이브러리 파일.

Main

메인프로그램 main.c와 전반적인 환경설정파일인 stm32f10x_conf.h, 인터럽트ISR관련 파일인 stm32f10x_it.c stm32f10x_it.h 파일이 저장되어 있음. 실제 작업폴더


프로젝트를 시작하기 위해선 위의 3개의 폴더를 생성 후
lib폴더에는 라이브러리 파일을 복사해 놓고 main폴더에는 stm32f10x_conf.h stm32f10x_it.c stm32f10x_it.h 파일을 복사해 놓는다.


IAR컴파일러를 실행하여 File-New-Workspace를 실행.


 

Project-Create New Project 를 눌러 새 프로젝트를 만든다.


아래와 같이
ARM으로 선택

 
프로젝트파일이 저장될 위치를 지정한다. 위에서 만들어 놓은 EWARMv5 폴더를 지정한다.

프로젝트명은 'main'으로 했다.


  Workspace의 프로젝트파일에서 마우스 오른쪽버튼을 눌러 Group을 생성한다.


아래그림과 같이 프로젝트Group을 생성한다.

 

CMSIS Group에 아래와 같이 CMSIS 라이브러리파일을 등록한다.


startup_stm32f10x_md.s는 인터럽트벡터테이블이 작성되어 있다. md는 MediumDensity 이므로 다른 종류의 칩을 사용 할 때는 그에 맞는 파일을 등록한다.

Driver Group에는 사용하고자 하는 드라이버 파일을 등록한다.

리셋과 시스템클럭 관련 라이브러리인 rcc.c 파일과 gpio관련라이브러리인 gpio.c파일을 등록했다.

이외에 필요한 Peripheral 라이브러리가 있으면 ..\lib\STM32F10x_StdPeriph_Driver\src에서 찾아 등록하면 된다.


 

이로써 라이브러리 등록은 끝났다. 이제 프로그램을 작성하면서 필요한 라이브러리를 call해서 사용하기만 하면 된다.


프로그램을 작성하기위해 File-New-File을 선택한다.


프로그램을 작성한다.

프로그램 작성후 main폴더에 저장을 한다. main.c라 저장했다.

 

Main Group에 main.c를 등록한다.

 

이제 컴파일만 하면 된다. 하지만 컴파일 하기 전 컴파일 옵션을 설정해야 한다.


프로젝트파일에서 오른쪽버튼을 눌러 option을 선택한다.


General Options-Target

컴파일 하고자 하는 device를 선택한다.

 

C/C++Compiler-Optimizations 에서 Optimization Level을 선택할 수 있다.


C/C++Compiler-Preprocessor에서 Include파일의 경로들을 등록한다.

전역 define 을 설정한다.


설정내용은 다음과 같다.

Addition include directories

$PROJ_DIR$\..\Lib\CMSIS\CM3\CoreSupport

$PROJ_DIR$\..\Lib\CMSIS\CM3\DeviceSupport\ST\STM32F10x

$PROJ_DIR$\..\Lib\STM32F10x_StdPeriph_Driver\inc

$PROJ_DIR$\..\Main


Defined symbols

USE_STDPERIPH_DRIVER

STM32F10X_MD

HSE_VALUE=12000000


Output Converter에서 컴파일 후 출력 포맷을 지정할 수 있다.


 Linker-Config옵션에서 Linker configuration file을 수정한다.


Edit버튼을 눌러 Vetor Table과 Memory Regions를 수정한다.


Flash영역이 0x0800 0000번지이기 때문에 VectorTable의 위치와 ROM영역을 0x0800 0000번지로 설정한다.

RAM영역은 0x2000 0000번지이다.


설정후 ‘SAVE’버튼을 누르면 main.icf파일의 저장위치를 묻는다. 프로젝트 파일이 저장되어 있는 EWARMv5폴더에 저장한다.


 모든 설정후 Project메뉴에 Rebuild All버튼을 눌러 컴파일 한다.


 최초 컴파일시 Workspace의 저장위치를 묻는다. 마찬가지로 프로젝트폴더인 EWARMv5폴더에 저장한다.


 컴파일 완료 후 Error와 Warning을 확인하고 수정사항이 있으면 수정한다.

최종출력파일은 ..\EWARMv5\Debug\Exe 폴더에 저장되어있다.


 ST에서 제공하는 Flash Loader를 이용하여 타겟보드에 다운로드 하면 된다.