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.
임베디드 소프트웨어 개발; The exception vectors must be copied from ROM to RAM; The copying is done later by the C library code inside __main; Reset_Handler follows on from here3.5.3 지역 메모리 설정 고려 사항대부분의 <strong>ARM</strong> 프로세서에는 MMU 또는 MPU와 같은 칩 내부 메모리 관리 시스템이 있습니다. 이러한 장치는 일반적으로 시스템을 시작하는 동안 설정되고 활성화됩니다. 따라서 지역 메모리 시스템이 있는 프로세서의 경우 초기화 시퀀스에서 특별히 고려해야 할 사항이 있습니다.이 장에서 설명한 대로 __main의 C 라이브러리 초기화 코드는 이미지의 실행 시메모리 맵을 설정합니다. 따라서 __main으로 분기하기 전에 프로세서의 런타임 메모리 뷰를 설정해야 합니다. 즉, 모든 MMU 또는 MPU를 리셋 처리기에서 설정하고 활성화해야 합니다.또한 대개는 코드 및 데이터를 TCM으로 스캐터 로드하므로 __main으로 분기하기전에 (일반적으로 MMU/MPU를 설정하기 전에) TCM도 활성화해야 합니다.TCM이 활성화된 경우 TCM으로 마스킹된 메모리에 액세스할 필요가 없다는 점에 유의하십시오.또한 __main으로 분기하기 전에 캐시가 활성화된 경우 캐시 일관성 문제가 있을수 있습니다. __main의 코드는 해당 로드 주소의 코드 영역을 해당 실행 주소로 복사하며, 본질적으로 명령어를 데이터로 처리합니다. 그 결과 일부 명령어는 데이터 캐시에 캐시될 수 있으며 이 경우 명령어가 명령어 경로에 표시되지 않습니다.이러한 일관성 문제가 발생하지 않도록 하려면 C 라이브러리 초기화 시퀀스의 실행이 완료된 후에 캐시를 활성화합니다.3.5.4 스택 포인터 초기화리셋 처리기는 적어도 응용 프로그램에서 사용하는 모든 실행 모드의 스택 포인터에 초기값을 지정해야 합니다.3-20페이지의 예제 3-6에서 스택은 stack_base에 있습니다. 이 기호는 하드 코딩된주소일 수도 있고, 별도의 어셈블러 소스 파일에 정의되어 스캐터 로딩 설명 파일에서 찾을 수도 있습니다. 이 작업을 수행하는 방법에 대한 자세한 내용은 링커사용 설명서에서 5-3페이지의 스캐터 로딩 설명 파일을 통한 스택 및 힙 지정을참조하십시오.<strong>ARM</strong> DUI 0203IK Copyright © 2002-2008 <strong>ARM</strong> Limited. All rights reserved. 3-19Non-Confidential