혹시 이쪽 분야를 잘 아시는 분이 계시면 조언 부탁드립니다.
1) 싱글보드를 구매해서 시중의 c-phy 지원되는 MIPI 카메라를 연결하고, 원격 cctv같은걸 개발해 보려고 합니다.
2) MIPI 카메라를 구매하고 적절한 보드를 구매해서 usb 웹캠을 개발해 보려고 합니다.
비전공자다 보니 c 부터 공부해야하는 수준입니다.
책이나 유튜브, 인강 등 detail한 공부방향을 알려주시면 큰 도움이 될것 같습니다.
시간이 오래걸리는것은 감안하고 천천히 해보려고 합니다.
임베디드 sw는 이것저것 많이 알아야 하는것 같아서 잘하시는 분들 대단해 보이네요.
감사합니다.
아두이노나 라즈베리 파이 수준이면 그냥 제공되는 API 사용법과 C언어 스킬 정도 공부하면 되고요.
bare metal로 정말 바닥부터 쌩짜 펌웨어를 만드는 것이 목표라면 우선 하드웨어에 대한 이해가 필요합니다.
컴퓨터 공학과 학부 수준의 컴퓨터구조론과 (대부분은 ARM이니까) 기본적인 ARM아키텍처에 대한 지식과 공부가 필요합니다. (Risc-v등 다른 아키텍처로 개발할 꺼면 해당 아키텍처에 대한 지식)
C언어는 단순히 문법과 코딩하는 방법 뿐만 아니라 컴파일과 링킹이 어떻게 이뤄지는지 그렇게해서 만드는 elf 파일 포멧은 무엇인지 (이건 C언어라기 보단 시스템 프로그래밍 이론) 등 깊은 이해가 필요합니다.
/Vollago
대중적인 환경에서 개발해야 벽에 막혔을때 검색으로 힌트를 얻기 좋으니까요
라즈베리에 카메라 연결하고
코드는 돌아간다는 코드로 열심히 찾아서 긁어다 붙이고..
화면 나오는데 성공하면
한 줄 한 줄 c책 보면서.. 뭐하는 코드인지 주석 달아볼 것 같아요..
그리고 서점가서 리눅스 커널 & 디바이스 드라이버 관련책 중
가급적 최근에 나온 그림 많은 걸로 한 권 보고..
그리고 개발환경은 블로그든 책이든 참고한 곳과 동일한 ide에 동일 버전으로 맞추면 삽질이 줄어들겠죠...
그리고, 임베디드 분야도 다양하게 나뉠 수 있다고 봅니다.
bare metal 상에서 Firmware를 하실지, RTOS 환경에서 미들웨어 쪽을 하실지, 그 주변의 HW IO 접근 쪽을 주로 다루는 Driver 단 개발을 하실지, 아니면 Netowrk, Bluetooth나 USB 와 같은 소위 Stack 단과의 통신을 활용하는 분야를 하실지, 이런 스택을 활용하여, 데이터를 주고 받는 어플리케이션을 할지, 그 어플리케이션이 일반 Consumer 제품일지, 아니면 차량 쪽일지 등,
아니면 더 내려가서, RTOS, 임베드디 리눅스, OSEK, QNX 등 다양한 OS 환경에 따라 커널(BSP)을 할지, Bootloader 등 할지... 타겟 시스템을 어떤 곳으로 하는지에 따라 천차만별 입니다.
그리고, 리눅스나 차량 쪽으로 접근하면, 어떤 플랫폼/프레임워크 환경도 익혀야 하는 부분도 있고요.
말씀하신 것은 이런 저런 접근 중을 하나라고 생각합니다.
Validation 쪽도 있습니다.
알아야될게 너무 많거든요. 단계별로 하면 손도 못 댈거에요.
이전 글 보니 게임기도 만드신거 보면 열정도 대단하시고 접근법도 좋으신것 같으니
그냥 쉽게 하세요
라즈베리파이에 카메라 달고 올려보세요.
게임기 만드는거랑 별 차이 없어요.
그렇게 익숙해지다보면 어느새 조금씩 임베디드 시스템을 체득하실거에요.
c언어 몰라도 되요. 언어는 필요할때 공부 시작하세요.