Commit Graph

652 Commits

Author SHA1 Message Date
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
88bc4f974c cleanup header guard names to be consistent (#1179) 2023-01-18 08:40:10 -06:00
99ee33ad25 Add nullbits Bit-C PRO (#1149) 2023-01-18 07:20:37 -06:00
419eb739c2 Disable linker warning (#1114)
In arm-gnu-toolchain-12.2 we see this warning, that's not relevant to
pico. Disable it.

warning: blink.elf has a LOAD segment with RWX permissions

Fixes #1029
2023-01-17 16:46:02 -06:00
488bd66eb3 Fix conflicting C++ linkage for pico_lwip panic() (#1167) 2023-01-09 09:49:25 -06:00
605e21ae6f pairing heap free link list gets orphaned when fully depleted (#1120) (#1121)
add some more asserts, and fix test case for debug which was broken by all the assserts slowing it down
2022-12-08 11:14:53 -06:00
0b52603667 Fix build issues with spaces and parentheses (#1136)
Add VERBATIM to add_custom_command

Fixes #1043
2022-12-06 18:45:57 -05:00
56594e75af Allow changing the USB VID, PID, manufacturer, and product via CMake (#1130) 2022-12-03 05:39:01 +00:00
616e120558 Add information on targetting the Pico W. Fixes #895 (#896)
* Add information on targetting the Pico W

Based on comments in https://github.com/raspberrypi/pico-sdk/issues/895 which pointed here:
https://datasheets.raspberrypi.com/picow/connecting-to-the-internet-with-pico-w.pdf

I didn't add the pdf link as there are no links to other pdfs.

* Rewording

* stray comma

Co-authored-by: Graham Sanderson <graham.sanderson@gmail.com>
2022-11-30 13:08:04 -06:00
0ef07e5215 Fix the description of stdio_flush() (#1095)
Closes #1094
2022-11-24 09:05:00 -06:00
887c0b8443 IRQ on CYW43_PIN_WL_HOST_WAKE not gpio13 (#1069)
fix bug #1068 where the raw irq handler that was added masked on IO_IRQ_BANK0 (defined as 13) and not the gpio connected to the CYW43 i.e.  CYW43_PIN_WL_HOST_WAKE

Co-authored-by: andrew arm <armdev@openlx.org.uk>
2022-11-24 08:42:25 -06:00
6cc9394c5c Update cyw43-driver to latest version (#1115)
Fixes #900
2022-11-24 08:40:29 -06:00
586850e66f binary_info/structure.h: Fix pins_with_func format comment (#1070) 2022-11-22 18:26:16 -06:00
5258ee640b Add new DMA sniffer's API (#887) 2022-11-02 09:25:27 -05:00
e4da37cf0c Fix for cyw43 driver working with SMs other than 0 (#1080) 2022-10-27 16:06:33 -05:00
a88baafc16 Implemented ARCHIVE_OUTPUT_DIRECTORY for uf2 output in CMake. Fixes #1012 (#1036)
* Added ARCHIVE_OUTPUT_DIRECTORY to uf2 output in CMake

This Commit enables the use of the ARCHIVE_OUTPUT_DIRECTORY target
properties in CMake for the generation of uf2 files.

The changeset in lines 47..51 is necessary due to CMake not
automatically creating the ARCHIVE_OUTPUT_DIRECTORY if no archive target
is present.

* rework cmake changes to make it friendler for non absolute paths

Co-authored-by: Graham Sanderson <graham.sanderson@raspberrypi.com>
2022-10-21 09:01:55 -05:00
6d15974e96 Add some definition files for waveshare board. (#984)
* src/boards/include: Change the default I2C interface of RP2040_lcd_0.96.

* src/boards/include: Add some definition files for waveshare board.
2022-10-21 09:01:10 -05:00
e50e107d91 Fix unexpected (CMake) behavior with PICO_BOARD variable. (#1050)
* Fix unexpected (CMake) behaviour with PICO_BOARD variable.

Changing PICO_BOARD value from "pico_w" to "pico" did not
unset PICO_CYW43_SUPPORTED variable. Which could lead
CYW43 driver included in builds for "pico".

solution: make PICO_CYW43_SUPPORTED a non cache variable

Co-authored-by: Graham Sanderson <graham.sanderson@raspberrypi.com>
2022-10-21 08:59:02 -05:00