위의 데이터시트를 참조하면 좀더 편하게 프로젝트를 생성할 수 있다.
다만 프로젝트에 폴더와 파일들을 일일이 만들어 줘야 한다는 점이 단점이라면 단점일 수 있다.
이렇게 만든 프로젝트의 경우 다운로딩 디버깅 모두 가능하다. 또한 discovery 보드의 라이브러리를 모두 사용할 수 있다.
하지만 ST에서 제공된 예제를 보면 startup_stm32f4xx.s 파일이 첨부되어 있는것을 확인할 수 있다.
따라서 위의 파일도 첨부해주도록 하자. 위의 파일에 대한 위치는 아래와 같다.
EWARM: startup_stm32f4xx.s, under Libraries\CMSIS\Device\ST\STM32F4xx\Source\Templates\iar
- MDK-ARM: startup_stm32f4xx.s, under Libraries\CMSIS\Device\ST\STM32F4xx\Source\Templates\arm
- RIDE: startup_stm32f4xx.s, under Libraries\CMSIS\Device\ST\STM32F4xx\Source\Templates\gcc_ride7
- TASKING: startup_stm32f4xx.s, under Libraries\CMSIS\Device\ST\STM32F4xx\Source\Templates\TASKING
- TrueSTUDIO: startup_stm32f4xx.s, under Libraries\CMSIS\Device\ST\STM32F4xx\Source\Templates\TrueSTUDIO
DISCOVERY의 라이브러리가 아니라 STM32F4xx_dsp_stdperiph_lib 를 받게되면 폴더에 도움말이 첨부되어 있다.
여기서 확인해보면
Create a project and setup all your toolchain's start-up files (or use the template project provided within the Library, under Project\STM32F4xx_StdPeriph_Templates)
The Library entry point is stm32f4xx.h (under Libraries\CMSIS\Device\ST\STM32F4xx\Include), user has to include it in the application main and configure it:
Add the system_stm32f4xx.c (under Libraries\CMSIS\Device\ST\STM32F4xx\Source\Templates) file in your application, this file provide functions to setup the STM32 system: configure the PLL, system clock and initialize the Embedded Flash Interface. This file provides multiple choice for the system clock frequency, you can select the frequency needed for your application by modifying the PLL parameters below:
로 되어있다. 또한
http://www.emcu.it/STM32F4xx/STM32F4-Library/STM32F4-Library.html
을 참조하면
STM32F4_StdPeriph_Template subfolder
stm32f4xx_conf.h - configuration header file
stm32f4xx_it.c - source file containing the interrupt handlers
stm32f4xx_it.h - header file including all interrupt handlers prototypes
main.c - main program body
main.h - header file for main.c
system_stm32f4xx.c - clock tree initialization, configure the PLL, system clock, initialize the Embedded Flash Interface, etc.
각각의 서브폴더의 파일명의 역할에 대해 나와있다.
이러한 파일들도 각각 첨부해주면 ST의 예제와 같은 구조의 프로젝트를 만들 수 있다.
여기까지 프로젝트를 만들어보았으나 예제에 나와있는 프로젝트 구조와 100% 같다는 장담을 할 수는 없지만
이로써 직접 워크스페이스 안에 원하는 프로젝트를 만들 수 있다는 장점이 있고
IAR을 이용한 프로젝트 관리를 할 수 있다는 장점이 있다.
물론 기존의 예제 프로젝트를 불러오기 해서 프로젝트관리를 할 수 도 있다.