인하대학교 공과대학에서 전자공학 학사 학위를 받았으며 임베디드 시스템용 소프트웨어 개발자로써 수년간의 경력을 쌓았습니다. 임베디드 시스템 및 프로그래밍을 위한 전문 강사로도 활동 중입니다. 아이폰 3GS 등장과 같은 시기에 맥(북)에 입문하였고, 그때부터 맥(북) 자동화에 관심을 갖게 되었습니다. '맥(북)에서 사용할 수 있는 시리 리모트', '키보드마에스트로를 이용한 구글번역기' 같은 오픈 소스를 깃허브(https://github.com/guileschool) 에 두고 개발 및 유지보수하고 있습니다. 오픈 소스 하드웨어 '비글본블랙' 에도 많은 관심을 가지고 있습니다. 맥(북) 자동화를 이용하여 생산성을 높일 수 있는 컴퓨터를 사용하는 모든 분야에 관심을 가지고 있고, 이를 필요로 하는 사람들을 돕고 있습니다.
강의 요청 및 기타 문의사항은 guileschool@gmail.com으로 보내주세요 :)
Khóa học
Đánh giá khóa học
- Lập trình bộ xử lý ARM Cortex-M
- Bậc thầy tập lệnh Linux Shell
- Lập trình bộ xử lý ARM Cortex-M
- Lập trình FreeRTOS
Bài viết
Hỏi & Đáp
no-stlink
글쎄요.. 처음에 설치하시지 않았을까요?(사진)
- 1
- 2
- 26
Hỏi & Đáp
포팅 원합니다.
taegyu224님이 말씀하신 포팅 자료는 아래 링크에서 다운로드 하실 수 있습니다.https://inf.run/45f6Y혹여 사용하시는 컴파일러 버젼과 이 자료가 호환성 문제가 있을 수 있으니 그때는 아래 글을 참고해주세요.https://inf.run/9mVm4
- 2
- 2
- 34
Hỏi & Đáp
4개의 CPU 사이클이 필요한 이유
안녕하세요. 이명운님!STM32 플래시 메모리는 CPU 성능에 보조를 맞출수 있도록 128비트 가속기 인터페이스를 채택하고 있습니다. 데이터 시트에는 플래시 메모리의 128비트를 버퍼에 채우는데 버스클럭 기준 1클럭이 필요한지 4클럭이 필요한지에서 대해서는 명확한 설명은 없습니다. 다만 아래 그림을 참고해 유추해보면 4클럭 단위로 버퍼를 채우는 것으로 생각해도 좋을 것입니다.CORE 는 이 버퍼에서 명령어들을 페치합니다. 플래시 가속기는 버퍼가 비워지면 준비한 다음 128비트를 버퍼에 채우는 식으로 동작하는 것을 아래 그림에서 확인해주세요.(사진)
- 1
- 2
- 38
Hỏi & Đáp
MAC으로 진행 질문드려요..
안녕하세요. 진민우님!답변이 많이 늦었습니다. 용서하시기 바랍니다. 질문을 놓쳤네요. ㅠㅠST 공식 사이트에서 받은 설치 프로그램에는 ST-Link Server 설치도 포함되어 있습니다.(사진)시리얼은 맥 기본 터미널에서 screen 프로그램을 이용하여 가능합니다.자세한 내용은 이전 답변을 참고해주세요.
- 1
- 2
- 46
Hỏi & Đáp
코루틴 실습질문
안녕하세요. JUNI 님!램 메모리 사이즈 때문에 어려움이 많으시군요. 아래와 같이 힙사이즈를 충분히 줄여보시기 바랍니다.#define configTOTAL_HEAP_SIZE ((size_t)7700)위 상수값은 freeRTOS 태스크의 힙 크기를 결정합니다. 아래 그림도 참고해보세요(사진)
- 1
- 2
- 50
Hỏi & Đáp
TODO 2번 문제
안녕하세요. JUNI님!어떤식으로 설정하셨는지에 따라서 실행 결과는 다양하게 나올 수 있습니다. 문제가 되는 지점의 코드를 이곳에 붙여넣어 주시면 검토 후 답변드리겠습니다.
- 1
- 4
- 70
Hỏi & Đáp
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
- 46
Hỏi & Đáp
디버거모드에 진입이 안됩니다.
프로젝트를 선택후 실행해 보시기 바랍니다.
- 0
- 2
- 111
Hỏi & Đáp
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
- 75
Hỏi & Đáp
보드 STM32H735IG와 강의 호환 여부 문의
STUDY COMP! 안녕하세요~~요청하신 STM32H735G-DK 포팅 작업이 완료되어 소스코드를 올려드렸습니다.제가 해당 STM32 보드를 가지고 있지않아 소스코드 생성 작업만 하여 전달드립니다그렇기 때문에 포팅이 잘되었는지 여부는 본인이 직접 확인하셔야 합니다기기에서 테스트 해보시고 문제점이 발견되시면 글 남겨주세요
- 1
- 3
- 98