디바이스 트리 예제

다음은 주노에 대한 DTS 항목, 특히 GIC-400에 대한 예입니다: devicetree.org 기술 운영 위원회는 장치 트리 사양을 개발, 관리 및 홍보할 책임이 있는 그룹입니다. 그러나, 모두가 참여하는 것이 좋습니다 그리고 예너무 GitHub 프로젝트가있다! devicetree 표준 및 회원 기회에 대한 자세한 내용은 이 웹 사이트를 통해 확인할 수 있습니다. 표준 트리 구조를 채택하면 특정 데이터를 가져오는 데 편리한 API를 사용할 수 있습니다. 예를 들어 버스에서 주변 장치를 정의하는 방법에 대한 명확하고 잘라낸 규칙과 드라이버가 필요로 하는 필수 정보인 주소, 인터럽트 및 사용자 지정 변수를 가져오는 API가 있습니다. 자세한 내용은 나중에. 이 문서의 devicetree 노드의 모든 예제는 노드 및 속성을 지정하기 위한 :abbr:`DTS(Devicetree Source)` 형식을 사용합니다. 장치 트리를 다소 모호하게 정의했지만 엄격한 규칙이 있지만 (항상 완전히 따르지는 않지만) 장치 트리에 들어갈 수있는 것과 어디에 두어야하는지에 대한 엄격한 규칙이 없습니다. 커널의 모든 루틴은 장치 트리의 모든 경로에서 매개 변수를 조회할 수 있습니다. 프로그래머가 매개 변수를 매개 변수에 가장 잘 배치하는 위치의 선택입니다.

개방형 PIC 호환 인터럽트 도메인에서 인터럽트 지정기의 일반적인 정의는 두 개의 셀로 구성됩니다. 인터럽트 번호 및 레벨/감지 정보. 인터럽트 수가 0xA이고 레벨/감지 인코딩이 8인 단일 인터럽트 지정을 정의하는 다음 예제를 참조하십시오. 올바른 장치 트리를 감안할 때 동일한 컴파일된 커널은 더 넓은 아키텍처 제품군 내에서 서로 다른 하드웨어 구성을 지원할 수 있습니다. Arm, x86, MicroBlaze, PowerPC 및 SPARC 아키텍처용 리눅스 커널은 장치 트리 정보를 읽습니다. Arm에서는 2012년부터 모든 새로운 SoC에 장치 트리가 의무화되어 있습니다. [2] 이것은 역사적으로 (소폭) 다른 Arm 보드를 지원하기 위해 만들어진 포크 (리눅스와 다스 U-부팅)의 광대 한 수에 대한 구제 수단으로 볼 수 있습니다. 목적은 커널 바이너리에서 하드웨어 설명의 상당 부분을 이동하고, 부트 로더에 의해 커널에 전달되는 컴파일된 장치 트리 Blob로 이동하여 보드별 C 소스 파일 및 컴파일 타임 옵션의 범위를 대체하는 것입니다. 커널. [2] 이 장에서는 devicetree의 논리적 구조를 설명하고 장치 노드를 설명하는 데 사용할 기본 속성 집합을 지정합니다.

Comments

comments