Commit Graph

60 Commits

Author SHA1 Message Date
graham sanderson 08a1892801 add is_compiler_supported_by_pico_pio_usb()
previosuly users of TinyUSB (e.g. pico-examples) would have to decide this for themselves. This function couples
the check closer with the actual version of Pico-PIO-USB used (since TinyUSB picks)
2023-07-18 11:04:46 -05:00
hathach e43387abac
rework cmake with rtos support add RTOS to family_configure_device/host/dual_example() 2023-06-27 15:45:38 +07:00
hathach a61d0f074f
more rp2040 family clean up 2023-06-26 23:08:59 +07:00
hathach 8aa28e63fb
minor clean up with include_guard() 2023-06-26 17:54:31 +07:00
hathach 3cfb838ba7
fix warnings when enable rtt with rp2040 2023-06-26 17:03:45 +07:00
hathach c0ecf8b50f
move set TOP to family_support.cmake 2023-05-26 14:56:22 +07:00
hathach 4c9605910f
update cmake with freertos 2023-05-25 21:27:26 +07:00
hathach 3623ba1884
fix trailing space and new line
temporarily disable codespell
2023-03-17 16:12:49 +07:00
Ha Thach 96d064e923
Merge pull request #1860 from howard0su/pico_freertos
Allow config OS for RP2040
2023-03-17 14:57:13 +07:00
graham sanderson b7fa90e706 rp2040: Fixup lib and example compile for LLVM Embedded Toolchain for ARM 2023-03-02 14:32:22 -06:00
graham sanderson 8d3f0ffb95 * don't force dependency on pico-pio-usb submodule
* suppress compiler warning/errors especially in pico-pio-usb
* disable use of pico-pio-usb on gcc 11.3+ for now as it doesn't compile
2023-02-06 10:07:39 -06:00
Jonathan Bell 73b0047efc rp2040: avoid device-mode state machine hang
Don't mark IN buffers as available during the last 200us of a full-speed
frame. This avoids a situation seen with the USB2.0 hub on a Raspberry
Pi 4 where a late IN token before the next full-speed SOF can cause port
babble and a corrupt ACK packet. The nature of the data corruption has a
chance to cause device lockup.

Use the next SOF to mark delayed buffers as available. This reduces
available Bulk IN bandwidth by approximately 20%, and requires that the
SOF interrupt is enabled while these transfers are ongoing.

Inherit the top-level enable from the corresponding Pico-SDK flag.
Applications that will not use the device in a situation where it could
be plugged into a Pi 4 or Pi 400 (for example, when directly connected
to a commodity hub or other host) can turn off the flag in the SDK.

v2: use a field in hw_endpoint to mark pending.

v3: Partial rewrite following review comments

- Stub functions out if the workaround is not required
- Only force-enable SOF while any vulnerable endpoints are active
- Respect dcd_sof_enable() functionality
- Get rid of all but necessary ifdef hackery
- Fix a bug where the "endpoint lock" was used with an uninitialised pointer.
2023-01-24 11:53:28 +00:00
Howard Su eb7aacb51f Allow config OS for RP2040 2023-01-18 02:30:05 +00:00
hathach cb0ca6151b remove CFG_TUSB_DEBUG from tinyusb_common_base 2022-11-04 17:08:02 +07:00
graham sanderson fc1a27b6c9 RP@040: rework CMake for compiler warnings 2022-07-12 12:58:30 -05:00
hathach 898b52be45 update rp2040 warnings
- remove "-Wno-stringop-overflow -Wno-array-bounds"
- skip -Wconversion for gcc 9 and prior
- suppress_tinyusb_warnings only when building with gcc 9 and below
2022-06-28 16:27:44 +07:00
graham sanderson 4057c2d8d9 rework suppress_tinyusb_warnings
* gcc 9.2.1 has some spurious -Wconversion warnings
* cmake 3.18 and above require set_target_properties to be added from the target directory (so added it to all examples)
* fixed a few warnings in a couple of examples
2022-06-27 22:43:41 +01:00
graham sanderson 2f7f3e604e Re-add some warning suppression for rp2040 2022-06-17 12:54:28 -05:00
graham sanderson 26c4d4b328 Minor cleanup of RP2040 code post addition of Pico-PIO_USB
* Removed some compiler warnings, and cleaned out unnecessary warning suppression from CMake suppress_tinyusb_warnings()
* Made explicit family_configure_dual_usb_example() for DUAL mode examples as family_configure_target() may not generally be called multiple times for the same target

