Skip to content

pika-spark/portentax8-stm32h7-fw

 
 

Repository files navigation

💾 portentax8-stm32h7-fw

Smoke test status Spell Check status Sync Labels status

This repository contains the firmware running on the STM32H747AIIX/Cortex-M7 core which, in combination with loadable kernel modules within the Linux distribution, provides access to various IO busses on the expansion headers of the Portenta X8.

Developer Guide

Build

  • Either make
make
# or
BUILDDIR=my-build-dir make -j8
  • or bitbake.
bitbake linux-firmware-arduino-portenta-x8-stm32h7

Note: If you want to obtain the debug messages printed via dbg_printf you need to make clean followed by make debug and connect a 3V3 FTDI adapter to UART0 on the Portenta Breakout Board.

Upload to Portenta X8

You can upload files to the Portenta X8 via adb push. Note: adb can only push /tmp and /home/fio.

adb push STM32H747AII6_CM7.bin /home/fio
adb push ...

Then open a shell to the X8 via adb shell and move the file from within /home/fio to /usr/lib/firmware/arduino/stm32h7-fw using sudo mv. Prior to that you need to remount /usr with read/write permissions (it's mounted read-only per default).

sudo mount -o remount,rw /usr
sudo mv STM32H747AII6_CM7.bin /usr/lib/firmware/arduino/stm32h7-fw/STM32H747AII6_CM7.bin

Flash STM32H747AIIX/Cortex-M7 firmware

cd /usr/arduino/extra
sudo ./program.sh

IMX8 / H7 Interface Block Diagram

Every communication is initiated by the IMX8 who serves as SPI controller. This happens either by the user issuing a write call on any of the interfaces or by the H7 requesting the start of a communication by setting IRQ to 1. A detailed description of the used protocol can be found here.

About

No description, website, or topics provided.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • C 65.9%
  • C++ 34.0%
  • Assembly 0.1%
  • Shell 0.0%
  • Python 0.0%
  • Makefile 0.0%