디바이스 트리
보드 위에는 많은 장치들이 존재
plug-n-play : plug - driver load - play 과정이 내부적으로 진행된다.
ex) connect -> 전기적으로 인식(회로) -> OHCI(EHCI) USB adapter controller가 인식 => device tree를 바탕으로 장치 드라이버가 존재하는 경우 실행(완전히 다르지 않는 이상 드라이버는 다른 유사한 장치에서도 사용 가능하다.)
ACPI
device tree : document, 현재 기기 상태에 대한 정보를 표기, .dts(device tree, 하드웨어 기술), .dtsi(include 파일, 하드웨어 기술) => .dtc(컴파일러) => dtb(device tree blob), .dtbo(dtb + overlay)
driver.o => (obj-y : zImage, kernel, 커널과 함께 실행 / obj-m : /lib/modules/..../driver.ko.xz, 디스크 상에 존재, 아직 메모리에 올라오지는 않음)
kernel porting
1. porting boot loader : u-boot(리눅스, cpu, ram, uart etc 프로그램이 하드웨어에 대한 이해가 필요하다. => device tree source의 등장 // Open Firmware Group, OF_xxxxxx)
2. kernel porting(cpu, ram, hdd,(mmcblock), uart, eth) -> 수작업 > automatic - Yocto
3. device drivers(etc devices)
4. applications
5. root file system
디바이스 트리= 노드{속성(키 : 값), 자식 노드}, 키와 값으로 구성된 한 쌍 형태
디바이스 트리로 pinctrl이 가능하다. 이 부분은 더 학습이 필요할 듯 하다.
'VEDA 복습 > 리눅스, 리눅스 프로그래밍' 카테고리의 다른 글
VEDA 57일 - 59일 - 임베디드 리눅스 + 드라이버 / yocto (2) | 2025.06.12 |
---|---|
VEDA 55일차 - 리눅스 커널 프로그래밍 (0) | 2025.06.05 |
VEDA 54일차 - 리눅스 커널 프로그래밍 (0) | 2025.06.04 |
VEDA 53일차 - 임베디드 파일시스템, 디바이스 드라이버 (1) | 2025.06.02 |
VEDA 50일차 - 리눅스 드라이버 (1) | 2025.05.28 |