본문 바로가기

전체 글41

쌍안 스테레오 비전으로 선박을 인식하고 300m 거리까지 측정하는 방법 쌍안 스테레오 비전으로 선박을 인식하고 300m 거리까지 측정하는 방법— MobileNetV1-YOLOv4, FSRCNN, ORB를 결합한 장거리 비전 인식·거리 측정 시스템1. 카메라 두 대만으로 물체의 종류와 거리를 동시에 알 수 있을까?산업용 비전이나 로봇 시스템을 설계하다 보면 두 가지 질문을 동시에 해결해야 할 때가 많습니다. 첫 번째는 “앞에 무엇이 있는가?”이고, 두 번째는 “그 물체가 얼마나 멀리 있는가?”입니다.첫 번째 문제는 최근 YOLO 계열의 객체 검출 기술로 상당히 잘 해결할 수 있습니다. 하지만 두 번째 문제인 거리, 즉 Depth를 얻는 것은 훨씬 까다롭습니다. LiDAR나 ToF 카메라를 사용하면 비교적 쉽게 거리를 얻을 수 있지만, 측정 거리와 반사율, 가격, 해상도, 설치.. 2026. 9. 15.
임베디드기사 실기 20부작 6편 ## Linux Device Driver와 사용자 프로그램은 어떻게 연결되는가? 임베디드기사 실기 20부작 6편Linux Device Driver와 사용자 프로그램은 어떻게 연결되는가?임베디드 리눅스를 공부하다 보면 어느 순간 아주 중요한 질문을 만나게 됩니다. “사용자 프로그램은 실제 하드웨어를 어떻게 움직이는가?” 입니다. C 프로그램에서 단순히 open(), read(), write()를 호출했을 뿐인데 GPIO가 켜지고, UART가 송신되고, SPI 센서의 값이 읽히는 이유는 무엇일까요?그 사이에는 Linux Device Driver가 있습니다. 이번 편에서는 사용자 프로그램과 하드웨어 사이를 연결하는 구조를 한 번에 이해할 수 있도록 정리합니다.1. Linux에서는 왜 사용자 프로그램이 하드웨어에 직접 접근하지 못할까?Linux는 시스템 안정성과 보호를 위해 실행 영역을 크.. 2026. 9. 15.
임베디드기사 실기 20부작 5편 ## Kconfig, defconfig, .config의 관계 — Linux Kernel 설정은 어떻게 만들어지는가? 임베디드기사 실기 20부작 5편Kconfig, defconfig, .config의 관계 — Linux Kernel 설정은 어떻게 만들어지는가?이번 편에서는 Linux Kernel을 빌드하기 전에 반드시 거치게 되는 설정 체계를 정리합니다. 이름이 비슷한 Kconfig, defconfig, .config는 실기시험에서 흐름도·빈칸·단답형으로 출제하기 좋은 주제입니다.1. 왜 Kernel을 빌드하기 전에 ‘설정’이 필요한가?Linux Kernel은 하나의 고정된 프로그램이 아닙니다. 어떤 시스템에서는 Ethernet이 필요하고, 다른 시스템에서는 Wi‑Fi만 필요할 수 있습니다. 어떤 보드는 EXT4 파일시스템을 사용하지만, 어떤 임베디드 장비는 Flash 기반의 전용 파일시스템을 사용합니다. CPU Arc.. 2026. 9. 15.
임베디드기사 실기 20부작 4편 Linux Kernel은 무엇을 관리하는가? 임베디드기사 실기 20부작 4편Linux Kernel은 무엇을 관리하는가?프로세스 · 메모리 · 파일시스템 · 네트워크 · 디바이스 드라이버를 하나의 그림으로 이해하기이번 편에서 꼭 잡아야 할 핵심앞선 2편과 3편에서는 전원이 들어온 뒤 Startup Code가 실행 환경을 만들고, Bootloader가 커널 이미지를 메모리에 적재한 뒤 커널로 제어권을 넘기는 과정을 살펴보았습니다. 이제부터는 그 다음 단계입니다. 커널이 실행되기 시작하면 도대체 무엇을 관리할까요?이번 편에서는 통합 학습교재의 핵심 분류인 프로세스 관리, 메모리 관리, 파일시스템 관리, 네트워크 관리, 디바이스 드라이버 관리를 중심으로 Linux Kernel의 역할을 한 장의 구조처럼 연결해 보겠습니다. 임베디드기사 실기에서는 각 항목이.. 2026. 9. 14.
임베디드기사 실기 20부작 3편 Bootloader와 Linux 부팅 과정 임베디드기사 실기 20부작 3편Bootloader와 Linux 부팅 과정지난 2편에서는 전원 인가 직후 가장 먼저 실행되는 Startup Code와 Reset Handler를 살펴보았습니다. 이번 3편에서는 그 다음 단계인 Bootloader가 무엇을 하는지, 그리고 Linux Kernel이 어떻게 실행 단계까지 넘어가는지를 하나의 흐름으로 정리합니다.임베디드 시스템의 부팅은 단순히 전원을 켜고 OS가 뜨는 과정이 아닙니다. CPU가 Reset Vector에서 시작하여 최소 실행환경을 만들고, DRAM을 사용할 수 있도록 준비하고, 저장장치에 있는 Kernel Image를 RAM으로 옮긴 뒤, 필요한 부팅 정보를 전달하고, 마지막으로 Kernel Entry Point로 제어권을 넘기는 연속된 단계입니다... 2026. 9. 14.
임베디드기사 실기 20부작 2편 Startup Code와 부팅의 시작 임베디드기사 실기 20부작 2편Startup Code와 부팅의 시작임베디드 시스템에 전원을 넣으면 우리가 작성한 main() 함수가 곧바로 실행될 것 같지만 실제로는 그렇지 않습니다. CPU는 먼저 정해진 리셋 위치에서 시작하고, 어셈블리 기반의 초기화 코드를 거쳐 스택과 메모리, 클럭, C 런타임 환경을 준비한 뒤에야 main()이나 다음 단계의 Bootloader로 넘어갑니다.이번 편의 핵심 질문전원이 들어온 직후 CPU는 어디서 시작하는가?왜 startup.s 같은 어셈블리 코드가 필요한가?.data와 .bss는 왜 초기화해야 하는가?Startup Code와 Bootloader는 어떻게 다른가?1. 전원 인가 직후 가장 먼저 실행되는 것은 무엇일까?시스템에 전원이 인가되거나 Reset이 발생하면 C.. 2026. 9. 14.