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.

임베디드 소프트웨어 개발$Sub 및 $Super 함수 래퍼 기호를 사용하면 주 응용 프로그램을 시작하기 직전에실행되는 루틴을 삽입할 수 있습니다. 이 메커니즘을 사용하면 소스 코드를 변경하지 않고도 함수를 확장할 수 있습니다.예제 3-7에서는 $Sub 및 $Super를 이러한 방식으로 사용하는 방법을 보여 줍니다.링커에서는 main () 에 대한 함수 호출을 $Sub$$main () 에 대한 호출로 바꿉니다. 이 호출을 통해 캐시를 활성화하는 루틴과 인터럽트를 활성화하는 다른 루틴을호출할 수 있습니다.코드는 $Super$$main () 을 호출하여 실제 main () 으로 분기됩니다.참고자세한 내용은 링커 사용 설명서에서 4-14페이지의 $Super$$ 및 $Sub$$를 사용하여 기호 정의 재정의를 참조하십시오.예제 3-7 $Sub 및 $Super 사용extern void $Super$$main (void) ;void $Sub$$main (void){cache_enable () ; // enables cachesint_enable () ; // enables interrupts$Super$$main () ; // calls original main ()}3.5.6 실행 모드 고려 사항참고이 단원은 <strong>ARM</strong>v6-M 및 <strong>ARM</strong>v7-M 프로필에는 적용되지 않습니다.주 응용 프로그램을 실행할 모드를 고려해야 합니다. 선택한 모드는 시스템 초기화를 구현하는 방식에 영향을 줍니다.시작할 때 리셋 처리기와 $Sub$$main 모두에서 구현할 수 있는 기능의 대부분은 칩내부 메모리 조작과 같은 권한 모드에서 실행되어 인터럽트를 활성화하는 동안에만 수행할 수 있습니다.응용 프로그램을 권한 모드에서 실행할 경우에는 이것이 문제가 되지 않습니다.리셋 처리기를 종료하기 전에 해당 모드로 변경하십시오.<strong>ARM</strong> DUI 0203IK Copyright © 2002-2008 <strong>ARM</strong> Limited. All rights reserved. 3-21Non-Confidential

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

Saved successfully!

Ooh no, something went wrong!