이 "u-boot 완전 분석" 과정의 목적은 임베디드 개발에 필요한 모든 소프트웨어 및 하드웨어 지식을 단계별로 이해하도록 돕고, 우수한 부트로더 소프트웨어의 전체 프로세스 분석을 통해 이해하도록 돕는 것입니다. 대학의 추상적이고 어려운 이론 과목과 달리, 우리는 유부트 분석 중 언제든지 코드를 수정하고 실행할 수 있어 지식에 대한 이해도를 시험할 수 있습니다. 이 과정을 끝까지 진행하면, 자신의 디버깅과 U-부트 작성이 개발 보드에서 완전히 실행될 때, 임베딩의 중간 수준 이상에 도달한 셈입니다. 소프트웨어와 하드웨어의 기초가 다져진 이후로, Linux와 Android와 같은 소프트웨어의 커널과 드라이버 개발을 계속 배우면 이해가 안 된다거나 시작하는 것이 어렵다는 느낌이 사라집니다. 이 과정의 첫 번째와 두 번째 시즌이 전체 과정의 기초이며, 기본적으로 첫 번째와 두 번째 시즌을 배우면 혼자서 부트로더를 작성할 수 있습니다.
강연자 소개
테긴 임베디드 회로 부트로더 운영체제 기초 분야의 전문가
임베디드 교육 과정에서 저는 현재 학부 전문 강의에서 임베디드 개발자가 부족하다는 점을 깊이 느낍니다. 전자공학 전공자가 "운영체제"나 "컴파일 원리" 같은 컴퓨터 전문 과목을 체계적으로 공부하지 않기 때문에, 리눅스와 그 컴파일 및 개발 시스템, 추상적인 작동 메커니즘 같은 거대한 소프트웨어 구조를 후반 단계에서 이해하기 어렵습니다. 마찬가지로 컴퓨터 전공자들은 전자 회로 기술에 대한 포괄적인 지식이 부족하고 하드웨어 다루는 경험이 상대적으로 부족해 순수 소프트웨어 개발 수준에만 머무를 수 있습니다.
개발자가 모든 기초 구체적인 하드웨어 지식과 상위 추상적 소프트웨어 지식을 갖추어야만 훌륭한 임베디드 시스템 개발 엔지니어가 될 수 있습니다. 따라서 수업과 실습 과정에서 그는 하드웨어와 소프트웨어 간의 상호작용적 관계에 큰 주의를 기울여 학생들이 그것이 무엇이고 왜 그런지 알 수 있도록 합니다.
스테이지 1 - 프롤로그
U-Boot 버전 선택
2단계 - start.s 분석
유부트의 이상 벡터와 V210의 부츠 메커니즘 원리
objdump 디어셈블을 사용해서 you-boot의 헤더 코드와 예외 벡터 처리를 확인하세요
ENTRY 및 기타 매크로, 그리고 CPSR 레지스터 설정
CP15 코프로세서 베이스, VBAR 이상 벡터 베이스 주소 매핑
cpu_init_cp15 서브프로세스 분석: 캐시 작업
cpu_init_cp15 서브프로세스 분석 (계속): 분기 예측, MMU 연산
cpu_initcrit 하위 프로세스 분석, 실험 1: U-부트 소스 코드를 수정하여 LED 불빛으로 실행 상태를 표시함
실험 1 (계속): GPIO 입출력 회로 분석
실험 1 (계속): U-부트 플래싱 이미지 생성 원리, MKV210 소스 코드 분석
실험 1 (계속): 헥스덤프 도구를 사용해 이미지의 16진수 코드를 분석합니다
컴파일, 링크, 어셈블리 과정 개요
실험 2: 직접 부팅 프로그램을 작성하기: myboot
실험 2 (계속): 두 개 이상의 파일 연결 원리
실험 2 (계속): 자신의 마이부트를 분해하고 분석해 보세요
실험 2 (계속): Makefile을 사용해 myboot를 자동으로 컴파일하기
실험 2 (계속): 메이크파일 개선
실험 2 (계속): Makefile의 자동화 변수
3단계 - lowlevel_init 분석
칩 모델 판정, 리셋 메서드 판정
IO 홀드, 모드 리셋, 인터럽트 초기화
UART 초기화 및 비동기 통신 원칙
UART 분석 1
UART 해석 2
UART 해석 3
UART 해석 4
실험 3: 지정된 메모리에 데이터를 표시하기 위해 UART를 사용해
DDR 메모리 1의 기본 개념
DDR 메모리 2의 기본 개념
DDR 메모리 3의 기본 개념
V210 오픈 보드1의 DDR 메모리 하드웨어 연결
V210 오픈 보드2의 DDR 메모리 하드웨어 연결
DDR2-Device1의 내부 구조
DDR2-Device2의 내부 구조
DDR2로 작동하는 유한 상태 기계
DDR2 MRS 및 EMRS 레지스터
DDR2 읽기 및 쓰기 타이밍
다운로드:관광객 여러분, 이 게시물의 숨겨진 내용을 보고 싶으시다면 부탁드립니다 회답 |