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.

임베디드 소프트웨어 개발; 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

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

Saved successfully!

Ooh no, something went wrong!