@ -1,10 +1,11 @@
# ePenguin Software Framework
Warning: This only works for x86\_64 linux machines atm. Windows development is in progress. I have no idea how to go about testing for mac so... yeah.
## Overview
This only works for x86\_64 linux machines atm. Windows development is in progress. I have no idea how to go about testing for mac so... yeah.
As of right now, only the *new* command works. Everything else is not implemented yet. However, *new* does most of the heavy lifting so the other commands will come quickly once it is finished and polished.
### Prerequisites
## Prerequisites
You need the following things installed for igloo+eSF to work properly:
- openocd
@ -13,36 +14,49 @@ You need the following things installed for igloo+eSF to work properly:
In the future, these things will just be bundled with eSF. The problem with some toolchains is dependency matching for various distros.
#### Toolchains
**Update on Toolchains**: The toolchains were a pain to maintain, and still are. That's why for the time being, the toolchains will not be bundled with esf. It is a goal to get the toolchains bundled with esf, but development of the esf libraries are most important right now.
### Toolchains
Loose naming convention for toolchains:
< arch > -< vendor > -< target os > -< host os > -< abi >
- arm-none-eabi:
- Toolchain targetting the embedded ABI for arm
- Debian/Ubuntu:
```
sudo apt-get install gcc-arm-none-eabi binutils-arm-none-eabi gdb-arm-none-eabi
```
- arm-none-eabi:
- Toolchain targetting the embedded ABI for arm
- Debian/Ubuntu:
```
sudo apt-get install gcc-arm-none-eabi binutils-arm-none-eabi gdb-arm-none-eabi
```
- **NOTE:** If you run into an issue when running arm-none-eabi-gdb where it needs libncurses.so.5 on Ubuntu/Debian, install this package:
```
sudo apt-get install libncurses5
```
- Arch
```
sudo pacman -S arm-none-eabi-binutils arm-none-eabi-gcc arm-none-eabi-gdb arm-none-eabi-newlib
```
- Gentoo:
- See this wiki [here ](https://wiki.gentoo.org/wiki/How_to_build_a_toolchain_for_arm_cortex-m_and_cortex-r ).
- Arch
```
sudo pacman -S arm-none-eabi-binutils arm-none-eabi-gcc arm-none-eabi-gdb arm-none-eabi-newlib
```
- avr-\*
- Ubuntu/Debian: (To be added)
**NOTE:** If you run into an issue when running arm-none-eabi-gdb where it needs libncurses.so.5 on Ubuntu/Debian, install this package:
```
sudo apt-get install libncurses5
```
- Arch:
```
sudo pacman -S avr-binutils avr-gcc avr-gdb avr-libc avrdude
```
- Gentoo:
- Install via [crossdev ](https://wiki.gentoo.org/wiki/Crossdev ):
```
crossdev -s4 --stable --portage --verbose --target avr
```
- avr-*
```
Debian:
(To be added)
Arch:
sudo pacman -S avr-binutils avr-gcc avr-gdb avr-libc avrdude
```
#### OpenOCD
@ -151,16 +165,16 @@ openocd -f same54.cfg
Now in another terminal:
```
cd < project_dir > /target/same54p20a/
cd < project_dir > /igloo/ targets /same54p20a/
make
${ESF_DIR}/toolchains/arm/bin/ arm-none-eabi-gdb -iex "target extended-remote localhost:3333" testdir.elf
arm-none-eabi-gdb -iex "target extended-remote localhost:3333" testdir.elf
load
monitor reset
```
If you're using gdb with python extensions then use this instead
```
${ESF_DIR}/toolchains/arm/bin/ arm-none-eabi-gdb-py -iex "target extended-remote localhost:3333" testdir.elf
arm-none-eabi-gdb -iex "target extended-remote localhost:3333" testdir.elf
```
### Supported Targets
@ -176,48 +190,14 @@ The framework allows me to add support for mcus pretty rapidly. I can add entire
#### ARM32
| MCU | Status |
| MCU Series | Status |
|:------------|--------------:|
| samd21e15a | :question: |
| samd21e16a | :question: |
| samd21e17a | :question: |
| samd21e18a | :question: |
| samd21g15a | :question: |
| samd21g16a | :question: |
| samd21g17a | :question: |
| samd21g17au | :question: |
| samd21g18a | :question: |
| samd21g18au | :question: |
| samd21j15a | :question: |
| samd21j16a | :question: |
| samd21j17a | :question: |
| samd21j18a | :question: |
| samd51g18a | :grey_question: |
| samd51g19a | :grey_question: |
| samd51j18a | :grey_question: |
| samd51j19a | :grey_question: |
| samd51j20a | :grey_question: |
| samd51n19a | :grey_question: |
| samd51n20a | :grey_question: |
| samd51p19a | :grey_question: |
| samd51p20a | :grey_question: |
| same54n19a | :question: |
| same54n20a | :question: |
| same54p19a | :question: |
| same54p20a | :question: |
| same70j19a | :exclamation: |
| same70j20a | :exclamation: |
| same70j21a | :exclamation: |
| same70n19a | :exclamation: |
| same70n20a | :exclamation: |
| same70n21a | :exclamation: |
| same70q19a | :exclamation: |
| same70q20a | :exclamation: |
| same70q21a | :exclamation: |
#### RISC-V
| MCU | Status |
|:----------|--------------:|
| fe310g000 | :exclamation: |
| fe310g002 | :exclamation: |
| SAMD21A | :question: |
| SAME54A | :question: |
| SAME70A |
#### AVR
| MCU Series | Status |
| XMEGAA | :exclamation: |
| MEGA | :exclamation: |