Commit Graph

669 Commits

Author SHA1 Message Date
18b97fcba0 add new pcio_I2c_slave library (#1205)
* add (slightly modified) pico_i2c_slave library from https://github.com/vmilea/pico_i2c_slave
* introduce VTABLE_FIRST_IRQ constant
2023-02-07 07:47:01 -06:00
66bd4d8aab Comment typos (#1231) 2023-02-06 18:48:44 -06:00
5eff1726c2 revert use of pico_add_library in pico_usb_reset_interface which is used by picotool and included directly as _headers library by SDK anyway (#1230) 2023-02-06 18:07:16 -06:00
cc169ddd68 stdio hardening + new mutex API (#1224)
* * Harden stdio_usb and stdio in general against deadlocks which could otherwise result from doing printfs from within IRQs
* Add a test for the above
* Add mutex_try_enter_block_until API.
* Make best_effort_wfe_or_timeout not use alarms if called from within IRQ
2023-02-06 16:27:39 -06:00
5b467997b2 Update TinyUSB to c0d79457f (post 0.14.0) (#1229) 2023-02-06 16:27:19 -06:00
7ef7ec8491 Fix Windows build warning (#1228) 2023-02-06 16:13:26 -06:00
ab18927533 Various Documentation Updates + bump version to SDK1.5.0-develop (#1220)
* minor cleanup of lwip+tinyusb docs, and bump sdk verison number to 1.5.0-develop
* Update cyw43_arch docs for async_context_use
* remove accidental copy of some comments
2023-02-06 15:07:37 -06:00
a916761e7d issue 1219, minor improvements to doxygen comments (#1223) 2023-02-05 19:00:26 -06:00
795d021ca6 Allow external pico-sdk-tools package (#1221)
This will enable builds to use pre-compiled copies of pioasm and elf2uf2, instead of requiring a native compiler.
2023-02-05 18:05:54 -06:00
74b6c1ccc3 Re-enable compiler checks (#1097)
Add a -nostdlib specifically for the check to ensure that it builds
successfully.

The -nostdlib isn't needed normally, because linking against the pico
SDK will add in definitions for the previously-missing function
2023-02-05 16:34:24 -06:00
7e305a70b0 fix typo (#1217) 2023-02-03 10:21:40 -06:00
c05c97d338 Fix PICO_STDIO_USB_SUPPORT_CHARS_AVAILABLE_CALLBACK (#1216)
It's being used in the wrong place
2023-02-03 09:23:17 -06:00
fff2c6b467 add thread info to pico_rand docs (#1214) 2023-02-02 12:29:06 -06:00
31780aed2c Add stdio_set_chars_available_callback (#1213)
There's currently no way to be notified in a "stdio" agnostic way
whether there's an incoming character available. You can poll with
getchar_timeout_us, but that's far from ideal.

Add a method that takes a callback to notify that a character might be
available.
2023-01-31 15:47:36 -06:00
0e4e25a343 Rework build targets such that: (#1211)
1. Make sure Pico SDK libraries have the correct dependencies on other SDK libraries
2. Pico SDK libraries all have _headers variants to include the headers. This may facilitate building user STATIC libraries without
   pulling in SDK code, though care will still need to be taken w.r.t. values of #defines
3. Make sure the _headers versions also have the correct dependencies

Note: There are a few exceptions to 1. for some non code libraries like pico_standard_link and pico_cxx_options
2023-01-30 10:56:03 -06:00
d717fe239a Add mention of develop branch to README.md (#1207) 2023-01-29 17:02:21 -06:00
0b0931a9a2 Bssid (#1212)
* Add BSSID connection options to PicoW

When working with a mesh or multiple APs with the same SSID, it is often
necessary to specify which of the APs to connect to in order to maximize
the WiFi strength.

Add BSSID options to the SDK's PicoW cyw43_arch_wifi_connect_XXX APIs.

Fixes #1090

Co-authored-by: Earle F. Philhower, III <earlephilhower@yahoo.com>
2023-01-29 16:56:58 -06:00
5984849594 Add manual windows CI (#1209) 2023-01-29 13:45:40 -06:00
c852a65ecc define option to disable cpp allocation overrides (#1145)
Setting `PICO_CXX_DISABLE_ALLOCATION_OVERRIDES=1` will prevent `new` etc. operators being overridden
2023-01-29 12:40:01 -06:00
2a9c59925a remove duplicate pico_rand inclusion in kitchen_sink (#1206) 2023-01-27 16:37:47 -06:00
1552324a64 Add mbedtls_hardware_poll implementation to pico_mbedtls 2023-01-27 11:15:22 -06:00
1bd9de95de add pico_rand to kitchen_sink (#1204) 2023-01-27 10:59:59 -06:00
45d2dc4c95 add missing pico_rand dependency (#1203) 2023-01-27 10:48:20 -06:00
729c7f4326 Tweaks to section-attribute stuff in platform.h (#1202) 2023-01-27 08:05:11 -06:00
36ba9e64bc Add NVIC struct. Fixes #947 (#1199) 2023-01-26 16:07:20 -06:00
fefb6b6d1e Move more code from pico_cyw43_arch to pico_cyw43_driver (#1201)
Basically the integration code (cyw43_config.h and related implementations) are now in the driver.
cyw43_arch now just has
  * async_context creation per CYW43_ARCH_TYPE
  * pre-existing cyw43_arch methods for connect etc.
2023-01-26 16:05:29 -06:00
b70f984f2a Add pico_rand library (#1111)
Add a general purpose random number generator via pico_rand library. which tries to use as much real entropy as possible mixed into a PRNG

Co-authored-by: graham sanderson <graham.sanderson@raspberrypi.com>
2023-01-26 13:25:27 -06:00
67af83f069 Fix compile issue with clock_t conversion (#1200)
We don't enable -Wconversion on the kitchen-sink build. But it's
enabled for some tinyusb examples.
2023-01-26 13:11:42 -06:00
b979395c5e Keep retrying if cyw43_wifi_join fails (#1195)
Currently, if the network can't be found we fail almost immediately.
Also fix error codes.

Fixes #1054
2023-01-26 11:28:04 -06:00
78d7a2522f elf2uf2: Use LMA (instead of VMA) of entry_point to determine whether binary is flash/RAM (#1187) 2023-01-26 10:04:48 -06:00
260df95e44 tinyusb: enable workaround for RP2040-E15 (#1137)
This sets the compile-time flag for tinyusb's dcd_rp2040 driver by
default. Applications that won't ever be plugged into a Pi 4 or Pi 400
can optionally disable this.
2023-01-25 17:19:23 -06:00
b8bd8ac702 update multi-gcc action to be on push to develop or main (#1197)
* make multi-gcc workflow on-demand only

* actually run multi-gcc after merge

* update yml generator for Multi GCC too
2023-01-25 17:14:16 -06:00
60016e2cf2 update multi-gcc workflow (#1194)
* make multi-gcc workflow on-demand only
* actually run multi-gcc after merge into develop/master
2023-01-25 11:55:57 -06:00
9a5eae111b fix compiler warning (#1193) 2023-01-25 11:41:45 -06:00
0cfeec253a CI Improvements. Add multi-gcc workflow that tests each ARM GCC available (#1192) 2023-01-25 10:48:35 -06:00
248fc72f96 Remove (legacy) direct inclusion of 'pico/platform.h' and 'pico/config.h' (#1190)
* Remove (legacy) direct inclusion of 'pico/platform.h' which potentially skip config/board setup
* also fix direct use of pico/config.h which predated pico.h being assembly includable
2023-01-24 12:03:48 -06:00
a540ca905a Add new async_context abstraction and refactor cyw43_arch to use it (#1177)
* Extract all poll/threadsafe_background/freertos from cyw43_arch into new abstraction async_context:
* provides support for asynchronous events (timers/IRQ notifications) to be handled in a safe context.
* now guarantees all callbacks happen on a single core.
* is reusable by multiple different libraries (stdio_usb can now be ported to this but hasn't been yet).
* supports multiple independent instances (independent instances will not block each other).
* cyw43_arch libraries cleaned up to use the new abstraction. Note each distinct cyw43_arch type is now a very thin layer that creates the right type of context and adds cyw43_driver and lwip support as appropriate.

Additionally,

* Add new pico_time and hardware_alarm APIs
* Add from_us_since_boot()
* Add alarm_pool_create_with_unused_hardware_alarm()
* Add alarm_pool_add_alarm_at_force_in_context()
* Add hardware_alarm_claim_unused()
* Add hardware_alarm_force_irq()
* Added panic_compact() and some minor comment cleanup; moved FIRST_USER_IRQ define to platform_defs.h
2023-01-24 12:01:24 -06:00
c578422528 Remove PLL postdiv assert. Fixes #1047 (#1189) 2023-01-24 09:10:05 -06:00
177b0303dd SYS funcs and GCC12 fixes (#1186)
* SYS functions and GCC 12 fixes

* Add implementation of _gettimeofday and settimeofday, _times
* Remove some GCC warnings about unimplemented SYS functions (e.g. _open) by making weak implementations that return errors.
* Removed _exit from crt0.S since we have a weak version in runtime.c and we don't want two weak impls since the linker can't pick. If the user omits runtime.c then they'll need to provide _exit or get the error
* Add sys/time.h to arch/cc.h for lwIP as it seems under GCC12 this is not getting included
2023-01-24 09:00:26 -06:00
a66ba7a942 user_irqs should be claimed globally not per core, since vector tabes are shared (#1183) 2023-01-24 08:58:01 -06:00
8b8778c59b compile issue seems to have snuck thru (#1184) 2023-01-20 16:47:23 -06:00
aaf0828250 change clock_gpio_init to take float and add clock_gpio_init_int_frac (#1178) 2023-01-20 15:45:18 -06:00
021a1b6bad Update cyw43-driver (#1181)
Update to the latest version. Matching Micropython.
2023-01-20 09:11:18 -06:00
2e45d8ec65 Update source code to use the correct bit - fixes #993 (#1180) 2023-01-20 09:10:01 -06:00
885bd922cf Ability to set USB device as self powered device (#1105) 2023-01-19 16:49:00 -06:00
05c3f22879 Update documentation-links (remove FAQ and add the two Pico W books) (#1123) 2023-01-19 16:47:21 -06:00
4215d4a793 Latest updates to the autogenerated headers (#1122) 2023-01-19 16:41:34 -06:00
35787255af Avoid generating garbage input due to initialization (#1125)
First mapping the GPIO pins to the UART peripheral before enabling the UART peripheral avoids generation of garbage character on the UART's input.
2023-01-19 16:39:19 -06:00
13a171a971 Small doxygen fixes (#1092) 2023-01-19 16:38:14 -06:00
73dcbec837 Improved code format (#1146) 2023-01-19 16:24:26 -06:00