교육일정
교육신청(결재) 하시면, RISC-V 실습용 보드와 모터 제어보드를 택배로 배송해 드립니다.
(교육비에 포함)
교육내용
커널연구회가 제작한 RISC-V 실습용 보드(StarFive JH7110 핀맵호환)를 사용하여 다음과 같이 실무 교육합니다.
강의 시간표 (1일차: RISC-V 명령구조) | |||
교시 | 강의주제 | 강사 | 강의 내용 |
1 09:00~09:50 |
RISC-V 명령구조 RISC-V 소개 |
커널연구회 정재준 |
강사, 커널연구회(kernel.bz) 및 riscv.org 활동사항 소개 CPU 성능측정 요소들(Performance, Factors) |
2 10:00~10:50 |
RISC-V 명령구조 CPU 성능비교 |
커널연구회 정재준 |
CISC vs RISC (ARM, MIPS) 명령구조(ISA) 성능비교 RISC-V ISA(Instruction Set Architecture) 특징 설명 |
3 11:00~11:50 |
RISC-V 명령구조 CISC vs RISC |
커널연구회 정재준 |
RISC-V ISA 이름 형식(Name Format)과 명령 종류별 설명 RISC-V Vector Extension 설명(Arm NEON과 비교) |
점심시간 12:00~12:50 |
|||
4 13:00~13:50 |
RISC-V 명령구조 RISC-V ISA 설명 |
커널연구회 정재준 |
RISC-V 와 ARM64 컴파일러 버전 확인 컴파일러 최적화 과정 및 옵션 이해 |
5 14:00~14:50 |
RISC-V 명령구조 컴파일러 최적화-1 |
커널연구회 정재준 |
gcc 컴파일러 (Compiler Explorer) 활용 RISC-V vs ARM64 컴파일러 최적화(-O2) 소스 설명 - 1 |
6 15:00~15:50 |
RISC-V 명령구조 컴파일러 최적화-2 |
커널연구회 정재준 |
RISC-V vs ARM64 컴파일러 최적화(-O2) 소스 설명 - 2 RISC-V vs ARM64 컴파일러 최적화(-O2) 소스 설명 - 3 |
7 16:00~16:50 |
RISC-V 명령구조 Fence 명령 |
커널연구회 정재준 |
RISC-V 메모리 배리어 명령(Fence Instructions) 이해 RISC-V 메모리 배리어 커널 소스 설명 |
8 17:00~17:50 |
RISC-V 명령구조 AMO 설명 |
커널연구회 정재준 |
RISC-V AMO(Atomic Memory Operations) 설명 강의 내용 전체 요약 설명 및 질문응답(Q&A) |
강의 시간표 (2일차: RISC-V 리눅스 커널) | |||
교시 | 강의주제 | 강사 | 강의 내용 |
1 09:00~09:50 |
RISC-V 커널 개발환경 |
커널연구회 정재준 |
SiFive SDK(Software Development Kits) 소개 RISC-V 컴파일러(toolchain) 소스 설치 및 사용법 |
2 10:00~10:50 |
RISC-V 커널 SDK 설정 |
커널연구회 정재준 |
buildroot(ramfs) 설치 및 빌드 스크립트 설명 부트로더(OpenSBI) 소스 설치 및 빌드 스크립트 설명 |
3 11:00~11:50 |
RISC-V 커널 소스 빌드 |
커널연구회 정재준 |
riscv simulator(QEMU) 설치 및 사용방법 커널 소스 다운로드 및 빌드 방법 설명 |
점심시간 12:00~12:50 |
|||
4 13:00~13:50 |
RISC-V 커널 부트 로더 |
커널연구회 정재준 |
부트로더+커널이미지+DTB 제작방법 및 SD카드 설치 설명 RISC-V 리눅스 커널(arch/riscv/*) 소스 구조 |
5 14:00~14:50 |
RISC-V 커널 부팅 소스 |
커널연구회 정재준 |
RISC-V 부팅 소스 메모리 맵(system.map) RISC-V CPU 부팅, arch/riscv/kernel/head.S 소스 설명 |
6 15:00~15:50 |
RISC-V 커널 start_kernel |
커널연구회 정재준 |
커널 부팅, init/start_kernel() 함수 설명 setup_arch(), parse_dtb(), setup_smp() 함수 설명 |
7 16:00~16:50 |
RISC-V 커널 인터럽트 설명 |
커널연구회 정재준 |
RISC-V 인터럽트(SiFive FU540 PLIC, CLINT) 설명 RISC-V 인터럽트 실행 커널 소스 흐름 설명 |
8 17:00~17:50 |
RISC-V 커널 인터럽트 소스 |
커널연구회 정재준 |
RISC-V 인터럽트 서비스 루틴 함수 등록/실행 소스 설명 강의 내용 전체 요약 설명 및 질문응답(Q&A) |
강의 시간표 (3일차: RISC-V 디바이스 드라이버) | |||
교시 | 강의주제 | 강사 | 강의 내용 |
1 09:00~09:50 |
RISC-V 드라이버 StartFive JH7110 |
커널연구회 정재준 |
StartFive JH7110 장치 계층 구조와 블럭 다이어그램 설명 RISC-V 개발 보드 하드웨어 구조 설명 |
2 10:00~10:50 |
RISC-V 드라이버 Device Tree |
커널연구회 정재준 |
StartFive JH7110 디바이스 트리 구조 설명 StartFive JH7110 디바이스 트리 소스 설명 |
3 11:00~11:50 |
RISC-V 드라이버 설계 구조 |
커널연구회 정재준 |
jh7110.dtsi 소스 및 빌드 방법 설명 jh7110-visionfive-v2.dts 소스 및 빌드 방법 설명 |
점심시간 12:00~12:50 |
|||
4 13:00~13:50 |
RISC-V 드라이버 drivers/base |
커널연구회 정재준 |
디바이스 드라이버 전체 설정 흐름 설명 drivers/base/init.c, driver_init() 장치설정 소스 설명 |
5 14:00~14:50 |
RISC-V 드라이버 kset/kobject |
커널연구회 정재준 |
장치 설정 구조체, include/linux/kobject.h 설명 장치 설정 구조체 연결 흐름, lib/kobject.c 소스 설명 |
6 15:00~15:50 |
RISC-V 드라이버 bus/class/device |
커널연구회 정재준 |
버스(bus), 클래스(class), 장치(device) 등록 흐름 설명 장치 드라이버 등록 과정 소스 흐름 설명 |
7 16:00~16:50 |
RISC-V 드라이버 드라이버 소스 |
커널연구회 정재준 |
StartFive JH7110 Device Driver 소스설명 StartFive JH7110 Device Driver 동작 테스트 |
8 17:00~17:50 |
RISC-V 드라이버 입출력 핀맵 |
커널연구회 정재준 |
StartFive JH7110 입출력 헤더핀 및 회로도 설명 StartFive JH7110 Devices 입출력 Pin Header와 소스구조 |
강의 시간표 (4일차: RISC-V 드라이버 코딩 실무) | |||
교시 | 강의주제 | 강사 | 강의 내용 |
1 09:00~09:50 |
드라이버 실무 개발환경 |
커널연구회 정재준 |
StartFive JH7110 실습용 입출력 보드 설명 StartFive JH7110 실습용 입출력 디바이스 트리 설명 |
2 10:00~10:50 |
드라이버 실무 UART |
커널연구회 정재준 |
StartFive JH7110 UART 디바이스 트리 설명 StartFive JH7110 UART 시리얼 통신 소스 코딩 |
3 11:00~11:50 |
드라이버 실무 UART 소스 |
커널연구회 정재준 |
StartFive JH7110 UART 시리얼 통신 소스 설명1 StartFive JH7110 UART 시리얼 통신 소스 설명2 |
점심시간 12:00~12:50 |
|||
4 13:00~13:50 |
드라이버 실무 GPIO |
커널연구회 정재준 |
StartFive JH7110 GPIO 디바이스 트리 설명 StartFive JH7110 GPIO 기능 소스 코딩 |
5 14:00~14:50 |
드라이버 실무 I2C0 |
커널연구회 정재준 |
StartFive JH7110 I2C0 디바이스 트리 설명 StartFive JH7110 I2C1 overlay 디바이스 트리 설명 |
6 15:00~15:50 |
드라이버 실무 I2C1 |
커널연구회 정재준 |
StartFive JH7110 I2C1 overlay 소스 코딩 StartFive JH7110 I2C1 overlay 적용 방법 설명 |
7 16:00~16:50 |
드라이버 실무 I2C 센서 |
커널연구회 정재준 |
StartFive JH7110 I2C 온도습도 센서(HT30) 소스 코딩 StartFive JH7110 I2C 온도습도 센서(HT30) 소스 설명 |
8 17:00~17:50 |
드라이버 실무 PWM |
커널연구회 정재준 |
StartFive JH7110 PWM 디바이스 트리 설명 StartFive JH7110 PWM 기능 소스 코딩 |
강의 시간표 (5일차: RISC-V 드라이버 실용 구현) | |||
교시 | 강의주제 | 강사 | 강의 내용 |
1 09:00~09:50 |
드라이버 구현 드라이버 코딩 |
커널연구회 정재준 |
RISC-V 디바이스 드라이버 제작 방법 설명 RISC-V 디바이스 드라이버 모듈 프로그래밍 방법 설명 |
2 10:00~10:50 |
드라이버 구현 GPIO 드라이버 |
커널연구회 정재준 |
RISC-V GPIO 디바이스 드라이버 소스 코딩 RISC-V GPIO 디바이스 드라이버 소스 구현 |
3 11:00~11:50 |
드라이버 구현 인터럽트 드라이버 |
커널연구회 정재준 |
RISC-V 인터럽트 동작 과정 이해 RISC-V 인터럽트 디바이스 드라이버 코딩 방법 |
점심시간 12:00~12:50 |
|||
4 13:00~13:50 |
드라이버 구현 인터럽트 구현 |
커널연구회 정재준 |
RISC-V 인터럽트 디바이스 드라이버 소스 코딩 RISC-V 인터럽트 디바이스 드라이버 소스 구현 |
5 14:00~14:50 |
드라이버 구현 I2C 드라이버 |
커널연구회 정재준 |
RISC-V I2C 동작 과정 이해 RISC-V I2C 디바이스 드라이버 코딩 방법 |
6 15:00~15:50 |
드라이버 구현 I2C 드라이버 구현 |
커널연구회 정재준 |
RISC-V I2C 디바이스 드라이버 소스 코딩 RISC-V I2C 디바이스 드라이버 소스 구현 |
7 16:00~16:50 |
드라이버 구현 모터제어 드라이버 |
커널연구회 정재준 |
RISC-V 모터 제어 디바이스 드라이버 소스 코딩 RISC-V 모터 제어 디바이스 드라이버 소스 구현 |
8 17:00~17:50 |
드라이버 구현 전체요약정리 |
커널연구회 정재준 |
RISC-V 드라이버 코딩 구현 전체 요약 정리 질문응답(Q&A) |
RISC-V 커널 디바이스 드라이버 실무교육