임베디드를 통해 개발자 인생을 시작했습니다.
그후에 웹과 앱도 개발하면서 어느덧 13년차 개발자가 되었습니다.
지금은 '오제이 주식회사'라는 작은 회사를 운영하고 있습니다.
유튜브를 4년간 운영했고, 현재 2만 4천 명의 구독자를 보유하고 있습니다.
정말 더디게 성장하고 있지만, 꾸준히 운영하였습니다.
제가 알고있는 지식들이 개발자를 꿈꾸는 학생들에게 도움이 되었으면 좋겠습니다.
강의
수강평
- [임베디드 입문용] 임베디드 개발은 실제로 이렇게 해요.
- [임베디드 입문용] 임베디드 개발은 실제로 이렇게 해요.
- [임베디드 입문용] 임베디드 개발은 실제로 이렇게 해요.
- [임베디드 입문용] 임베디드 개발은 실제로 이렇게 해요.
게시글
질문&답변
ftrace를 사용하면서 궁금한 점.
안녕하세요.커널 소스에는 결국 모든게 다 공개되어있는데위 함수가 호출되는 것도 결국 코드 쫓아가면 호출되는 지점을 발견할 수 있어요.do_exit는 프로세스가 죽을 때 반드시 호출되는 함수인데 이 또한 grep긁어서 쫒아가다보면정확한 소스 지점이 나와요. do_exit자체를 ftrace에 등록하서 콜스택을 봐보는것도 방법이고요. 다만 엄청나게 콜이 많이 될테니 강의 내용에 있는 끄고 키는 방법으로 해보세요.
- 0
- 2
- 15
질문&답변
install.txt를 실행하는 이유에 대해서.
그런데 빌드만 하고 끝내면, 실제 라즈베리파이가 그 커널을 쓰지 않아요. 여전히 기존 OS 설치 시 들어있던 기본 커널을 부팅할 때 사용하거든요.그래서 install.sh 같은 스크립트가 필요한 거예요. 하는 일은 크게 3가지예요:모듈 설치 (make modules_install)빌드한 커널용 모듈들을 /lib/modules/ 밑에 복사해둡니다.디바이스 트리 파일(.dtb, overlays) 복사라즈베리파이 하드웨어에 맞는 장치 트리 정보를 /boot/에 덮어씌워줘야, 새 커널이 하드웨어를 제대로 인식할 수 있어요.커널 이미지 복사 (Image → /boot/kernel8.img)실제 부팅할 때 로딩되는 커널 이미지를 기존 것 대신 교체하는 단계예요.자.. 이제 질문 대답을 할게요.왜 덮어 씌우냐면.. 앞으로 우리는 커널에 디버깅 메세지도 남기고, 이것 저것 수정도 해보고.고장도 내볼거예요. 그거를 하기 위해서. 내가 바꾼 커널을 새롭게 빌드해서 교체하는 방법을 알아야 하기 때문에.. 이 과정을 해보는거예요.답변이 너무 늦어서 죄송합니다. ㅠ_ㅠ
- 0
- 2
- 31
질문&답변
제가 1년전에 구매해서 이제 뜯어봤는데 납땜이 겹쳐있는데 사용해도 괜찮을까요?
보통은 PCB 내부 회로에서 핀 두 개를 하나로 합치는데, 이 제품은 외부에서 핀 두 개를 납땜으로 직접 이어 놓은 방식이에요. 즉,일부러 그렇게 만든 거고, 문제가 되지 않아요.
- 0
- 2
- 30
질문&답변
초기 신호에 대한 질문
상승엣지 = Low→High 변화, 하강엣지 = High→Low 변화"초기 신호가 High냐, Low냐"는 별도의 문제입니다.Idle이 High라면 첫 유효 신호는 하강엣지, Idle이 Low라면 첫 유효 신호는 상승엣지로 오는 경우가 많음.결국 “초기 상태가 High냐 Low냐”는 프로토콜/회로 설계자가 정한 규칙에 따릅니다.일반적으로 idle 상태(초기 level)가 High라면 → 첫 변화는 Low로 떨어지는 순간, 즉 하강엣지(Falling edge) 가 "유효 신호 시작"을 잡기 좋은 경우가 많습니다.
- 0
- 2
- 38
질문&답변
타이머 최대 주파수 질문
네 맞습니다. 외부 크리스탈을 쓰는 이유는 여러 이유가 있는데.. 아래와 같습니다.외부 크리스탈이 꼭 필요한 경우USB 통신USB 2.0 Full-Speed는 48 MHz 정확도가 ±0.25% 이내여야 함.내부 HSI로는 이 기준을 맞추기 힘들고, HSE를 PLL로 곱해서 72 MHz → 48 MHz 파생해야 안정 동작.정확한 UART/CAN/I²S 통신UART 같은 직렬통신은 클럭 오차가 누적되면 프레임 에러 발생.HSI(±1% 오차)는 9600bps 이하에서는 대체로 괜찮지만, 115200bps 이상이나 CAN(정확도 요구 높음)에서는 문제가 생김.HSE를 쓰면 안정적.RTC(Timekeeping)장기간 시간 기준 유지에는 정밀한 기준 클럭 필요.RTC는 보통 32.768 kHz LSE 크리스탈을 따로 쓰지만, 시스템 주기도 HSE 기반으로 더 정확해짐.고정밀 타이밍/PWM예: 1초 정확 타이머, 오디오 샘플링, 모터 제어 주파수 등HSI는 오차가 있어서 긴 시간 기준으로 보면 누적 오차 발생 → HSE로 보정 가능.
- 0
- 2
- 24
질문&답변
빌드 오류 & targeted project type
위에 답변 다신 분이시죠?해결 하신걸로 알고 일단, 해결 상태로 놔둘게요.
- 0
- 2
- 40
질문&답변
targeted project type 에러 해결 방법 공유합니다.
고생하셨어요.해결 방법 까지 공유 해주셔서 감사합니다.
- 0
- 2
- 46
질문&답변
디버깅 오류
일단, 최신 버전 1.19 IDE설치해보시고.. 그것도 안되면 연락주세요.제가 보드 하나 더 보내 드릴게요.
- 0
- 2
- 82
질문&답변
STM32 Project Type 관련 질문입니다..
저도 처음 겪는 일이었는데. 결국은 1.19.0 STM IDE를 설치하면 해결되는 문제였습니다.1.19.0은 2025년 7월 15일 기준으로 가장 최신 IDE입니다.이 버전으로 디버깅까지 전부 동작하는 것 확인했습니다.
- 0
- 3
- 113
질문&답변
72강 통편집
처음 보는 입장에서는 "transmit only면 MOSI랑 SCLK만 쓰면 되는 거 아닌가?" 생각할 수 있어요.근데 PB14(RCLK)까지 활성화된 이유는, 이게 데이터 전송이 끝났다는 걸 알려주는 신호이기 때문이에요.SCLK는 데이터를 보낼 때 클럭 타이밍을 맞춰주는 신호고,RCLK는 "데이터 다 보냈으니까, 이제 반영해라"는 뜻의 출력 트리거용 신호예요.즉, SPI 통신은 MOSI/SCLK로 끝나지만,그 결과를 실제로 적용시키려면 RCLK 같은 별도 GPIO 신호가 필요할 수 있어요.그래서 transmit only 모드에서도 PB14가 같이 활성화되는 거예요.우리가 사용하는 FND 구동용 칩은, 데이터를 직렬로 받은 뒤에 출력으로 반영하려면 RCLK(Register Clock, Latch Clock) 신호가 필요해요.이건 SPI 전송(MOSI + SCLK) 이후에“이제 이 데이터를 적용해라” 하고 알려주는 트리거 신호죠.그래서 RCLK 핀(PB14)을 GPIO로 따로 제어해줘야 해요.답변이 늦어서 죄송해요 ㅠㅠ/
- 0
- 2
- 57