BabyMelvin / quard_star_tutorial

This project aims to build an embedded linux system from zero, in order to analyze the chip from the power-on execution of the first instruction to the entire system running, based on qemu custom simulator development board. 本项目旨在真正从0开始构建嵌入式linux系统,为了剖析芯片从上电开始执行第一条指令到整个系统运行,基于qemu定制模拟器开发板。

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

MAIN_CI APP_CI Documentation Status CodeFactor GitHub All Releases GitHub stars

Construction of embedded linux system based on qemu

English | 简体中文

logo

Introduction

This project aims to build an embedded linux system from zero. In order to analyze the chip from power-on to execute the first instruction to the entire system running, related application services are started, so the real board on the market is not used, based on the qemu custom simulator Development board, and does not use the fast loading elf file method provided by qemu, so we need to download the qemu-6.0.0 source code, write our own (or use qemu's own) hardware ip-related simulation code to customize our own hardware board. This project is synchronously produced blog column(2021.8.11: Currently starting to use readthedocs to build document, the same as the blog content), so the project should try to ensure that it is submitted every time a feature is added, so that the index can track the development process and correspond to the specific chapters of the blog.

Environment setup

ubuntu18.04 needs to use apt to install the package:

sudo apt install ninja-build pkg-config libglib2.0-dev libpixman-1-dev libgtk-3-dev libcap-ng-dev libattr1-dev device-tree-compiler bison flex

Hardware architecture

The figure below shows the current virtual hardware architecture, which will be continuously updated as the project progresses.

hardware architecture

Software flow

The following figure shows the current software process, which will be continuously updated as the project progresses.

software flow

Memory distribution

The following figure shows the current memory distribution, which will be continuously updated as the project progresses.

memory distribution

Development record

develop note

About

This project aims to build an embedded linux system from zero, in order to analyze the chip from the power-on execution of the first instruction to the entire system running, based on qemu custom simulator development board. 本项目旨在真正从0开始构建嵌入式linux系统,为了剖析芯片从上电开始执行第一条指令到整个系统运行,基于qemu定制模拟器开发板。

License:Other