#!/bin/sh # This Source Code Form is subject to the terms of the Mozilla Public License, # v. 2.0. If a copy of the MPL was not distributed with this file, You can # obtain one at https://mozilla.org/MPL/2.0/. # nucleo.sh # # This script builds the firmware for the ST Nucleo F767ZI board instead of the # native_sim board. After the build it flashes it to the target and opens the # serial console. # # This may be used to quickly test the current simulation-based development # state on real hardware. set -euf SCRIPT="$(realpath "$0")" FW="$(dirname "$SCRIPT")" ROOT="$(dirname "$FW")" BUILD="${ROOT}/nucleo" BOOTLOADER_FIRMWARE="${BUILD}/fw/btl/zephyr/zephyr.bin" APPLICATION_FIRMWARE="${BUILD}/fw/app/zephyr/zephyr.bin" APPLICATION_FIRMWARE_SIGNED="${BUILD}/fw/app/zephyr/zephyr.signed.bin" BOOTLOADER_FLASH_ADDRESS='0x8000000' APPLICATION_FLASH_ADDRESS='0x8040000' IMGTOOL="${ROOT}/imgtool.py" KEY="${HOME}/mcuboot/key.pem" BOARD='nucleo_f767zi' BAUDRATE='115200' SERIAL_PORT='/dev/ttyACM0' set -x rm -rf "$BUILD" cmake "-B${BUILD}" -GNinja -DBOARD="$BOARD" ninja -C "$BUILD" python "$IMGTOOL" sign \ --version 0.0.0 \ --header-size 0x200 \ --slot-size 0xc0000 \ --key "$KEY" \ "$APPLICATION_FIRMWARE" \ "$APPLICATION_FIRMWARE_SIGNED" st-flash --connect-under-reset write "$BOOTLOADER_FIRMWARE" \ "$BOOTLOADER_FLASH_ADDRESS" st-flash --connect-under-reset write "$APPLICATION_FIRMWARE_SIGNED" \ "$APPLICATION_FLASH_ADDRESS" picocom -b "$BAUDRATE" "$SERIAL_PORT"