지난 시간 기본적인 Setting을 마치고 '간단하게' 1ms Timer를 만들어보려 했다. 말 그대로 간단하게 1ms Timer만 만들고 종료하려고 시작을 했는데... 우선 STM32H735은 General Purpose Timer로 10개의 Timer를 가지고 있다고 한다. 나는 여기서 32-bit Timer인 2와 5를 사용할 예정이다. 각 Core에 할당하여 따로 1ms Timer를 돌리는 것이 목적이었다. STM32H7 프로젝트는 특이하게, Peripheral을 선택하면 어느 Core할당할 것인지 설정하는 부분이 있다. TIM2는 M4 Core에 TIM5는 M7 Core에 할당하였다. TIM2와 TIM5는 Manual을 보면, APB1 Bus에 물려있는 것을 볼 수 있는데 APB1은 이..
이번 시간에는 지난 시간 만든 1ms Timer Interrupt를 활용해서 Scheduler를 만들어 봅시다. 임베디드에서는 Scheduler가 심장이라고 해도 과언이 아닙니다. 임베디드 위에서 올라가있는 모든 로직들의 일정을 관리해주니까요. 우리가 여태까지 아두이노를 통해 접해왔던 코드로 만들어진 결과물은 OS라 보기 어려웠습니다. 왜냐면 아주 단순하게 setup()이라는 함수를 보드가 처음 켜질때 1회 실행시키고 나서 loop()안에서만 빙빙 돌게 되니까요. 이건 아주 단순한 Firmware라고 봐야할 것 같아요. 우리가 OS라고 했을때 떠오르는 것은 윈도우, 맥, 리눅스, 안드로이드, IOS 등등 이니까요. 우리가 알고 있는 것 이외에도 RTOS라 해서 Real-Time OS가 존재합니다. 대부분..