본문 바로가기

컴퓨터/Cortex-M3(STM32F103)

H-JTAG 개발환경 구축



이번시간에는 Cortex-M3 개발실습을 위하여 H-JTAG 디버거 환경에서 개발을 위한 개발환경 구축을 해 보겠습니다.

1. IAR Workbench for ARM을 설치합니다. 프로그램은 www.iar.com 에서 kickstart버전을 다운로드 받으시면 됩니다.

2. H-JTAG 프로그램을 설치합니다. 프로그램은  http://www.hjtag.com/에서 다운로드 받습니다.

3. STM32F10X_StdPeriph_Lib 를 구합니다. www.st.com에서 구할 수 있습니다.

4. 프로젝트 폴더를 만듭니다. 프로젝트 폴더는 작업한 프로그램이 저장되는 폴더입니다.

5. stm32f10x_stdperiph_lib.zip 압축을 푼 후 다음 순서대로 파일들을 프로젝트 폴더로 복사해 옵니다.
  가. STM32F10x_StdPeriph_Lib\Libraries 폴더 전체를 프로젝트 폴더로 복사합니다.
  나. STM32F10x_StdPeriph_Lib\Project\STM32F10x_StdPeriph_Template에서 stm32f10x_conf.h, stm32f10x_it.c, stm32f10x_it.h 3개 파일을 프로젝트 폴더로 복사합니다. 
  다. STM32F10x_StdPeriph_Lib\Project\STM32F10x_StdPeriph_Template\EWARM에서 stm32f10x_flash.icf 파일을 프로젝트 폴더로 복사합니다.

6. IAR Workbench에서 다음 그림과 같이 CMSIS그룹과 STM32F10x_StdPeriph_Driver그룹을 만들고, Libraries 폴더의 CMSIS, STM32F10x_StdPeriph_Driver 폴더내의 소스 파일들을 등록합니다. 그룹핑은 단순히 소스 분류를 보기 좋게 하기 위한 것으로 큰 의미가 있는것은 아닙니다.
Libraries\CMSIS\CM3\DeviceSupport\ST\STM32F10x\startup 폴더에 있는 startup_stm32f10x_md.s파일을 등록합니다.




7. IAR workbench에서 컴파일러 옵션설정을 합니다.
  - General Option -> Target 설정에서 Device를 보드에 있는 칩과 같은 것으로 설정합니다.


  - Compiler / Preprocessor설정에서 include directory 및 Defined symbols를 아래 그림과 같이 알맞게 설정합니다.

Additional include directories 설정예)
$PROJ_DIR$\
$PROJ_DIR$\Libraries\CMSIS\CM3\CoreSupport
$PROJ_DIR$\Libraries\CMSIS\CM3\DeviceSupport\ST\STM32F10x
$PROJ_DIR$\Libraries\STM32F10x_StdPeriph_Driver\inc

Defined symbols 설정예)
STM32F10X_MD
USE_STDPERIPH_DRIVER


  - Linker -> Config 설정을 아래 그림과 같이 합니다.



8. Debugger 설정을 합니다.
  - Driver를 RDI로 선택합니다.


  - RDI설정에서 driver를 H-JTAG프로그램이 설치된 폴더의 H-JTAG.dll파일을 선택합니다.



9. H-JTAG하드웨어를 USB는PC와 연결하고, 20핀 커넥터는 타겟보드에 연결을 합니다. 타겟보드에 전원도 연결합니다. 이때, 최초연결시는 드라이버를 자동으로 설치하게 됩니다.

10. PC에 설치된 H-JTAG프로그램을 실행합니다.(시작 -> 모든프로그램 -> H-JTAG -> H-JTAG)

  - Detect target 아이콘을 클릭하여 CORTEX-M3가 탐지 되는지 확인합니다.


  - Flasher메뉴에서 Auto Download가 체크가 되도록 합니다.


  - H-Flasher를 실행하여 Flash Selection에서 타겟보드에 맞는 칩을 선택합니다.


  - Programming을 선택하여 RESET버튼을 누른다음 Check버튼을 누릅니다. Target이 자동으로 Cortex-M3 ... 로 설정되는지 확인합니다. 만약 위의 Flash Selection에서 똑같은 칩이 존재하지 않을 경우(예>STM32F103ZGT6) Flash Size가 같은것으로 선택한 다음 General 옵션에서 SKIP ID CHECK를 선택하시면 됩니다.




11. IAR Workbench에서 main.c파일을 새로 만들거나 열어서 다음 문장을 추가합니다.
#include <stm32f10x.h>
int main()
{
    while(1);
}

12. IAR Workbench에서 Make(F7)를 실행하여 에러나 경고가 없이 컴파일이 정상적으로 실행되는지 확인합니다.

13. IAR Workbench에서  Download and Debug를 선택합니다. 이때 아래 그림처럼 main함수 첫번째 문장에서 멈춰있으면 정상적으로 실행이 된것입니다. Go단추를 클릭하면 타겟보드에서 실행이 됩니다.
프로그램 종료를 하거나 타겟보드에 다시 프로그램을 다운로드하려면 반드시 Stop Debugging(X)버튼을 먼저 클릭해야 합니다.



오늘은 H-JTAG환경에서 개발을 위한 환경설정을 알아봤습니다.

수료생 및 재학생은 댓글로 질문을 해 주시면 됩니다.


------2011년10월11일 추가--------
IAR6.21 이상 최신버전을 사용할 경우 에러가 나면 아래 2가지 조치한다.
1. CoreSupport폴더명을 삭제 또는 다른이름으로 바꾼다.(또는, 컴파일러 옵션 추가 인클루드 디렉토리 에서 coresupport가 들어간 줄을 지운다)
2. 프로젝트옵션에서 General Option-> Library Configuration -> Use CMSIS를 체크한다.