본문 바로가기

개발/embed

Nuvoton 제공 Sample Code를 Keil 에서 Compile 하기

반응형

본글은 Visual Source Code ( VsCode ) 로 Nuvoton 소스를 build ( compile ), debug 하는 글의 한 부분 입니다.

 

1.  Nuvoton 제공 Sample Code를 Keil 에서 Compile 하기   ( https://bahk33.tistory.com/181  )   :   본글

2.  gcc 로 nuvoton source 직접 build(compile) 하기             ( https://bahk33.tistory.com/183 ) 

3. Visual Source VS Code 로 nuvoton Build(Compile) 하기   ( https://bahk33.tistory.com/185  ) 

4. VS Code 로 nuvoton 디버그 하기                                       (  https://bahk33.tistory.com/186  ) 

 

==========================================

본문 목차.

1. Sample Code 가져오기

2. 추가 필요 파일 복사

3. Project file  수정 하기

4. Compile 하기

 

==========================================

 

 

Nuvoton 에서는 Sample code 를 기본적으로 제공 합니다.

이를 내 프로젝트에 맞게 정리 하여 Compile 합니다. 

====================================

1. Sample Code 가져오기

> Nuvoton 에서 제공하는 샘플 코드는 BSP_CMSIS 라고 

    https://gitlab.com/OpenNuvoton

 또는 

    https://www.nuvoton.com/tool-and-software/bsp-and-example-code/

등에서 받을 수 있다.

 

> 해당 CPU 에 맞는것 다운로드 하여 푼다.

  여기서는 NUC472 를 사용하여  en-us--NUC472_NUC442_BSP_CMSIS_V3.03.005.zip 을 다운로드 하였다.

 

> 사용한 샘플 코드는 가장 간단한것중 하나인 UART_AutoFlow 샘플이다

E:\~\en-us--NUC472_NUC442_BSP_CMSIS_V3.03.005\SampleCode\StdDriver\UART_AutoFlow

 

> 일단 이것( ~ \UART_AutoFlow  )을 내가 원하는 곳으로 복사 한다.    여기서는 e:\Src\prjBahk 으로 복사 한다.

 

2. 추가 파일 복사 및 Project file 수정 .

  > 기본 소스 디렉토리에 main.c 만 있는데,

      프로젝트 파일  ~/Keil/UART_AutoFlow.uvproj 을 메모장(NotePad)등 편집기로 열어 보면,

       include directory 가 3개,  그리 고 소스 파일이 main.c 포함 7개 파일을 쓰고 있는것을 알 수 있다.

 

include directory 3개

 

 

소스 파일 7개

 

 

> 관련하여 디렉토리 3개를 복사 한다.

 

>  e:\Src\prjBahk\UART_AutoFlow 에 "_Lib" 라는 Directory 를 만들고, 

  Directory "E:\~\en-us--NUC472_NUC442_BSP_CMSIS_V3.03.005\Library\Device\Nuvoton\ NUC472_442 "  를 

  "E:\Src\prjBahk\UART_AutoFlow\_Lib\NUC472_442" 로 복사 한다.

 

 Directory "  E:\~\en-us--NUC472_NUC442_BSP_CMSIS_V3.03.005\Library\StdDriver" 를

    "E:\Src\prjBahk\UART_AutoFlow\_LIb\StdDriver" 로 복사 한다.

 

> Directory  "E:\~\en-us--NUC472_NUC442_BSP_CMSIS_V3.03.005\Library\CMSIS\Include" 를

   "E:\Src\prjBahk\UART_AutoFlow\_LIb\Include" 로 복사 한다.

 

> 복사 한뒤 파일 경로는 아래와 같다.

 

 

3. Project file 수정

 > "E:\Src\prjBahk\UART_AutoFlow\KEIL\UART_AutoFlow.uvproj" 을 수정 한다.

> 기본 적으로 "..\..\..\..\Library\"  와 같은 것을 "..\_Lib\"  와 같은 것으로 바꾸는 것이다.

 

> Include Path 고치기

고치기 전
   <IncludePath>
     ..\..\..\..\Library\CMSIS\Include;
     ..\..\..\..\Library\StdDriver\inc;
     ..\..\..\..\Library\Device\Nuvoton\NUC472_442\Include
   </IncludePath>
   
고친 뒤
   <IncludePath>
     ..\_Lib\Include;
     ..\_Lib\StdDriver\inc;
     ..\_Lib\NUC472_442\Include
   </IncludePath>

 

 

> Source Path 고치기

아래와 같이 파일 경로를 모두 수정 한다.

고치기 전
<File>
  <FileName>system_NUC472_442.c</FileName>
  <FileType>1</FileType>
  <FilePath>..\..\..\..\Library\Device\Nuvoton\NUC472_442\Source\system_NUC472_442.c</FilePath>
</File>
<File>
  <FileName>startup_NUC472_442.s</FileName>
  <FileType>2</FileType>
  <FilePath>..\..\..\..\Library\Device\Nuvoton\NUC472_442\Source\ARM\startup_NUC472_442.s</FilePath>
</File>

고친뒤
<File>
  <FileName>system_NUC472_442.c</FileName>
  <FileType>1</FileType>
  <FilePath>..\_Lib\NUC472_442\Source\system_NUC472_442.c</FilePath>
</File>
<File>
  <FileName>startup_NUC472_442.s</FileName>
  <FileType>2</FileType>
  <FilePath>..\_Lib\NUC472_442\Source\ARM\startup_NUC472_442.s</FilePath>
</File>

==================================================================================
고치기 전
<File>
  <FileName>retarget.c</FileName>
  <FileType>1</FileType>
  <FilePath>..\..\..\..\Library\StdDriver\src\retarget.c</FilePath>
</File>
<File>
  <FileName>clk.c</FileName>
  <FileType>1</FileType>
  <FilePath>..\..\..\..\Library\StdDriver\src\clk.c</FilePath>
</File>
<File>
  <FileName>sys.c</FileName>
  <FileType>1</FileType>
  <FilePath>..\..\..\..\Library\StdDriver\src\sys.c</FilePath>
</File>
<File>
  <FileName>uart.c</FileName>
  <FileType>1</FileType>
  <FilePath>..\..\..\..\Library\StdDriver\src\uart.c</FilePath>
</File>

고친뒤
<File>
  <FileName>retarget.c</FileName>
  <FileType>1</FileType>
  <FilePath>..\_Lib\StdDriver\src\retarget.c</FilePath>
</File>
<File>
  <FileName>clk.c</FileName>
  <FileType>1</FileType>
  <FilePath>..\_Lib\StdDriver\src\clk.c</FilePath>
</File>
<File>
  <FileName>sys.c</FileName>
  <FileType>1</FileType>
  <FilePath>..\_Lib\StdDriver\src\sys.c</FilePath>
</File>
<File>
  <FileName>uart.c</FileName>
  <FileType>1</FileType>
  <FilePath>..\_Lib\StdDriver\src\uart.c</FilePath>
</File>

 

고친 뒤 파일 등은 첨부 파일 안에 있다. 

 

 

4. Compile 하기

> Keil 을 띄운다.

  -  > Project > Open Project > "UART_AutoFlow.uvproj" > [열기]

 

> 컴파일 하기

 -  > Project > Build Target [F7]

 - 하면, "E:\Src\prjBahk\UART_AutoFlow\KEIL\obj"  에 "UART.bin" 가 생겨 있다.

 

 

이상으로 간단히 Nuvoton Keil 에서 컴파일 하기를 마치겠읍니다.

 

 

복사하고 수정한 전체 소스 올림니다.

UART_AutoFlow.zip
0.57MB

 

 

 

 

수고 하셨읍니다.

 

관련된 모든 파일은

https://1024terabox.com/s/14o6ublK_ChNyk_kNX44mLA

 

에서 받을 수 있읍니다.

 

 

다음글 

2.  gcc 로 nuvoton source 직접 build(compile) 하기             ( https://bahk33.tistory.com/183 ) 

 

입니다.

 

반응형