Development environment

개발 환경과 뉴클리오 보드에 대해서 간략하게 보고 넘어가도록 하죠~

Compiler & IDE

컴파일러는 GCC 를 사용합니다. 용량 제한이 없는 무료이기도 하고, 현존하는 컴파일러중에서 가장 최근 표준의 C++를 지원하기도 하구요. 보통 IDE를 설치하면 컴파일러도 같이 설치되지만, 나는 최신 버전의 GCC 컴파일러를 쓰고 싶다 하는 분들은 ARM에서 직접 관리하는 에서 최신 버전을 받아 설치 후 cheap jerseys IDE에서 툴체인을 따로 설정해주어도 됩니다. IDE는 System Workbench for STM32를 사용합니다. 사실 GCC 컴파일러를 쓰면 무슨 IDE를 사용해도 소스 코드는 동일하기 때문에 큰 상관이 없어요.

NUCLEO-F103RB board

보드에 대한 메뉴얼은 UM1724 입니다. ST 홈페이지에서 검색하거나 구글링하면 바로 나와요.

이 뉴클리오 보드의 눈여겨 볼만한 점은 다음과 같습니다.

  • MCU의 모델은 STM32F103RBT6(LQFP64)
  • NUCLEO 보드는 ST-Link 2-1이 온보드
  • mbed를 지원
  • 리셋 스위치(NRST, pin 7)
  • 유저 스위치(PC13, pin 2)
  • LED(LD2,green)(PA5, pin 21)
  • 32.768 ㎑ Crystal(PC14, PC15)
  • UART TX, RX(PA2, cheap jerseys nfl PA3, USART2)

사실 ST-Link 쪽 회로를 cheap jerseys nfl 제외하고 MCU 쪽 회로만 보면 소자도 몇개 없어서 단순하죠. 커스텀 보드를 만든다면 MCU 쪽 회로를 참고해서 만들면 쉽습니다. 회로가 간단한 이유도 그런 의도에서인듯 하네요.

Technical Resources

디바이스에 관련된 기술 자료는 (당연하게도) 에서 받아볼 수 있어요. 자주 찾아보는 문서들은 다음과 같습니다. PC에다 저장해 놓도록 하자구요.

  • DS5319: Medium-density performance line ARM®-based 32-bit MCU with 64 or 128 KB Flash, USB, CAN, 7 timers, 2 ADCs, 9 com. interfaces
  • RM0008: STM32F101xx, STM32F102xx, STM32F103xx, STM32F105xx and STM32F107xx advanced ARM®-based 32-bit MCUs
  • PM0075: STM32F10xxx Flash memory microcontrollers
  • PM0056: STM32F10xxx/20xxx/21xxx/L1xxxx Cortex-M3 programming manual
  • ES096: STM32F101x8/B, STM32F102x8/B and STM32F103x8/B medium-density device limitations

나중에 커스텀 보드를 제작할 때 기본 회로 구성과 관련된 자료는 다음 문서를 참고하면 됩니다.

  • AN2586: Getting started with STM32F10xxx hardware development

ST-Link

앞서 언급했듯이 Nucleo 보드에는 ST-Link가 온보드 되어있어요. 정확하게는 ST-Link 2-1입니다. 때문에 ST-Link 2나 Jlink 같은 디버거를 따로 구매할 필요가 없죠. ST-Link 2-1는 ST-Link 2.1 같은 것이 아니고 mbed를 지원하기 위한 추가 기능이 있는 버전입니다.

ST-LINK Utility

ST-LINK Utility 는 통합 툴인데요 . 주요 기능은 MCU에다 프로그램 쓰기, 메모리 읽기, 옵션 바이트 설정 등 타겟 디바이스에 관련된 작업을 할 수 있고, ST-Link 펌웨어 업데이트, 그리고 SWO가 있는 디바이스의 경우 이쪽을 통해 리다이렉션된 printf 출력을 볼 수 있어요.

최신 ST-LINK Utility 를 설치하고 펌웨어 버전을 확인해 보았습니다. 글이 작성된 시점을 기준으로 ST-LINK Utility 최신 버전은 4.0.0 이고 ST-Link 2-1의 최신 버전은 V2.J27M15 이네요.

ST-LinkUpgrade

NUCLEO 보드가 공장에서 만들어진지 꽤 시간이 지났다면 펌웨어 업데이트를 하는 것이 좋아요. 구버전 펌웨어는 USB 3.0 포트에서 인식이 안되는 경우가 있어요. 이 경우에는 PC의 USB 2.0 포트에 연결해야 합니다. 제 PC는 책상이 아닌 바닥쪽에 놓여있는데다 2.0 buy phentermine 포트가 후면에 있어서 엑세스가 불편합니다. 책상에는 USB 허브가 있는데 이게 3.0 허브라 연결하면 뉴클리오 보드가 인식이 안되더군요. 다행히 ST-Link 펌웨어 업데이트 후에는 USB 3.0에서 잘 인식이 되네요. 불편하게 뒤쪽 2.0 포트에다 에다 연결 안해도 되니 편하네요~

STM32CubeMX

또 다른 자주 사용하게되는 툴은 이라는 툴이 있어요. 디바이스의 클럭 시스템이나 주변장치(peripheral)의 초기화 코드 생성 기능과 FAT 파일 시스템, RTOS, LWIP, USB 등의 미들웨어 설정도 제공합니다. 특히 클럭 설정을 할 때 한눈에 들어오는 clock tree 다이어그램을 보여주고 GUI 상에서 설정하기 때문에 아주 편리합니다.

Leave a Reply

Your email address will not be published. Required fields are marked *