728x90
반응형
728x90
반응형
FreeRTOS에는 메모리관리 기능이 제공된다!! 아래내용은 최근 FreeRTOS를 심층(?) 분석해 실무에 적용하기 위해 기록을 남긴 내용이다. 다소 부족하고 정리가 안될 수도 있다. 질문, 반박은 언제나 환영이다.메모리 정적/동적 옵션 설정정적(static)으로 메모리 영역을 할당하기 위해서는 configSUPPORT_STATIC_ALLOCATION 옵션을 set 해야 한다.동적(dynamic)으로 메모리 영역을 할당하기 위해서 configSUPPORT_DYNAMIC_ALLOCATION 옵션을 set 해야 한다. 1로 설정하지 않아도 관계 없다.두 가지 옵션을 모두 1로 설정하는 것도 가능하다.메모리 할당(malloc)/해제(Free)malloc() 대신 pvPortMalloc()free() 대신 p..
Free RTOS에는 데이터 타입과 코딩룰이 있다. 정리해보면, 변수명(Variable Names) c - char 형의 변수를 의미 s - int16_t 형의 변수를 의미 i - int32_t 형의 변수를 의미 x - BaseType_t 형의 변수나 구조체, Task handle, queue handles 등을 의미 u - unsigned를 의미 p - 포인터를 의미 변수의 자료형에 따라 접두사를 조합해서 쓴다. 예를 들어 unsinged char 형 이라면 uc, char* 형 이라면 pc와 같은 형태로 접두어를 조합해 사용한다. 함수명(Function Names) v - void 를 반환하는 함수를 의미, 즉 반환값이 없는 함수 x - BaseType_t 형 변수를 반환하는 함수를 의미 pv - v..
4번째 포스팅에서 Task를 만드는 방법에 대해 알아봤고, 5번째 포스팅에서는 Task 상태에 대해 알아봤다.(아래 링크 참고) https://vuzwa.tistory.com/entry/4-Free-RTOS-Task-%EC%83%9D%EC%84%B1%ED%95%98%EA%B8%B0-Multi-Taskwith-STM32L475VGT-B-L475E-IOT01A1 4. Free RTOS - Task 생성하기, Multi Task(with STM32L475VGT, B-L475E-IOT01A1) https://vuzwa.tistory.com/entry/2-Free-RTOS-UART-%EC%82%AC%EC%9A%A9%ED%95%98%EA%B8%B0with-STM32L475VGT-B-L475E-IOT01A1 2. F..
https://vuzwa.tistory.com/entry/4-Free-RTOS-Task-%EC%83%9D%EC%84%B1%ED%95%98%EA%B8%B0-Multi-Taskwith-STM32L475VGT-B-L475E-IOT01A1 4. Free RTOS - Task 생성하기, Multi Task(with STM32L475VGT, B-L475E-IOT01A1) https://vuzwa.tistory.com/entry/2-Free-RTOS-UART-%EC%82%AC%EC%9A%A9%ED%95%98%EA%B8%B0with-STM32L475VGT-B-L475E-IOT01A1 2. Free RTOS - UART 사용하기(with STM32L475VGT, B-L475E-IOT01A1) 이전 포스팅에서는 RTOS ..
https://vuzwa.tistory.com/entry/2-Free-RTOS-UART-%EC%82%AC%EC%9A%A9%ED%95%98%EA%B8%B0with-STM32L475VGT-B-L475E-IOT01A1 2. Free RTOS - UART 사용하기(with STM32L475VGT, B-L475E-IOT01A1) 이전 포스팅에서는 RTOS 프로젝트 생성까지 확인해봤다. https://vuzwa.tistory.com/entry/1-Free-RTOSwith-STM32L475VGT-B-L475E-IOT01A1 1. Free RTOS(with STM32L475VGT, B-L475E-IOT01A1) RTOS를 포스팅해야지.. vuzwa.tistory.com 이전 포스팅에서는 C 표준 함수를 통해 UART ..
CMSIS? ARM 코어를 다루다 보면 자주 보이는 단어다. Common Microcontroller Software Interface Standard의 약자로 "마이크로 컨트롤러에서 공통적으로 사용되는 표준 소프트웨어 인터페이스"정도로 해석할 수 있다. 아래 그림은 ARM 홈페이지에 나와있는 MCU 리스트다. 그럼 CMSIS_RTOS는? FreeRTOS의 API 함수를 호출하는 함수로 구현되어 있다. Project Explorer - Middlewares - Thrid_Party - FreeRTOS - Source - CMSIS_RTOS 위 경로를 확인해보면 cmsis_os.c파일을 확인할 수 있다. 하나만 예를 들어 살펴보면, cmsis_os.c에 선언되어 있는 osKernelStart 함수다. 함수..
이전 포스팅에서는 RTOS 프로젝트 생성까지 확인해봤다. https://vuzwa.tistory.com/entry/1-Free-RTOSwith-STM32L475VGT-B-L475E-IOT01A1 1. Free RTOS(with STM32L475VGT, B-L475E-IOT01A1) RTOS를 포스팅해야지 하고 이론적 배경만 쓰고 잠시 쉬었다. 다시 RTOS를 다뤄야 할 일이 생길 수도 있어서 하나씩 정리해보려고 한다. 우선 RTOS에 대한 이론적 배경은 이전 포스팅을 참고하면 되 vuzwa.tistory.com RTOS에서 왜 갑자기 uart로 넘어가는지는 포스팅을 보면 바로 이해가 될 거다. 펌웨어 개발에서 UART는 필수적이다. 다른 기기와 통신뿐만 아니라 보드의 상태를 확인할 수 있는 log를 출력..
RTOS를 포스팅해야지 하고 이론적 배경만 쓰고 잠시 쉬었다. 다시 RTOS를 다뤄야 할 일이 생길 수도 있어서 하나씩 정리해보려고 한다. 우선 RTOS에 대한 이론적 배경은 이전 포스팅을 참고하면 되고, https://vuzwa.tistory.com/entry/0-FreeRTOS-FreeRTOS%EB%9E%80 0. FreeRTOS - FreeRTOS란? 1. FreeRTOS 란 ? 1.1 RTOS ? 실시간(Real Time) 운영체제(Operating System)의 약자이다. RTOS는 제한된 시간내에 원하는 작업을 모두 처리하는것을 보장하는 운영체제를 뜻한다. RTOS가 들어가는 기기는 거의.. vuzwa.tistory.com 지금부터는 ST의 개발 보드인 B-L475E-IOT01A1으로 Fre..
1. FreeRTOS 란 ? 1.1 RTOS ?실시간(Real Time) 운영체제(Operating System)의 약자이다. RTOS는 제한된 시간내에 원하는 작업을 모두 처리하는것을 보장하는 운영체제를 뜻한다. RTOS가 들어가는 기기는 거의 대부분 임베디드 시스템인데 이런 기기는 보통 일반 PC보다 낮은 하드웨어 성능을 갖는다. "Real Time OS 인데 어떻게 낮은 하드웨어 성능을 갖는 기기에서 동작을 하나?" 라는 물음을 가질 수 있지만, Real Time과 High performance는 다른 개념이다. PC에서 동시에 여러가지 응용 프로그램을 사용하다보면 처리속도가 지연되거나 프로그램실행이 1초 이상 지연되는 경험을 해봤을 것이다. 하지만 RTOS를 사용한 기기는 응용 프로그램을 최대..