2014-10-31 3 views
0

나는 UBOOT의 cmd_mem.c를보고있다. 메모리 테스트를 실행하면 사용자에게 주소를 제공하도록 요청 (또는 기본값 사용) 한 다음 해당 주소에서 읽고 쓰기를 시작합니다. 그렇다면 UBOOT cmds가 모두 실제 메모리 주소에서 실행된다는 의미입니까? 아니면 가상 주소를 테스트하고 있다는 뜻입니까?UBOOT의 Cmd가 실제 주소를 사용하고 있습니까?

미리 감사드립니다.

+0

가상 주소 개념에 대한 이해가 필요합니다. 가상 주소는 실제 주소에 직접 매핑 될 수 있습니다. 어떤 플랫폼을 사용하고 있습니까? ARM에서는 MMU를 사용합니다. MMU가 꺼져있는 경우 ARM (및 u-boot)은 가상 및 실제 주소의 1 : 1 매핑을 사용합니다. 예, MMU가없는 ARM 프로세서가 있지만 요즘은 현재의 U 부팅이 여전히이를 지원하는지 검사하지 않았습니다. PowerPC에는 TLB가 있습니다. –

+2

내 경험에 따르면 uboot는 일반적으로 MMU를 사용하지 않도록 설정하거나 RAM에 대해 가상 주소가 항상 실제 주소와 같도록 구성되어 실행됩니다. 따라서 주소 0x100000에 액세스하면 실제 메모리가 0x100000에 액세스합니다. – DoxyLover

+0

즉, 행운을 빌어 올바른 실제 주소를 테스트하고 있음을 의미합니다. – Hanks

답변

0

U-boot는 가상 주소를 구현하지 않습니다.

따라서 메모리 테스트를 위해 지정한 범위는 실제 주소입니다. U-boot 환경에서는 선형 주소를 정확하게 처리합니다.

MMU가 OS처럼 완벽하게 구성되어 있지 않으면 단순히 u-boot가 수행 할 실제 주소로 주소를 사용합니다.

따라서 범위를 테스트하는 경우 0x1000-0x2000이라고 말하면 실제로 물리적 주소를 테스트합니다.