분류 전체보기

프로젝트 일지/Whale Car

[Whale Car] 1ms Timer의 늪

지난 시간 기본적인 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은 이..

프로젝트 일지/Whale Car

[Whale Car] STM32H745ZIQ 보드 연결

Dual Core라는 이유 하나로 설레는 마음으로 STM32 CubeIDE에 연결해 보았다. Clock Config부터 들어가 보았는데, M7기준 480 MHz M4 기준 240 MHz의 Max Clock 설정이 가능한 것만 봐도 설렌다. 일단 M7은 400 MHz를 사용하고 M4는 200 MHz를 사용하도록 설정을 한다. 부가적인 Clock Config는 Tool이 알아서 해결해 준다.   Clock을 설정하고 나면 RCC쪽에서 분홍빛이 들어오는데, 이것저것 눌러보다가 보드가 잠겨버렸다.. 처음에는 고장 난 줄 알고 8만 원 날렸단 생각에 망연자실했었다. 바로 SupplySource Tap에서 이것저것 만지다 RCC 초기화 부분에서 마이컴 자체가 잠겨버린 것이었다.   보드가 잠기게 되면 Debugge..

프로젝트 일지/Whale Car

[Whale Car] 개발 보드 변경

최근 현생 이슈로 인해서 게시글이 뜸했었다. 회사에서 업무 관련 서칭 중에 nucleo 보드 중에 매력적인 보드가 눈에 들어왔다. Nucleo-H745ZI-Q보드로 M4와 M7 Dual Core 보드이다. 현재 회사에서도 제일 대두되는 문제가 Multi Core 환경에서 Race Condition이 Hot Issue이다. 집에서 개발하면서 현업 능력도 기를 겸 구매해야겠다는 뽐뿌가 올라왔다. 하지만 바로 디바이스마트, 엘레파츠 등을 서칭 해보았지만 돌아오는 건 품절 문구였다. 좌절하기 직전 알리 익스프레스에서 검색해 보니 바로 구매 가능한 목록들이 나왔다. 알리 익스프레스에서 구매한다는 것에 사기당할까 두려움이 앞섰지만 어쩔 수 없이 바로 구매 버튼을 눌렀다. (후기가 너무 없었따..)  우려했던바와는 ..

프로젝트 일지/Whale Car

[Whale Car] Serial 통신 뚫기

안녕하세요. 오늘은 Serial 통신을 뚫어볼 계획이다. 다른 모듈 개발에 앞서 통신을 먼저 뚫어 놓는 것이 좋다. Nucleo 보드의 경우 Debugging이 가능하지만 나중에 주행 상황에서 체크하고 하려면 필요하다. 책상 앞에서만 볼 수는 없으니까. 본론에 들어가기 앞서 Serial 통신에 대해 설명해야 하는데, Serial 통신에 대한 개념은 이전에 다루었던 블로그 글로 대체하도록 하겠다. - Serial 통신이란? : https://enginbear.tistory.com/25 [아두이노 기초] Serial 통신 1. 기초이론 개발 경험상 아두이노를 포함해서 임베디드를 개발하는 데 있어 통신 서비스는 매우 중요합니다. 우선 무얼 개발할 지부터 개발 완성에 다다를 때까지 디버깅을 하는데 큰 도움을 e..

프로젝트 일지/Whale Car

[Whale Car] Scheduler 만들기

이번 시간에는 지난 시간 만든 1ms Timer Interrupt를 활용해서 Scheduler를 만들어 봅시다. 임베디드에서는 Scheduler가 심장이라고 해도 과언이 아닙니다. 임베디드 위에서 올라가있는 모든 로직들의 일정을 관리해주니까요. 우리가 여태까지 아두이노를 통해 접해왔던 코드로 만들어진 결과물은 OS라 보기 어려웠습니다. 왜냐면 아주 단순하게 setup()이라는 함수를 보드가 처음 켜질때 1회 실행시키고 나서 loop()안에서만 빙빙 돌게 되니까요. 이건 아주 단순한 Firmware라고 봐야할 것 같아요. 우리가 OS라고 했을때 떠오르는 것은 윈도우, 맥, 리눅스, 안드로이드, IOS 등등 이니까요. 우리가 알고 있는 것 이외에도 RTOS라 해서 Real-Time OS가 존재합니다. 대부분..

우리집공돌이곰돌을좋아해
'분류 전체보기' 카테고리의 글 목록 (2 Page)