* use PICO_DISABLE_SHARED_IRQ_HANDLERS exclusively as config for no shared handler support (rather than also PICO_MAX_SHARED_IRQ_HANDLERS == 0)
additionally make irq_add_shared_irq_handler() call irq_set_exclusive_handler() so that single usage of an IRQ still works
* Comment typo
Co-authored-by: Luke Wren <wren6991@gmail.com>
* Add missing DREQ_s
* store actual clock frequency in clock_configure (fixes#368)
* use dma DREQ values defined in dreqs/dma.h
* Fix hw_is_claimed, and add xxx_is_claimed APIs
* Add some PIO irq helper methods
* Add DMA channel IRQ status getter and clear methods
* Implement the correct PIO IRQ status/clear methods (good to have methods here as the h/w interrupt registers are super confusing)
* fix pico_multicore dependencies
* add missing wrapper func __aeabi_f2d
* Further DMA/PIO IRQ API cleanup (and review fixes)
* add PICO_INT64_OPS_IN_RAM flag
Most build related items have moved into <tinyusb>/hw/bsp/rp2040/family.cmake which is now the source of truth
force merging as same code save submodule was already reviewed
* - fix interp_claim_lane (in case of interp1 and lane==1 bit was 0b11 instead of 0b1000)
- added missing function interp_unclaim_lane_mask
* - interp_hw_save_t are not I/O registers
* Fix warnings about some unused parameters in pico_stdio_usb
* Use `__unused` for the unused parameter in tud_descriptor_configuration_cb
* Remove redundant inclusions of `pico/platform.h`
This header is included by the other library headers (via `pico.h`)
Fixes the following warning when building for host
```
[...]/pico-sdk/src/common/pico_time/time.c: In function 'alarm_pool_dump_key':
[...]/pico-sdk/src/common/pico_time/time.c:282:15: warning: format '%ld' expects argument of type 'long int', but argument 2 has type 'uint64_t' {aka 'long long unsigned int'} [-Wformat=]
printf("%ld", to_us_since_boot(get_entry(pool, id)->target));
~~^ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
%I64d
```
I'm using this in my program to get a better idea of how many entries I
need to allocate to avoid blocking or losing data, and to debug performance
issues.
Fixes the following warning:
```
[...]/pico-sdk/src/host/hardware_divider/include/hardware/divider.h:81:26: warning: operand of ?: changes signedness from 'int' to 'uint32_t' {aka 'unsigned int'} due to unsignedness of other operand [-Wsign-compare]
return b ? (a / b) : -1;
^~
```
- The divider state needs to be saved for __aeabi_ddiv, __aeabi_fdiv, __aeabi_dtan and __aeabi_ftan or they won't work in interrupts *(probably not used much youd hope), or on an RTOS context switch
- Refactored code out for the integer and floating point cases
- Improved the floating point 'tests' in passing to check more return values against GCC implementations
- Added floating point usage to the IRQ nesting test case
Adds a new cmsis_core INTERFACE library, which provides the basic CMSIS macros/definitions, and RP2040.h and system_RP2040.h
By default the isr_ methods in the vector table are renamed to their CMSIS versions, but this can be overridden by defining PICO_CMSIS_RENAME_EXCEPTIONS=0
- Add recursive_mutex
- Make all locking primitives and sleep use common overridable wait/notify support to allow RTOS
implementations to replace WFE/SEV with something more appropriate
- Add busy_wait_ms
* Change some cmake output to DEBUG level
Make SDK build more consistent with other libraries (use an INTERFACE marker library for inclusion tests)
Add PICO_SDK_PRE_LIST_FILES, PICO_SDK_POST_LIST_FILES build vars
* fix typo
* remove leftover debugging message
* SPI Definitions for SparkFun boards
Added the #defines for the default SPI pins on SparkFun boards
* SPI Definitions for SparkFun boards
Added the #defines for the default SPI pins on SparkFun boards
Co-authored-by: Kirk <blowme@cow.com>
This prevents a comparison between a signed and an unsigned number which
will create a warning tripping -Werror.
Also added a check for the alignment of the spin lock structure
* i2c: set hold time of SDA during transmit to 2 for TCS34725 color sensor
* i2c: fix issues in i2c_write_blocking_internal
* i2c: rename sda_hold_count to sda_tx_hold_count
* use assert rather than invalid_params_if for internal consistency checks
* i2c: use a more appropriate sda tx hold time at higher baudrates
* i2c: reduce 120/1e9 to the smallest possible integer numerator and denominator
* Don't use implicit 0 for field LSB
Co-authored-by: Luke Wren <wren6991@gmail.com>
* move PLL reset code from clocks driver to pll driver
* Don't clear PLL PWR/FBDIV after reset as unnecessary. Call out in runtime.c why USB/syscfg aren't reset.
Co-authored-by: Peter Lawrence <12226419+majbthrd@users.noreply.github.com>
Co-authored-by: Luke Wren <wren6991@gmail.com>
* build: allow compile time - and hence via board config header - choice of boot stage2 via a default compile_time_choice.S boot stage 2 which conditionally includes others
adafruit_rp2040_feather: fix flash size/clkdiv
* fixup GENERIC_03H #define names
* Add pico_get_unique_board_id_string API
Add a new API to pico_unique which will turn the unique ID into a
canonical text string.
Use this API to update the USB device serial number in stdio_usb.
Supercedes #280
* Clean up -Wconversion=error issues
* Address review comments, fix api typing
Use cleaner binary-to-hex conversion. Update the length parameter to
use uint per the SDK standard .