5/22/2019

Keil 의 uVision 개발방법 (1)

1. STM32 관련개발

이전에 STM32의  개발 위해서 사용했던 IDE 환경은 IAR or CoIDE를  이용을 했지만,  이번에는 Keil사의 uVision이라는 것을 이용하는 것이 처음이기에 이에 관련된 내용을 서술한다.
간단히 uVision 관련 IDE 사용법을 간단히 적어본다.

Keil사는 Compiler로 회사로 생각했지, IDE환경을 제공을 해주고, 관련 Compiler도 제공해주는지는 몰랐다.

1.1 Keil의 uVision 설치 및 MDK 라이센스 

기본설치는 MDK와 같이 설치가 되며, 이 부분은 라이센스가 필요한 부분이며, 설치시, 본인의 ST Micom에 관련된 부분
Package를 Download하여 설치하자.

ST-Link 관련설치
  https://ahyuo79.blogspot.com/2019/05/st-link-usb-driver.html

기본설치방법
  http://www.emthink.com/keil-single-user-license

MDK (Microcontroller Development Kit )의 구성과 이해
  https://www2.keil.com/mdk5

uVision 설치 후 MDK 라이센스확인방법
Help-> about uVision  통해서 가능
  http://www.keil.com/support/man/docs/license/license_eval.htm

uVision의 MDK 라이센스별로 비교
  http://www2.keil.com/mdk5/selector

IDE-Tool uVision 과 ARM DS-5 비교
  http://www.emthink.com/keil-mdk-vs-ds-5

1.2 Keil의 uVision 기본사용법 

Keil의 uVision은 기본적으로 ULINK 기반으로 동작하지만, ST-Link도 지원을 하기때문에, 크게 걱정을 하지 않아도 된다.

기본사용법숙지
  http://www2.keil.com/mdk5/uvision/

2. Keil uVision 개발방법 

이제 Keil의 uVision을 이용하여 직접개발을 한다면, 개발방법은 내생각하기에는 두 가지로 진행을 하면될 것 같다.
  1. Keil에서 제공해주는 MDK Package 기반으로 구성개발 (MDK 라이센스필요) 
  2. ST에서 제공해주는 무료 uVision Example Source 기반으로 개발  

2.1  MDK Package 기반으로 개발 

Keil에서 제공해주는 MDK Package를  추가하는 방식으로 개발하는 방법으로,  쉬울수도 있으나, 라이센스를 요구하기 때문에, 이부분은 라이센스가 필요하다.
그러므로, 본인의 MDK 라이센스를 상위에서 비교해서 보자.

uVision의 중앙 아이콘을 보면 각각의 주요 메뉴가 있다


  1. Options for Target "Project" : Project의 세부설정 
  2. File Extensions, Books and Enviornment  : Project 의 구성을 쉽게 알수 있음 
  3. Manage Multi-Project Workspace
  4. Manage Run-Time Enviornment :  현재 구성된 MDK의 설정변경 및 추가 가능 
  5. Select Software Pack : MDK의 Package Version을 변경하여 설정가능 
  6. Pack Installer : MDK Package Download 및 Copy 


  • 기본개발 환경구성 
  1. Project->New uVision Project 
  2. Device 에서 본인의 모델 선택 
  3. Mange Run-Time Enviornment 에서 필요한 Package 선택 
  4. CMSIS 만선택하고 구성 

아래와 같이 기본환경이 구성된 상태에서 소스를 추가하면서 개발진행한다.
하지만, CMSIS이외에도 다른 것을 추가하여도 기본적으로 사용할 예제가 없기 때문에 개발에 난항을 겪을 수 있으므로 추천하지는 않는다.


  • MDK Examples 기반으로 개발  
  1. Pack Installer 선택
  2. 좌측의 Device/Board 확인 
  3. 우측의 필요한 Example 선택 후  Copy 후 Example Source Download 
  4. Download한 Example을 새로운 uVision 열어 구성을 확인 


Example Source로 uVision로 구성할 경우, 본인이 원하는 프로젝트의 유사할 것이지만, 주의할 것은 라이센스 문제 및 기타문제로 동작되지 않는 경우이다.

아래의 경우는 USB 부분이상 발생 (라이센스문제)


이 문제를 해결하기 위해서
  1. Manage Run-Time Environment 실행
  2. 문제가 발생한 USB 관련부분 확인 (라이센스문제파악)
  3. Variant 필드를 이용하여 라이센스 레벨조정/ Release /Debug 모드로 변경
  4. 문제가 되지 않는 조합으로 생성 후 OK로 저장 
  5. Project->Build Target 
  6. 에러가 없는지 확인하고, 최종적으로 *.axf 파일 생성확인 (ELF Format)



uVision에서 직접 ST-Link를 사용하면 문제가 발생하는데, 아래와 같이 설정을 변경 및 확인하자.

  1. Project창에서 우측마우스->Option for Target  (Alt+F7)





  • Options for Target "xxxxxxx"
  1. Debug 목록 선택 
  2. ULINK2 -> STLINK 변경 ( uVision은 기본이 ULINK사용)
  3. 설정 변경 후 Setting 실행



  • ST-Link의 상태확인 (Setting)
ST-Link로 변경을 했는데도, 아래와 같이 문제가 발생한다면, 이제 각 세부설정을 보자.
- 이 부분을 정확히 맞추려면, 가장 좋은 방법은 ST사에서 제공해주는 Example Source를 설정보면된다.
- 시간이 지나면 자동으로 해결이 되는 경우도 발생




  • STM의 Flash Writing 방법 
  1. Flash->Download  이용: Flash Erase/Write  
  2. Debug->Start/Stop  Debug Session 이용 :  Debug하기 용이하지만 사용중이라면 반드시 다시한번 이곳을 눌러 Stop를 해줘야 함. 
  3. ST-Link Utility를 이용하는 법 ( *.hex 변경) 


  • HID 동작확인 
HID Device가 Keil Software Keil USB HID Device로 잡히면 동작이 되는 것이지만, 이부분을 Key Pad로 연결하는
인터페이스는 별도로 만들어줘야 동작이 될 것이다.


$ lsusb 
Bus 002 Device 001: ID 1d6b:0003 Linux Foundation 3.0 root hub
Bus 001 Device 045: ID 0483:3748 STMicroelectronics ST-LINK/V2
Bus 001 Device 046: ID c251:2401 Keil Software, Inc. 
Bus 001 Device 004: ID 045e:00cb Microsoft Corp. Basic Optical Mouse v2.0
Bus 001 Device 003: ID 045e:07f8 Microsoft Corp. Wired Keyboard 600 (model 1576)
Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub 


내가원하는 Example은 이상하게 조합을 맞춰도 Build가 진행되지 않아 관련부분을 포기했으며 USB관련부분은 상위와 같이 기본동작을 확인하였다.