개발 환경 - withrobot/myCortex-STM32F4 GitHub Wiki

myCortex-STM32F4 예제는 필요로하는 모든 소스와 라이브러리들을 포함하고 있습니다. myCortex-STM32F4를 사용하여 개발할 때에는 다음과 같은 요소가 필요합니다.

  • IAR사의 EWARM 통합 개발 환경
  • JTAG/SWD 인터페이스. 또는 USB2UART
  • myCortex-STM32F4 예제

EWARM

EWARM은 IAR 사에서 제작한 ARM용 컴파일러 및 통합 개발환경이며, Embedded Workbench for ARM의 약자입니다. IAR은 다양한 프로세서를 대상으로 컴파일러와 통합 개발환경을 제작하고 있습니다. EWARM은 결코 저렴하지 않은 가격의 유료 소프트웨어입니다. 2013년 기준으로 정식 라이센스 1카피의 가격은 대략 약 800만원을 상회하는 정도 입니다. 학생 할인, 단체 할인, Cortex-M 코어 전용 할인 등 여러가지 할인 옵션이 있지만 처음 MCU를 시작하는 사람에게 구입해서 사용하라는 것은 무리일것입니다. 이러한 경우를 위해 IAR에서 제공하고 있는 두 가지 방법이 있습니다.

  1. Evaluation license
  • 30일 기간 제한.
  • 기능은 제한 없음.
  1. KickStart license
  • 최종 바이너리 코드 사이즈 32KByte 제한.
  • 사용 기한은 제한이 없음.

위와 같이 무료로 사용가능한 방법 두 가지 중 자신의 상황에 맞는 방법을 골라 사용할 수 있습니다. 심지어 동시에 두 방법 모두 사용할 수도 있습니다(물론 한달이 지나면 무의미하겠지만요)

본 예제는 EWARM 6.7 버전을 기준으로 작성되었습니다. 보다 최근 버전을 사용하더라도 별다른 문제는 없습니다. EWARM은 IAR 홈페이지에서 다운로드 받으실 수 있습니다만 항상 최신 버전만 다운로드 받을 수 있다는 점이 문제입니다. EWARM은 아주 빈번히 업데이트되어서 조금만 시간이 흘러가도 특정 버전을 다운로드 받기 어려워집니다. 그래서 6.7 버전의 설치 이미지를 다운로드 받으실 수 있도록 링크를 마련해 두었습니다.

EWARM 환경을 사용하기 위해서는 (1)설치 이미지를 다운로드 받아 프로그램을 설치하고, (2)자신이 사용할 라이센스(위에서 말한 두 무료 라이센스 중 하나)를 선택해 IAR로 부터 라이센스를 발급받고, (3)이를 이용해 프로그램을 activation 시켜야 합니다. 조금 번거롭게 보일수도 있겠습니다만 처음 한번만 필요한 절차인만큼 차분히 따라해 보시기 바랍니다.

본 예제 소스는 ETH 예제를 제외하고 모두 32KByte 이하로 작성되었습니다. 따라서 KickStart와 Evaluation 라이센스를 조합해서 사용하면 예제 사용에는 아무런 문제가 없습니다. 혹시 앞으로 추가되는 예제 중 32KB를 초과하는 경우가 있을 수도 있으며, 이 때에는 해당 예제에 별도로 표기해 두도록 하겠습니다.

JTAG/SWD/부트로더

예제 펌웨어 혹은 직접 작성한 펌웨어 바이너리를 myCortex-STM32F4 보드에 프로그래밍하는 방법은 크게 두 가지가 있습니다. 첫 번째는 JTAG 또는 SWD 장치를 사용해 EWARM 상에서 직접 다운로드 하는 것이고, 두 번째는 보드에 내장된 부트로더를 사용하여 시리얼 다운로드 하는 방법입니다.

JTAG/SWD

