roll: third_party/pigweed roll: zephyr

74056a7 boards: st: stm32f0_disco: fix partition inline comment
785c454 boards: st: fix STM32WL5 boards DTS files coding style
a8430ef boards: st: fix STM32WB boards DTS files coding style
0e8069e boards: st: fix STM32WBA boards DTS files coding style
84add0d boards: st: fix STM32WB0 boards DTS files coding style
2418d03 boards: st: fix STM3U5 boards DTS files coding style
d9354ad boards: st: fix STM3U0 boards DTS files coding style
9777242 boards: st: fix STM3N6 boards DTS files coding style
cb09d19 boards: st: fix STM3MP1* boards DTS files coding style
0a3526b boards: st: fix STM32L5 boards DTS files coding style
37d545a boards: st: fix STM32L4 boards DTS files coding style
ea0eace boards: st: fix STM32L1 boards DTS files coding style
af3f64f boards: st: fix STM32L0 boards DTS files coding style
39a9fe9 boards: st: fix STM32H7* boards DTS files coding style
135e0dd boards: st: fix STM32H5 boards DTS files coding style
1aa8f51 boards: st: fix STM32G4 boards DTS files coding style
e8e3560 boards: st: fix STM32G0 boards DTS files coding style
3782c24 boards: st: fix STM32F7 boards DTS files coding style
721b3b8 boards: st: fix STM32F4 boards DTS files coding style
b6a3c0c boards: st: fix STM32F3 boards DTS files coding style
41129ab boards: st: fix STM32F2 boards DTS files coding style
c217fc4 boards: st: fix STM32F1 boards DTS files coding style
c865aa5 boards: st: fix STM32F0 boards DTS files coding style
8f02dc5 boards: st: fix STM32C0 boards DTS files coding style
440de0d fs: nvs: fix invalid block compare when data CRC is enabled
691816d tests: drivers: spi: spi_loopback: Test fast spi on slow GPIO port
623479c Bluetooth: RFCOMM: Fix CR bit in DISC frame
f06f6be boards: ai_wb2_12f: default to bflb_mcu_tool runner for flashing
75972e0 tests: west_runners: Add bflb_mcu_tool to import test
f275463 boards: bl604e_iot_dvk: default to bflb_mcu_tool runner for flashing
fb937be scripts: runners: Introduce bflb_mcu_tool runner
94f78a0 drivers: display: Fix Black White Red SSD16xx displays
e70fef3 samples: net/secure_mqtt_sensor_actuator: replenish filter condition
0baa6bc sample: sensor: Add support for temperature sensor on RT700 cm33_cpu1
84fb870 dts: arm: nxp: add i3c2/3 instances for cm33_cpu1
64ac57a arch: arm: Added IAR support to ARM irq header macros
8cfd849 arch: arm: mpu: Fix alignment check for iccarm
a9f2a19 boards: Add support for the board CH32V303EVT
be9549b soc: Add support for the WCH CH32V303
2b91c46 modules: Update hal_wch
265cfb4 boards: variscite: Adjust index.rst
d3ecec1 boards: variscite: Add Variscite DART-MX93 board
aa3af71 shields: add shield.yml for st_b_cams_imx_mb1854
b2de146 boards: ti: lp_mspm0g3507: fix doc to use code-block
18360d5 dts: arm: ti: mspm0: fix typo
c4866ec soc: cyw20829: Initial integrate Cypress MCUBoot for 20829
968704e soc: cyw20829: add support of Secure LCS
7ef83fc soc: cyw20829: Use python script to generate app header
3d26d4c boards: cyw20829: add custom flashloader with 64k of erase block size
bcf4d1a doc: west: releases: Fix typo
732c80f ci: use new docker image v0.28.0.20250523
b8f3263 toolchain: clang: compiler opt: -Ofast -> -O3 -ffast-math
e4b4a8d riscv: Increase TEST_EXTRA_STACK_SIZE to 4096 if c++ exceptions
3cdc5a9 tests/kernel: Disable -Werror when testing deprecated pipe APIs
0adac7c libc/minimal: Add stub 'sys/lock.h'
74c9e7a tests/c_lib: Skip double sqrt test when double is not 64 bits
c6a2107 doc: release-notes-4.2: Information about TC shim
dfde321 drivers; crypto: Remove TinyCrypt shim
2ddec2f arch: arm: update to use CMSIS_6 compatible macros
8b13c60 modules: CMSIS_6: update copyright
b853f01 doc: Update on switch to CMSIS_6
219fae6 sca: llvm: add support for clang static analyzer
7e00170 doc: toolchain: ATfE: fix formating
b234e86 tests: net: lib: lwm2m: detects no-operation setter and getter functions
42ad579 samples: drivers: adc_sequence: Add lp_em_cc2340r5 DT overlay
0acad3e samples: drivers: adc_dt: Add lp_em_cc2340r5 DT overlay
0800aa0 boards: ti: lp_em_cc2340r5: Add ADC support
d9134b3 dts: arm: ti: cc23x0: Add ADC support
dd5ed02 drivers: adc: Add support for cc23x0 ADC
66eb61a drivers: clock_control_mcux_syscon: confine RTC code to SOC_SERIES_MCXN
d7f1c0a drivers: wifi: siwx91x: Add support for Enhanced Legacy Power Save
c3ce29e drivers: wifi: siwx91x: Add support for get_power_save_config()
adae168 drivers: wifi: siwx91x: Add support for set_power_save()
b939714 doc: migration-guide-4.2: Add note about HTTP client response cb
00d214c tests: net: http_client: Add new testsuite for HTTP client
3572c9f net: http: client: Allow to abort download from response callback
73e248f net: zperf: Make UDP upload report retransmission count configurable
02530be net: zperf: Fix invalid zsock_recv() error check
a94209b shields: migrate to shield.yml
79e3ecb doc: boards: catalog: add shields to board catalog
df01afa scripts: west: commands: make use of shield.yml in west shields command
3a62b17 cmake: shields: introduce shield.yml
66fda82 shields: scripts: cmake: use list_shields.py in shields.cmake
93ced04 scripts: shields: handle BOARD_ROOT not containing shields folder
84980e0 boards: aithinker: update vendor name for Ai-Thinker WB2-12F board
e99e15d bindings: vendor-prefixes: add Ai-Thinker Co., Ltd. entry
e462ef3 drivers: video: ov7670: Set default format to RGB565 QVGA
2e25820 boards: stm32n6570_dk: Add touch screen support
5406259 tests: drivers: gpio_hogs: Add nrf54 platforms.
80b9040 soc: nordic: dmm: Add lock around sys_heap operations
37b4407 dts/renesas/smartbond: Add support for the ARMv8-M MPU
bf93559 doc: releases: State zbus API as stable
c71f51c api: zbus: Make zbus a stable API
d3ec916 sys: timeutil: check for 32-bit time_t to avoid warning (part 2)
4dea09d test: drivers: gpio: turn off rand generator.
270f5d6 soc: nordic: Use proper devicetree entries for clock frequency
dd99eda dts: arm: nordic: Add default rtc1 clock frequency to nrf53 network core
e553b29 dts: bindings: timer: Add default clock frequency for nordic grtc
a9d0a36 scripts: kconfig: Add dt_nodelabel_int_prop function
bc06d85 tests: kernel: timer: Align timer tests to nRF54

