Skip to content

Bridle v4.0

Stephan Linz edited this page Sep 18, 2025 · 1 revision

Release Notes : https://bridle.tiac-systems.net/doc/4.0/bridle/release_notes.html

Required Tools : https://bridle.tiac-systems.net/doc/4.0/bridle/gs_recommended_versions.html#required-tools

  • Python 3.10 – but Bridle requires Python 3.12 (tested 3.12.3 … 3.12.11)
  • CMake 3.20.5 (tested 3.20.5 … 3.28.3)
  • DTC 1.4.6 (1.4.7 … 1.7.1)

Installing Bridle manually : https://bridle.tiac-systems.net/doc/4.0/bridle/gs_installing.html

Note

The git track command is a Git alias function and should be defined as shown below:

git config get --global alias.track

Git alias function of `git track` (click to expand or collapse)
!f() { ([ $# -eq 2 ] && \
    ( echo "Setting tracking for branch " $1 " -> " $2; \
      git branch $1 $2; \
      git branch --set-upstream-to=$2 $1; \
    ) || ( \
      git for-each-ref --format="local: %(refname:short) <--sync--> remote: %(upstream:short)" \
          refs/heads && echo --Remotes && git remote -v \
    )); }; f

Maintenance Workspace Setup

Important

Ensure that the workspace folder created below does not exist. If so, it must first be renamed or removed.

  1. Create Workspace Folder
    mkdir ws-bridle-4.0 && cd ws-bridle-4.0
    
    
  2. Setup Python Virtual Environment for West
    python3.12 -m venv --clear --copies --prompt="$(basename $(pwd))[$(python3.12 --version)]" .env
    source .env/bin/activate
    pip3 install --upgrade pip
    pip3 install --upgrade setuptools
    pip3 install --upgrade west
    
    
  3. Cloning the Repositories with West
    west init -m https://github.com/tiacsys/bridle --mr v4.0-branch
    west update
    
    
  4. Export a Zephyr CMake package
    west zephyr-export
    
    
  5. Export a Bridle CMake package
    west bridle-export
    
    
  6. Installing all required Python dependencies
    pip3 install --upgrade --requirement zephyr/scripts/requirements.txt
    pip3 install --upgrade --requirement bridle/scripts/requirements.txt
    
    

Install legacy tools locally into the workspace

Caution

Avoid installation in any global context, e.g. users home or /opt folder.

Minimal required versions of legacy tools are:

  • CMake 3.20.5
  • DTC 1.4.6 (under Linux provided by Zephyr SDK as 1.6.0)
  • Zephyr SDK 0.17.0
  1. Install the CMake into the always activated local Python Virtual Environment

    pip3 install --upgrade "cmake>=3.20.5,<3.28.4"
    
    
  2. Install the Zephyr Software Development Kit (SDK) into the global /opt folder

    wget https://github.com/zephyrproject-rtos/sdk-ng/releases/download/v0.17.0/zephyr-sdk-0.17.0_linux-x86_64.tar.xz
    wget -O - https://github.com/zephyrproject-rtos/sdk-ng/releases/download/v0.17.0/sha256.sum | shasum --check --ignore-missing
    
    
    tar -xvf zephyr-sdk-0.17.0_linux-x86_64.tar.xz \
        --xform='s/^zephyr-sdk-0.17.0/zephyr-sdk/'
    ./zephyr-sdk/setup.sh -h -t all
    
    
    Zephyr SDK installer output (click to expand or collapse)
    Zephyr SDK 0.17.0 Setup
    
    Installing host tools ...
    
    All done.
    
    export ZEPHYR_TOOLCHAIN_VARIANT="zephyr"
    export ZEPHYR_SDK_INSTALL_DIR="$(pwd)/zephyr-sdk"
    
    

Extend Zephyr repository for maintenance purposes

Important

Ensure that you always execute the following commands within and at the top level of the previously set up workspace folder! The local Python Virtual Environment must be enabled and the Zephyr SDK environment variables must be set properly (see above).

git -C zephyr config set --local pull.ff only

git -C zephyr remote add upstream https://github.com/zephyrproject-rtos/zephyr.git
git -C zephyr remote add origin git@github.com:tiacsys/zephyr.git
git -C zephyr remote update --prune
git -C zephyr fetch --unshallow

git -C zephyr checkout -b v4.0-branch origin/v4.0-branch
git -C zephyr checkout -b tiacsys/v4.0-branch origin/tiacsys/v4.0-branch

git -C zephyr track
(cd zephyr && gitk --all) &

Git track output for Zephyr (click to expand or collapse)
local: manifest-rev <--sync--> remote:
local: heads/tiacsys/v4.0-branch <--sync--> remote: origin/tiacsys/v4.0-branch
local: v4.0-branch <--sync--> remote: origin/v4.0-branch
--Remotes
origin	git@github.com:tiacsys/zephyr.git (fetch)
origin	git@github.com:tiacsys/zephyr.git (push)
tiacsys	https://github.com/tiacsys/zephyr (fetch)
tiacsys	https://github.com/tiacsys/zephyr (push)
upstream	https://github.com/zephyrproject-rtos/zephyr.git (fetch)
upstream	https://github.com/zephyrproject-rtos/zephyr.git (push)

Extend Bridle repository for maintenance purposes

Important

Ensure that you always execute the following commands within and at the top level of the previously set up workspace folder!

git -C bridle config set --local pull.ff only
git -C bridle remote set-url --push origin git@github.com:tiacsys/bridle.git
git -C bridle remote update --prune

git -C bridle checkout -b v4.0-next origin/v4.0-next

git -C bridle track
(cd bridle && gitk --all) &

Git track output for Bridle (click to expand or collapse)
local: v4.0-branch <--sync--> remote: origin/v4.0-branch
local: v4.0-next <--sync--> remote: origin/v4.0-next
--Remotes
origin	https://github.com/tiacsys/bridle (fetch)
origin	git@github.com:tiacsys/bridle.git (push)

Simple Build Test

Important

Ensure that you always execute the following commands within and at the top level of the previously set up workspace folder!

TiaC Magpie F777NI : https://bridle.tiac-systems.net/doc/4.0/bridle/boards/tiac/magpie_f777ni/doc/index.html

Zephyr LED Blinky

west build -p always -b magpie_f777ni -d build/led_blinky-magpie_f777ni zephyr/samples/basic/blinky

West build output for Zephyr LED Blinky (click to expand or collapse)
-- west build: generating a build system
Loading Zephyr default modules (Zephyr base).
-- Application: .../ws-bridle-4.0/zephyr/samples/basic/blinky
-- CMake version: 3.28.3
Loading Bridle default modules (Bridle workspace).
-- Bridle version: 4.0.0-dev (.../ws-bridle-4.0/bridle)
-- Found Python3: .../ws-bridle-4.0/.env/bin/python3.12 (found suitable version "3.12.11", minimum required is "3.10") found components: Interpreter
-- Cache files will be written to: /home/user/.cache/zephyr
--  [✓] Found toolchain: 0.17.0 (.../ws-bridle-4.0/zephyr-sdk)
-- Zephyr version: 4.0.0-dev (.../ws-bridle-4.0/zephyr)
-- Found west (found suitable version "1.3.0", minimum required is "0.14.0")
-- Board: magpie_f777ni, qualifiers: stm32f777xx
-- Found host-tools: zephyr 0.17.0 (.../ws-bridle-4.0/zephyr-sdk)
-- Found toolchain: zephyr 0.17.0 (.../ws-bridle-4.0/zephyr-sdk)
-- Found Dtc: .../ws-bridle-4.0/zephyr-sdk/sysroots/x86_64-pokysdk-linux/usr/bin/dtc (found suitable version "1.6.0", minimum required is "1.4.6")
-- Found BOARD.dts: .../ws-bridle-4.0/bridle/boards/tiac/magpie_f777ni/magpie_f777ni.dts
-- Generated zephyr.dts: .../ws-bridle-4.0/build/led_blinky-magpie_f777ni/zephyr/zephyr.dts
-- Generated pickled edt: .../ws-bridle-4.0/build/led_blinky-magpie_f777ni/zephyr/edt.pickle
-- Generated zephyr.dts: .../ws-bridle-4.0/build/led_blinky-magpie_f777ni/zephyr/zephyr.dts
-- Generated devicetree_generated.h: .../ws-bridle-4.0/build/led_blinky-magpie_f777ni/zephyr/include/generated/zephyr/devicetree_generated.h
-- Including generated dts.cmake file: .../ws-bridle-4.0/build/led_blinky-magpie_f777ni/zephyr/dts.cmake
Parsing .../ws-bridle-4.0/zephyr/Kconfig
Loaded configuration '.../ws-bridle-4.0/bridle/boards/tiac/magpie_f777ni/magpie_f777ni_defconfig'
Merged configuration '.../ws-bridle-4.0/zephyr/samples/basic/blinky/prj.conf'
Configuration saved to '.../ws-bridle-4.0/build/led_blinky-magpie_f777ni/zephyr/.config'
Kconfig header saved to '.../ws-bridle-4.0/build/led_blinky-magpie_f777ni/zephyr/include/generated/zephyr/autoconf.h'
-- Found GnuLd: .../ws-bridle-4.0/zephyr-sdk/arm-zephyr-eabi/arm-zephyr-eabi/bin/ld.bfd (found version "2.38")
-- The C compiler identification is GNU 12.2.0
-- The CXX compiler identification is GNU 12.2.0
-- The ASM compiler identification is GNU
-- Found assembler: .../ws-bridle-4.0/zephyr-sdk/arm-zephyr-eabi/bin/arm-zephyr-eabi-gcc

          ---------------------------------------------------------------------
          --- NOTICE: Unofficially supported SoC stm32f777xx will be used,  ---
          --- relying on upstream startup and initialization code in:       ---
          --- zephyr/soc/st/stm32 and zephyr/soc/st/stm32/stm32f7x          ---
          ---------------------------------------------------------------------
-- Using ccache: /usr/bin/ccache
-- Configuring done (9.9s)
-- Generating done (0.1s)
-- Build files have been written to: .../ws-bridle-4.0/build/led_blinky-magpie_f777ni
-- west build: building application
[1/149] Preparing syscall dependency handling

[2/149] Generating include/generated/zephyr/version.h
-- Zephyr version: 4.0.0 (.../ws-bridle-4.0/zephyr), build: v4.0.0-137-g1bdea6d5cc5c
[3/149] Generating ../../zephyr/include/generated/bridle/version.h
-- Bridle version: 4.0.0-dev (.../ws-bridle-4.0/bridle), build: bridle-v4.0.0-3-gcda717986678
… … …
… … …
… … …
[149/149] Linking C executable zephyr/zephyr.elf
Memory region         Used Size  Region Size  %age Used
           FLASH:       23968 B         2 MB      1.14%
             RAM:        4864 B       384 KB      1.24%
QSPI_PLACEHOLDER:          0 GB       256 MB      0.00%
           SRAM0:          0 GB       384 KB      0.00%
            DTCM:          0 GB       128 KB      0.00%
        IDT_LIST:          0 GB        32 KB      0.00%
Generating files from .../ws-bridle-4.0/build/led_blinky-magpie_f777ni/zephyr/zephyr.elf for board: magpie_f777ni
west flash -d build/led_blinky-magpie_f777ni

Bridle Hello Shell

west build -p always -b magpie_f777ni -d build/helloshell-magpie_f777ni bridle/samples/helloshell

West build output for Bridle Hello Shell (click to expand or collapse)
-- west build: generating a build system
Loading Zephyr default modules (Zephyr base).
-- Application: .../ws-bridle-4.0/bridle/samples/helloshell
-- CMake version: 3.28.3
Loading Bridle default modules (Bridle repository).
-- Bridle version: 4.0.0-dev (.../ws-bridle-4.0/bridle)
-- Found Python3: .../ws-bridle-4.0/.env/bin/python3.12 (found suitable version "3.12.11", minimum required is "3.10") found components: Interpreter
-- Cache files will be written to: /home/user/.cache/zephyr
--  [✓] Found toolchain: 0.17.0 (.../ws-bridle-4.0/zephyr-sdk)
-- Zephyr version: 4.0.0-dev (.../ws-bridle-4.0/zephyr)
-- Found west (found suitable version "1.3.0", minimum required is "0.14.0")
-- Board: magpie_f777ni, qualifiers: stm32f777xx
-- Found host-tools: zephyr 0.17.0 (.../ws-bridle-4.0/zephyr-sdk)
-- Found toolchain: zephyr 0.17.0 (.../ws-bridle-4.0/zephyr-sdk)
-- Found Dtc: .../ws-bridle-4.0/zephyr-sdk/sysroots/x86_64-pokysdk-linux/usr/bin/dtc (found suitable version "1.6.0", minimum required is "1.4.6")
-- Found BOARD.dts: .../ws-bridle-4.0/bridle/boards/tiac/magpie_f777ni/magpie_f777ni.dts
-- Generated zephyr.dts: .../ws-bridle-4.0/build/helloshell-magpie_f777ni/zephyr/zephyr.dts
-- Generated pickled edt: .../ws-bridle-4.0/build/helloshell-magpie_f777ni/zephyr/edt.pickle
-- Generated zephyr.dts: .../ws-bridle-4.0/build/helloshell-magpie_f777ni/zephyr/zephyr.dts
-- Generated devicetree_generated.h: .../ws-bridle-4.0/build/helloshell-magpie_f777ni/zephyr/include/generated/zephyr/devicetree_generated.h
-- Including generated dts.cmake file: .../ws-bridle-4.0/build/helloshell-magpie_f777ni/zephyr/dts.cmake
Parsing .../ws-bridle-4.0/zephyr/Kconfig
Loaded configuration '.../ws-bridle-4.0/bridle/boards/tiac/magpie_f777ni/magpie_f777ni_defconfig'
Merged configuration '.../ws-bridle-4.0/bridle/samples/helloshell/prj.conf'
Merged configuration '.../ws-bridle-4.0/bridle/samples/helloshell/boards/magpie_f777ni.conf'
Configuration saved to '.../ws-bridle-4.0/build/helloshell-magpie_f777ni/zephyr/.config'
Kconfig header saved to '.../ws-bridle-4.0/build/helloshell-magpie_f777ni/zephyr/include/generated/zephyr/autoconf.h'
-- Found GnuLd: .../ws-bridle-4.0/zephyr-sdk/arm-zephyr-eabi/arm-zephyr-eabi/bin/ld.bfd (found version "2.38")
-- The C compiler identification is GNU 12.2.0
-- The CXX compiler identification is GNU 12.2.0
-- The ASM compiler identification is GNU
-- Found assembler: .../ws-bridle-4.0/zephyr-sdk/arm-zephyr-eabi/bin/arm-zephyr-eabi-gcc

          ---------------------------------------------------------------------
          --- NOTICE: Unofficially supported SoC stm32f777xx will be used,  ---
          --- relying on upstream startup and initialization code in:       ---
          --- zephyr/soc/st/stm32 and zephyr/soc/st/stm32/stm32f7x          ---
          ---------------------------------------------------------------------
-- Using ccache: /usr/bin/ccache
-- Configuring done (7.9s)
-- Generating done (0.1s)
-- Build files have been written to: .../ws-bridle-4.0/build/helloshell-magpie_f777ni
-- west build: building application
[1/230] Preparing syscall dependency handling

[2/230] Generating include/generated/zephyr/version.h
-- Zephyr version: 4.0.0 (.../ws-bridle-4.0/zephyr), build: v4.0.0-137-g1bdea6d5cc5c
[3/230] Generating ../../zephyr/include/generated/bridle/version.h
-- Bridle version: 4.0.0-dev (.../ws-bridle-4.0/bridle), build: bridle-v4.0.0-3-gcda717986678
… … …
… … …
… … …
[230/230] Linking C executable zephyr/zephyr.elf
Memory region         Used Size  Region Size  %age Used
           FLASH:      122112 B         2 MB      5.82%
             RAM:       29632 B       384 KB      7.54%
QSPI_PLACEHOLDER:          0 GB       256 MB      0.00%
           SRAM0:          0 GB       384 KB      0.00%
            DTCM:          0 GB       128 KB      0.00%
        IDT_LIST:          0 GB        32 KB      0.00%
Generating files from .../ws-bridle-4.0/build/helloshell-magpie_f777ni/zephyr/zephyr.elf for board: magpie_f777ni
west flash -d build/helloshell-magpie_f777ni

Clone this wiki locally