하드웨어 설정을 마쳤으니 소프트웨어 설정을 해보자.
CubeMX 설정으로 HAL 라이브러리를 생성한 뒤, IAR에서 코딩을 해본다.
CubeMX 시작하기
1. CubeMX를 실행하고 빨간 상자의 버튼을 누른다.
2. 보드 이름을 검색하고, 선택하고, 클릭하고, Yes를 클릭한다.
3. UART5를 설정한다. 동기화하지 않는 통신이므로 Asynchronous로 한다.
그리고 Baudrate를 확인한다.
나는 익숙한 115200을 골랐다.
4. 보드에 있는 파란 버튼(B1)을 인터럽트로 사용하기 위해 인터럽트를 설정한다.
B1은 PA0 핀과 연결되어 있다. 이 때 외부 인터럽트로 설정하여 버튼이 눌려지면 인터럽트가 실행되도록 바꿔보자.
그리고 인터럽트 활성화 버튼을 눌러준다.
5. RTOS를 선택한다.
CMSIS_V2를 선택한다.
6. 프로젝트의 저장 위치를 고르고, 생성할 프로젝트 종류를 선택한다.
나는 freeRTOS로 했다. 어느 걸로 하든 상관없다.
IAR 실행하기
1. IAR을 실행한다.
[File] - [Open Workspace...]를 클릭한다.
2. 프로젝트 폴더명 아래에 EWARM이라는 폴더에 들어가면 *.eww 확장자의 파일이 존재한다.
이 파일을 열어주자.
코드 작성 시, 지정된 위치에만 코드를 작성한다??
이게 무슨 말인가 싶다.
아래 그림은 main.c에 작성된 코드이다.
USER CODE BEGIN ~~~, USER CODE END ~~~로 되어 있다.
이 영역을 벗어난 곳에 코드를 작성하면 CubeMX에서 "GENERATE CODE"를 클릭할 경우 코드는 증발해버린다.
편리한 만큼 주의해야 할 점이 이 것이다.
보통 CubeMX로 설정을 하고 코드 자동 생성 기능을 사용하지만, 하다보면 핀을 추가하거나 기능이 바뀌는 경우가 있다.
이 때, 코드를 재생성하게 되는데 빨간 상자와 같이 BEGIN ~ END 로 작성된 부분은 건드리지 않고 모든 코드가 재생성된다.
RTOS 개념 정리 (1) - Task (2) | 2023.01.28 |
---|---|
RTOS 맛보기 (5) - Task 생성하기(최종 실습) (0) | 2023.01.27 |
RTOS 맛보기 (4) - 인터럽트로 문자열 출력하기 (0) | 2023.01.26 |
RTOS 맛보기 (3) - 인터럽트 발생하기 (0) | 2023.01.26 |
RTOS 맛보기 (1) - 인터럽트로 시작하기 (0) | 2023.01.26 |