2014-05-09 2 views
-1

직렬 플래시 장치에서 현대 시스템의 부팅 개념과 관련하여 약간 분실했습니다. 8 비트 PIC에서부터 32 비트 Power Architecture에 이르는 수많은 간단한 마이크로를 (항상 일반적인 버스 주소 지정 가능 플래시를 재 프로그래밍하여) 베어 메탈에 프로그래밍함으로써 현대적인 SoC가 직렬 장치에서 어떻게 부팅되는지 궁금합니다. 모든 시스템이 sd- 카드 프로그래밍 도구와 보조 부트 로더의 조합에 의존하는 것 같아서 그다지 신경을 많이 쓰지는 않았다.ARM은 sd 카드에서 어떻게 부팅합니까?

+0

나는 이것을 투표하지 않았지만 좀 더 구체적인 대답을 얻을 수 있습니다. 구체적인 주제를 정확히 말하는 방법에 대해서는 충분히 알지 못합니다. 그러나 구체적으로 이해하지 못하는 부분에 집중할 수 있다면 더 좋은 질문이 될 것입니다. –

답변

4

'how'는 SoC에 구워진 마스크 ​​PROM 기반의 기본 부팅 로더입니다. 엄청나게 보수적 인 타이밍을 가진 SD 카드 인터페이스 및 아마도 일부 SDRAM을 초기화하는 것 이외에는 많은 작업을 수행 할 필요가 없습니다 (일부 장치에는이 시점에서 SRAM이 내장되어 있음).

그런 다음 카드 인터페이스를 열거하고 찾은 첫 번째 카드에서 FAT를 읽은 다음 whence에서 2 차 부트 로더를 SRAM 또는 SDRAM으로 복사하고 실행합니다.

2 차 부트 로더가 카드의 첫 번째 파일이되고 할당 된 잠금이 인접 해있는 등의 제한 사항이 종종 있습니다.

많은 시스템에서 운영 체제를 부팅하는이 시점에서 또 다른 부트 로더를로드합니다.

+0

그리고 SD 카드의웨어 레벨링은 방해가되지 않습니까? – Vroomfondel

+0

웨어 레벨링은 SD 카드의 컨트롤러 기능이며 시스템에서 완전히 투명합니다. 이 말을하면서 나는 SD 카드가 정확하게 신뢰할 수 없다는 것을 결코 알지 못했습니다. 그들은 또한 Ext3 또는 Ext4 파일링 시스템을 사용하여 굉장히 빠르게 작동하지 않는 경향이 있습니다. 그러나 부팅 파티션은 VFAT 확장자가없는 변함없는 FAT32이므로 특허 침해를 피할 수 있습니다. – marko

관련 문제