여기서는 Nuvoton사의 NUC029SEE 칩을 사용하여 컴파일러 사용환경을 구성하고자 한다.
1. 준비
1) 개발 보드
2) NuMicro Family NuTiny-SDK-NUC029SEE User Manual
https://www.nuvoton.com/resource-files/UM_NuTiny-SDK-NUC029SEE_EN_Rev1.00.pdf
3) 디버거
4) BSP 파일
4-1) Nuvoton 홈페이지(아래 링크)에서 내가 사용할 칩(NUC029SEE) 검색후 Software 클릭
https://www.nuvoton.com/products/microcontrollers/arm-cortex-m0-mcus/nuc029-series/NUC029SEE/
4-2) Board Support Package 다운로드
5) KEIL
5-1) KEIL 홈페이지에서 MDK-Arm을 다운로드 한다.
- 여기서는 Version 5.36을 사용하였다.
5-2) 다운로드가 완료되면 아래 그림처럼 Pack Installer가 나타나는데 이때 사용할 칩을 왼쪽 클릭하면 오른쪽 상단 빨간 박스 안에 Up to date 또는 Install이 표시된다. 만약 Install이라고 표시된다면 눌러서 다운로드하면 된다.
여기서는 Nuvoton의 NUC029SEE 칩을 사용하므로
Devices탭 -> Nuvoton -> NuMicro M0 Family -> NUC029EE -> NUC029SEE 선택
이후 Nuvoton::NuMicro_DFP에서 1.3.13을 Install 한다.
2. 프로젝트 생성
1) 프로젝트 폴더 구성
- 여기서는 D 드라이브에 위와 같은 경로에 폴더를 생성했다.
2) 1번에서 다운로드 한 BSP 파일을 위에서 만든 Bsp폴더에 복사한 뒤 압축을 푼다.
3) KEIL을 실행한 뒤 Project -> New uVision project 선택
4) 2-1)에서 만든 Prj 폴더를 선택하고 파일 이름(여기서는 RS232_UART)을 입력하고 저장한다.
5) Device 탭에서 칩(여기서는 NUC029SEE)을 선택한 뒤 OK 버튼을 누른다.
6) 그 다음 창에서는 그냥 OK 버튼을 누른다.
7) 왼쪽 상단에 project탭에서 이름(여기서는 칩 이름으로 함)을 변경한 뒤 오른쪽 클릭하여 Add Group을 누른다. 그리고 나에게 맞게 그룹을 구성한다.
- 여기서는 CMSIS, Lib, Sys로 그룹을 구성했다.
8) CMSIS를 오른쪽 클릭한 뒤 Manage Project Items를 누른다.
9) 아래 그림과 같이 창이 뜨면 Add Files를 누른다.
10) BSP파일을 복사한 Bsp폴더에서 아래의 경로에서 파일을 추가한다.
D드라이브 -> Project -> RS232 -> Nuvoton -> NUC029SEE -> Bsp -> en-us--NUC029xEE_Series_BSP_CMSIS_V3.00.004 -> Library -> Device -> Nuvoton -> NUC029xEE -> Source -> system_NUC029xGE.c파일을 Add한다.
11) 10)번에 이어서 아래의 경로에서 파일을 추가한다.
D드라이브 -> Project -> RS232 -> Nuvoton -> NUC029SEE -> Bsp -> en-us--NUC029xEE_Series_BSP_CMSIS_V3.00.004 -> Library -> Device -> Nuvoton -> NUC029xEE -> Source -> ARM -> 파일 형식을 모든 파일로 변경 -> startup_NUC029xGE.s 파일을 Add한다.
12) Close버튼을 눌러 빠져나오면 아래 그림처럼 두 개의 파일이 추가된 것을 확인할 수 있다.
13) 이번에는 Lib 그룹을 선택한 뒤 Add Files를 누르고 아래의 경로에서 파일을 추가한다.
D드라이브 -> Project -> RS232 -> Nuvoton -> NUC029SEE -> Bsp -> en-us--NUC029xEE_Series_BSP_CMSIS_V3.00.004 -> Library -> StdDriver -> src -> 모든 파일 선택 후 Add한다.
14) Close를 누른뒤 선택한 파일들이 추가되었는지 확인한다.
15) 왼쪽 Project탭에서 만들어놓은 Sys을 오른쪽 클릭한 뒤 Add New Item to Group 'Usr'을 선택한다.
16) C File을 선택한 뒤 파일이름(여기서는 SysFile)을 작성한다.
Location은 D:/Project/RS232/Nuvoton/NUC029SEE/App/System으로 지정한 뒤 Add를 누른다.
17) 아래 그림처럼 코드를 작성한다.
3. 프로젝트 설정
1) 왼쪽 Project탭에서 NUC029SEE를 오른쪽 클릭한 뒤 Options for Target 'NUC029SEE'를 선택한다.
2) Target탭에서 아래 그림처럼 빨간색 표시된 부분을 Use default compiler version 5로 변경한다.
3) C/C++탭에서 아래 그림처럼 빨간색 표시된 부분을 체크한다.
[C99 Mode, GNU extensions 체크]
- Optimiztion: level 0(컴파일 시 최적화를 하지 않는다)
디버깅할 때는 반드시 Level 0으로 한다.
- C99 Mode(C언어의 C99 표준을 사용하겠다)
Nuvoton CMSIS 드라이버가 대부분 C99 기반으로 작성되어 있다.
- GNU extensions(ARM Compiler에서 GCC 호환 확장 문법을 사용할 수 있게 해주는 옵션)
Nuvoton BSP(보드 지원 패키지)에 GNU 확장이 쓰인 경우 오류 없이 컴파일이 가능하게 하기 위해 사용한다. 특히 #pragma anon_unions, __packed, __attribute__ 등이 포함된 헤더들에서 필요하다. 따라서 CMSIS나 Nuvoton BSP 사용하는 경우 필 수적으로 체크
4) C/C++탭에서 아래 그림처럼 빨간색으로 표시된 부분을 눌러서 경로를 추가한다.
5) 아래의 4가지 경로를 추가한다.
[1번 경로]
D드라이브 -> Project -> RS232 -> Nuvoton -> NUC029SEE -> Bsp -> en-us--NUC029xEE_Series_BSP_CMSIS_V3.00.004 -> Library -> Device -> Nuvoton -> NUC029xGE -> Include 폴더 선택
[2번 경로]
D드라이브 -> Project -> RS232 -> Nuvoton -> NUC029SEE -> Bsp -> en-us--NUC029xEE_Series_BSP_CMSIS_V3.00.004 -> Library -> StdDriver -> inc 폴더 선택
[3번 경로]
D드라이브 -> Project -> RS232 -> Nuvoton -> NUC029SEE -> Bsp -> en-us--NUC029xEE_Series_BSP_CMSIS_V3.00.004 -> Library -> CMSIS -> Include 폴더 선택
[4번 경로]
D드라이브 -> Project -> RS232 -> Nuvoton -> NUC029SEE -> App -> System
6) main함수를 F7을 눌러서 컴파일한 뒤 오류가 없는지 확인한다.
4. 디버깅
1) 왼쪽 Project탭에서 NUC029SEE를 오른쪽 클릭한 뒤 Options for Target 'NUC029SEE'를 선택한다.
2) 빨간색으로 표시된 Use를 UNLink Debugger로 변경한 뒤 디버거를 연결한 뒤 Settings을 누른다.
3) 정상적으로 연결되면 아래 그림과 같은 창이 뜬다. 여기서 빨간색으로 표시된 Chip Type을 NUC029로 변경한다.
'개발환경 > Keil' 카테고리의 다른 글
ADC 설정 - NUC029SGE (1) | 2023.11.18 |
---|---|
UART 설정 - NUC029SGE (1) | 2023.11.18 |
타이머 설정 - NUC029SGE (1) | 2023.11.18 |
Clock 설정 - NUC029SGE (0) | 2023.11.18 |