인하대학교 공과대학에서 전자공학 학사 학위를 받았으며 임베디드 시스템용 소프트웨어 개발자로써 수년간의 경력을 쌓았습니다. 임베디드 시스템 및 프로그래밍을 위한 전문 강사로도 활동 중입니다. 아이폰 3GS 등장과 같은 시기에 맥(북)에 입문하였고, 그때부터 맥(북) 자동화에 관심을 갖게 되었습니다. '맥(북)에서 사용할 수 있는 시리 리모트', '키보드마에스트로를 이용한 구글번역기' 같은 오픈 소스를 깃허브(https://github.com/guileschool) 에 두고 개발 및 유지보수하고 있습니다. 오픈 소스 하드웨어 '비글본블랙' 에도 많은 관심을 가지고 있습니다. 맥(북) 자동화를 이용하여 생산성을 높일 수 있는 컴퓨터를 사용하는 모든 분야에 관심을 가지고 있고, 이를 필요로 하는 사람들을 돕고 있습니다.
강의 요청 및 기타 문의사항은 guileschool@gmail.com으로 보내주세요 :)
강의
수강평
- 리눅스 필수 유틸리티 4종 마스터 - awk, sed, grep, find
- ARM Cortex-M 프로세서 프로그래밍
게시글
질문&답변
10. 선점형 커널 그림 설명중 우선순위가 반대인 경우에도 Task B가 먼저 수행되나요?
안녕하세요. risingkoo님!질문에 대한 답변은 아래와 같습니다.FreeRTOS 을 이해하실 때 우선순위가 가장 높은 태스크만 실행된다는 점을 이해하는 것이 중요합니다.이 점을 위 케이스에 대입해보면 답은 다음과 같습니다.처리 순서1) Task A 동작 중 ISR Handler에 의해 Task A의 동작이 멈춘다2) 휴면하고 있을 Task B를 ISR Handler 가 깨운다.(* 주의하세요. ISR Handler 가 Task B 을 호출하는 구조가 아니고 단지 깨워주는 역할만 하는 겁니다)3) 우선 순위가 높은 Task A의 동작이 완료(휴면 혹은 삭제)된 후 Task B의 동작이 시작된다.
- 1
- 2
- 20
질문&답변
디버거모드에 진입이 안됩니다.
프로젝트를 선택후 실행해 보시기 바랍니다.
- 0
- 2
- 68
질문&답변
prvExampleTaskHook 함수 호출 부분에 대해 문의드립니다.
안녕하세요, yongdeok1985님!질문하신 후크함수는 일반적으로는 잘 사용되지 않은 함수인데요, 본 강의의 경우 12_LOGICSNIFFS 예제에서 문맥전환 시간을 측정하고자 사용하였습니다.소스코드 인용#include "logicSniff.h" #include void vLogicSniffMultiSetLED5( unsigned int channel, int xValue ); void vLogicSniffMultiSetLED6( unsigned int channel, int xValue ); void vLogicSniffSetLED( unsigned int channel, int xValue ); BaseType_t prvExampleTaskHook( void * pvParameter ) { /* Perform an action. This could be anything. In this example, the hook is used to output debug trace information. pxCurrentTCB is the handle of the currently executing task. (vWriteTrace() is not an API function. It's just used as an example.) */ vLogicSniffMultiSetLED5(LS_CHANNEL_ALL5, 0); // All Leds Clear vLogicSniffMultiSetLED6(LS_CHANNEL_ALL6, 0); // All Leds Clear vLogicSniffSetLED( pxCurrentTCB->uxTCBNumber, 1 ); printf("%d ", (int)pxCurrentTCB->uxTCBNumber); /* This example does not make use of the hook return value so just returns 0 in every case. */ return 0; }prvExampleTaskHook() 함수는 vTaskSetApplicationTaskTag()를 통해 현재 태스크에 hook 함수로 등록되었으며, 이후 해당 태스크에서 xTaskCallApplicationTaskHook(NULL, param)을 호출했을 때 실행됩니다. 즉, 자동으로 호출되지 않으며, 직접 xTaskCallApplicationTaskHook()을 호출해야만 동작합니다.
- 0
- 2
- 56
질문&답변
보드 STM32H735IG와 강의 호환 여부 문의
STUDY COMP! 안녕하세요~~요청하신 STM32H735G-DK 포팅 작업이 완료되어 소스코드를 올려드렸습니다.제가 해당 STM32 보드를 가지고 있지않아 소스코드 생성 작업만 하여 전달드립니다그렇기 때문에 포팅이 잘되었는지 여부는 본인이 직접 확인하셔야 합니다기기에서 테스트 해보시고 문제점이 발견되시면 글 남겨주세요
- 1
- 3
- 75
질문&답변
보드 STM32H735IG와 강의 호환 여부 문의
안녕하세요. 강의 구매 후 이 질문란에 사용하시려는 보드의 포팅을 요청주시면 실습 예제를 해당 보드에서 사용하실 수 있도록 작업해서 전달드립니다.포팅 작업이 완료되었습니다 🙂 . 위 글 참고해주세요.
- 1
- 3
- 75
질문&답변
[ L152RE ] 원샷 소프트타이머 실행 잘 되시나요?
안녕하세요. chul17.choi 님!아래와 같이 'task.c' 코드를 완성하여야 동작합니다.참고바랍니다./* TODO #1:원샷 소프트웨어 타이머(xOneShotTimer)의 구현 */#if 1/* Create the one shot timer, storing the handle to the created timer in xOneShotTimer. */xOneShotTimer = xTimerCreate(/* Text name for the software timer - not used by FreeRTOS. */"OneShot",/* The software timer's period in ticks. */mainONE_SHOT_TIMER_PERIOD,/* Setting uxAutoRealod to pdFALSE creates a one-shot software timer. */pdFALSE,/* This example does not use the timer id. */0,/* The callback function to be used by the software timer being created. */prvOneShotTimerCallback );#endif /* TODO #2:자동 반복 소프트웨어 타이머(xAutoReloadTimer)의 구현 */#if 1/* Create the one shot timer, storing the handle to the created timer in xOneShotTimer. */xAutoReloadTimer = xTimerCreate(/* Text name for the software timer - not used by FreeRTOS. */"AutoReload",/* The software timer's period in ticks. */mainAUTO_RELOAD_TIMER_PERIOD,/* Setting uxAutoRealod to pdFALSE creates a one-shot software timer. */pdTRUE,/* This example does not use the timer id. */0,/* The callback function to be used by the software timer being created. */prvAutoReloadTimerCallback );#endif
- 1
- 2
- 55
질문&답변
Deferred Interrupt Processing 샘플 예제 문의 드립니다.
안녕하세요. chul17.choi 님!이번 질문의 경우는 아래 을 참고하시면 될 것 같네요.아주 잘 설명하고 있습니다. ㅎㅎ
- 1
- 2
- 55
질문&답변
포팅 서비스 부탁드립니다
노승조님이 말씀하신 포팅 자료는 아래 링크에서 다운로드 하실 수 있습니다.https://www.inflearn.com/courses/lecture?courseId=327240&type=LECTURE&unitId=147777혹여 사용하시는 컴파일러 버젼과 이 자료가 호환성 문제가 있을 수 있으니 그때는 아래 글을 참고해주세요.https://www.inflearn.com/community/questions/1230491/caddr-t-undeclared-%EB%AC%B8%EC%A0%9C
- 1
- 2
- 56
질문&답변
RTOS Secure Boot 관련 자료 문의
안녕하세요. 선대님!Secure Boot는 RTOS 환경에서 중요한 보안 요소 중 하나죠. 다만, 저는 실무에서 Secure Boot를 직접 다뤄본 경험이 없어서 깊이 있는 답변을 드리기는 어렵습니다. 하지만 보통 Secure Boot 개념은 RTOS보다는 하드웨어(SoC/MCU)의 보안 부팅 메커니즘과 밀접하게 연관되어 있습니다. 따라서, 사용하시는 하드웨어 제조사의 Secure Boot 가이드나 공식 문서를 먼저 확인해보시면 도움이 될 것 같네요.
- 2
- 1
- 101
질문&답변
lcd 프로그램 수행
안녕하세요, new 개발자님!LCD 프로젝트의 경우 Nucleo-F103RB 보드에서만 컴파일및 동작 여부가 확인되었습니다. 말씀하신 STM32F429ZI-disc1 이나 Nucleo-F429ZI 보드의 경우는 컴파일및 동작 여부가 확인되지 않았음을 알려드리고, 만약 빌드시켜 실행을 해보시겠다고 하면 아래 내용을 참고해주세요.우선 소스파일을 받아주세요.liquidcrystal_i2c.cliquidcrystal_i2c.h이 소스를 기존 LCD 프로젝트 파일내의 SRC 로 넣어주신 후 빌드하시면 됩니다.디버깅은 강의 영상을 참고해서 해보세요.
- 1
- 2
- 81