10.07.2015 Views

PDF version - ARM Information Center

PDF version - ARM Information Center

PDF version - ARM Information Center

SHOW MORE
SHOW LESS

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

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!