Roll-Count: 1
GitWatcher: ignore
Original-Reviewed-on: https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/294146
Bot-Commit: Pigweed Roller <pigweed-roller@pigweed-service-accounts.iam.gserviceaccount.com>
Original-Revision: f69d7754a173c42c5fc07ed1b17df09793fdb1a7

Rolled-Repo: https://pigweed.googlesource.com/pigweed/pigweed
Rolled-Commits: 4be0d002f0f5f1..f69d7754a173c4
Roll-Count: 1
Roller-URL: https://cr-buildbucket.appspot.com/build/8713821244594360513
GitWatcher: ignore
CQ-Do-Not-Cancel-Tryjobs: true
Change-Id: I5600576fc91f356dac20bbf19cd9be8a2ff38117
Reviewed-on: https://pigweed-review.googlesource.com/c/pigweed/experimental/+/294292
Bot-Commit: Pigweed Roller <pigweed-roller@pigweed-service-accounts.iam.gserviceaccount.com>
Commit-Queue: Pigweed Roller <pigweed-roller@pigweed-service-accounts.iam.gserviceaccount.com>
Lint: Lint 🤖 <android-build-ayeaye@system.gserviceaccount.com>
1 file changed
tree: 2a9e9e68f2a96aa64fc44157183cb08d92956c8f
  1. applications/
  2. build_overrides/
  3. infra/
  4. pw_async_bench/
  5. pw_board_led/
  6. pw_board_led_arduino/
  7. pw_board_led_host/
  8. pw_board_led_mimxrt595_evk/
  9. pw_board_led_pico/
  10. pw_board_led_stm32cube/
  11. pw_board_led_stm32f429i_disc1/
  12. pw_board_led_stm32f769i_disc0/
  13. pw_digital_io_arduino/
  14. pw_digital_io_null/
  15. pw_digital_io_stm32cube/
  16. pw_display_driver/
  17. pw_display_driver_ili9341/
  18. pw_display_driver_imgui/
  19. pw_display_driver_mipi/
  20. pw_display_driver_null/
  21. pw_display_driver_st7735/
  22. pw_display_driver_st7789/
  23. pw_graphics/
  24. pw_mipi_dsi/
  25. pw_mipi_dsi_mcuxpresso/
  26. pw_pixel_pusher/
  27. pw_pixel_pusher_rp2040_pio/
  28. pw_spi_arduino/
  29. pw_spi_stm32cube/
  30. pw_spin_delay/
  31. pw_spin_delay_arduino/
  32. pw_spin_delay_host/
  33. pw_spin_delay_mcuxpresso/
  34. pw_spin_delay_rp2040/
  35. pw_spin_delay_stm32cube/
  36. pw_spin_delay_stm32f429i_disc1/
  37. pw_spin_delay_stm32f769i_disc0/
  38. pw_sys_io_baremetal_stm32f769/
  39. pw_toolchain_extra/
  40. targets/
  41. third_party/
  42. tools/
  43. .bazelignore
  44. .bazelrc
  45. .bazelversion
  46. .clang-tidy
  47. .gitattributes
  48. .gitignore
  49. .gitmodules
  50. .gn
  51. activate.bat
  52. banner.txt
  53. bootstrap.bat
  54. bootstrap.sh
  55. BUILD.bazel
  56. BUILD.gn
  57. BUILDCONFIG.gn
  58. MODULE.bazel
  59. modules.gni
  60. navbar.md
  61. OWNERS
  62. pigweed.json
  63. README.md
  64. ROLLER_OWNERS
