This repository contains software and hardware designs of a low-power Linux board based on a STM32H743 microcontroller.
The Linux environment is deployed through buildroot. The custom_board_def folder contains all the custom definitions, packages, configs and patches for the board.
There are three base configs for Linux that can be used
- Linux runs in RAM with a volatile Initramfs rootfs
- Linux runs in RAM with a non-volatile JFFS2 rootfs
- Linux runs in XIP mode from SPI-flash with a read-only CRAMFS rootfs
First of all, run the init_tftp.sh to install, configure and create the TFTP server and directory. The TFTP folder for the project is /srv/tftp/stm32h743.
To generate Linux distribution using Buildroot, run make BR2_EXTERNAL=<path_to_this_git_repo>/custom_board_def.
Once Buildroot has finished generating the distribution, simply set the desired configuration by running one of the following script :
set_mode_initramfs_rootfs.shset_mode_jffs2_rootfs.shset_mode_xip_rootfs.sh
After this, run make again inside the buildroot repository.
The output files can be found under buildroot/output/images.
To communicate with the board, a serial terminal such as minicom must be used. The board will show up under /dev/ttyACMx.
The flash_uboot.sh script can be used to flash the bootloader (U-Boot) to the STM32H743 internal flash over JTAG.
Once U-Boot is started, the following commands can be used :
run netboot: directly download Linux from TFTP and boot it inside RAM (initramfs required)run updatespiram: update Linux with JFFS2 rootfs from TFTP inside SPI-flashrun spibootram: launch Linux with JFFS2 rootfs from SPI-flashrun updatespixip: update Linux with CRAMFS rootfs from TFTP inside SPI-flashrun spibootxip: launch Linux with CRAMFS rootfs from SPI-flash in XIP mode
To show all the available commands type pri inside U-Boot.
The hardware design is split in two different boards. The UCL-CPUM-H7-x board, which is the CPU module (MCU, RAM, flash) and the UCL-MB-802154RT-x board, which is the motherboard (USB, Ethernet, power-supply, IEEE 802.15.4 interface). The -x corresponds to the version of the design.
The respository also contains a cross-compilation environment to create user-space applications for the system. This can be found in the Application folder.
The pre-built_images folder contains ready-to-use images for U-Boot, Linux and the rootfs.