You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

110 lines
3.3 KiB
Markdown

# 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.
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.
### Instructions for testing
```
cd ~
git clone https://git.epenguin.net/ePenguin/ePenguin-Software-Framework.git
git clone https://git.epenguin.net/ePenguin/ePenguin-Igloo.git
sudo chmod -R u+x ~/ePenguin-Software-Framework/
sudo chmod -R u+x ~/ePenguin-Igloo/
export ESF_DIR=~/ePenguin-Software-Framework
alias igloo=~/ePenguin-Igloo/target/release/igloo
igloo
```
You should see a help menu thrown at you for more instruction.
### Generating a new project
```
igloo new <project_name> --target=<mcu>
# Example
igloo new testproject --target=samd21j18a
```
### Instructions for building
The framework comes with compilers so no external dependencies are needed. There are unfortunately no libraries yet because I want to nail igloo, the project manager, with certainty first.
```
cd <project_name>/.igloo/target/
make
```
### Instructions for running
I'm not including these steps because openocd releases vary with target configs. I recommend you download a release from https://openocd.org and unzip it there. Downloading via a package manager almost guarantees you're going to be missing target scripts.
In the future, igloo will handle all of this.
for the e54 xplained
```
openocd -f board/atmel_same54_xplained_pro.cfg
```
for the d21 xplained
```
openocd -f board/atmel_samd21_xplained_pro.cfg
```
If the E54 xplained cfg isn't found for some reason, try this:
```
echo "
#
# Atmel SAMD21 Xplained Pro evaluation kit.
#
source [find interface/cmsis-dap.cfg]
transport select swd
# chip name
set CHIPNAME same54p20a
source [find target/atsame5x.cfg]
" > same54.cfg
openocd -f same54.cfg
```
Now in another terminal:
```
cd <project_dir>/target/same54p20a/
make
${ESF_DIR}/toolchains/arm/bin/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
```
### Supported Targets
The framework allows me to add support for mcus pretty rapidly. I can add entire families of mcus with a few lines in the manifests. For now I've added support for mcus I use, but I'll be adding support for every Microchip SAM mcu shortly, as well as SiFive MCUs and STM32 MCUs.
### Status Guide
| Icon | Description |
| --- | --- |
| :exclamation: | In Development |
| :grey_question: | Unstable |
| :question: | Experimental |
| :white_check_mark: | Stable |
#### Arm
| MCU | Status |
| :--- | ---: |
| samd21e15a | --- |
| samd21e16a | --- |
| samd21e17a | --- |
| samd21e18a | --- |
| samd21g15a | --- |
| samd21g16a | --- |
| samd21g17a | --- |
| samd21g17au | --- |
| samd21g18a | --- |
| samd21g18au | --- |
| samd21j15a | --- |
| samd21j16a | --- |
| samd21j17a | --- |
| samd21j18a | --- |