본문 바로가기
Robot/Device Control

[STM32F10x-StdPeriph] 0. SmartRobot Board 실습 - 실습용 기본 코드 공유

by lifeseed 2013. 11. 18.

1. 시작하기

이제 부터 간단한 STM32를 구동하기 위한 Simple한 예제를 하나씩 강좌로 진행하도록 하겠습니다.
제목에 [STM32F10x-StdPeriph] 라는 Tag가 붙은 글들은 ST에서 제공하는 Standard Peripheral Driver를 이용한 예제입니다.
 
코드 트리는 복작하게 보이지만 arch 폴더의 main.c 에서만 코딩할 예정이며, 향후 추가되는 강좌는 첨부된 소스의 main.c에 작성하여 간단히 테스트가 가능하도록 할 예정입니다.
 
 
첫번째 목적은 Chip의 자세한 Spec은 모르더라도 제공되는 Library를 통해 기능을 구현하는 것입니다.
두번째 목적은 구현된 Library의 기능을 바탕으로 Chip을 어떻게 Control하는지 Library 함수를 살펴보게 될 것입니다.
코드 및 데이터 시트 분석이 주 내용이 될 듯합니다.
가급적 두가지 내용을 다루려고 하지만 첫번째 내용만 다루게 될 수도 있음을 알려드립니다.
 
예제의 시작은 Clock설정이 끝난 후 부터 진행됩니다.
main까지의 코드 구현 사항을 확인하고 싶으면 아래 3개의 링크를 확인 부탁드립니다.

 

CortexM3 StartUp Code 분석 1,2,3부 

cf) 아직은 아무런 액션없이 main에서 머무러 있는 코드입니다. ^^;;

 

srbd-iap.bin  :: SmartRobot Board Bootloader

 

srbd_bsp_ex.zip  :: Example Base Code

 


2. main.c 구조
Arduino는 잘 모르지만 Arduino와의 코드 비교를 위해 동일한 포맷으로 함수를 구성해 보았습니다.
 

 


얼마나 의미 있을진 모르지만 개인적인 정리에 의의를 두고 시작해보겠습니다.

 
3. Compile

컴파일 방법은 다음과 같습니다.

1) env.bat 경로 변경

  자신의 컴파일러가 있는 경로로 바꿔줍니다.

2) cmd.lnk 실행

cmd.lnk를 더블클릭하면 cmd.lnk가 있는 폴더에서 Command창이 열립니다.

3) env.bat 실행

env.bat를 실행하여 컴파일러 환경 설정을 잡아줍니다.

4) 컴파일

cs-make 혹은 compile.cmd 를 실행하면 컴파일이 수행됩니다.

마찬가지로 cs-make clean 혹은 clean.cmd를 실행하면 object 코드들이 제거 됩니다.



4. 실행
첨부된 코드는 Start Address가 0x8004000 입니다. 즉 ST에서 제공하는 Flash WriteTool로 Writing하면 실행되지 않습니다.
(SmartRobot Board Bootloader  http://lifeseed.tistory.com/73 참조)
아래의 순서로 진행하면 됩니다.
처음 해야 할것.
1. 첨부된 srbd-iap.bin 를 ST에서 제공하는 Flash WriteTool로 Writing 한다.
2. 똑딱이 스위치 근처의 SW3을 누른체로 보드를 Reset한다. (BootMode 진입됨)
3. 1번을 누르고 테라텀 등에서  Y-modem으로 다운로드 한다.
4. Sw3을 누르지 않고 Reset 하면 코드 실행됨.
자세한 다운로드 방법은 SmartRobot Board Bootloader  http://lifeseed.tistory.com/73 의 3번 항목을 참조하시면 됩니다.
 
향후 코드 업데이트는 2~4번 반복하면 됩니다.

 

 

 


[참고자료]

[1]
[2]
[3]