전체 글 (17) 썸네일형 리스트형 [KOSTA수업정리] beginning stm32 원서 정리2(FreeRTOS) FreeRTOS는 임베디드 리눅스가 지원되지 않는 리소스가 제한된 환경에서 실시간성을 보장하고 멀티태스킹을 효율적으로 수행할 수 있도록 지원하는 경량 OS입니다. 1. MultiTasking and Scheduling-> 대부분의 아두이노와 STM32 보드는 싱글코어 기반 MCU를 사용합니다. 아두이노는 기본적으로 single task 구조이며, setup()과 loop() 함수 내에서 단일 스택을 사용해 동작합니다. 따라서 센서 값을 주기적으로 읽기 위해서는 loop 내에서 폴링 방식으로 값을 확인해야 합니다. 하지만 폴링 방식은 이벤트 발생 여부를 계속 확인해야 하므로 비효율적일 수 있습니다. 예를 들어서 loop안에 if(flag) 이런식으로 flag 변수를 둬서 이벤트가 발생했다면 어떤 로직 처.. [HMobility] 에러 체크 알고리즘(Parity Bit) 자동차, 항공우주 등에서는 여러 이유로 데이터가 손상되서 전송되고는 합니다. 위성의 경우 패킷 형태로 데이터를 내려보내는 것으로 알고 있는데 0,1의 바이너리 데이터로 전송되게 됩니다. 0과 1을 구분하는 것은 전압의 기준에 따라 정해지기 때문에 0으로 전송되어야 할 것이 1로 전송된다던가 하는 문제점이 있을 수 있습니다. 차량 또한 마찬가지입니다. 와이어링 하네스를 거쳐서 데이터가 전송이 되는데 그 길이만 해도 ECU에서 ECU로 데이터를 전송할 때 노이즈가 끼기 마련이고 데이터를 받았을 때 이 데이터의 무결성을 보장할 수는 없습니다. 이를 위해서 에러를 체크하는데 CAN의 경우는 에러가 검출이 되면 에러가 껴있는 데이터를 재전송을 하는 방식으로 신뢰성을 보장하기도 합니다. 하지만 UDP 이더넷의 경우.. [HMobility] 차량용 RTOS 기반 프로그래밍 (스레드) Thread와 Process 사이의 주요한 차이점?프로세스와 달리 쓰레드 사이에서는 동일한 address space 및 global variable을 공유함RTOS에서는 Thread를 더 많이 사용하게 된다쓰레드 스위칭은 CPU의 작업 흐름을 크게 방해하지 않으며, 비교적 가벼운 작업이다.프로세스 스위칭은 context switching을 포함하기 때문에 상대적으로 무거운 작업이다.-> 처음에는 프로세스가 먼저 등장하고 process는 변수를 공유하는 등의 작업을 할 수 없다는 단점이 있었습니다. 또한, 프로세스 스위칭은 메모리 cost를 많이 잡아먹고 성능을 느려지게 하는 원인이 되었습니다. 따라서 thread라는 좀 더 상대적으로 가벼운 개념이 등장했고 지금은 task가 컴퓨터에서 일을 수행하는 기본.. 이전 1 2 3 4 ··· 6 다음