10.07.2015 Views

PDF version - ARM Information Center

PDF version - ARM Information Center

PDF version - ARM Information Center

SHOW MORE
SHOW LESS

Create successful ePaper yourself

Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.

임베디드 소프트웨어 개발3.5 리셋 및 초기화이 장에서는 실행이 C 라이브러리 초기화 루틴에 대한 진입점인 __main에서 시작된다는 가정하에 관련 내용을 설명했습니다. 실제로 타겟 하드웨어의 모든 임베디드 응용 프로그램은 시작될 때 시스템 수준 초기화를 수행합니다. 이 단원에서는 이 작업에 대해 자세히 설명합니다.그림 3-9에서는 <strong>ARM</strong> 아키텍처 기반의 임베디드 시스템에 사용할 수 있는 초기화 시퀀스를 보여 줍니다. 스캐터 로딩 설명 파일을 사용하여 스택 및 힙 배치를조정하는 경우, 링커에서는 해당 영역 이름에 대해 링커 정의 기호를 사용하여__user_initial_stackheap () 함수를 만듭니다. 자세한 내용은 링커 사용 설명서에서 5-3페이지의 스캐터 로딩 설명 파일을 통한 스택 및 힙 지정을 참조하십시오. 구현을 직접 만들 수도 있습니다..__mainC Librarycopy codecopy/decompress RWdata. zero uninitialized data..__rt_entryinitialize library functions2call top-level constructors(C++)Exit from application1346..User Codereset handlerinitialize stack pointers. configure MMU/MPUsetup cache/enable TCM.__user_initial_stackheap()set up application stackand heap.$Sub$$main()enable caches andinterrupts.main()causes the linker to link inlibrary initialization codeImageEntry Point5그림 3-9 초기화 시퀀스리셋 처리기는 어셈블러에서 코딩된 짧은 모듈로서, 시스템이 시작되면 즉시 실행됩니다. 최소한 리셋 처리기는 응용 프로그램이 실행되는 모드의 스택 포인터를 초기화합니다. 캐시, TCM, MMU, MPU와 같은 지역 메모리 시스템이 있는 프3-16 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!