일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- yocto
- Arm 아키텍처: 캐시
- 코멘토실무PT
- 빌드 시스템
- ARM 아키텍쳐: 메모리 모델과 배리어
- udemy
- 시스템 소프트웨어 개발을 위한 ARM 아키텍처의 구조와 원리
- Kernel
- arm
- Arm 아키텍처: 메모리 모델과 배리어
- BSP
- 실무PT후기
- 인프런
- ARM 아키텍처: 메모리모델과 배리어
- 코멘토
- Today
- Total
목록arm (18)
반도체 소프트웨어

익셉션이란 익셉션은 프로세서가 외부에서 발생한 인터럽트나 정의되어있지 않은 명령어를 실행하려는 시도와 같은 이벤트를 처리하기 위해 프로세스의 실행을 멈추는 것 cpu코어에서 기계어를 정상적으로 실행하지 못하는 상황에서 이를 처리하기 위한 방식 익셉션이 발생하면 익셉션의 종류별로 지정된 주소로 pc 바뀜 cpu 아키텍처마다 익셉션 처리 세부 동작 방식이 다름 ARM프로세서는 익셉션이 발생하면 익셉션을 처리하는 특정 모드로 진입 익셉션을 유발한 다양한 정보를 레지스터에 업데이트 익셉션 종류별로 이미 정해 놓은 주소로 분기 익셉션 벡터: 각 익셉션의 내용을 담은 주소 ARM 아키텍처 관점에서 익셉션 종류 메모리 어보트 타입 익셉션: 소프트웨어 입장에서 치명적인 오류가 있는 상태 ex) 널포인터 엑세스 IRQ ..

익셉션 레벨 개요 ARMv8의 기능(익셉션, 하이퍼바이저, 트러스트존)이 Exception Level기반으로 동작하기에 이해는 반드시 필요 Eln: 익셉션 레벨 n: PL을 의미 익셉션 레벨과 특권 레벨과 거의 같은 개념 ex) EL1은 PL1 권한이 있는 익셉션 레벨 OS, RTOS를 구현할때 모든 익셉션 레벨을 구현해야할 필요는 없다. EL0, EL1은 필수 구현 사항이고 EL2, EL3는 옵션이다. EL2, EL3를 구현한다는 의미 각 익셉션 레벨별로 익셉션 핸들러를 구현 각 익셉션 레벨별로 사용되는 스택을 설정 익셉션 핸들러의 베이스 주소를 VBAR_ELx 레지스터를 통해 설정 관련 시스템 레지스터 및 MMU 설정 익셉션 레벨 종류 EL0: 유저모드 EL1: 커널모드 EL2 게스트 OS끼리 스위칭..
익셉션, 트러스트존을 비롯한 ARMv7 아키텍처의 많은 기능은 동작 모드 기반 위에서 설계되어 있기에 동작모드 이해는 중요 PL(priviliege level): 특권레벨 소프트웨어 실행시에 리소스(하드웨어, 메모리 등)에 접근하는 권한을 구분 PL0 유저모드에서 애플리케이션 소프트웨어가 실행되는 모드 unprivileged 소프트웨어 실행 몇가지 아키텍처 기능 설정 불가하기에 시스템콜로 대체해서 사용함 메모리 접근 제약 존재 PL0에서 SVC 명령어를 실행해 익셉션(트랩)이 유발돼야 PL1으로 진입 가능 PL1 루트 권한과 비슷한 개념 유저 모드와 HYP모드를 제외한 모든 모드가 PL1에서 실행 보통 OS 시스템(커널)이 PL1에서 실행 SVC, IRQ, FIQ, ABT, UND, SYS 모드 등이 실..

개요 함수 시작과 끝에 주로 실행하는 어셈블리어 루틴 stp: 레지스터 -> 스택 푸시 명령어 ldp: 레지스터 -> 스택 팝 명령어 ARM프로세서와 대화할 수 있는 언어 ex) ARM 프로세서에게 연산 시키기 어셈블리 명령어 실행한 결과는 레지스터에 저장 어셈블리 명령어 기본 형태 ex) "MOV , #imm" == " = #imm" 어셈블리 명령어 종류 어셈블리어는 유닛 단위, 루틴 단위로 공부하는 게 좋음 어셈블리어를 기계적으로 외우기보다는 해당 명령어가 ARM 프로세서 내부적으로 어떻게 동작하는지 원리를 파악하는 것이 중요 어셈블리 명령어의 실전 프로젝트 활용 사례 부트로더 개발 부트로더: 시스템 전원 인가 후 최초로 실행되는 소프트웨어 스타트업 코드: 부트로더에서 가장 먼저 실행되는 코드 스택 ..

레지스터 세트: 태스크의 실행 흐름(데이터 저장) 컨텍스트: 범용 레지스터 컨텍스트 스위칭: ARM 코어에서 현재 실행 중인 레지스터 세트를 태스크 자료 구조에 저장하고, 다음에 실행할 태스크의 레지스터 세트를 ARM 코어의 레지스터에 로딩(cpu 아키텍처에 의존적인 작업) ARMv7 범용 레지스터 보통 어셈블리 연산 결과가 R0~R12에 저장됨 보통 어셈블리 연산 결과가 R0~R12에 저장됨 SP(R13): 프로세스 스택 주소 저장 LR(R14): 함수 호출 완료 후에 복귀할 주소를 저장(BL 시에 저장) PC(R15): 현재 패치하는 명령어 주소를 저장(현재 실행중인 명령어의 주소 저장) CPSR: 프로세스 상태 저장(익셉션 모드 저장) SPSR: CPSR의 복사본 레지스터 이전 동작 모드의 프로세서..
브링업을 잘하기 위해서 시스템 소프트웨어 개발자 프로젝트 프로세스: 보드 브링업 -> 기능 안정화 -> 유지 보수 부트로더에서 스타트업 코드 실행 메모리, 캐시와 같은 시스템 자원 초기화 키보드, usb 같은 주변 장치 초기화 시스템에 전원이 들어왔을때 가장 먼저 실행되는 주소에 있는 코드: 스타트업 코드(부트로더가 가장 먼저 실행하는 코드) 시스템을 초기화 및 설정하는 루틴으로 구성됨 MMU 같은 하드웨어 유닛과 캐시 설정 동작모드 혹은 익셉션 레벨별로 스택 크기 지정 익셉션 핸들러 구성 스택이 초기화되어있어야하기에 어셈블리어로 스타트업 코드를 작성 디바이스 드라이버 개발을 잘하기 위해서 ARM이 인터럽트 처리를 어떻게 하는지 잘 이해하면 디바이스 드라이버가 통신하는 방법인 인터럽트의 우선순위나 종류를..

[1강 - ARM 프로세서 역사] 에이콘: ARM 사의 모태, 에이콘사가 벤처기업 설립한게 ARM사 ARM: Advanced RISC Machine 인텔의 고성능 지향과 대비적으로 ARM 시작은 저전력, 소형 디바이스 프로세서를 주로 개발 soc업체: 퀄컴, 엔비디아, 미디어텍 등 ARM 시리즈 제품군 x86에 비해 ARM이 저전력임 ARM 커뮤니티 활발하기에 질문 달면 직접 답변해줌 ARM 비즈니스 생태계: ARM(IP회사) SoC회사(칩 설계) 제품 양산(OEM) 아키텍처 용어정리 출처: 인프런, "시스템 소프트웨어 개발을 위한 Arm 아키텍처의 구조와 원리", https://inf.run/FiFG