Commit Graph

632 Commits

Author SHA1 Message Date
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
16ab2b21ba Remove incorrect override for LWIP_PLATFORM_ASSERT (#1064)
* Remove incorrect override for LWIP_PLATFORM_ASSERT

LWIP_PLATFORM_ASSERT macro is used by lwip driver implementations to specify the behavior of the assertions in lwip code.

The previous override of this macro incorrectly assumed that the parameter to the function macro was the condition to check. However this is incorrect. The parameter is actually a message string defining what failed. 

This mistake caused all assertions to be ignored. ( and myself to loose many hours of debugging time )

By removing this, we restore the default behavior specified by lwip which is to use `printf` to log the message.

* I think i prefer to use panic (which doesn't pull in fflush etc)

Co-authored-by: Graham Sanderson <graham.sanderson@gmail.com>
2022-10-21 08:57:21 -05:00
b0294d6bf4 fix build without mbedtls submodule initialized, and fix deoptimized debug build (#1067) 2022-10-17 11:34:10 -05:00
3bd7a829db Some optimizations for the hardware divider (#1033)
* Remove unnecessary wait in pico_divider.

There is no need to wait if there is more than 8 cycles between setup and result readout.
Dividend/divisor readout should be correct without delay. Update comment to reflect that.

* Optimize hw_divider_save_state/hw_divider_restore_state.

Doing multiple pushes to avoid stack usage is faster.
The wait loop in hw_divider_save_state had an incorrect branch in the wait loop.
This didn't matter since the wait wasn't necessary to begin with.

* Remove pointless aligns in hardware_divider.

The regular_func_with_section inserts a new section so if aligning
is desired it should be placed in the macro after section start.

* Save a few bytes in hardware_divider.

Signed and unsigned code can use the same exit code.
Branching to the common code is free since we need the 8 cycle
delay anyway.
2022-10-16 17:40:22 -05:00
2d4e3baa82 Set CMAKE_MAKE_PROGRAM when building ELF2UF2 and PIOASM (#935) 2022-10-16 17:31:58 -05:00
587ac803c5 Avoid compound assignment with volatile left operand as described in #1017 (#1018)
also move to use of hw_set_bits where appropriate
2022-10-16 17:24:23 -05:00
e22807bc2e Add a compile option to suppress fopen deprecated warning (#1035) 2022-10-16 17:22:25 -05:00
8c6963d7ed Fix compile errors when building with clang x86_64-pc-windows-msvc (#1038) 2022-10-16 17:22:06 -05:00
719d5e41a2 Add mbedtls to pico-sdk (#894)
* Add mbedtls as a submodule

Checked out on branch mbedtls-2.28

* Add mbedtls to pico-sdk

Link your code to pico_lwip_mbedtls and pico_mbedtls.
See tls_client example in pico-examples

Fixes https://github.com/raspberrypi/pico-sdk/issues/893
2022-10-16 16:41:21 -05:00
8e014e6b5d Make sure OUT_STICKY is not set when setting pins / pindirs (#989) 2022-10-16 16:39:44 -05:00
c4f37b2e44 Lwip build fixes (#1011)
Only build lwip acd.c if it exists (after 2.1.3)
Some mdns files only exist in 2.2.x

Fixes #1009
2022-10-16 16:38:42 -05:00
6f1fc56833 pioasm: python output incorrectly rendered mov x, ~x as nop() (#1053)
This affects all move operations where source and destination are the same
but with an operation applied, ex: mov y, ::y, mov osr, ~osr, etc
2022-10-09 12:59:52 -05:00
24bb3627cf PLL REFDIV values > 1 considered by vcocalc.py (#952) 2022-10-05 19:06:26 -05:00
3ed9e2fb1e Avoid initializing full stdio_stack_buffer object with zeros (#992) 2022-09-26 11:49:16 -05:00
98aba25e64 Make __get_current_exception inline (#1016)
not `static` inline, so we keep an implementation around if needed (someone might have called it from assembly)
2022-09-12 15:28:18 -05:00
849cdf8a30 Typo in float_aeabi.S: srqtf => sqrtf (#702) 2022-09-12 13:44:38 -05:00
5e9eb27ac2 Implement whole-buffer write semihosting (#1013)
* Implement whole-buffer write semihosting

Each semihosting call is very slow, so doing it for each character
does not provide an ideal developer experience.

This change allows the entire buffer to be printed out in a single call.
2022-09-12 13:20:30 -05:00
a4ec3c4848 fix wconversion warning (#981) 2022-09-06 11:02:45 -05:00
189d377be2 Only include mutex header if necessary (#991) 2022-09-06 11:00:51 -05:00
07e5caf341 Supress -Wunused-parameter when PICO_STDIO_ENABLE_CRLF_SUPPORT is unset (#998) 2022-09-06 10:59:48 -05:00
0041f4b7fd set CYW43_WIFI_NVRAM_INCLUDE_FILE allowing user override 2022-09-01 14:10:06 -05:00