* 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>
While working on the [online pioasm](https://wokwi.com/tools/pioasm), I found several PIO instructions that result in invalid python code. Here is a small program that demonstrate the issue:
```
.program python_issue
push block
wait 0 irq 1 rel
irq clear 1 rel
```
And the resulting Python program:
```python
# -------------------------------------------------- #
# This file is autogenerated by pioasm; do not edit! #
# -------------------------------------------------- #
import rp2
from machine import Pin
# ----------- #
# python_test #
# ----------- #
@rp2.asm_pio()
def python_test():
wrap_target()
push(, block) # 0
wait(0, irq, 1 rel) # 1
irq(clear 1 rel) # 2
wrap()
```
After this fix, the above program compiles to a valid python syntax:
```python
# -------------------------------------------------- #
# This file is autogenerated by pioasm; do not edit! #
# -------------------------------------------------- #
import rp2
from machine import Pin
# ----------- #
# python_test #
# ----------- #
@rp2.asm_pio()
def python_test():
wrap_target()
push(block) # 0
wait(0, irq, rel(1)) # 1
irq(clear, rel(1)) # 2
wrap()
```
* 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;
^~
```