README.md

Pigweed Experimental

This repository contains a variety experiments to help inform various Pigweed policies, designs, and implementation behaviors.

Code in this repository is not reviewed to the standard of the main Pigweed repository, and generally speaking is untested and maintained on a best-effort basis. This is not a repository of “early access” Pigweed modules, but more so a sandbox for Pigweed contributors to collaborate on investigations. For more information, see the contribution guidelines for the experimental repository and where to land code.

DO NOT DEPEND ON THIS REPOSITORY IN ANY PRODUCTION PROJECT!

Repository setup

Clone this repo with --recursive to get all required submodules.

git clone --recursive https://pigweed.googlesource.com/pigweed/experimental

This will pull the Pigweed source repository into third_party/pigweed. If you already cloned but forgot to --recursive run git submodule update --init to pull all submodules.

pw_graphics

The //pw_graphics folder contains some libraries for drawing to an RGB565 framebuffer and displaying it on various platforms.

The demo applications that make use of these libraries are:

Build instructions

First time setup:

git clone --recursive https://pigweed.googlesource.com/pigweed/experimental
cd experimental
. ./bootstrap.sh
pw package install imgui
pw package install glfw
pw package install stm32cube_f4
pw package install pico_sdk

STM32F429-DISC1

Compile:

gn gen out --export-compile-commands --args="
  dir_pw_third_party_stm32cube_f4=\"$PW_PROJECT_ROOT/environment/packages/stm32cube_f4\"
"
ninja -C out

Flash:

openocd -f third_party/pigweed/targets/stm32f429i_disc1/py/stm32f429i_disc1_utils/openocd_stm32f4xx.cfg -c "program out/stm32f429i_disc1_stm32cube_debug/obj/applications/terminal_display/bin/terminal_demo.elf verify reset exit"

STM32F769-DISC0

First time setup:

pw package install stm32cube_f7

Compile:

gn gen out --export-compile-commands --args="
  dir_pw_third_party_stm32cube_f7=\"//environment/packages/stm32cube_f7\"
"
ninja -C out

Flash:

openocd -f targets/stm32f769i_disc0/py/stm32f769i_disc0_utils/openocd_stm32f7xx.cfg \
  -c "program out/stm32f769i_disc0_debug/obj/applications/blinky/bin/blinky.elf verify reset exit"

Linux, Windows or Mac

Compile:

gn gen out --export-compile-commands --args="
  dir_pw_third_party_imgui=\"$PW_PROJECT_ROOT/environment/packages/imgui\"
  dir_pw_third_party_glfw=\"$PW_PROJECT_ROOT/environment/packages/glfw\"
"
ninja -C out

Run:

out/host_debug/obj/applications/terminal_display/bin/terminal_demo

