Specifying the final boot2 source file as a link library here causes the
final `.elf` to be linked directly with that `.S`, which causes it to be
compiled into an object file with a name like `/tmp/<random chars>.o`.
This temporary object name is embedded in the final `.elf`, so the
`.elf`'s contents change after each link even if none of the input files
change, breaking reproducibility.
Fix the issue by specifying the source file as the source for an
object-only library, then specifying the library's object files as the
target link libraries, so the source is compiled in a separate step and
only the object is passed to the linker.
Changed the constraint from "l" (specific to ARM) to the general "r" in inline assembly used for RISC-V architecture.
This ensures most compilers are able to compile this header file.
* add PANIC and AUTO_INIT_MUTEX to pico_minimize_runtime; fix build with PICO_PANIC_FUNCTION=
* add pico_minimize_runtime for host builds - does nothing
* Add ALL option to pico_minimize_runtime
* Fix Bazel build breakages
* Adds support for new PICO_DEFAULT_UART_BAUD_RATE option.
* Fixes issues related to Picotool and boot_picoboot_headers.
* Adds pico_float RISC-V pieces to the Bazel build (not yet fully
tested).
* Adds the missing adafruit board header to the Bazel build.
* Exclude hazard3 float test in Bazel validation script
* Restore missing dependency in hardware_boot_lock
* Adding I2C Burst Reading/Writing feature
* Add functions to header file.
Fixing: https://github.com/raspberrypi/pico-sdk/pull/1495
* Some missing changes
Rename the functions. Lose the "mode" and "blocking" needs to be at the
end.
Just set restart_on_next in the caller rather than adding a parameter.
---------
Co-authored-by: anhnhancao <nhan@earable.ai>
Co-authored-by: Peter Harper <peter.harper@raspberrypi.com>
The refactoring of these functions removed the (void) in the function
declarations - thus compiling with -Wstrict-prototypes will yell at us
at compile time.
Signed-off-by: Stefan Kerkmann <karlk90@pm.me>
* Add fast single-precision add/sub/mul for Hazard3
* Make test output less noisy. Map -nan to -inf in vector gen. Move random vectors to separate files.
* Re-disable USB stdout for pico_float_test by default...
* Disable pico/float.h exports on RISC-V as these functions aren't implemented
* Add hazard3 instructions to asm_helper. Split hazard3.h to support this.
You can still include hazard3.h to get everything. This just allows you
to pull in less.
* Update config-extraction scripts to work with multiple chips
* Standardise wording between common options
* Various config-related fixes
* Update pico_rand to use correct busctrl_hw struct-name
* Don't start config descriptions with "The ..."
* Add @pico-sdk prefix to bazel/config in lwip.BUILD
Without this, we're trying to refer to a subpackage of
the lwip directory called bazel/config, which doesn't
exist. See similar references in this file.
* bazelbuild: Fix compilation errors with pico_lwip and freertos
This fixes two general problems.
* pico_lwip_contrib_freertos misspelled several things
(omitted contrib/ dir prefix, didn't have @pico-sdk in front of
out references to pico-sdk targets)
This is fixed simply by fixing the spellings.
* Circular dependency between pico_lwip_core and pico_lwip_contrib_freertos.
In NO_SYS=0 mode, lwip wants to include sys_arch.h. But sys_arch.h
is defined in pico_lwip_contrib_freertos. sys_arch.c in turn wants
to include lwip's opt.h and arch.h, among other things. So it needs
to depend on pico_lwip_core.
This is fixed by extracting all the headers into a common rule which
can be depended on by both targets, then depending on it in the
relevant targets.
Additionally, for the LWIP+FreeRTOS build to work correctly, we need
to actually depend on the pico_lwip_contrib_freertos rule from
pico_lwip_core. This the purpose of the select in the deps of
pico_lwip_core.
* bazel+cyw43: Fix compilation errors.
This fixes issues with the cyw43 driver
build rules in Bazel:
* Before this, the btstack would always be included
even if it could not be used. If the user did not
specify a btstack config, this would cause a
compilation error. Now, we condition the linking
and building of the btstack on whether there is
a config for it.
* Before, the btbus was not properly linked.
* Implements code review feedback
I was reading through my PDF copy of the SDK docs, and I think that there's a typo in this example. The macro is `__time_critical_func` but the example spells it `__time_critical`.
* Modify check_board_header.py to work with both RP2040- and RP2350-based boards
* Tweaks to the board-header files so that they pass check_board_header.py
* Update tools/check_board_header.py
so that it handles pico_cmake_set_default the same way as cmake/generic_board.cmake does