PDF version - ARM Information Center
PDF version - ARM Information Center
PDF version - ARM Information Center
You also want an ePaper? Increase the reach of your titles
YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.
임베디드 소프트웨어 개발3.5.2 ROM 및 RAM 재매핑참고이 단원은 <strong>ARM</strong>v6-M 및 <strong>ARM</strong>v7-M 프로필에는 적용되지 않습니다.시스템에서 실행할 첫 번째 명령어의 주소인 0x0에 있는 메모리 종류를 고려해야합니다.참고이 단원에서는 <strong>ARM</strong> 프로세서가 0x0에서 명령어 가져오기를 시작한다고 가정합니다. <strong>ARM</strong> 프로세서 기반의 시스템에서는 일반적으로 이 주소에서 명령어를 가져오기 시작합니다. 그러나 일부 <strong>ARM</strong> 프로세서의 경우 0xFFFF0000에서 명령어 가져오기를 시작하도록 구성할 수 있습니다.시작할 때 0x0에 올바른 명령어가 있어야 하므로 리셋 시에 0x0에 비휘발성 메모리가 있어야 합니다. 이렇게 구성하는 한 가지 방법은 ROM을 0x0에 배치하는 것입니다. 그러나 이 구성에는 몇 가지 단점이 있습니다.예제 3-5에서는 리셋 시 ROM/RAM 재매핑을 구현하는 다른 솔루션을 보여 줍니다. 이 예제에 표시된 상수는 Versatile 보드에서만 사용할 수 있는 상수이지만 유사한 방식으로 재매핑을 구현하는 모든 플랫폼에서 같은 방법을 적용할 수 있습니다. 재매핑 후에는 스캐터 로딩 설명 파일을 사용하여 메모리 맵을 설명해야 합니다.예제 3-5 ROM/RAM 재매핑; --- System memory locationsVersatile_ctl_reg EQU 0x101E0000 ; Address of control registerDEVCHIP_Remap_bit EQU 0x100 ; Bit 8 is remap bit of control registerENTRY; Code execution starts here on reset; On reset, an alias of ROM is at 0x0, so jump to 'real' ROM.LDR pc, =Instruct_2Instruct_2; Remap by setting remap bit of the control register; Clear the DEVCHIP_Remap_bit by writing 1 to bit 8 of the control registerLDR R1, =Versatile_ctl_regLDR R0, [R1]ORR R0, R0, #DEVCHIP_Remap_bitSTR R0, [R1]; RAM is now at 0x0.3-18 Copyright © 2002-2008 <strong>ARM</strong> Limited. All rights reserved. <strong>ARM</strong> DUI 0203IKNon-Confidential