Commit graph

1292 commits

Author SHA1 Message Date
will-v-pi
4e0795a151
Merge 9c0ed0cc45 into bc5481455f 2026-03-12 14:24:18 +00:00
Peter N Lewis
bc5481455f
Document Clock Divider = 1 in pio_get_default_sm_config in pio.h (#2863)
Some checks failed
Bazel presubmit checks / bazel-build-check (macos-latest) (push) Has been cancelled
Bazel presubmit checks / bazel-build-check (ubuntu-latest) (push) Has been cancelled
Bazel presubmit checks / other-bazel-checks (push) Has been cancelled
Check Configs / check-configs (push) Has been cancelled
CMake / build (push) Has been cancelled
Build on macOS / build (push) Has been cancelled
Build on Windows / build (push) Has been cancelled
Add Clock Divider = 1 to documentation of pio_get_default_sm_config
2026-03-11 15:16:44 -05:00
graham sanderson
e000ba1f43 Revert "Update Clang toolchain used by Bazel (#2860)"
This reverts commit 5e99331e8d.
2026-03-11 14:32:14 -05:00
Graham Sanderson
a224028c0b
add a test driver script (#2850)
Some checks are pending
Bazel presubmit checks / bazel-build-check (macos-latest) (push) Waiting to run
Bazel presubmit checks / bazel-build-check (ubuntu-latest) (push) Waiting to run
Bazel presubmit checks / other-bazel-checks (push) Waiting to run
Check Configs / check-configs (push) Waiting to run
CMake / build (push) Waiting to run
Build on macOS / build (push) Waiting to run
Build on Windows / build (push) Waiting to run
add a test driver script to run a matrix of tests via gdb on device
2026-03-11 13:34:07 -05:00
Prabhu Rajasekaran
5e99331e8d
Update Clang toolchain used by Bazel (#2860)
The Clang toolchain is updated to a newer revision
cb3d7ffb09e8be115da1fd57a6c09860e89f5449 from Feb 23, 2026.
2026-03-11 13:21:51 -05:00
Peter Harper
dd2d122366
Update btstack v1.8 (#2848)
* Update btstack to v1.8
2026-03-11 10:48:44 +00:00
Petr Hosek
429775b480
Use alternate macro mode to evaluate expressions (#2781)
Some checks failed
Bazel presubmit checks / bazel-build-check (macos-latest) (push) Has been cancelled
Bazel presubmit checks / bazel-build-check (ubuntu-latest) (push) Has been cancelled
Bazel presubmit checks / other-bazel-checks (push) Has been cancelled
Check Configs / check-configs (push) Has been cancelled
CMake / build (push) Has been cancelled
Build on macOS / build (push) Has been cancelled
Build on Windows / build (push) Has been cancelled
Without the alternate macro mode, when building with Clang, the
arguments to macros weren't evaluated.
2026-03-09 16:56:20 +00:00
Andrew Scheller
18ca0c8751
Add return-value to Doxyegn for clock_configure_gpin (#2855)
(copied from Doxygen for clock_configure)
2026-03-09 10:00:25 -05:00
Graham Sanderson
7b2d0ffeb4
Additional float fixes (#2853)
Some checks failed
Bazel presubmit checks / bazel-build-check (macos-latest) (push) Has been cancelled
Bazel presubmit checks / bazel-build-check (ubuntu-latest) (push) Has been cancelled
Bazel presubmit checks / other-bazel-checks (push) Has been cancelled
Check Configs / check-configs (push) Has been cancelled
CMake / build (push) Has been cancelled
Build on macOS / build (push) Has been cancelled
Build on Windows / build (push) Has been cancelled
* ensure that fix<>float methods (not inline versions) are called too in VFP tests

* remove sf_table.h include from float.h as it is not part of the public API

* fix float->fixed/int infinite conversions via VFP

* 2 instructions -> 1

* add missing call_ tests for float2fix_z and float2ufix_z

* fix test descriptions

Co-authored-by: Andrew Scheller <andrew.scheller@raspberrypi.com>

---------

Co-authored-by: Andrew Scheller <andrew.scheller@raspberrypi.com>
2026-03-07 12:40:32 -06:00
Graham Sanderson
47226c63cf
various floating point fixes (#2849)
Some checks are pending
Bazel presubmit checks / bazel-build-check (macos-latest) (push) Waiting to run
Bazel presubmit checks / bazel-build-check (ubuntu-latest) (push) Waiting to run
Bazel presubmit checks / other-bazel-checks (push) Waiting to run
Check Configs / check-configs (push) Waiting to run
CMake / build (push) Waiting to run
Build on macOS / build (push) Waiting to run
Build on Windows / build (push) Waiting to run
* fix issues with and improve tests for dcp conversions of INFINITES to fixed point values

* improve comments

* fix outstanding todo in __aeabi_dmul via DCP which improves speed/size

* fix missing DCP state saves for float2int, float2uint and float2fix

* slightly improve implementation of saturation of INFINITES

* should not include sf_table.h in double.h

* point out that float/double->fixed/int saturate in the docs

* move some doxygen into RP2350 specific and change include guards ro be RP2350 specific

* more doc tweaks

* fixup check names to be more consistent
2026-03-06 13:48:11 -06:00
William Vinnicombe
9c0ed0cc45 Add cc_library load to new bazel files 2026-03-06 15:41:32 +00:00
William Vinnicombe
e47fe099bd Move and add example to Bazel docs for changing linker scripts 2026-03-06 15:29:01 +00:00
William Vinnicombe
72adb670c1 Rename scripts include directories to standard_scripts and platform_scripts 2026-03-06 15:29:01 +00:00
William Vinnicombe
1bd7089eb4 Make rp2350 text sections the default
Treat rp2040 layout (boot2 instead of embedded blocks) as the outlier
2026-03-06 15:29:01 +00:00
William Vinnicombe
fe2d56b68f Move linker scripts out of crt0
Breaking change for Bazel builds using different binary types, instead of setting PICO_DEFAULT_LINKER_SCRIPT to eg `//src/rp2_common/pico_crt0:no_flash_linker_script` it is now `//src/rp2_common/pico_standard_link:no_flash_linker_script`
2026-03-06 15:29:01 +00:00
William Vinnicombe
2bf8555fd4 Add scripts to bazel build
Use new include_linker_script_dir and use_linker_script_file functions to add the linker arguments
2026-03-06 15:29:01 +00:00
William Vinnicombe
6bd9e5b321 Add simple overlay demo 2026-03-06 15:29:01 +00:00
William Vinnicombe
a20f86a7e7 Add pico_add_linker_script_override_path to make overriding individual files easier
Restructured so that it includes the platform-specific files before common ones, so common ones can be overridden
2026-03-06 15:29:01 +00:00
William Vinnicombe
3811e671d5 Make it possible to reference default locations in pico_set_linker_script_var variables
Means that CMake doesn't need to know the default memory addresses for different platforms
2026-03-06 15:29:01 +00:00
William Vinnicombe
ae97a2294d Make overriding ram locations simpler 2026-03-06 15:29:01 +00:00
William Vinnicombe
4b1a3ec061 More de-duplication 2026-03-06 15:29:01 +00:00
William Vinnicombe
3a83dc7838 Separate out rp2_common and platform-specific linker script sections 2026-03-06 15:29:01 +00:00
William Vinnicombe
727cabd4d0 Add kitchen sink test of custom linker scripts 2026-03-06 15:29:01 +00:00
William Vinnicombe
6dc06e6d1d Add customisable heap location, with pico_set_linker_script_var function 2026-03-06 15:29:01 +00:00
William Vinnicombe
b8f699f6ff Separate linker scripts out into include files
Allows for much simpler custom linker scripts
2026-03-06 15:29:01 +00:00
Andrew Scheller
549674a68b
Check for parameter underflow when PIO_USE_GPIO_BASE is in use (#2618)
Some checks are pending
Bazel presubmit checks / bazel-build-check (macos-latest) (push) Waiting to run
Bazel presubmit checks / bazel-build-check (ubuntu-latest) (push) Waiting to run
Bazel presubmit checks / other-bazel-checks (push) Waiting to run
Check Configs / check-configs (push) Waiting to run
CMake / build (push) Waiting to run
Build on macOS / build (push) Waiting to run
Build on Windows / build (push) Waiting to run
* Fix PIO comment and assertion typos

* Add (and use) 32-bit version of check_pio_pin_mask64

* minor comment tidyup

* small code size improvement

* oops

* hmm

* fix typos

---------

Co-authored-by: Graham Sanderson <graham.sanderson@raspberrypi.com>
2026-03-05 15:43:11 -06:00
Luke Wren
e7b0dbc44c
Fix some errors from -fanalyzer. (#2697)
* Fix some errors from -fanalyzer.

Includes a genuine bug in multicore_doorbell_claim() which seemed to use the wrong bit for the second core.

* Return NULL instead of panicking on secondary allocation fail in pico_time
2026-03-05 15:42:21 -06:00
Graham Sanderson
9c20a62fa5
Force fflush of stdout after printf when using pico_set_printf_implementation(compiler) and PICO_STDIO_SHORT_CIRCUIT_CLIB_FUNCS as a semi-workaround for the c library buffering stdout during printf (#2821)
Note: the correct solution would be to flush stdout in the short-circuited functions, but this rather destroys the point of making them fast.

This takes care of the common case. For complete/best support use PICO_STDIO_SHORT_CIRCUIT_CLIB_FUNCS=0 when using compiler printf
2026-03-05 12:10:54 -06:00
Graham Sanderson
9a4766867d
Add support for hard float on M33 via CMake variable PICO_HARD_FLOAT_ABI=1 (#2822)
Some checks are pending
Bazel presubmit checks / bazel-build-check (macos-latest) (push) Waiting to run
Bazel presubmit checks / bazel-build-check (ubuntu-latest) (push) Waiting to run
Bazel presubmit checks / other-bazel-checks (push) Waiting to run
Check Configs / check-configs (push) Waiting to run
CMake / build (push) Waiting to run
Build on macOS / build (push) Waiting to run
Build on Windows / build (push) Waiting to run
* Enable hard-float ABI support for pico_float and pico_double on m33

Resolves #2783

Signed-off-by: Andy Lin <andylinpersonal@gmail.com>

* Add (non google) LLVM support, and replace calling convention check with #if defined(__ARM_PCS_VFP)

* switch float.h to use static inline method for int2float() etc in VFP mode rather than #define

* float/double test cleanup - particularly:

- splitting out executable for each test type for pico_float/double_test
- removing undefined behavior from custom_float_funcs_test.c, to de-confuse clang
- add test of denormal->int

Note some tests still fail on llvm libc (at least version 19)

* fix some issues with newer llvm_libc/compiler as used by bazel build

* keep check_configs happy

* another bazel issue

* introduce pico_double_pico_dcp for consistency

* fixup debug output based on previous commit

* remove unnecessary build guard from double_conv_m33.S

* allow -1 for neg_denormal->int rounding towards minus infinity

* Update test/pico_float_test/CMakeLists.txt

Co-authored-by: Andrew Scheller <andrew.scheller@raspberrypi.com>

* Update test/pico_float_test/CMakeLists.txt

Co-authored-by: Andrew Scheller <andrew.scheller@raspberrypi.com>

* - add fma/_fast functions to pico_float_test/pico_double_test
- fix guard for TEST_SATURATION in pico_double_test - GCC doesn't clamp either

* - double functions were only wrapped in pico_double_pico not pico_double_pico_dcp explicitly (i.e. explicitly setting double impl to pico_dcp was not selecting our versions)

* avoid extra stack alignment push (per review comment)

* fix fma return code in VFP mode (register transfer was the wrong way around)

* separate PCS=VFP and non-PCS-VFP versions of fma_fast

* remove saving_func_return (which is just bx lr) and fold the separate pop of lr, into a pop of pc

* better fix for wrapping right libraries

* rename some labels from _entry (which is an internal entry point) to _softfp to be clear that these are the function entry points which work with softfp calling conventions

* Make bazel pico_float build not wrap SCI functions on RISC-V to match CMake build

* Split out FMAF as a selectable wrapped item since we don't want to wrap it for VFP

* fix typos

* fix test

---------

Signed-off-by: Andy Lin <andylinpersonal@gmail.com>
Co-authored-by: Andy Lin <andylinpersonal@gmail.com>
Co-authored-by: Andrew Scheller <andrew.scheller@raspberrypi.com>
2026-03-04 10:22:27 -06:00
Nephtaly Aniceta
70d9032faa
Fix bit mask in powman_set_debug_power_request_ignored (#2826)
Some checks failed
Bazel presubmit checks / bazel-build-check (macos-latest) (push) Has been cancelled
Bazel presubmit checks / bazel-build-check (ubuntu-latest) (push) Has been cancelled
Bazel presubmit checks / other-bazel-checks (push) Has been cancelled
Check Board Headers / check-board-headers (push) Has been cancelled
Check Configs / check-configs (push) Has been cancelled
CMake / build (push) Has been cancelled
Build on macOS / build (push) Has been cancelled
Build on Windows / build (push) Has been cancelled
Fixed a one-off error
2026-03-02 14:53:19 -06:00
Richard Hulme
5a2cbf93a6
Use 'constexpr' when including pio header files from a C++ compiler (#2651)
* Use 'constexpr' when including pio header files from a C++ compiler

In particular this allows compile-time checks to be performed on the
contents of pio_program structs via 'static_assert'.

This could be used (for example) to confirm that multiple PIO programs
fit in a single PIO module and abort compilation if not.

Fixes #2650

* Use feature test macro to check for 'constexpr' support

* Rename modifier PIO_CONST to __pio_const

---------

Co-authored-by: Graham Sanderson <graham.sanderson@gmail.com>
2026-03-02 14:12:14 -06:00
martijn
33c01e9531
Update CMakeLists.txt (#2711) 2026-03-02 13:40:59 -06:00
Andrew Kohlsmith
9fce82f9d8
remove guards that disable sdio_usb when tinyusb_host is linked in (#2764)
* remove guards that disable sdio_usb when tinyusb_host is linked in; it works just fine

* implement better guards
2026-03-02 13:34:25 -06:00
Nephtaly Aniceta
3f1ab22951
Update pico-examples link for Bluetooth documentation (#2828)
Updated broken link
2026-03-02 19:23:54 +00:00
Andrew Scheller
ab51a83a3a
Rename pio_claim_free_sm_and_add_program_for_gpio_range's gpio_base parameter to gpio_start (#2831)
in order to avoid confusion with pio_set_gpio_base's gpio_base parameter
2026-03-02 13:17:15 -06:00
Andrew Scheller
0ff0974c0a
Change a couple of hardcoded numbers to PIO_INSTRUCTION_COUNT for clarity (#2832)
* Change a couple of hardcoded numbers to PIO_INSTRUCTION_COUNT

for clarity

* fix sign-compare warning
2026-03-02 13:15:58 -06:00
Michel Le Bihan
0da73ec045
Correct Seeed XIAO RP2350 flash size from 4MB to 2MB (#2837)
Fixes #2834
2026-03-02 13:13:59 -06:00
armandomontanez
6262b49c74
[bazel] Run buildifier on Bazel build files (#2825)
Some checks are pending
Bazel presubmit checks / bazel-build-check (macos-latest) (push) Waiting to run
Bazel presubmit checks / bazel-build-check (ubuntu-latest) (push) Waiting to run
Bazel presubmit checks / other-bazel-checks (push) Waiting to run
Check Configs / check-configs (push) Waiting to run
CMake / build (push) Waiting to run
Build on macOS / build (push) Waiting to run
Build on Windows / build (push) Waiting to run
This is an automated change with the following commands:

$ find . -name "BUILD.bazel" -o -name "*.bzl" \
  -exec buildifier -lint=fix {} \;

* Add missing `load()` statements for things provided by @rules_cc. This
  is required for Bazel >9.
* Sort attributes on build targets.
* Add missing trailing commas where applicable.
2026-03-02 10:24:17 +00:00
Andrew Kohlsmith
a1e9cf05b2
fix panic message in multicore_doorbell_claim_unused
Some checks failed
Bazel presubmit checks / bazel-build-check (macos-latest) (push) Has been cancelled
Bazel presubmit checks / bazel-build-check (ubuntu-latest) (push) Has been cancelled
Bazel presubmit checks / other-bazel-checks (push) Has been cancelled
Check Configs / check-configs (push) Has been cancelled
CMake / build (push) Has been cancelled
Build on macOS / build (push) Has been cancelled
Build on Windows / build (push) Has been cancelled
2026-02-07 20:17:23 -06:00
Andy Lin
abd7c9ad2a
Fix RP2040 crash with PICO_*_IN_RAM and NaN propagation (#2772)
``__check_nan<f|d><1|2>`` is hard-coded into ``.text`` instead
of being wrapped with ``<double|float>_section`` like other
``__aeabi*`` functions. When those functions are moved to SRAM,
this leaves ``__check_nan*`` in flash, causing GCC to emit a veneer
call that clobbers ip and corrupts the saved ``lr`` in
``wrapper_func_<d|f><1|2>``.

Fixes #2771

Signed-off-by: Andy Lin <andylinpersonal@gmail.com>
2026-02-07 20:15:48 -06:00
Andrew Scheller
dc4be9c54e
ADC FIFO depth is the same on both RP2040 and RP2350 (#2806)
Both chips have "8 element receive sample FIFO"
2026-02-07 20:12:11 -06:00
Graham Sanderson
218603253b
make host hardware_ libraries depend on hardware_claim too as it was moved to common in 2.0.0 (#2786) 2026-02-07 20:02:16 -06:00
FLyrfors-MI
e7aed3261b
Correct printf format in pheap.c (#2814)
See #2813
2026-02-07 15:26:00 -06:00
will-v-pi
1ed42558a5
Fix Risc-V binaries when pico_float_none is set (#2800)
Some checks failed
Bazel presubmit checks / bazel-build-check (macos-latest) (push) Has been cancelled
Bazel presubmit checks / bazel-build-check (ubuntu-latest) (push) Has been cancelled
Bazel presubmit checks / other-bazel-checks (push) Has been cancelled
Check Configs / check-configs (push) Has been cancelled
CMake / build (push) Has been cancelled
Build on macOS / build (push) Has been cancelled
Build on Windows / build (push) Has been cancelled
2026-02-03 17:38:34 -06:00
Jaylon Gowie
9c6713a8ed
Change PICO_SD_DAT3_PIN from 8 to 9 (#2769)
Some checks failed
Bazel presubmit checks / bazel-build-check (macos-latest) (push) Has been cancelled
Bazel presubmit checks / bazel-build-check (ubuntu-latest) (push) Has been cancelled
Bazel presubmit checks / other-bazel-checks (push) Has been cancelled
Check Board Headers / check-board-headers (push) Has been cancelled
Check Configs / check-configs (push) Has been cancelled
CMake / build (push) Has been cancelled
Build on macOS / build (push) Has been cancelled
Build on Windows / build (push) Has been cancelled
Pin 8 is for PSRAM Chip Select, not SD card. This seems to be an oversight
2026-01-07 17:05:13 -06:00
Andy Lin
6ec9ea0657
Add WeAct RP2350A core board V10 (#2777)
Signed-off-by: Andy Lin <andylinpersonal@gmail.com>
2026-01-07 17:04:36 -06:00
Romain
e316b9b6f9
Fix typo in gpio.h (#2705)
Align the comments and documentation with the correct constant name
2026-01-07 16:29:17 -06:00
Disappear9
9437573186
Add board definition for nologo RP2350 USB (#2767)
* Add header for nologo_rp2350_usb board configuration

* Remove PICO_SMPS_MODE_PIN definition

Removed definition for PICO_SMPS_MODE_PIN.

* Update nologo_rp2350_usb.h
2026-01-07 16:27:45 -06:00
Richard Hulme
52d3592d41
Add missing dependency to hardware_timer in host-mode pico-platform (#2734)
Some checks failed
Bazel presubmit checks / bazel-build-check (macos-latest) (push) Has been cancelled
Bazel presubmit checks / bazel-build-check (ubuntu-latest) (push) Has been cancelled
Bazel presubmit checks / other-bazel-checks (push) Has been cancelled
Check Configs / check-configs (push) Has been cancelled
CMake / build (push) Has been cancelled
Build on macOS / build (push) Has been cancelled
Build on Windows / build (push) Has been cancelled
Fixes #2733
2026-01-05 17:11:12 -06:00
Petr Hosek
1cc19a2130
Omit semicolons after _Pragma directives (#2780)
These are not statements and shouldn't be terminated by semicolons; in
newer versions of Clang separating these by semicolons results in a
build error.

We can also further simplify `remove_volatile_cast` by using the comma
operator and avoiding the reliance on non-standard GNU extensions.
2026-01-05 16:56:29 -06:00