Commit Graph

191 Commits

Author SHA1 Message Date
Andrew Scheller
5bcf4ed83a
Clarify header-comments about pico_enable_stdio_ CMake-functions (#705) 2022-01-19 09:30:21 -06:00
Jonathan Reichelt Gjertsen
91462e430a
Add __attribute__((noreturn)) to _exit (#707)
Fixes the following compiler warning

```
.../vendor/pico-sdk/src/rp2_common/pico_runtime/runtime.c: In function 'panic':
.../pico-sdk/src/rp2_common/pico_runtime/runtime.c:284:1: warning: 'noreturn' function does return
  284 | }
      | ^
```
2022-01-19 09:25:40 -06:00
Graham Sanderson
0562089fab
fixup __forceinline for cpp code and add kitchen_sink cpp test (#670)
* fix __force_inline for different GCC versions in cpp mode (the affected versions are different from c mode), and build kitchsink.c as a cpp file too for testing
* silly bug in host platform.h
2021-12-08 12:05:49 -06:00
Maarten Vanraes
a8fa19a74d
pio_set_irqn_source_mask_enabled() sets wrong irq (#655)
if irq_index == 0, irq_index evaluates to false; which uses pio_set_irq1_source_mask_enabled() ; and vice versa
2021-11-12 07:51:29 -06:00
Graham Sanderson
da476610e2
allow override of XOSC_MHZ (#644)
* And increased assertion limit to 50 as 15 was the limit for the oscillator but not for XIN
2021-11-01 08:11:21 -05:00
Andrew Scheller
d0c7642369
Update ADC ENOB comment to match (measured) value in RP2040 datasheet (#643) 2021-10-30 08:29:58 -05:00
Andrew Scheller
da7c39bc23
Fix some of the (simpler) errors reported by the doxygen command (#617) 2021-10-26 16:09:06 -05:00
Graham Sanderson
b04a09110f
revert additional assertion check which breaks used of hw_alias macro outside of functions (#635)
* revert additional assertion check which breaks used of hw_alias macros outside of functions
2021-10-26 16:07:21 -05:00
Graham Sanderson
5641cd0a4a
__aeabi_memset* were switching the wrong arguments (#634) 2021-10-26 13:47:46 -05:00
Graham Sanderson
e5110dfce1
add docs for pio_instructions.h (#624)
Co-authored-by: Andrew Scheller <andrew.scheller@raspberrypi.com>
2021-10-26 13:45:32 -05:00
Graham Sanderson
e850214938
Platform updates (#611)
* Platform updates
 - Add PICO_RP2040=1 to rp2040 builds
 - Add new PICO_RP2040_B0/1/2_SUPPORTED macros and retailer chip specific code to use
 - Add doxygen to platform.h
 - Make pico.h includable from assembly (because header order is important and tricky) - split out platform_asm.h
 - Switch to using PICO_RP2040_B0_SUPPORTED in board headers
2021-10-25 12:26:06 -05:00
Graham Sanderson
723dfd04ff
add more/better documentation to pico/multicore (#620) 2021-10-25 12:23:41 -05:00
Graham Sanderson
0ccd0db163
Update to TinyUSB 0.12.0 (#622)
Update kitchent_sink compilation test to include TinyUSB to catch warnings
Fix warnings in stdio_usb and stdio_semihosting caught by above
2021-10-25 08:33:42 -05:00
Graham Sanderson
3c72e753b6
Split recursive mutex into their own functions (was Reduce performance hit of recursive mutex) (#495)
mutex_t and mutex_ are reverted to non recursive versions (pre SDK1.2.0) and new recursive_mutex_t and recursive_mutex_ functions have been added

PICO_MUTEX_ENABLE_SDK120_COMPATIBILITY flag has been added to allow old SDK1.2.0 compatibility (i.e. mutex_t can be used recursively or not) but this is slower (and is will be removed in a future version)
2021-10-20 18:27:59 -05:00
Graham Sanderson
9320d192c3
add watchdog_enable_caused_reboot (minor compatibility issue) (#594)
add watchdog_enable_caused_reboot. Note there is a small backwards incompatibility in so far as watchdog_enable sets scratch[4] to a magic value not 0 now, however this behavior was not documented before.
2021-10-20 17:30:24 -05:00
Robert Pafford
3c94bc8137
Change _watchdog_enable to trigger immediate reboot when no delay set (#561) 2021-10-14 11:30:16 -05:00
Graham Sanderson
f808b5f2dc
Add DREQ methods for PWM/SPI/UART/I2C (#603) 2021-10-12 16:04:16 -05:00
Graham Sanderson
2f2e62968d
Use auto-generated hardware/structs/ headers (based off SVD) SVD errors fixed. 2021-10-12 09:15:19 -05:00
Graham Sanderson
ec4036181f
tweak info message for TinyUSB support (#590) 2021-10-12 09:09:09 -05:00
Graham Sanderson
a0d4bdf731
fix pico_set_printf_implementation(TARGET compiler) (#593) 2021-10-12 09:08:15 -05:00
Graham Sanderson
d50e743e0e
make type punning of floating point/int in float_math and double_math use union to avoid warnings (#600) 2021-10-12 09:07:36 -05:00
Graham Sanderson
30673fb6d0
move inline assembly constant out into C code so it doesn't get out of range in a large function (#602) 2021-10-12 09:07:06 -05:00
Graham Sanderson
e76d5a9008
add dma_timer related methods (#604) 2021-10-12 09:04:59 -05:00
Graham Sanderson
9f1c37318b
add irq_get_priority method - improve efficiency of irq_init_priorities (#609) 2021-10-12 09:04:04 -05:00
Graham Sanderson
0fa58ed219
Adding/propage macros/signature typedefs for ROM functions. Make rom_func_lookup non-flash safe for flash functions (#586)
* add typedef signatures and ROM code defines for bootrom functions. Propogate uses thru SDK code. Add _inline version of rom_func_lookup
2021-10-08 09:02:19 -05:00
Graham Sanderson
13be546dc3
pico_stdio improvements (#598)
* add stdio_usb_connected() method
* add PICO_STDIO_USB_CONNECT_WAIT_TIMEOUT_MS to allow waiting for CDC connection during init(* 
* add puts_raw and putchar_raw to skip any CR/LF translation
2021-10-08 09:01:30 -05:00
Graham Sanderson
9319ab11d9
Add xip window alias macros (#566) (#585) 2021-10-07 08:18:02 -05:00
Graham Sanderson
62854f5eff
shrink max-page-size for linker to more sensible 4096 by default (#587) 2021-10-07 08:17:32 -05:00
Graham Sanderson
13ed99df0d
split out usb_reset_interface header into its own library for consumption by picotool or others (#589) 2021-10-07 08:17:13 -05:00
Matias Silva
3c53029c24
Fix some typos (#517) 2021-10-04 13:29:22 -05:00
Brian Starkey
a119b5bd9f
Fix semihosting_putc (#530)
Per the Arm semihosting protocol documentation[1], the SYS_WRITEC command
expects *a pointer to* the character to be printed in r1, not the
character itself.

[1] https://developer.arm.com/documentation/dui0471/g/Semihosting/SYS-WRITEC--0x03-?lang=en
2021-10-04 13:24:50 -05:00
Andrew Scheller
f63a14e9ee
Change PWM_CH1_DIV_INT_LSB to PWM_CH0_DIV_INT_LSB (#560)
For consistency with all the other PWM_...._LSB constants
2021-10-04 13:21:55 -05:00
Brian Starkey
46d8597d35
Add hardware_divider to pico_divider dependencies (#571)
Fixes build when pico_stdlib isn't included in the target libraries:
  pico-sdk/src/rp2_common/pico_divider/divider.S:8:10: fatal error: hardware/divider_helper.S: No such file or directory

Also fixes the same error in pico_double, though I'm not sure how/why:
  pico-sdk/src/rp2_common/pico_double/double_aeabi.S:9:10: fatal error: hardware/divider_helper.S: No such file or directory
2021-10-04 13:09:43 -05:00
Mahyar Koshkouei
d7feac1495
Fix syntax error in cmake when using custom stage2 (#580)
Signed-off-by: Mahyar Koshkouei <mk@deltabeard.com>
2021-10-04 13:09:23 -05:00
dp111
c08136b696
Move ret_dzero to the same section as it get used (#513) 2021-08-11 09:24:23 -05:00
Luke Wren
2622e9bc29 Enable UART RX timeout IRQ, as well as RX IRQ, so that individual characters can be received. 2021-07-22 14:46:29 +01:00
Luke Wren
9a586371db
Add doxygen clarifying PWM behaviour when enabled/disabled, and advice for controlling the pin state when disabled (#521) 2021-07-19 10:21:12 -05:00
Matias Silva
7e90980118
Add explanatory note on 7-bit I2C addresses (#520) 2021-07-19 12:02:19 +01:00
Matias Silva
ae6e574f53
Improve wording of comments in irq.h (#509) 2021-07-15 09:32:45 +01:00
Graham Sanderson
35b4965054
make sure PICO_DEFAULT_BOOT_STAGE2_FILE is defined in parent CMake file (#491) 2021-07-06 16:56:17 +01:00
graham sanderson
e02c6b327d Allow one of float/double to have 'none' impl but not the other - previously caused a link error 2021-07-06 16:24:46 +01:00
graham sanderson
f4ab723eb5 compile failure with PICO_STDOUT_MUTEX=0 2021-07-06 16:06:52 +01:00
Graham Sanderson
cefe5c5b2a
Better support for PICO_DISABLE_SHARED_IRQ_HANDLERS (#496)
* 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>
2021-06-29 11:55:35 -05:00
Luke Wren
edcb65c916
Enable I2C FIFO full hold in slave mode (stretch clock when RX full), fixes #456 (#494) 2021-06-29 11:55:01 -05:00
Andrew Scheller
f16ccfa1ff Small comment typos 2021-06-29 10:57:21 +01:00
graham sanderson
44feae4caf set DIVISOR for each use of h/w divider 2021-06-29 10:55:14 +01:00
Zapta
61b7cbdc54
Using ' inline __always_inline' also for GNUC 7. (#484)
Per the discussion at https://www.raspberrypi.org/forums/viewtopic.php?f=145&t=313961
2021-06-28 16:07:48 -05:00
graham sanderson
979045dc12 removed CMSIS from SDK doxygen 2021-06-03 16:46:19 -05:00
Brian Cooke
d42e6a9d10
include pico.h so that uint is defined (#475) 2021-06-03 15:22:28 -05:00
graham sanderson
fdf695b8d8 remove incorrect default from PICO_PANIC_FUNCTION PICO_CONFIG entry 2021-06-03 10:42:31 -05:00