티스토리 뷰
1. 임베디드 시스템의 실행과정
리셋 → 하드웨어 초기화 → C프로그램 실행기반구축 → main으로 분기
2. 리셋
º 파워 On
- 리셋 : 파워나 리셋버튼을 눌렀을때 발생하는 예외 ( Exception )
- 예외 ( Exception )
· 시스템 오류를 포함하여 프로세서에게 특정 이벤트가 발생했음을 알려주는 것으로 프로세서는 이에 대해 대처함
· 예외들은 프로세서마다 정의되어 있고 예외를 처리하는 코드를 예외처리루틴(핸들러)이라고 함
- 리셋은 시스템의 시작을 의미하는 이벤트이므로 시스템을 초기화하는 예외처리루틴이 필요하고, 리셋예외가 발생 하면 대부분 부트코드로 분기함
º 부트 코드
- 하드웨어 초기화 코드
- 하드웨어 초기화 과정
① 인터럽트 불가 (disable)
② 시스템에서 필요한 클럭을 생성
③ 메모리 하드웨어 설정
④ 주변기기 하드웨어 설정
3. start up 코드
- C프로그램이 작동되기 위한 기반을 만듦
- 부트코드와 startup코드는 어셈블리로 만들어야함
① 초기화한 전역변수와 static 변수를 RAM으로 복사
② 초기화하지 않은 전역변수와 static변수 0으로 초기화
③ 모드별 스택을 생성하고, 스택포인터 초기화
④ 힙 메모리 생성
⑤ 인터럽트 허용
⑥ C프로그램의 main()호출
4. C프로그램 실행
º main으로 분기
· Startup코드의 마지막은 main()의 호출로 C프로그램이 실행될 준비가 되었으니, 이제 프로그램을 실행하라는 의미임
· main()d으로 분기해서 개발한 임베디드 소프트웨어가 실행됨
· 임베디드 소프트웨어는 대부분 무한 루프임
'임베디드 시스템' 카테고리의 다른 글
#7 C프로그램에서 하드웨어 접근방법 (0) | 2019.04.15 |
---|---|
#5 임베디드 소프트웨어 개발절차 (0) | 2019.04.11 |
#4 임베디드 시스템 개발환경 (0) | 2019.04.05 |
#3 임베디드 OS (0) | 2019.04.05 |
#2 임베디드 시스테 구성 요소 및 프로세서 구성요소 (0) | 2019.03.28 |