예전에는 JTAG 장치가 워낙 고가여서 쉽게 사용하기 어려웠으나 최근에는 무척 저렴해 졌습니다. 추천드리는 제품은 ST사의 ST-Link/V2 제품입니다. 이 제품은 2014년 기준 약 3만원에 판매중이며, 국내외 온라인 쇼핑몰에서 쉽게 구매할 수 있습니다. ST-Link/V2를 포함한 최근의 JTAG 장치들은 SWD 인터페이스 겸용으로 제작되고 있습니다. myCortex-STM32F4는 JTAG과 SWD를 모두 지원합니다. JTAG 혹은 SWD를 선택적으로 사용할 수 있으며, 선택은 EWARM의 project setting에서 하게 됩니다. 일반적으로는 JTAG과 SWD 사용의 차이가 거의 없으며, 현재 예제는 모두 SWD 옵션으로 제공됩니다. JTAG이나 SWD를 사용하면 펌웨어 바이너리를 다운로드하는 기능 외에 소스 수준 디버깅이 가능합니다. LED나 printf함수를 통한 전통적인 디버깅보다 간편하게 강력한 디버깅이 가능하여 개발 시간을 대폭 단축시킬 수 있습니다.

부트로더

myCortex-STM32F4에는 UART/I2C/CAN/USB를 사용한 부트로더가 내장되어 있습니다. JTAG/SWD 장치를 사용할 수 없는 경우에는 시리얼 부트로더를 통해 저렴하고 간편하게 펌웨어 바이너리를 다운로드 할 수 있습니다. 부트로더 사용법은 시리얼 부트로더 페이지에서 자세히 다루고 있습니다.

예제 소스 코드

예제 소스 및 필요한 라이브러리들은 모두 본 저장소에 있습니다. 소스를 사용하는 폴더 위치는 특별한 제약조건이 없습니다.

예제 소스를 다운로드 받는 방법은 여러가지가 있습니다. 본인의 상황과 성향에 맞는 방법을 선택하세요.

zip 파일로 다운로드 받기

최신 버전을 받으려면 repository 페이지 우측 메뉴 하단의 Download ZIP 버튼을 클릭하여 최신 소스의 zip 파일을 다운로드 받아 사용합니다.

이전 특정 시점의 버전을 다운로드 받으려면 repository 페이지 위쪽 가운데 부위의 release 를 클릭하세요. 버전별로 zip 파일을 다운로드 받으실 수 있습니다.

장점:

  • 빠르고 간단하다.

단점:

  • 소스가 업데이트되면 다시 받아야 한다.
  • 업데이트 소식을 받을 수 없다.

이 repository에서 clone 받기

git client를 설치하고 이를 통해 clone 받아 사용합니다. 윈도용 git client에는 git(커맨드 쉘 기반), SourceTree for Windows(GUI tool), GitHub for Windows(GUI tool)가 있으며, SourceTree가 가장 기능이 많지만 조금 느린 편입니다.

clone 받을 repository 주소는 https://github.com/withrobot/myCortex-STM32F4.git 입니다.

장점:

  • 자신이 원하는 소스를 언제든지 새로 받을 수 있다.
  • 업데이트된 소스 알림을 항상 받을 수 있다.

단점:

  • git 클라이언트를 설치해야 한다.

Sebversion으로 checkout 받기

SVN 클라이언트를 설치하고 checkout 받아 사용합니다. 주소는 https://github.com/withrobot/myCortex-STM32F4 입니다.

장점:

  • 기존 SVN 사용자라면 가장 간단한 방법.

단점:

  • SVN으로 접근하면 조금 느리다.

자신의 repository로 fork해서 clone 받기

repository 페이지 우측 상단의 Fork 버튼을 클릭합니다. 자신의 GitHub 계정이 필요하며, 가입은 무료. Fork를 받으면 본 repository와 동일한 자신만의 복사본이 생성됩니다. Fork된 repository로 부터 다시 clone받아 사용하게 되며, 이 복사본에는 자신의 수정, 편집 작업을 올릴 수 있습니다. 이러한 수정 작업이 의미 있다고 판단되면 Pull Request를 통해 다시 본 repository에 반영시키는 방법으로 개발에 참여할 수 있습니다.

장점:

  • 자신만의 repository에 변경사항을 올릴 수 있고, 이를 다시 이 repository에 반영할 수 있다(개발참여)

단점:

  • git 사용에 조금은 익숙해야...
⚠️ **GitHub.com Fallback** ⚠️