# 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 --target= # 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 /.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 /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 | --- |