Skip to content

Bridle v3.2

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

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

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

  • Python 3.8 (tested 3.8.2 … 3.8.10)
  • CMake 3.20.0 (tested 3.20.5 … 3.24.1)
  • DTC 1.4.6 (1.4.7 … 1.6.0)

Installing Bridle manually : https://bridle.tiac-systems.net/doc/3.2/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-3.2 && cd ws-bridle-3.2
    
    
  2. Setup Python Virtual Environment for West

    python3.8 -m venv --clear --copies --prompt="$(basename $(pwd))[$(python3.8 --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 v3.2-branch
    west update
    
    
  4. Export a Zephyr CMake package

    west zephyr-export
    
    
  5. OPTIONAL – non mandatory – may cause conflicts with later Bridle releases

    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
    
    

Fix Zephyr's defective requirements-extras.txt file

Warning

As of September 2025, the following error message arises:

$\large\textcolor{red}{\textsf{ERROR: Invalid requirement: 'clang-format&gt;=1.13x': Expected end or semicolon (after version specifier)}}$

$\large\textcolor{red}{\textsf{\quad\quad\quad\quad clang-format&gt;=1.13x}}$

$\large\textcolor{red}{\textsf{\quad\quad\quad\quad\quad\quad\quad}}$ $\large\textcolor{red}{\sim\sim\sim\sim\sim\sim\wedge}$ $\large\textcolor{red}{\textsf{(from line 13 of .../ws-bridle-3.2/zephyr/scripts/requirements-extras.txt)}}$

  1. setuptools 66.0.0 drop support for PEP 440 non-conforming versions (#2497), thus downgrade manually
    pip3 install --upgrade "setuptools<66.0.0"
    
  2. pip 24.1b1 drop support for PEP 440 non-conforming versions (#12063), thus downgrade manually
    pip3 install --upgrade "pip<24.1"
    
  3. Installing all required Python dependencies again
    pip3 install --upgrade --requirement zephyr/scripts/requirements.txt
    pip3 install --upgrade --requirement bridle/scripts/requirements.txt
    
    
  4. Check PIP's dependency resolver again until comeback without defectives:
    pip3 check || echo "FIXES NOT FINISHED"
    
    

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.0
  • DTC 1.4.6 (under Linux provided by Zephyr SDK as 1.6.0)
  • Zephyr SDK 0.15.0 – but Bridle requires Zephyr SDK 0.15.2

Caution

Sadly there is a bug inside the "Zephyr SDK Version Guard" of all Bridle 3.2 versions that do not avoid installation of the Zephyr SDK in any global context. The required Zephyr SDK must be installed into the /opt folder.

  1. Install the CMake into the always activated local Python Virtual Environment

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

    wget https://github.com/zephyrproject-rtos/sdk-ng/releases/download/v0.15.2/zephyr-sdk-0.15.2_linux-x86_64.tar.gz
    wget -O - https://github.com/zephyrproject-rtos/sdk-ng/releases/download/v0.15.2/sha256.sum | shasum --check --ignore-missing
    
    
    sudo tar xvf zephyr-sdk-0.15.2_linux-x86_64.tar.gz -C /opt
    sudo /opt/zephyr-sdk-0.15.2/setup.sh -h -t all
    
    
    Zephyr SDK installer output (click to expand or collapse)
    Zephyr SDK 0.15.2 Setup
    
    Installing host tools ...
    Zephyr Yocto Toolchain SDK installer version 0.9
    ================================================
    You are about to install the SDK to "/opt/zephyr-sdk-0.15.2". Proceed [Y/n]? Y
    Extracting SDK...................done
    Setting it up...done
    SDK has been successfully set up and is ready to be used.
    Each time you wish to use the SDK in a new shell session, you need to source the environment setup script e.g.
     $ . /opt/zephyr-sdk-0.15.2/environment-setup-x86_64-pokysdk-linux
    
    All done.
    
    unset ZEPHYR_TOOLCHAIN_VARIANT
    unset ZEPHYR_SDK_INSTALL_DIR
    
    

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 v3.2-branch origin/v3.2-branch
git -C zephyr checkout -b tiacsys/v3.2-branch origin/tiacsys/v3.2-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/v3.2-branch <--sync--> remote: origin/tiacsys/v3.2-branch
local: v3.2-branch <--sync--> remote: origin/v3.2-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 v3.2-next origin/v3.2-next

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

Git track output for Bridle (click to expand or collapse)
local: v3.2-branch <--sync--> remote: origin/v3.2-branch
local: v3.2-next <--sync--> remote: origin/v3.2-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 STM32F777NIHx : https://bridle.tiac-systems.net/doc/3.2/bridle/boards/arm/tiac_magpie/doc/index.html

Zephyr LED Blinky

west build -p always -b tiac_magpie -d build/led_blinky-tiac_magpie 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-3.2/zephyr/samples/basic/blinky
Loading Bridle default modules (Bridle workspace).
-- Bridle version: 3.2.0 (.../ws-bridle-3.2/bridle)
-- Bridle is trying to locate Zephyr SDK 0.15.2.
-- Using Zephyr SDK 0.15.2 for building Bridle. (/opt/zephyr-sdk-0.15.2)
-- Found Python3: .../ws-bridle-3.2/.env/bin/python3.8 (found suitable exact version "3.8.10") found components: Interpreter
-- Cache files will be written to: /home/user/.cache/zephyr
-- Zephyr version: 3.2.0 (.../ws-bridle-3.2/zephyr)
-- Found west (found suitable version "1.0.1", minimum required is "0.7.1")
-- Board: tiac_magpie
-- Found host-tools: zephyr 0.15.2 (/opt/zephyr-sdk-0.15.2)
-- Found toolchain: zephyr 0.15.2 (/opt/zephyr-sdk-0.15.2)
-- Found Dtc: /opt/zephyr-sdk-0.15.2/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-3.2/bridle/boards/arm/tiac_magpie/tiac_magpie.dts
-- Generated zephyr.dts: .../ws-bridle-3.2/build/led_blinky-tiac_magpie/zephyr/zephyr.dts
-- Generated devicetree_generated.h: .../ws-bridle-3.2/build/led_blinky-tiac_magpie/zephyr/include/generated/devicetree_generated.h
-- Including generated dts.cmake file: .../ws-bridle-3.2/build/led_blinky-tiac_magpie/zephyr/dts.cmake
Parsing .../ws-bridle-3.2/zephyr/Kconfig
Loaded configuration '.../ws-bridle-3.2/bridle/boards/arm/tiac_magpie/tiac_magpie_defconfig'
Merged configuration '.../ws-bridle-3.2/zephyr/samples/basic/blinky/prj.conf'
Configuration saved to '.../ws-bridle-3.2/build/led_blinky-tiac_magpie/zephyr/.config'
Kconfig header saved to '.../ws-bridle-3.2/build/led_blinky-tiac_magpie/zephyr/include/generated/autoconf.h'
-- The C compiler identification is GNU 12.1.0
-- The CXX compiler identification is GNU 12.1.0
-- The ASM compiler identification is GNU
-- Found assembler: /opt/zephyr-sdk-0.15.2/arm-zephyr-eabi/bin/arm-zephyr-eabi-gcc
-- Configuring done (4.5s)
-- Generating done (0.1s)
-- Build files have been written to: .../ws-bridle-3.2/build/led_blinky-tiac_magpie
-- west build: building application
[1/173] Preparing syscall dependency handling

[3/173] Generating include/generated/version.h
-- Zephyr version: 3.2.0 (.../ws-bridle-3.2/zephyr), build: zephyr-v3.2.0-87-g0b43fb5021ee
[4/173] Generating ../../zephyr/include/generated/version_bridle.h
-- Bridle version: 3.2.0 (.../ws-bridle-3.2/bridle), build: bridle-v3.2.0
… … …
… … …
… … …
[173/173] Linking C executable zephyr/zephyr.elf; Generating files from zephyr.elf for board: tiac_magpie
Memory region         Used Size  Region Size  %age Used
           FLASH:       22468 B         2 MB      1.07%
            SRAM:        4672 B       384 KB      1.19%
            DTCM:          0 GB       128 KB      0.00%
        IDT_LIST:          0 GB         2 KB      0.00%
west flash -d build/led_blinky-tiac_magpie

Bridle Hello Shell

west build -p always -b tiac_magpie -d build/helloshell-tiac_magpie 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-3.2/bridle/samples/helloshell
Loading Bridle default modules (Bridle repository).
-- Bridle version: 3.2.0 (.../ws-bridle-3.2/bridle)
-- Bridle is trying to locate Zephyr SDK 0.15.2.
-- Using Zephyr SDK 0.15.2 for building Bridle. (/opt/zephyr-sdk-0.15.2)
-- Found Python3: .../ws-bridle-3.2/.env/bin/python3.8 (found suitable exact version "3.8.10") found components: Interpreter
-- Cache files will be written to: /home/user/.cache/zephyr
-- Zephyr version: 3.2.0 (.../ws-bridle-3.2/zephyr)
-- Found west (found suitable version "1.0.1", minimum required is "0.7.1")
-- Board: tiac_magpie
-- Found host-tools: zephyr 0.15.2 (/opt/zephyr-sdk-0.15.2)
-- Found toolchain: zephyr 0.15.2 (/opt/zephyr-sdk-0.15.2)
-- Found Dtc: /opt/zephyr-sdk-0.15.2/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-3.2/bridle/boards/arm/tiac_magpie/tiac_magpie.dts
-- Generated zephyr.dts: .../ws-bridle-3.2/build/helloshell-tiac_magpie/zephyr/zephyr.dts
-- Generated devicetree_generated.h: .../ws-bridle-3.2/build/helloshell-tiac_magpie/zephyr/include/generated/devicetree_generated.h
-- Including generated dts.cmake file: .../ws-bridle-3.2/build/helloshell-tiac_magpie/zephyr/dts.cmake
Parsing .../ws-bridle-3.2/zephyr/Kconfig
Loaded configuration '.../ws-bridle-3.2/bridle/boards/arm/tiac_magpie/tiac_magpie_defconfig'
Merged configuration '.../ws-bridle-3.2/bridle/samples/helloshell/prj.conf'
Configuration saved to '.../ws-bridle-3.2/build/helloshell-tiac_magpie/zephyr/.config'
Kconfig header saved to '.../ws-bridle-3.2/build/helloshell-tiac_magpie/zephyr/include/generated/autoconf.h'
-- The C compiler identification is GNU 12.1.0
-- The CXX compiler identification is GNU 12.1.0
-- The ASM compiler identification is GNU
-- Found assembler: /opt/zephyr-sdk-0.15.2/arm-zephyr-eabi/bin/arm-zephyr-eabi-gcc
-- Configuring done (4.5s)
-- Generating done (0.1s)
-- Build files have been written to: .../ws-bridle-3.2/build/helloshell-tiac_magpie
-- west build: building application
[1/219] Preparing syscall dependency handling

[2/219] Generating include/generated/version.h
-- Zephyr version: 3.2.0 (.../ws-bridle-3.2/zephyr), build: zephyr-v3.2.0-87-g0b43fb5021ee
[3/219] Generating ../../zephyr/include/generated/version_bridle.h
-- Bridle version: 3.2.0 (.../ws-bridle-3.2/bridle), build: bridle-v3.2.0
… … …
… … …
… … …
[219/219] Linking C executable zephyr/zephyr.elf; Generating files from zephyr.elf for board: tiac_magpie
Memory region         Used Size  Region Size  %age Used
           FLASH:       82424 B         2 MB      3.93%
            SRAM:       17544 B       384 KB      4.46%
            DTCM:          0 GB       128 KB      0.00%
        IDT_LIST:          0 GB         2 KB      0.00%
west flash -d build/helloshell-tiac_magpie

Clone this wiki locally