How to port μC/OS-III to STM32F107VC board and turn on LED
STM32F107VC board
보드 전체 사진 보드와 J link, 5V 연결
보드와 J link 연결
download microC/OS-iii
Sign up for Weston-Embedded
-
https://www.weston-embedded.com/ 사이트에 접속한다.
-
오른쪽 상단에 LOGIN 버튼을 누르고 좌측 하단의 Don’t have an account를 눌러 회원가입을 진행한다.
-
하단의 폼을 채우고 제출한다.
-
제출한 이메일로 account activation 메일이 온다. 만약 안오는 경우 스팸메일함을 확인해보자.
download microC/OS-iii
https://www.weston-embedded.com/micrium-examples/category/238-micrium-uc-eval-stm32f107 에 접속하여 아래 사진과 같이 Micrium_uC-Eval-STM32F107_uCOS-III 파일을 다운 받는다.
또는 Weston-Embedded 홈페이지 상단에 MICRIUM->Examples->STMicroelectronics->STM32F1->Micrium uC-Eval-STM32F107 를 순서대로 클릭한다.
Keil-MDK 설치
-
https://www.keil.arm.com/login/ 페이지에 들어가서 sign up 버튼을 누른 후,
-
이메일 주소를 입력하고 Send verification code를 클릭한다. 그러면 잠시후 이메일로 확인코드가 오는데, 확인코드를 입력하고 Verifiy code를 클릭한다.
- 아래 정보를 입력하고 create 버튼을 누른다. 계정이 승인되는데 시간이 조금 걸린다.
-
https://www.keil.arm.com/mdk-community/에 접속하여 로그인한다.
- https://www.keil.com/demo/eval/arm.htm 에 접속하면(또는 4번 과정 후 Download Keil MDK를 누르면) 아래와 같은 폼이 뜨는데 이 폼을 작성하여 제출하면
아래와 같이 다운로드를 받을 수 있다.
- 설치과정은 다음 다음 … 이름과 회사, 이메일 입력 다음… 설치 순으로 진행된다. keil uVision5라는 이름으로 설치된다.
-
microC/OS-III 예제 프로젝트가 구형이므로 https://developer.arm.com/documentation/101407/0538/Creating-Applications/Tips-and-Tricks/Use-MDK-Version-4-Projects 에서 Legacy pack - arm cortex m을 다운로드 한다.
-
Keil uVision5를 관리자 권한으로 실행한다.
- File-License Management - Single User License 클릭
-
Get LIC via Internet… 클릭
- 창에 정보 입력 후 제출. PSN에는 https://www.keil.arm.com/mdk-community/ 창에 있던 PSN 입력
그러면 위와 같은 메일을 받는데, 여기에 LIC가 있다.
-
이메일로 수신한 LIC를 License Management에 입력후 Add LIC 클릭
- Community 라이센스로 변경된다.
-
중간 상단의 pack installer를 클릭한다.
- 하단의 update가 끝날때 까지 기다린 후, stm32f107vc를 검색하여 keil::STM32F1xx_DFP를설치한다.
프로젝트 열기
-
project - open project 클릭
-
“(uC/OS-3 설치 폴더)\Micrium\Software\EvalBoards\Micrium\uC-Eval-STM32F107\uCOS-III\KeilMDK\uCOS-III.uvproj” 선택
-
좌측 FLASH 우클릭하여 Options for Target ‘FLASH’ 클릭 Device 창에서 아래 내용이 맞는지 확인 Target 창에서 아래 내용이 맞는지 확인 Utilities - Setting에서 아래 내용이 맞는지 확인
프로젝트 수정
LED 핀 번호 수정
HAOYU electronics 에서 개발한 보드 등과 같은 보드의 경우 LED 핀번호가 위에서 받은 예제와 다르다. 보드의 LED 핀번호는 아래와 같다.
코드의 LED 핀번호는
\micrium_uc-eval-stm32f107_ucos-iii\Micrium\Software\EvalBoards\Micrium\uC-Eval-STM32F107\BSP\bsp.h
에서 볼 수 있으며, 아래와 같다. 따라서 핀 번호를 아래와 같이 바꿔주어야 한다.
BSP_LED_START_BIT 값 변경
\micrium_uc-eval-stm32f107_ucos-iii\Micrium\Software\EvalBoards\Micrium\uC-Eval-STM32F107\BSP\bsp.c
에서 아래 코드를
아래와 같이 바꾼다.
프로젝트 빌드
프로젝트 보드에 다운로드
보드에 다운로드하고 보드를 리셋하면 LED가 100ms 간격으로 깜빡거린다.
참고 코드
//app.c 168~173
while (DEF_TRUE) { /* Task body, always written as an infinite loop. */
BSP_LED_Toggle(0);
OSTimeDlyHMSM(0, 0, 0, 100,
OS_OPT_TIME_HMSM_STRICT,
&err);
}
BSP_LED_Toggle은 BSP/bsp.c 에 정의되어있다. OSTimeDlyHMSM은 os.c에 정의되어있다.
//os.h
#if OS_CFG_TIME_DLY_HMSM_EN > 0u
void OSTimeDlyHMSM (CPU_INT16U hours,
CPU_INT16U minutes,
CPU_INT16U seconds,
CPU_INT32U milli,
OS_OPT opt,
OS_ERR *p_err);
#endif
작동 영상
Reference
https://www.weston-embedded.com/micrium-examples/category/238-micrium-uc-eval-stm32f107
https://dailyco.github.io/posts/MDK-install_arm_ide_keil_uvision/
https://m.blog.naver.com/jrady/221544660706
https://www.haoyuelectronics.com/Attachment/HY-GoldBull-V3/HY-GoldBullV3_SCH.pdf
댓글남기기