목록2025/02 (7)
한량처럼 살고 싶다
Single Frame데이터 길이가 7바이트 이하일 경우 single frame 을 사용하여 데이터 전송이 가능하다.데이터의 형태가 0x06OOOOOOO 라면, 해당 프레임은 싱글 프레임이면서 데이터의 길이는 2인 것이다.Bit offset7 .. 4 (byte 0)3 .. 0 (byte 0)15 .. 8 (byte 1)23 .. 16 (byte 2)single0size (0 .. 7)Data AData B Multi Frame데이터 길이가 7바이트를 초과할 경우 multi frame 을 이용하여 데이터 전송이 가능하다. 멀티 프레임에는 2가지 종류가 있는데,멀티 프레임을 전송한다는 의미를 담은 가장 첫 번째 프레임인 First Frame과 그 이후에 오는 프레임이라는 내용을 담은 Consecutiv..

빌드타임 의존성(DEPENDS)과 런타임 의존성(RDEPENDS_${PN}) 두 개로 나뉜다. 빌드타임 의존성은 Depends에 정의되며, 컴포넌트 빌드 시 의존성이 있는 빌드가 언제 수행되어야 할 지 정의한다.Depends 안의 변수값은 의존성 있는 레시피 이름으로 정의된다. 런타임 의존성은 RDEPENDS_PN 은 패키지 단위로 정의되므로 뒤에 PN이 추가된다.실행 도중의 의존성이기 때문에 빌드 순서에는 의미가 없고 최종적으로 내 컴포넌트가 빌드 완료되기 전에 다른 컴포넌트 빌드가 완료되면 된다.

Bitbake 소개Bitbake 는 실행엔진으로, 쉘과 파이썬 태스크를 효율적이고 병렬적으로 실행할 수 있게 만들어준다. 실제 Bitbake 는 태스크 단위로 실행되는데 태스크에는 do_fetch, do_unpack 등이 존재한다.가장 마지막에 do_rootfs 를 실행한 뒤 이미지를 만드는 do_image를 실행하면 bitbake 의 업무가 끝난다. Bitbake 디렉토리 종류${DL_DIR} 소스 다운로드 원본이 저장되는 위치.모든 컴포넌트가 이 위치를 사용한다.bitbake.conf 파일에 설정 가능하다. ${S} 다운로드 된 소스코드의 압축이 풀리는 위치.${WORKDIR} 하위에 위치하며 default name은 레시피이름-버전이다. ${B} ${B} 디렉토리에는 빌드 과정 중 생성된 결과물..

Metadata vs Bitbakemake 와 makefile 의 차이라고 간단하게 설명 가능 make는 빌드하는 도구이고, makefile은 빌드하는 내용물이 정의되어 있는 메타데이터들.bitbake는 파이썬으로 만들어져있는 yocto를 빌드하는 핵심 도구이자 엔진.metadata는 빌드를 하는 방법을 정의한 파일들 (.bb 파일들 위주) 모든 컴포넌트는 자신만의 bb 파일이 있으며 그 안에는 소스 다운로드 방법부터 빌드 방법까지 전부 정의되어 있다. yocto 시스템은 계층구조로 이뤄져있고 이를 메타데이터로 정의한다.계층 구조는 아래와 같다. layer: 비슷한 기능을 하는 컴포넌트의 레이어를 모아놓은 것recipes: .bb 로 이뤄져있으며 각 컴포넌트가 어떻게 빌드되는지 정의함machine: bs..

임베디드 리눅스 시스템 소개임베디드 하드웨어 구조: 부트로더 + 리눅스 커널과 드라이버 + 미들웨어 + 어플리케이션 + 툴체인 툴체인: 소스코드를 실제 임베디드 시스템 내에서 실행 가능한 바이너리 코드로 바꿔주는 것: 컴파일러, 코어 라이브러리 등이 포함되어 있음 임베디드 리눅스 부팅 순서 부트로더DTB 로딩, 커널을 램에 적재, 커널 시작u-boot 이 임베디드 시스템에서 자주 사용되는 오픈소스 부트로더커널부트로더는 더 이상 사용되지 않고, 메모리를 회수부트로더에서 커널로 제어권이 넘어갈 때, 하드웨어의 세부사항 + 커널 커맨드 정보가 함께 넘어감운영체제에 가장 핵심적인 역할을 하며, 커널이 시작되면 루프 파일 시스템 마운트와 동시에 init 어플리케이션 시작init은 최근 systemd 가 많이 사용..
정리 (비교표)NFS Boot네트워크에서 파일 시스템 마운트저장장치 부담 없음, 실시간 코드 변경 가능네트워크 없으면 부팅 불가개발 중 테스트 및 디버깅RAM BootRAM에 파일 시스템 로드 후 부팅빠른 부팅, 저장장치 필요 없음RAM 부족 시 문제, 재부팅 시 데이터 초기화복구 모드, 디스크 없는 시스템U-Boot임베디드 시스템 부트로더다양한 부팅 방식 지원, 유연한 설정 가능설정 실수 시 부팅 불가Yocto 등 임베디드 OS 부팅 NFS Boot → 네트워크 기반으로 파일 시스템 실행 (개발 중 편리)RAM Boot → RAM에 올려서 부팅 (빠르지만 휘발성)U-Boot → 다양한 부팅 방식을 설정하고 실행하는 부트로더
메모리는 크게 ROM 과 RAM 으로 분류된다.RAM 은 읽고 쓰기가 가능한 메모리이고 ROM은 쓰기에 제약이 있는 메모리이다. 쓸 수 있는 횟수가 늘어날 수록 활용도가 높아지는데, Flash Memory 타입은 보통 10만번 정도를 쓸 수 있으며 쓰기 수명이 긴 것들이 일반적으로 쓰기 속도도 빠르다. ROM 알아보기 Masking ROM생산할 때 데이터가 고정되어 출하된다. 오로지 읽기만 가능하고, 비휘발성 메모리이다. OTP ROM사용자가 데이터를 쓸 수는 있지만 한 번 쓰면 수정이 불가능하다.디바이스 보안에서 유용하게 사용되기 때문에 대부분의 SoC가 내부에 OTP ROM을 갖는다.또한 주요한 데이터(암호화 키, 시리얼 넘버 등)를 OTP ROM에 저장한다. OTP ROM 또한 마스킹 롬처럼 비..