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
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 | --- |
|