Skip to content

ucb-bar/Baremetal-IDE

Repository files navigation

Chipyard Baremetal-IDE

CI-status API-Docs-status

WARNING⚠️ Baremetal-IDE is still under heavy development at the moment, so we don't guarantee the stability and backward-compatibility among versions.

Baremetal-IDE is an all-in-one tool for baremetal-level C program developments. It is part of the Chipyard ecosystem.

NOTE The scope of Baremetal-IDE is reduced to only support C programming language without C++ support. To use advanced object-oriented programming and other high-level features, please consider the soon coming Rust port, Baremetal-RS.

Baremetal-IDE features peripheral configuration, code generation, code compilation, and debugging tools for multiple RISC-V SoCs. With the board support package, user can use either the hardware-abstraction layer (HAL) functions to quickly configure and use the various supported peripheral devices, or can use the low-level (LL) macro definitions to generate code with minimal memory footprint and high performance. The modularity of the framework structure also allows fast integration of new SoCs.

Documentation and Getting Started

Please refer to the Tutorial Website for getting started with Baremetal-IDE, and refer to the API Docs for more detailed information on the APIs.

Simple examples

Compiling for Spike

cmake -S ./ -B ./build/ -D CMAKE_BUILD_TYPE=Debug -D CMAKE_TOOLCHAIN_FILE=./riscv-gcc.cmake
cmake --build ./build/ --target app

Compiling for FE310

Compiling example programs