* Renamed library pico_pio_usb to tinyusb_picio_pio_usb to be clearer and avoid conflict if someone already has a pico_pio_usb in their project
* Added family_add_pico_pio_usb() method for adding Pico-PIO_SUB support to an existing example
* Allowed tinyusb_pico_pio_usb to be added to regular apps using the Pico SDK
2022-05-20 17:25:30 -05:00
hathach 4586d8f119 add upstream Pico-PIO-USB 2022-05-16 13:44:06 +07:00
hathach 35b77a4a81 cmake lib rename 2022-05-10 22:14:00 +07:00
hathach 717a474125 move pio-usb init to family_configure_pio_usb_example() to stay compatible 2022-05-10 21:56:47 +07:00
hathach 26ee622222 move pio usb files to src 2022-05-10 12:51:48 +07:00
hathach 0b30a10ab3 configure hid_to_cdc example to build with rp2040 with pio usb as host 2022-04-29 22:24:36 +07:00
hathach 4a661dead0 add TU_ATTR_FAST_FUNC for rp2040 __not_in_flash() section 2022-04-27 17:57:52 +07:00
hathach 12debd7763
keep up with pio usb 2022-04-22 01:06:17 +07:00
hathach cc5a4720e5 catch up with pio lib 2022-04-14 22:00:47 +07:00
hathach d5d4909c20 proof of concpet that device pio-usb work with host pio-usb 2022-04-08 13:36:05 +07:00
hathach c25f835aea update to use pio hw endpoint 2022-04-01 23:31:43 +07:00
hathach db6cba6a7b rename pio to pio_usb 2022-04-01 16:38:41 +07:00
hathach e2f0aef93b make use pio_usb_port_reset_start/end 2022-03-30 16:41:55 +07:00
hathach 45052c625e
Merge branch 'master' into pio-host 2022-03-20 00:51:00 +07:00
hathach a715077b10 remove usbh_control.c 2022-03-11 09:57:35 +07:00
hathach 1d29817139 start to add pio usb (host) support
run as proof of concept
2022-03-01 23:55:53 +07:00
graham sanderson 06d9555389 More warning cleanup
- physically suppress warnings in TinyUSB headers using pragmas so they don't break -Werror compilation of external files that include them
 - fix compiler warnings in rp2040 port
 - add cmake method to rp2040 port to allow an external project to suppress warnings in TinyUSB itself
2021-10-14 15:23:26 -05:00
Ha Thach 379537cb6d
Merge branch 'master' into add_uvc 2021-10-12 22:01:02 +07:00
hathach a867d87072
rename CFG_TUD_NET to CFG_TUD_ECM_RNDIS 2021-10-05 16:00:07 +07:00
kkitayam a1788da410 Add video class entry to rp2040 building scripts 2021-09-30 22:14:29 +09:00
Peter Lawrence 03d7988df3 add NCM driver in a compatible manner : hathach/tinyusb#550 2021-09-25 17:05:58 -05:00
graham sanderson fd7b18a4f6 Make examples standalone buildable via CMake 2021-06-10 10:11:20 -05:00
graham sanderson de436e1f76 undo search replace error 2021-06-02 11:30:42 -05:00
graham sanderson 1fb211f390 minor comment change to force rebuild 2021-06-02 09:52:49 -05:00
graham sanderson bef33d108a move core definition of source file includes from SDK into family.cmake
only build webserver example if lwip submodule initialized
2021-06-02 09:33:23 -05:00
graham sanderson 6e29bf6e54 rename family.cmake to family_common.cmake 2021-06-01 09:09:25 -05:00
graham sanderson 8782d0b8df fix rp2040 examples build from local tinyusb tree 2021-06-01 09:04:08 -05:00
graham sanderson 13951b43c2 set PICO_TINYUSB_PATH for when building from within tinyusb without pico-sdk/tinyusb submodule 2021-05-31 10:58:14 -05:00
graham sanderson 5d161b79bb Fix up build_family style builds:
- added back pre-existing board directories which now just select PICO_BOARD
 - added boards/pico_sdk which just uses the pre-existing PICO_BOARD setting
 - fixed rp2040/family.cmake to include the magic string "CFG_TUSB_MCU=OPT_MCU_RP2040" expected by build_family.py
2021-05-31 10:06:12 -05:00
graham sanderson 95f2478146 Rework rp2040 examples and CMake build:
- Examples should be CMake buildable from their own subdirectory; such a build will error out based on
	  matching .skip.MCU_xxx or a mismatched .only.MCU_
	- It should be possible to build from a higher level and use .skip.MCU_ and .only.MCU_ to filter which
          examples get built
	- The intention is for the CMakeLists.txts in the examples to be non family specific and without MCU based IFs. I have
          started this work, but am not really sure the state of the esp32 stuff; in any case the plan is to have
          everything encapsulated in the FAMILY/family.cmake
	- pico_examples now just includes examples/device/CMakeLists.txt and examples/host/CMakeLists.txt directly, as they
	  also build correctly when included from there.
Note that .skip.MCU_ for esp32 in the directories it wasn't previously avaiable has not been added, as the .skip is common to the regular Makefile builds also. It isn't clear whether these examples should build for esp32, but if not .skip should be added.
2021-05-30 20:13:47 -05:00
hathach f9c542aa52
fix dfu example build 2021-05-26 18:16:56 +07:00
hathach 249852d25c use boot2_generic_03h for adafruit feather rp2040
- also use boot2_generic_03h for now for itsy bitsy and qt rp2040
- change default flash target for rp2040 to flash-pyocd
2021-03-18 19:53:39 +07:00