2012-11-14 2 views
1

이해할 수 있듯이 코드 명령어의 주소는 가상 주소이지만 다양한 장치 (예 : RAM, 병렬 NOR 플래시)에 액세스하려면 이러한 가상 주소를 실제 주소로 변환해야합니다. MMU에 의해 수행됩니다. 문제는이 변환 프로세스가 시스템 리셋에서 어떻게 작동하는지 (전원을 켰을 때 아직 MMU에 항목이 없다고 생각하기 때문입니다) 첫 번째 명령을 병렬 NOR 플래시에서 가져와 실행할 수 있습니다. 누구든지이 프로세스를 설명해 주시겠습니까? (모든 CPU 아키텍처 ARM, PowerPC, ...이 동작은 아키텍처간에 일반적인 것 같습니다.) 모든 권장 사항은 높이 평가됩니다. 고마워요!시스템 리셋시 메모리 매핑

답변

4

전원이 켜지면 실제로 MMU가 비활성화됩니다. 그 정도는 일반적입니다.

NOR 플래시에 액세스하려면 일부 주소 공간에 대한 기본 매핑이 있어야합니다. 첫 번째 명령은 일반적으로 0xFFFF0000 (ARM) 또는 0xFFFFFFFC (Power PC) 및 주변에서 가져옵니다. 그러나 이에 영향을 줄 수있는 핀 배열 옵션이 있습니다. 프로세서를 부팅하는 것은 실제로 일반적이지 않습니다.

부팅 코드를 저장하기위한 다른 옵션 (NAND 플래시, SPI ROM, MMC)이 많이 있습니다. 일반적인 개념의 경우 Hallinan에는 부팅하는 장이 포함되어 있습니다. 자세한 내용은 특정 CPU의 기술 설명서 (예 : OMAP4 TRM은 ARM에 대한 예제이며 부팅 프로세스를 설명하는 섹션을 찾습니다.

+0

안녕하세요 JoeKul, 귀하의 세부 설명 및 참고 자료를 보내 주셔서 감사합니다. 부트 로더 코드가 실제로 리셋 벡터에서 시작되기 전에 부트 스트랩 (CPU 부트 옵션)은 TLB 항목을 적절한 부트 장치에 매핑하고 부트 로더 코드를 읽고 마지막으로 리셋 벡터로 점프하는 등의 초기화를 수행합니다. 이 결론이 부정확하면 저를 시정하십시오. 다시 한 번 감사드립니다! –