<commit_before>**Important disclaimer**:

    This is not an officially supported Google product

# Embedded Shell

![Qemu Demo](docs/images/demo.gif)

Implementation of a `bare-metal shell`. Can be used for early bringup of embedded platforms or for the purposes of learning and research. Detailed documentation available in [docs/00-getting-sarted.md](docs/00-getting-sarted.md).

## Install Dependencies

In order to be able to run the examples in the `examples/` directory, you would need to have the following installed:
```
sudo apt install -y binutils \
                    make \
                    binutils-riscv64-linux-gnu \
                    binutils-arm-none-eabi \
                    gcc-aarch64-linux-gnu \
                    gcc-riscv64-linux-gnu \
                    gcc-arm-none-eabi \
                    qemu-system-riscv64 \
                    qemu-system-aarch64 \
                    qemu-system-arm \
                    qemu-system \
                    gdb-multiarch \
                    gcc-riscv64-linux-gnu \
                    openocd \
                    minicom \
                    python3-pip
```
This would allow compiling, running, uploading and debugging the code.

## GDB Dashboard
This will convert the text based GDB into a nice dashboard with all registers and
source code etc visible.
```
wget -P ~ https://git.io/.gdbinit
```
```
pip3 install pygments
```

# Qemu based targets
Following in `examples/` are qemu based.
```
qemu-armv7M-32/  qemu-armv8A-64/  qemu-riscv-64/
```
## Compiling target<commit_msg>Adds g++ toolchain installation command in the README<commit_after>**Important disclaimer**:

    This is not an officially supported Google product

# Embedded Shell

![Qemu Demo](docs/images/demo.gif)

Implementation of a `bare-metal shell`. Can be used for early bringup of embedded platforms or for the purposes of learning and research. Detailed documentation available in [docs/00-getting-sarted.md](docs/00-getting-sarted.md).

## Install Dependencies

In order to be able to run the examples in the `examples/` directory, you would need to have the following installed:
```
sudo apt install -y binutils \
                    make \
                    binutils-riscv64-linux-gnu \
                    binutils-arm-none-eabi \
                    gcc-aarch64-linux-gnu \
                    gcc-riscv64-linux-gnu \
                    g++-riscv64-linux-gnu \
                    gcc-arm-none-eabi \
                    qemu-system-riscv64 \
                    qemu-system-aarch64 \
                    qemu-system-arm \
                    qemu-system \
                    gdb-multiarch \
                    gcc-riscv64-linux-gnu \
                    openocd \
                    minicom \
                    python3-pip
```
This would allow compiling, running, uploading and debugging the code.

## GDB Dashboard
This will convert the text based GDB into a nice dashboard with all registers and
source code etc visible.
```
wget -P ~ https://git.io/.gdbinit
```
```
pip3 install pygments
```

# Qemu based targets
Following in `examples/` are qemu based.
```
qemu-armv7M-32/  qemu-armv8A-64/  qemu-riscv-64/
```
## Compiling target
{'fraction_non_alphanumeric': 0.0892077354959451, 'fraction_numerical': 0.01684341859014348, 'mean_word_length': 1.8033216783216783, 'pattern_counts': {'":': 0, '<': 3, '<?xml version=': 0, '>': 3, 'https://': 2, 'lorem ipsum': 0, 'www.': 0, 'xml': 0}, 'pii_count': 0, 'substrings_counts': 0, 'word_list_counts': {'cursed_substrings.json': 0, 'profanity_word_list.json': 0, 'sexual_word_list.json': 0, 'zh_pornsignals.json': 0}}
{'dir': 'git-commits-cleaned', 'id': '3560955', 'n_tokens_mistral': 989, 'n_tokens_neox': 885, 'n_words': 277}