소개
인하대학교 공과대학에서 전자공학 학사 학위를 받았으며 임베디드 시스템용 소프트웨어 개발자로써 수년간의 경력을 쌓았습니다. 임베디드 시스템 및 프로그래밍을 위한 전문 강사로도 활동 중입니다. 아이폰 3GS 등장과 같은 시기에 맥(북)에 입문하였고, 그때부터 맥(북) 자동화에 관심을 갖게 되었습니다. '맥(북)에서 사용할 수 있는 시리 리모트', '키보드마에스트로를 이용한 구글번역기' 같은 오픈 소스를 깃허브(https://github.com/guileschool) 에 두고 개발 및 유지보수하고 있습니다. 오픈 소스 하드웨어 '비글본블랙' 에도 많은 관심을 가지고 있습니다. 맥(북) 자동화를 이용하여 생산성을 높일 수 있는 컴퓨터를 사용하는 모든 분야에 관심을 가지고 있고, 이를 필요로 하는 사람들을 돕고 있습니다.
강의 요청 및 기타 문의사항은 guileschool@gmail.com으로 보내주세요 :)
강의
전체5수강평
- 감사합니다. 많은 도움이 되엇어요
kimms
2024.05.28
0
- 정말 유익한 수업이었습니다!!
김수현
2024.05.02
1
게시글
질문&답변
2024.07.18
프로젝트 구조 질문
안녕하세요. 김세원님! 01_TASKMAN, 02_STACKOVERFLOW, ... 모든 프로젝트는 task.c 만 다르게하고 main.c 파일 내용은 동일하게 유지하여 학습자가 소스를 볼 때 편리하도록 배려하였습니다. 이제 궁금증이 풀리셨나요 ? 🙂
- 2
- 1
- 71
질문&답변
2024.07.17
NUCLEO-H743ZI2 포팅프로젝트 USER 버튼 확인 요청
안녕하세요. southseo님! 요청하신 자료 업로드하였습니다 말씀하신 것처럼 B1 버튼의 포트 정보가 잘못되어 있는 것을 확인하였습니다. 제가 해당 보드를 가지고 테스트 해본것이 아닌만큼 잘못된 부분이 또 있으면 다시 신고 부탁드립니다. 틀린 부분 지적해주셔서 감사합니다 ^^. NUCLEO-H743ZI2 로 포팅을 했어야 했는데 NUCLEO-H743ZI 으로 포팅했었네요. 참고해주세요 좋은 하루되세요~~
- 1
- 1
- 48
질문&답변
2024.06.04
메모리 단편화 설명 중에 메모리 요구 사이즈 < 남은 메모리 사이즈 임에도 할당에 실패 할 수 있는게 혹시?
안녕하세요. ko Kin님! 네, 맞습니다. 메모리 단편화가 생긴 메모리에서는 메모리의 잔여 총량보다 요청한 양이 적은데도 불구하고 메모리 할당이 실패할 수 있는 이유는 메모리는 연속적인 공간을 할당 받을 수 있어야 하기 때문입니다.
- 1
- 1
- 79
질문&답변
2024.05.20
Timer Interrupt, Task 우선순위
안녕하세요. 최지선님! LCD에서 UI 터치 되면 모터 제어 Timer 동작 시켜보았습니다. 모터 제어 timer interrupt가 동작 된 후, task가 먹통 되는 증상이 있는데 timer interrupt가 task 보다 우선순위가 높아서 timer가 동작 된 이후로는 task가 동작하지 않는 걸까요? (모터의 제어 주파수가 비 연속적으로 바뀌고 설정한 거리만큼 움직이고 스스로 인터럽트를 종료하는 모터 제어 방식입니다.) 질문이 3가지입니다. 1) Timer Interrupt 실행 시 Task보다 우선순위가 높아 Task가 동작하지 않는 것인지요? > 타이머를 포함한 하드웨어 인터럽트들은 태스크보다 우선순위가 높습니다. 하드웨어 인터럽트 때문에 태스크가 실행되지 않는 것을 염려하신다면 충분히 가능한 일입니다. 인터럽트 핸들러 내에서 긴 처리 시간이나 대기 시간을 포함시키는 것은 바람직하지 않습니다. 이는 시스템의 응답 시간과 신뢰성에 부정적인 영향을 미칠 수 있습니다. 디버깅 해보시죠. 단, 브레이크 포인트를 이용한 디버깅 보다는 LED 을 토글시키는 코드나 printf 을 태스크 함수내에 넣어서 태스크가 실행이 되는 지를 확인하는 방법이 이 경우에는 더 효과적입니다. 2) 비 연속적으로 제어되는 방식이라면 모터 제어와 완료 후에 Task가 동작 할 수 있게 하는 방식은 어떤 식으로.. 처리해야 하는지 궁금합니다. 3) 만약 Timer Interrupt(모터 동작)의 선점으로 Task가 동작하지 못한다면, LCD Touch 인식을 체크하는 Task는 Timer Interrupt는 끝나고(모터 움직임 완료) 동작해야 하는 것인가요..? > 답변: 2번과 3번 질문에 대해서는 제가 답변드릴 수 있는 범위를 넘어서는 질문입니다. 왜냐하면 개발 중인 프로젝트에 대해 제가 충분히 알지 못하기 때문입니다. 저라면 TOUCHGFX 튜토리얼 예제를 찾아서 분석해보겠습니다. 코드를 완벽히 분석할 필요는 없습니다. 버튼을 눌렀을 때 사용자가 원하는 액션이 실행되는 원리를 파악하는 것이 중요합니다. 그렇게 해야만 작성 중인 코드를 완전히 이해하고 제어할 수 있습니다. 그리고 타이머 제어 및 인터럽트 코드를 하나씩 추가하면서 확인해보시기 바랍니다. 좋은 결과 있으시길 바랍니다.
- 1
- 1
- 136
질문&답변
2024.05.18
STM32 LCD 제어 프로그램
안녕하세요, 최지선님! freertos + touchgfx + 타이머 어플리케이션 만들기는 touchgfx designer 을 설치하신 후 이용할 수 있는 템플릿 프로젝트들을 활용하시면 좋습니다. touchgfx 튜토리얼도 참고해보세요 https://support.touchgfx.com/ko/docs/tutorials/tutorial-01 템플릿들 모두 freertos 을 기반으로 구현되어 있죠. 또한 stm32cubeIDE 도 지원합니다. 아래 buttonClicked 함수는 사용자가 화면속 버튼을 누르면 실행되는 함수입니다. 사용자 코드와 touchgfx 라이브러리는 이런식으로 인터페이스 됩니다. 태스크를 어떻게 작성해야할지도 여러개의 템플릿 예제속에서 찾으실 수 있습니다. void MainView::buttonClicked() { // 타이머 시작 HAL_TIM_Base_Start_IT(&htimX); }
- 1
- 2
- 280