Commit Graph

185 Commits

Author SHA1 Message Date
27c1a89b3d review fixes 2021-06-02 16:14:11 +01:00
895bad790e Add some spin lock related doxygen 2021-06-02 16:14:11 +01:00
30041d8513 Add hardware_gpio accessors for Schmitt, slew rate, drive strength (fixes #290) (#464) 2021-06-01 14:25:11 -05:00
d026118499 Allow lengthening xosc startup delay with a compile option (#457) 2021-06-01 14:24:40 -05:00
42cbdcb13a added spi_get_baudrate() + some consistency changes (#395)
* added spi_get_baudrate()
2021-06-01 11:12:15 -05:00
1996a21e3a dma_channel_transfer_[from/to]_buffer_now: added const volatile to read_addr and volatile to write_addr (#449) 2021-05-27 12:12:39 -05:00
5ad072af5b Add function to get the currently selected channel (#451)
This is most useful in combination with round-robin sampling to avoid
having to track it manually.
2021-05-27 07:25:40 -05:00
6994a3858d -some typo fixes (#408)
-small consistency changes
2021-05-24 16:56:56 -05:00
2eb76bb058 - interp_ fixes (#428)
* - 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
2021-05-24 16:56:11 -05:00
cc8b2156fb Define void operator delete[](void *p, std::size_t n) in new_delete.cpp (#430) 2021-05-24 16:47:29 -05:00
048fcdefd6 Prevent warnings about some unused parameters in pico_stdio_usb when building with -Wextra (#431)
* 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`)
2021-05-24 16:42:28 -05:00
17ee1a877d Add support for Arduino Nano RP2040 Connect (#425)
* Add support for Arduino Nano RP2040 Connect

* Add support for at25sf128a flash

Derived from W25Q080 code, QE bit is set via a single command
2021-05-24 16:32:56 -05:00
5384b6b4d3 add comment about using clk_gpout0 enable bit (Fixes #413) 2021-05-17 09:12:41 +01:00
574fdee37b Fixup divider save_restore for floating point too; improve tests (#405)
- The divider state needs to be saved for __aeabi_ddiv, __aeabi_fdiv, __aeabi_dtan and __aeabi_ftan or they won't work in interrupts *(probably not used much youd hope), or on an RTOS context switch
 - Refactored code out for the integer and floating point cases
 - Improved the floating point 'tests' in passing to check more return values against GCC implementations
 - Added floating point usage to the IRQ nesting test case
2021-05-13 07:38:42 -05:00
54c78bf985 Fix the PICO_CONFIG default value for PICO_CMSIS_RENAME_EXCEPTIONS (#399) 2021-05-11 19:21:44 -05:00
b05d863428 Add basic CMSIS core headers (#384)
Adds a new cmsis_core INTERFACE library, which provides the basic CMSIS macros/definitions, and RP2040.h and system_RP2040.h
By default the isr_ methods in the vector table are renamed to their CMSIS versions, but this can be overridden by defining PICO_CMSIS_RENAME_EXCEPTIONS=0
2021-05-11 10:47:13 -05:00
508828f8ea allow setting exception handler to the same value, as this might happen if exceptions are set dynamically on both cores, but VTOR is the same... this should indeed cause an error if the values differ, but not otherwise (#385) 2021-05-11 10:34:41 -05:00
36dda1c5c4 Fix some hardware_library dependencies (#383) 2021-05-11 10:34:11 -05:00
e57b99a652 Rework ordering of cmake, so that libraries in subdirectories can add to internal lists as PICO_SDK_POST_LIST_FILES, PICO_CONFIG_HEADER_FILES etc. (#382)
Move generation of config header later, so it gets to include all values for PICO_CONFIG_HEADER_FILES
2021-05-11 10:33:34 -05:00
9396b9c7e1 Fix a bunch of doxygen typos (#391) 2021-05-10 08:48:09 -05:00
114dc5a80d Fixup IRQ_PRIORITY #define values (#393)
Related to #245
2021-05-10 08:46:53 -05:00
6d87da4c59 Rework lock_core / timers (#378)
- Add recursive_mutex
  - Make all locking primitives and sleep use common overridable wait/notify support to allow RTOS
    implementations to replace WFE/SEV with something more appropriate
  - Add busy_wait_ms
2021-05-05 11:46:25 -05:00
ec0dc7a88b add __always_inline to trivial super low level inline functions (#379) 2021-05-05 11:46:07 -05:00
53f1915a6b Add hardware_exception for setting exception handlers at runtime (#380) 2021-05-05 11:45:39 -05:00
7fc75d8c90 Definitions for IC_TX_BUFFER_DEPTH inconsistent (fixes #335) (#381) 2021-05-05 11:45:12 -05:00
8f3c3ff12a i2c: improve communication with i2c devices in i2c_write_blocking 2021-05-05 14:46:09 +01:00
929ede7482 add small delay to stdio_get_until to prevent starvation of USB IRQ handler due to in use mutex. build was non deterministic due to missing link wrapping of getchar (#364) 2021-05-04 08:01:34 -05:00
b7da70a53b make all non hardware_ libraries foo add C preprocessor definition LIB_FOO=1, and remove bespoke definitions which were all undocumented anyway (#374) 2021-05-04 08:00:17 -05:00
6796faf0d5 add PICO_DIVIDER_DISABLE_INTERRUPTS flag which makes PICO_DIVIDER disable interrupts around division rather than using co-operative guards to protect nested use (i.e. within IRQ/exception). Use of this flag can simplify porting of RTOSes but with a different performance profile (#372) 2021-05-04 07:48:07 -05:00
c979ca591f disable core 0 SIO FIFO IRQ handler during core 1 launch in case someone has already installed one (#375) 2021-05-04 07:43:25 -05:00
4c83c10f01 make spi_init return baud rate set (#296) 2021-05-01 14:34:28 -05:00
5259693774 Small typos (#366) 2021-05-01 14:32:16 -05:00
b17fc76c8f Clarify multicore_fifo doxygen (#323)
Based on my observations in #284
2021-04-18 17:10:24 -05:00
127543a425 Fixing arithmetic underflow in SPI I/O loops https://github.com/raspberrypi/pico-sdk/issues/337 (#338)
Co-authored-by: Michael Stoops <spam@michaelstoops.com>
2021-04-13 23:06:14 +01:00
ec16d3ff28 Fix param-validation for PIO sideset encoding (#311) 2021-04-12 11:13:22 +01:00
962da33ea7 Clarify that cache is flushed, but that function is intended for low-level metadata access during startup (#322) 2021-04-09 08:05:29 -05:00
814d2bd855 Make flash_do_cmd public (#269)
* Make flash_do_cmd public

* Fix typo in comment
2021-04-09 11:47:16 +01:00
f69f513a29 i2c: set high and low times to values that conform to the i2c specification (#314) 2021-04-09 11:00:33 +01:00
4fe995d0ec Update NULL GPIO function to 0x1f (#320)
Fixes #210
2021-04-08 15:25:01 -05:00
aabae62caa Merge branch 'master' into develop 2021-04-07 08:29:59 -05:00
92f948c123 Make kitchen_sink check param assertions, and include all headers - fix sign-compare warnings (#316) 2021-04-06 20:50:26 -05:00
0911393fe2 Changed the parameter check to avoid tripping -Werror on spin locks (#307)
This prevents a comparison between a signed and an unsigned number which
will create a warning tripping -Werror.

Also added a check for the alignment of the spin lock structure
2021-04-06 16:41:57 -05:00
d974a3b0e9 boot_stage2: cleanup and correctness fixes 2021-04-06 12:47:34 -05:00
2e777d47d3 i2c: set hold time of SDA during transmit to an appropriate value (#273)
* i2c: set hold time of SDA during transmit to 2 for TCS34725 color sensor

* i2c: fix issues in i2c_write_blocking_internal

* i2c: rename sda_hold_count to sda_tx_hold_count

* use assert rather than invalid_params_if for internal consistency checks

* i2c: use a more appropriate sda tx hold time at higher baudrates

* i2c: reduce 120/1e9 to the smallest possible integer numerator and denominator

* Don't use implicit 0 for field LSB

Co-authored-by: Luke Wren <wren6991@gmail.com>
2021-04-06 10:57:25 +01:00
162098678b move PLL reset code from clocks driver to pll driver (#110)
* move PLL reset code from clocks driver to pll driver

* Don't clear PLL PWR/FBDIV after reset as unnecessary. Call out in runtime.c why USB/syscfg aren't reset.

Co-authored-by: Peter Lawrence <12226419+majbthrd@users.noreply.github.com>
Co-authored-by: Luke Wren <wren6991@gmail.com>
2021-04-06 10:42:18 +01:00
fd16563f8f Merge pull request #299 from raspberrypi/back-merge-1.1.1
Back merge 1.1.1
2021-04-01 17:32:02 -05:00
7f2f186bcc build: allow board config header to specify bootstage 2 without using custom per board cmake (#293)
* build: allow compile time - and hence via board config header - choice of boot stage2 via a default compile_time_choice.S boot stage 2 which conditionally includes others
adafruit_rp2040_feather: fix flash size/clkdiv

* fixup GENERIC_03H #define names
2021-04-01 16:42:53 -05:00
3c0309c10e Add pico_get_unique_board_id_string API (#281)
* Add pico_get_unique_board_id_string API

Add a new API to pico_unique which will turn the unique ID into a
canonical text string.

Use this API to update the USB device serial number in stdio_usb.

Supercedes #280

* Clean up -Wconversion=error issues

* Address review comments, fix api typing

Use cleaner binary-to-hex conversion.  Update the length parameter to
use uint per the SDK standard .
2021-03-30 09:04:58 -05:00
859d1d27b8 Don't advertise REMOTE_WAKEUP for USB stdio as it is is not currently implemented. Longer term need to implement REMOTE_WAKUP properly in TinyUSB. Similar fix needed in MicroPython to fix MicroPython issue #6866. The symptom is that USB serial will stop working if there is a delay of > 2 seconds ish between messages. We have seen this issue on Linux laptops with USB autosuspend enabled. (#289) 2021-03-30 09:03:28 -05:00
85ac3d7cf8 I2C doxygen typos (#287)
* I2C doxygen typos

* another typo
2021-03-29 11:37:50 -05:00