mirror of
https://github.com/RIOT-OS/RIOT.git
synced 2024-12-29 04:50:03 +01:00
f0b60d5a0d
17091: USBUS: Add URB support r=benpicco a=bergzand ### Contribution description This commit adds support for URBs (USB Request/Response Blocks). These allow for submitting multi-transfer sized buffers with USBUS handling the individual usbdev xmits. Multiple URBs can be queued at once for a single endpoint and USBUS will handle them in the order of submission. OUT endpoint URBs must always consist of a whole number of full-sized transfers (N x MaxEndpointSize). They will automatically finish after the endpoint received a transfer less than the endpoint size. IN endpoints can be arbitrary-sized and do not have to consist of a whole number of full-sized transmissions. They support a flag to indicate that the last transfer in the sequence must be less than a full sized transfer (USBUS_URB_FLAG_AUTO_ZLP) and this adds a zero length transfer at the end of the transmissions if the last transfer was equal to the maximum transfer size. URBs can be cancelled, but if the URB is already being processed it will be cancelled after the current transmission within the URB is finished. If it is still in the queue it will immediately be removed from the queue. ### Testing procedure - `tests/usbus_cdc_ecm` should still work. Testing one of the usbdev-supported platform should be sufficient here. ### Issues/PRs references Needs #17064 18148: sys/flash_utils: helpers to store data in flash r=benpicco a=maribu ### Contribution description This helpers that allow storing, accessing, and working with data in flash that works for both classical Harvard architectures (which do not map flash also into the address space) as well as modern Harvard architectures and von-Neumann architectures. With this, `examples/default` again runs on the Arduino Uno / Nano. Since this board is still the "entry kit" for many people to embedded hardware, it would be nice to support it with our default example. ### Testing procedure `examples/default` should run and work on ATmega boards (especially ATmega328P and ATmega32U4 based boards) as well on all other boards now. ### Issues/PRs references None Co-authored-by: Koen Zandberg <koen@bergzand.net> Co-authored-by: Marian Buschsieweke <marian.buschsieweke@ovgu.de> |
||
---|---|---|
.. | ||
arch | ||
boards | ||
boot | ||
libc | ||
pkg | ||
tests | ||
toolchain | ||
tools | ||
utils | ||
app_dirs.inc.mk | ||
application.inc.mk | ||
auto_init.inc.mk | ||
bindist.inc.mk | ||
blob.inc.mk | ||
boards.inc.mk | ||
buildtests.inc.mk | ||
cargo-settings.inc.mk | ||
cargo-targets.inc.mk | ||
cflags.inc.mk | ||
clang_tidy.inc.mk | ||
color.inc.mk | ||
default-radio-settings.inc.mk | ||
defaultmodules_deps.inc.mk | ||
defaultmodules_no_recursive_deps.inc.mk | ||
defaultmodules_regular.inc.mk | ||
dependencies_debug.inc.mk | ||
dependency_resolution.inc.mk | ||
deprecated_boards.inc.mk | ||
deprecated_cpus.inc.mk | ||
deprecated_modules.inc.mk | ||
docker.inc.mk | ||
driver_with_disp_dev.mk | ||
driver_with_saul.mk | ||
driver_with_touch_dev.mk | ||
eclipse.inc.mk | ||
features_check.inc.mk | ||
features_modules.inc.mk | ||
git_version.inc.mk | ||
info-global.inc.mk | ||
info-nproc.inc.mk | ||
info.inc.mk | ||
kconfig.mk | ||
mcuboot.mk | ||
modules.inc.mk | ||
murdock.inc.mk | ||
periph.mk | ||
pseudomodules.inc.mk | ||
scan-build.inc.mk | ||
stdio.inc.mk | ||
suit.base.inc.mk | ||
suit.inc.mk | ||
tests.inc.mk | ||
ubsan.inc.mk | ||
usb-codes.inc.mk | ||
vars.inc.mk |