Stm32Cube와 Eclipse의 조합으로 개발을 할때 연결된 보드를 디버깅시 다음과 같은 에러 메시지가 뜰 경우가 있다.
이럴때는 프로젝트의 설정의 Run/Debug Setings의 Startup 탭에서 다음 그림에 보이는 2가지 항목의 설정을 해제하면 된다.
Stm32Cube와 Eclipse의 조합으로 개발을 할때 연결된 보드를 디버깅시 다음과 같은 에러 메시지가 뜰 경우가 있다.
이럴때는 프로젝트의 설정의 Run/Debug Setings의 Startup 탭에서 다음 그림에 보이는 2가지 항목의 설정을 해제하면 된다.
System Workbench for STM32를 설치하는 방법은 2가지이다. 인스톨 프로그램으로 설치하는 방법과 기존에 설치되어 있는 이클립스에 설치하는 방법이 있다.
chmod 755 install_sw4stm32.run then ./install_sw4stm32.run
문제는 이렇게 설치를 하다가 다음과 같은 에러메시지가 나오고 더 이상 진행이 되지 않는다.
#To disable
sudo spctl –master-disable
#To enable
sudo spctl –master-enable
“Help”->Check for Updates를 누르고, Processor Expert for Kinetis만 선택하고 업데이트 한다.
“Help” -> “Install New Software”를 선택하고 Add 버튼 > Archive 버튼을 눌러서 SDK 설치 폴더 아래 /tools/eclipse_update 폴더에서 KSDK_<version>_Eclipse_Update_zip file. 를 선택한다
“File->Import”를 선택후 “General”을 눌러서 “Existing Projects into Workspace”를 선택한다.
루트 디렉토리는 <install_dir>/lib/ksdk_platform_lib/kds/K82F25615 를 선택하고 finish를 클릭한다.
메뉴에 헤머 아이콘을 눌러 빌드한다.
<install_dir>/examples/frdmk82f/demo_apps/<demo_name>/kds 아래있는 데모 프로그램을 플랫폼 라이브러리 빌드 할때와 마찬가지로 빌드한다.
예를 들면 hello_world의 경우 <install_dir>/examples/frdmk82f/demo_apps/hello_world/kds
메뉴에 헤머 아이콘을 눌러 빌드한다.
FRDM-K82F는 기본적으로 mbed/CMSIS-DAP debug interface 가 설치가 되어있으므로 KDS에서 다운로드 디버깅을 하기위해서는 J-Link OpenSDAv2.1를 설치해야 한다. 리셋 버튼을 누른상태에서 “SDA USB” USB 포트를 연결해서 전원을 연결한다. 그러면 BOOTLOADER로 폴더가 잡힌다.
https://www.segger.com/opensda.html 여기에서 OpenSDA V2.1: Download JLink_OpenSDA_V2_1_2015-10-13.zip 을 다운로드후 압축을 풀고 bin파일을 BOOTLOADER 폴더에 넣으면 다시 JLINK라는 폴더로 잡힌다.
Run > Debug Configurations에서 맨 아래있는 GDB SEGGER J-Link를 선택하고 디버깅을 한다.
Hellow World의 경우 시리얼 터미널 설정은 115200. 보드의 전원 및 디버깅을 위해서 USB SDA 포트와 PC를 연결한다.
지난번 포스팅 ‘이클립스(Eclipse)에서 아두이노(Arduino)사용하기’ 은 이클립스에서 플러그인을 설치해서 아두이노를 사용하는 것이었다. 하지만 아두이노는 command line에서 컴파일을 지원하므로 이런 플러그인 없이도 make 파일의 위치, 컴파일러 정보등만 이클립스에 설정하면 사용이 가능하다.
File > New > Makefile Project with Existing Code를 선택후 Project Name을 설정하고 Existing Code Location을 설정한다.
C/C++ Build항목에서 Build location의 Build directoty 설정은 makefile이 있는 위치를 지정한다.
C/C++ General 항목의 Path and Symbols에서 Include할 폴더들을 입력하고 Symbol에도 미리 정의돼야 할 심볼을 입력한다.
정작중요한 것은 MakeFile이다. 여기에 제대로된 설정이 되어 있는지 확인해야 함.
이클립스에서 줄 번호 설정: Preference >> General >> Editors >> Text Editors에서 “Show line numbers“를 선택한다.
테마 설정: http://eclipsecolorthemes.org/?view=plugin 여기에서 Color Theme를 받을 수 있다. 아니면 Help >> Eclipse Market Place… “Color Theme”를 검색을 해서 플러그인 설치
테마중에 SubllimeText의 테마가 있는데, 사용해 보니 Obsidian 이 보다 더 좋은 느낌..
MAC에서 개발 환경을 세팅하다보니 윈도우즈 기반의 툴들에서 쉽게 찾던 것들을 구글링하게 된다. ARM 이클립스 개발환경에서 hex, bin을 만들어 주는 툴은 arm-none-eabi-objcopy 인테, 다음과 같이 hex와 binary간의 변환이 가능하다.
arm-none-eabi-objcopy -I binary -O ihex filename.bin filename.hex
arm-none-eabi-objcopy -I ihex -O binary filename.hex filename.bin
물론 이클립스의 프로젝트 설정에서 Cross ARM GNU Create Flash Image설정에서 Raw binary 또는 Intel Hex를 설정이 가능함.
STM32 칩들은 내부에 시리얼 부트로더가 있어서 쉽게 flash를 업데이트 가능하다. ST에서도 flash downloader demonstrator라는 프로그램을 제공하는데 윈도우즈만 제공한다. Mac에서 사용할 수 있는 것은 stm32loader scrypt와 stm32ld program이다.
stm32loader의 사용법 (-e : erase, -w: write, -v: verify)
./stm32loader.py -e -w -v example/main.bin