본문 바로가기

riscv

(6)
[RISC-V][리눅스] 커널 크래시 발생 - 실행 흐름 - Part.1 (강의) RISC-V 프로세서 기반 위에서 리눅스 커널이 실행될 때, 리눅스 커널 크래시가 발생하는 과정을 상세히 설명하는 강의 컨텐츠입니다. 보드를 브링업하는 과정에서 가장 고생하는 이슈가 크래시입니다. 이 영상을 보시고 고생을 덜 하시길 바랍니다. 강의 링크:
[RISC-V] u-boot 크로스 컴파일 u-boot 크로스 컴파일 (RISC-V) ubuntu (x86) 시스템에서 u-boot를 크로스 컴파일 (RISC-V)을 할 것이다. 먼저 빌드에 필요한 유틸리티를 설치하자: sudo apt-get install libncurses-dev libssl-dev bc flex bison make gcc gcc-riscv64-linux-gnu -y 아래와 같은 명령어를 사용해 uboot 소스를 다운로드하자: $ git clone https://github.com/u-boot/u-boot.git -b u-boot-2023.07.y Cloning into 'u-boot'... ... Checking out files: 100% (19873/19873), done. 다운로드가 마무리되면 u-boot 디렉토리가 생..
[인프런] RISC-V 강의 소개: 디버깅으로 배우는 RISC-V 아키텍처 -1부 (30% 할인쿠폰) 최근에 RISC-V 강의를 제작해 인프런에 올렸는데요, 이 소식을 공유드리기 위해 포스팅합니다. 링크: https://inf.run/m8n4H 디버깅으로 배우는 RISC-V 아키텍처 -1부 강의 | 김동현 (Austin Kim) - 인프런김동현 (Austin Kim) | 오픈 소스 기반의 최신 CPU 아키텍처인 RISC-V의 핵심 개념과 실용적인 팁을 쉽고 상세하게 설명합니다., 최신 시스템 소프트웨어 업계에서 떠오르는 RISC-V 아키텍처최근 오픈 소www.inflearn.com 강의 런칭을 기념해 30% 할인 쿠폰을 발행합니다. (기한: ~12/30/2024) 쿠폰 : 17338-22e9b70d6177 최근 오픈 소스 기반의 CPU 아키텍처인 RISC-V 아키텍처가 떠오르고 있습니다.  IT와 관련된..
[RISC-V] Privilege mode (특권 모드) 란 RISC-V에서 Privilege Mode는 프로세서에서 실행되는 소프트웨어가 시스템 자원에 대해 얼마나 많은 제어와 접근을 가질 수 있는지를 결정합니다. Privilege Mode는 보안을 구현하고, 서로 다른 소프트웨어를 분리하며, 사용자 수준의 응용 프로그램이 운영 체제나 하드웨어에 직접적으로 간섭하지 않도록 보장하는 데 매우 중요합니다. RISC-V Privilege Mode RISC-V는 여러 가지 Privilege Mode를 정의하며, 각각은 소프트웨어 스택의 다른 계층을 위해 설계되었습니다:  사용자 모드 (U-mode): 목적: 이 모드는 가장 낮은 특권 수준으로, 주로 사용자 응용 프로그램을 실행하는 데 사용됩니다. 이 모드는 중요한 시스템 자원에 대한 접근을 제한하여 사용자 프로그램이 ..
[RISC-V] CSR (Control and Status) 레지스터 소개 RISC-V 아키텍처는 시스템의 세부 속성을 설정할 수 있는 CSR(Control and Status) 레지스터를 제공합니다. 다음과 같은 모든 속성은 CSR 레지스터를 통해 설정합니다:익셉션 벡터 베이스 주소 설정MMU를 통한 가상 메모리 설정주요 Privilege Mode에서 트랩되는 방식CSR(Control and Status) 레지스터는 시스템의 주요 속성을 설정하므로 부팅 과정에서 대부분 설정됩니다. CSR 레지스터를 소개했으니 CSR 레지스터에 접근할 수 있는 Privilege Mode에 대해 알아봅시다. Privilege Mode과 CSR 레지스터 CSR 레지스터의 이름을 보면 접두사로 m 혹은 s가 보입니다. 주요 CSR 레지스터의 목록은 아래와 같습니다: Machine Mode: msta..
[RISC-V] 레지스터: 범용 레지스터 RISC-V 아키텍처에서 레지스터를 배우려면 어떤 내용을 알아야 할까요? RISC-V 아키텍처에서는 다음과 같은 레지스터를 제공합니다.범용 레지스터CSRs(Control and Status) 레지스터범용 레지스터먼저 범용 레지스터에 대해 알아 봅시다. 범용 레지스터는 어셈블리 명령어의 입력과 출력을 저장하는 용도로 사용됩니다. 개념 상 C 언어의 변수와 비슷한 개념입니다. 어셈블리 명령어를 분석하실 때 반드시 레지스터를 알아야 합니다. RISC-V 아키텍처에서 정의된 범용 레지스터의 목록은 다음과 같습니다.  Armv8 아키텍처와 비슷하게 레지스터의 갯수는 X0에서 X31까지 있습니다. 레지스터의 갯수가 많은 편입니다. 대부분 어셈블리 명령어의 인풋과 출력 결과를 저장하기 위해 사용되는데, 함수가 호출될..