본문 바로가기

컴퓨터/Cortex-M3(STM32F103)

AIJI OPENice-A1000 개발환경 구축


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

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

2. OPENice-EDS 프로그램을 설치합니다. 프로그램은 www.aiji.co.kr에서 다운로드 받습니다.

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. main.c파일을 새로 만들거나 열어서 다음 문장을 추가합니다.
#include <stm32f10x.h>
int main()
{
    while(1);
}

9. Make(F7)를 실행하여 에러나 경고가 없이 컴파일이 정상적으로 실행되는지 확인합니다. 그리고 컴파일이 되면 컴파일된 파일(예> c.out)이 생성되었는지 확인합니다.

10. 보드에 전원을 연결하고 OPENIce-A1000의 20핀 커넥터를 보드의 JTAG단자에 연결을 하고, A1000과 PC간 USB단자를 연결합니다. 이때, 최초연결시는 드라이버를 자동으로 설치하게 됩니다.

11. OPENice-EDS프로그램을 실행합니다.

12. Option메뉴에서 Configure Interface... 선책하고 Debugger탭을 클릭하여 아래 그림과 같이 설정합니다.


13. Processor탭을 클릭하여 Detect버튼을 눌러서 CORTEXM3가 선택되는지 확인합니다.


14. Option메뉴에서 Configure Memory...를 선택하여 아래 그림과 같이 옵션을 설정합니다.


15. 설정을 마쳤으면 Load Image(Ctrl+L)를 선택하여, 조금전 IAR Workbench에서 컴파일을 통해 얻어진 c.out을 선택합니다. 화면 우측 아래쪽에 상태바를 보면 타겟보드의 프로그램 내용이 지워진다음 컴파일된 프로그램이 다운로드되는 상황이 보입니다. 다운로드가 완료된것을 확인하면 실행(!)을 선택하면 타겟보드의 프로그램이 실행됩니다. 여기서는 무한루프만 있는 빈 프로그램이므로 아무런 변화가 없을 것입니다. 일시정지 버튼을 누르면 C언어로 작성된 코드가 디버거 창에 보이면 정상적으로 환경설정이 된 것입니다. 프로그램 종료를 하거나 타겟보드에 새로운 프로그램을 다운로드하려면 반드시 정지(■)버튼을 먼저 클릭해야 합니다.



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

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



------2011년10월11일 추가--------
IAR6.21 + STD라이브러리 최신버전을 사용할 경우 에러가 나면 아래 2가지 조치한다.
1. CoreSupport폴더명을 삭제 또는 다른이름으로 바꾼다.
2. 프로젝트옵션에서 General Option-> Library Configuration -> Use CMSIS를 체크한다.