CURRENTLY NOT WORKING (https://pwbug.dev/325649415) - Raspberry Pi Pico Connected to an external SPI display

Working displays:

First time setup:

pw package install pico_sdk

Compile:

gn gen out --export-compile-commands --args='
  PICO_SRC_DIR="//environment/packages/pico_sdk"
'
ninja -C out

Flash:

  • Using a uf2 file:

    1. Reboot pico into BOOTSEL mode by holding the bootsel button on startup.
    2. Copy ./out/rp2040/obj/applications/terminal_display/terminal_demo.uf2 to your Pi Pico.
  • Using picotool:

    1. Reboot pico into BOOTSEL mode by holding the bootsel button on startup. Or try forcing a reboot with picotool:
    picotool reboot -f -u
    
    1. Flash the elf or uf2 file and reboot.
    picotool load ./out/rp2040/obj/applications/terminal_display/bin/terminal_demo.elf
    picotool reboot
    
  • Using a Pico Probe and openocd:

    This requires installing the Raspberry Pi foundation's OpenOCD fork for the Pico probe. More details including how to connect the two Pico boards is available at Raspberry Pi Pico and RP2040 - C/C++ Part 2: Debugging with VS Code

    Install RaspberryPi's OpenOCD Fork:

    git clone https://github.com/raspberrypi/openocd.git \
      --branch picoprobe \
      --depth=1 \
      --no-single-branch \
      openocd-picoprobe
    
    cd openocd-picoprobe
    
    ./bootstrap
    ./configure --enable-picoprobe --prefix=$HOME/apps/openocd --disable-werror
    make -j2
    make install
    

    Setup udev rules (Linux only):

    cat <<EOF > 49-picoprobe.rules
    SUBSYSTEMS=="usb", ATTRS{idVendor}=="2e8a", ATTRS{idProduct}=="0004", MODE:="0666"
    KERNEL=="ttyACM*", ATTRS{idVendor}=="2e8a", ATTRS{idProduct}=="0004", MODE:="0666"
    EOF
    sudo cp 49-picoprobe.rules /usr/lib/udev/rules.d/49-picoprobe.rules
    sudo udevadm control --reload-rules
    

    Flash the Pico:

    ~/apps/openocd/bin/openocd -f ~/apps/openocd/share/openocd/scripts/interface/picoprobe.cfg -f ~/apps/openocd/share/openocd/scripts/target/rp2040.cfg -c 'program out/rp2040/obj/applications/terminal_display/bin/terminal_demo.elf verify reset exit'
    

    Launching gdb*

    ~/apps/openocd/bin/openocd -f ~/apps/openocd/share/openocd/scripts/interface/picoprobe.cfg -f ~/apps/openocd/share/openocd/scripts/target/rp2040.cfg
    
    gdb-multiarch -ex "target remote :3333" -ex "set print pretty on" out/rp2040/obj/applications/terminal_display/bin/terminal_demo.elf
    

    arm-none-eabi-gdb can be used in place of gdb-multiarch above.

MIMXRT595-EVK Connected to an external MIPI display

Setup NXP SDK:

  1. Build a NXP SDK
  2. Download SDK
  3. Extract SDK's zip file to //environment/SDK_2_12_1_EVK-MIMXRT595

Compile:

gn gen out --export-compile-commands --args="
  pw_MIMXRT595_EVK_SDK=\"//environment/SDK_2_12_1_EVK-MIMXRT595\"
  pw_target_mimxrt595_evk_MANIFEST=\"//environment/SDK_2_12_1_EVK-MIMXRT595/EVK-MIMXRT595_manifest_v3_10.xml\"
  pw_third_party_mcuxpresso_SDK=\"//targets/mimxrt595_evk:mimxrt595_sdk\"
"

ninja -C out

Flash the MIMXRT595-EVK:

Follow the instructions to flash the MIMXRT595-EVK with the SEGGER J-Link firmware and using arm-none-eabi-gdb at https://pigweed.dev/targets/mimxrt595_evk/target_docs.html#running-and-debugging.

Teensy 4.1

https://www.pjrc.com/teensy/loader_cli.html

brew install teensy_loader_cli
OBJCOPY=/Applications/Arduino.app/Contents/Java/hardware/tools/avr/bin/avr-objcopy
INFILE=out/arduino_debug/obj/applications/terminal_display/bin/terminal_demo.elf
OUTFILE=foo.hex
$OBJCOPY -O ihex -R .eeprom -R .fuse -R .lock -R .signature $INFILE $OUTFILE
teensy_loader_cli --mcu=TEENSY41 -w -v $OUTFILE