Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | ||
6 | 7 | 8 | 9 | 10 | 11 | 12 |
13 | 14 | 15 | 16 | 17 | 18 | 19 |
20 | 21 | 22 | 23 | 24 | 25 | 26 |
27 | 28 | 29 | 30 |
Tags
- 코멘토
- udemy
- 시스템 소프트웨어 개발을 위한 ARM 아키텍처의 구조와 원리
- 실무PT후기
- Arm 아키텍처: 캐시
- Kernel
- arm
- Arm 아키텍처: 메모리 모델과 배리어
- 인프런
- ARM 아키텍처: 메모리모델과 배리어
- BSP
- 빌드 시스템
- 코멘토실무PT
- ARM 아키텍쳐: 메모리 모델과 배리어
- yocto
Archives
- Today
- Total
반도체 소프트웨어
요약 2. ARM 공부 이유 본문
- 브링업을 잘하기 위해서
- 시스템 소프트웨어 개발자 프로젝트 프로세스: 보드 브링업 -> 기능 안정화 -> 유지 보수
- 부트로더에서 스타트업 코드 실행
- 메모리, 캐시와 같은 시스템 자원 초기화
- 키보드, usb 같은 주변 장치 초기화
- 시스템에 전원이 들어왔을때 가장 먼저 실행되는 주소에 있는 코드: 스타트업 코드(부트로더가 가장 먼저 실행하는 코드)
- 시스템을 초기화 및 설정하는 루틴으로 구성됨
- MMU 같은 하드웨어 유닛과 캐시 설정
- 동작모드 혹은 익셉션 레벨별로 스택 크기 지정
- 익셉션 핸들러 구성
- 스택이 초기화되어있어야하기에 어셈블리어로 스타트업 코드를 작성
- 시스템 소프트웨어 개발자 프로젝트 프로세스: 보드 브링업 -> 기능 안정화 -> 유지 보수
- 디바이스 드라이버 개발을 잘하기 위해서
- ARM이 인터럽트 처리를 어떻게 하는지 잘 이해하면 디바이스 드라이버가 통신하는 방법인 인터럽트의 우선순위나 종류를 효율적으로 선정하는데 도움이 됨
- 반복 코드를 인라인 코드로 변경 등 성능 최적화시에 ARM 프로세서 내부 처리 방식을 이해하는 것이 도움이 됨
- 리눅스 커널 및 RTOS를 깊게 이해하기 위해서
- ARM 익셉션 = 리눅스 인터럽트 핸들러
- 컨텍스트 스위칭
- 선점 스케줄링
- 시스템 콜 핸들러 호출하는 루틴
- 등 리눅스 커널 및 RTOS 기능이 ARM과 관련있기에 도움이 됨
- 결국 리눅스 커널 및 RTOS 기능도 CPU위에서 동작하므로 ARM 아키텍처 이해가 필요함
- 디버깅을 통한 문제 해결 능력을 키우기 위해
- 크래시, 메모리 어보트 등 시스템 문제가 발생하면 arm 아키텍처는 관련 레지스터를 읽어서 문제 유발 주소, 인자와 스택 주소 및 콜 스택 등을 알려줌
- 이를 효율적으로 분석하기 위해 익셉션 동작 원리, 레지스터 용법을 파악해야함
- 기타
- 애플리케이션 프레임워크, 라이브러리 개발자들은 ARM 아키텍처를 잘 알아야함 ex) 안드로이드 프레임워크
- 결론적으로 ARM 아키텍처에서 배운 걸 실제 프로젝트(리눅스 커널 기능 등)과 대조해보면서 공부해야 좋다.
출처: 인프런, "시스템 소프트웨어 개발을 위한 Arm 아키텍처의 구조와 원리", https://inf.run/FiFG
'CPU Architecture > ARM Architecture' 카테고리의 다른 글
요약 5. ARMv7 동작모드 (0) | 2023.12.30 |
---|---|
요약 4. ARM 어셈블리 명령어 (0) | 2023.12.30 |
요약 3. ARM 레지스터 (0) | 2023.12.30 |
요약 1. ARM 프로세서 역사 (0) | 2023.12.28 |
시스템 소프트웨어 개발을 위한 Arm 아키텍처의 구조와 원리 with 인프런 (0) | 2023.12.28 |