ARM SoC가 코어로 처리하기 어려운 이유는 무엇입니까?

ARM SoC가 코어로 처리하기 어려운 이유는 무엇입니까?

예를 들어 x64 시스템에 일부 Linux 배포판이 설치되어 있는 경우 스토리지 드라이브를 분리하여 다른 x64 시스템에 넣고 일부 HL 드라이버(예: 그래픽 드라이버)를 설치하면 제대로 작동할 수 있습니다. 문제.

ARM 시스템, 특히 모든 유형의 스마트폰과 마찬가지로 ARM SoC의 경우 이야기는 완전히 다릅니다. 모든 스마트폰에는 동일한 운영 체제(예: OEM Android 배포판)의 다른 버전이 있습니다.

내 질문은: 왜 이런가요?

내가 이해한 바로는 표준화된 아키텍처를 갖춘 PC와 달리 SoC에는 수많은 칩과 아키텍처가 있습니다. 그러나 장치 트리를 고려하면서 나는 왜 일부 ROM 칩의 부트로더와 함께 장치 트리(하드웨어 설명)를 배치하고 적어도 몇 가지 명확한 제한 내에서 하드웨어 사양과 독립적으로 Linux OS를 구축할 수 있는 방법이 없는지 스스로에게 물었습니다. .

답변1

나는 왜 일부 ROM 칩에 부트로더와 함께 장치 트리(하드웨어 설명)를 배치하고 하드웨어 사양과 관계없이(적어도 정의된 특정 제한 내에서) Linux 운영 체제를 구축할 수 있는 방법이 없는지 스스로에게 물었습니다.

답변: 저렴합니다. 누구도 ROM 칩 비용을 지불하고 싶어하지 않습니다. SoC에 부트 ROM이 있는데, SoC가 어떤 회로에 있는지에 따라 디바이스 트리가 바뀌기 때문에 좋지 않습니다. 이 기능을 사용하려면 별도의 "BIOS 칩"(예: x86 마더보드)이 필요합니다.

대부분의 ARM 보드가 부팅하는 SD 카드를 BIOS 칩으로 처리하여 U-Boot와 장치 트리를 그 위에 놓고 U-Boot가 USB 드라이브에서 커널을 로드하도록 하면 작동하게 할 수 있습니다. USB 드라이버는 ARM 보드에서 ARM 보드로 (상당히) 이식 가능합니다.

최적화 측면에서 일반적으로 ARM용으로 컴파일할 수 있지만 실제로는 특정 프로세서를 대상으로 하는 것이 좋습니다(x86_64보다 효율적).

관련 정보