Commit graph

907 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
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
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
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
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
madh4tter
9ecafe71d1
Multicore documentation fix (#2703)
* Multicore documentation fix

* Update src/rp2_common/pico_multicore/include/pico/multicore.h

Co-authored-by: Andrew Scheller <lurch@durge.org>

---------

Co-authored-by: TITLEY\adam.nelson <adam.nelson@titley-scientific.com>
Co-authored-by: Andrew Scheller <lurch@durge.org>
2026-01-05 16:55:13 -06:00
graham sanderson
578dabb60b fix host build error of pico_stdlib_test caused by recent host changes 2026-01-05 16:23:09 -06:00
Petr Hosek
f600a5bd9e
Update the localtime_r declaration for LLVM libc (#2775)
Some checks failed
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
Check Board Headers / check-board-headers (push) Has been cancelled
This is to match upstream declaration and avoid conflicting declaration
error. This declaration will be removed after the next Clang update
since LLVM libc now implements localtime_r but we keep the declaration
for now to allow soft transition for SDK users.
2026-01-05 12:09:55 -06:00
BlockListed
a3dbebb184
correct reference to rp2350 (#2762) 2026-01-05 11:48:08 -06:00
Andrew Scheller
8f5b574782
Add missing pio_encode_wait_jmppin function to pio_instructions.h (#2755) 2026-01-05 11:47:16 -06:00
Richard Hulme
6665319aad
Add pico_unique_id library to host platform (#2751)
Fixes #2750
2026-01-05 11:43:51 -06:00