인하대학교 공과대학에서 전자공학 학사 학위를 받았으며 임베디드 시스템용 소프트웨어 개발자로써 수년간의 경력을 쌓았습니다. 임베디드 시스템 및 프로그래밍을 위한 전문 강사로도 활동 중입니다. 아이폰 3GS 등장과 같은 시기에 맥(북)에 입문하였고, 그때부터 맥(북) 자동화에 관심을 갖게 되었습니다. '맥(북)에서 사용할 수 있는 시리 리모트', '키보드마에스트로를 이용한 구글번역기' 같은 오픈 소스를 깃허브(https://github.com/guileschool) 에 두고 개발 및 유지보수하고 있습니다. 오픈 소스 하드웨어 '비글본블랙' 에도 많은 관심을 가지고 있습니다. 맥(북) 자동화를 이용하여 생산성을 높일 수 있는 컴퓨터를 사용하는 모든 분야에 관심을 가지고 있고, 이를 필요로 하는 사람들을 돕고 있습니다.
강의 요청 및 기타 문의사항은 guileschool@gmail.com으로 보내주세요 :)
강의
수강평
- ARM Cortex-M 프로세서 프로그래밍
- FreeRTOS 프로그래밍
- FreeRTOS 프로그래밍
게시글
질문&답변
RTOS Secure Boot 관련 자료 문의
안녕하세요. 선대님!Secure Boot는 RTOS 환경에서 중요한 보안 요소 중 하나죠. 다만, 저는 실무에서 Secure Boot를 직접 다뤄본 경험이 없어서 깊이 있는 답변을 드리기는 어렵습니다. 하지만 보통 Secure Boot 개념은 RTOS보다는 하드웨어(SoC/MCU)의 보안 부팅 메커니즘과 밀접하게 연관되어 있습니다. 따라서, 사용하시는 하드웨어 제조사의 Secure Boot 가이드나 공식 문서를 먼저 확인해보시면 도움이 될 것 같네요.
- 2
- 1
- 28
질문&답변
lcd 프로그램 수행
안녕하세요, new 개발자님!LCD 프로젝트의 경우 Nucleo-F103RB 보드에서만 컴파일및 동작 여부가 확인되었습니다. 말씀하신 STM32F429ZI-disc1 이나 Nucleo-F429ZI 보드의 경우는 컴파일및 동작 여부가 확인되지 않았음을 알려드리고, 만약 빌드시켜 실행을 해보시겠다고 하면 아래 내용을 참고해주세요.우선 소스파일을 받아주세요.liquidcrystal_i2c.cliquidcrystal_i2c.h이 소스를 기존 LCD 프로젝트 파일내의 SRC 로 넣어주신 후 빌드하시면 됩니다.디버깅은 강의 영상을 참고해서 해보세요.
- 1
- 2
- 27
질문&답변
timebase source를 systick timer로 하신 이유
안녕하세요, 김소명님!제 의견을 정리해서 전달하기 위해 시간이 좀 필요했습니다. 답변드리겠습니다.솔직히 말씀드리면, 제가 이 강의를 준비하면서 이 부분에 대해서 크게 의식하지 않았던 것은 확실합니다.그 이유는 간단합니다. CORTEX-M 의 systick 은 그 이름 속에서 잘 드러나 있듯이 TICK 전용 타이머인것입니다. 그리고, 과거부터 FREERTOS 에서 줄곧 사용해왔던 타이머이기도 합니다. 마이크로씨 오에스에서도 십수년간 사용해오던 타이머 이기도 합니다. 그래서 저는 팝업 경고 메시지에 크게 의미를 두지 않았던 것 같습니다. 그리고, ST 직원이 만들어낸 그 경고 메시지도 그리 아름답지 못합니다(강력히 추천한다니? 어쩌라는 거지? 쓰라는 말인가 말라는 것인가) .이미 오랜동안 낮은 우선순위(15)을 사용해 온 RTOS 틱 인터럽트의 우선순위를 정 반대의 논리인 높은 우선순위(0)로 바꾸려면 보다 강력한 분명한 이유가 있어야 하겠습니다.우선순위가 높아야 한다는 주장출처: https://shpp.freertos.org/FreeRTOS_Support_Forum_Archive/January_2016/freertos_SysTick_interrupt_priority_99f02a87j.html그들의 주장은 이렇습니다. 1초에 1000번 빠른 속도?로 발생하는 타이머 인터럽트가 다른 하드웨어 인터럽트보다 우선순위가 낮을 경우 인터럽트를 놓칠 수 있는 위험으로인해 시간 베이스에 오차가 발생한다. 따라서 우선순위를 높여서 이 문제를 예방할 필요가 있다.하지만,FREERTOS 제작자와 마이크로씨 오에스의 제작자인 리처드베리와 쟝제이 라브로쉐 모두 OS 용 타이머 틱 인터럽트의 우선순위는 오히려 낮아야 한다고 말했습니다. 그런데요 이들의 논리가 더 힘 있어보입니다. 한번 쟝제이의 오래전 글을 함께 보시죠.우선순위가 낮아야 한다는 주장(사진)출처: https://www.iar.com/knowledge/learn/programming/6-misconceptions-about-the-rtos-tick마무리 결론입니다.SysTick 우선순위 설정은 정답이 있는 문제가 아니라, 사용하는 RTOS의 특성과 애플리케이션 요구사항에 따라 다릅니다. 그러므로 두 가지 주장을 참고하되, 자신의 프로젝트와 경험을 바탕으로 판단해야 합니다.RTOS 제작자들의 권고(FreeRTOS, μC/OS 제작자)는 오랜 현장 경험을 바탕으로 하였으므로 이를 신뢰할 수 있습니다. 그러나 ST의 문서를 통해 제안된 방식 역시 특정 응용 사례에 유효할 수 있습니다.
- 1
- 2
- 59
질문&답변
dfi 부분 설명 잘못하신거 아닌가요
안녕하세요. 작성자님!FreeRTOS에서 DFI(Deferred Interrupt)는 시간이 많이 소요되는 인터럽트 작업을 연기하여 처리하는 기법을 말합니다.DFI가 필요한 이유는 매우 짧게 실행되어야 하며, 높은 우선순위를 가지는 인터럽트 핸들러의 고유한 특성 때문인데요.인터럽트 핸들러에 긴 작업이 포함되면 다른 중요한 인터럽트가 지연될 수 있습니다.DFI 의 처리 방식은 인터럽트 핸들러는 최소한의 작업만 수행하고 빠르게 종료한 후 시간이 많이 소요되는 작업은 매우 높은 우선순위의 태스크에서 처리하도록 위임하는 것입니다.위의 AI 인턴도 잘 설명해 놓은 것같아요. 그 글도 참고하시면 좋겠네요 ^^이를 이용하면 다른 인터럽트의 지연 가능성을 줄임으로써 실시간 성능이 향상됨과 동시에 인터럽트 지연으로 인해 발생할 수 있는 시스템 위험을 제거함으로 전체 시스템 안정성까지 확보할 수 있게 됩니다.
- 0
- 2
- 65
질문&답변
학습 진행 시, 사용하는 Board에 대한 문의 드립니다!
안녕하세요. 황동빈님!교육 상세 설명에도 안내드렸다시피, 영상에선 현재 STM32F429I-DISC1 보드 기준으로 수업을 진행합니다. 추가적으로 NUCLEO-F103RB, NUCLEO-F401RE 보드도 지원합니다. 향후 기타 보드의 추가 지원 계획은 없습니다. 참고바랄게요.
- 0
- 2
- 43
질문&답변
TaskDelay와 printf 순서
안녕하세요. establers님!태스크 실행 → 1초 대기(vTaskDelay) → 깨어난 후 “b” 출력 → 다시 대기.printf 을 이용해서 시스템이 태스크를 어떻게 스케줄링하는지 확인하거나, 실행 주기를 측정하는 데 도움을 줄 수 있습니다.
- 1
- 2
- 56
질문&답변
섹션3 포팅 실습
안녕하세요. 세계시민83님!freertos_port 와 PORT 는 각각 별개의 프로젝트입니다.PORT 프로젝트 생성시 알수 없는 오류가 발생한 것 같습니다. 실습을 해보길 원하시면 현재의 PORT 프로젝트를 삭제(완전삭제)하시고, 영상을 참고하시어 새 프로젝트를 다시 만들어보세요.
- 1
- 2
- 59
질문&답변
질문있습니다
안녕하세요. 김민섭님!TASKMAN 을 비롯한 이 강의의 모든 실습 예제는 IOC 를 임의로 수정하시면 안됩니다.( 있는 그대로 사용 )IOC 파일 수정 후 저장하시면 STM32CubeIDE 자체의 코드 자동 생성 기능이 작동하게 되는데, 이 과정에서 자동 생성된 FreeRTOSConfig.h 가 기존의 파일을 덮어쓰면서 문제가 됩니다. 이외에도 예상치 못한 추가적인 문제가 발생할 수 있습니다.꼭 필요하시다면 문제의 프로젝트 파일을 압축하신 후 다음의 메일 주소(guileschool@gmail.com) 로 보내주시면 수정해서 보내드리겠습니다.
- 1
- 2
- 61
질문&답변
섹션1 보드 디버깅 putty 실행화면(속도:115200)
안녕하세요. 세계시민83님!putty 설정 잘 하신 겁니다.^^또 필요한 내용 있으면 글 남겨주세요.
- 1
- 2
- 94
질문&답변
Nucleo-64 F103RB 케이블
안녕하세요, 세계시민83님!아래 AI 인턴이 답변을 잘 해주었네요참고해보시기 바랍니다
- 1
- 2
- 84