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.

2.7 KiB

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.

Currently supported

  • samd21j18a
  • samd21j17a
  • same54p20a