1
0
mirror of https://github.com/RIOT-OS/RIOT.git synced 2024-12-29 04:50:03 +01:00
RIOT/makefiles
bors[bot] f0b60d5a0d
Merge #17091 #18148
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>
2023-02-27 11:57:20 +00:00
..
arch build system: use -std=gnu11 for avr8 2023-02-27 12:06:29 +01:00
boards makefiles/boards/stm32.inc.mk: improve stm32flash support 2022-08-16 22:00:06 +02:00
boot makefiles/boot/riotboot-dfu-util: add tinyusb_dfu support 2023-01-15 18:09:55 +01:00
libc build system: Fix linker feature test with newlib 4.3.0 2023-02-02 20:47:37 +01:00
pkg makefiles/pkg/nimble.adv.mk: add utility to assign adv instance 2022-04-27 08:22:58 +02:00
tests makefiles/tests/tests.inc.mk: fix test/available target 2023-01-03 12:53:35 +01:00
toolchain toolchain/gnu.inc.mk: don't check version if CC is not installed 2023-01-13 11:45:04 +01:00
tools makefiles/tools/serial.inc.mk: Allow detection of debug adapter 2023-02-24 16:50:56 +01:00
utils makefiles/utils/strings.mk: Fix version_is_greater_or_equal 2023-01-12 12:03:28 +01:00
app_dirs.inc.mk make: use $(MAKE) instead of direct make call 2020-07-03 12:03:06 +02:00
application.inc.mk core: split out library code 2022-03-09 21:43:05 +01:00
auto_init.inc.mk makefiles: add common makefile for auto_init modules 2020-06-08 10:27:35 +02:00
bindist.inc.mk makefiles/bindist: copy object files and use .bin to compare 2020-09-04 15:01:15 +02:00
blob.inc.mk blobs: include documentation in doxygen 2023-01-26 09:27:47 +01:00
boards.inc.mk make: add info-emulated-boards helper target 2021-10-12 10:39:57 +02:00
buildtests.inc.mk many typo fixes 2019-11-23 22:39:07 +01:00
cargo-settings.inc.mk Rust: Add crates-to-module adapter 2022-07-09 21:15:29 +02:00
cargo-targets.inc.mk make: pass make jobserver to cargo 2023-01-26 21:43:39 +01:00
cflags.inc.mk build system: Fix linker feature test with newlib 4.3.0 2023-02-02 20:47:37 +01:00
clang_tidy.inc.mk makefiles/clang-tidy: initial support 2021-05-28 11:57:20 +02:00
color.inc.mk makefiles/color: Add color functions. 2021-05-04 10:57:47 +02:00
default-radio-settings.inc.mk drivers/cc110x : Add CONFIG_ 2020-04-17 23:27:01 +05:30
defaultmodules_deps.inc.mk sys/preprocessor: add preprocessor module 2022-10-17 10:38:14 +02:00
defaultmodules_no_recursive_deps.inc.mk buildsystem: split default modules include early and late 2022-06-02 12:56:59 +02:00
defaultmodules_regular.inc.mk libc: add to default modules 2022-09-26 19:06:46 +02:00
dependencies_debug.inc.mk makefiles/dependencies_debug.inc.mk: add TOOLCHAIN 2021-01-27 11:11:43 +01:00
dependency_resolution.inc.mk sys/stdio_udp: add stdio over UDP 2023-01-13 11:08:22 +01:00
deprecated_boards.inc.mk cpu/mips: Remove all mips 2022-09-27 13:42:37 +02:00
deprecated_cpus.inc.mk cpu/mips: Remove all mips 2022-09-27 13:42:37 +02:00
deprecated_modules.inc.mk sys/shell/cmds: fix typo 'shell_cmd_grnc_udp' 2023-02-15 13:35:33 +01:00
docker.inc.mk makefiles/docker.inc.mk: add support for podman 2022-09-29 20:59:42 +02:00
driver_with_disp_dev.mk make: introduce makefile to optimize driver with disp/touch_dev build 2022-01-06 12:07:07 +01:00
driver_with_saul.mk make: introduce makefile to optimize driver with saul build 2022-01-06 12:07:06 +01:00
driver_with_touch_dev.mk make: introduce makefile to optimize driver with disp/touch_dev build 2022-01-06 12:07:07 +01:00
eclipse.inc.mk eclipse.inc.mk: Split eclipse support into it's own file. 2018-12-05 15:22:42 +01:00
features_check.inc.mk build_system: don't optionally use conflicting features 2021-02-22 12:06:27 +01:00
features_modules.inc.mk makefiles/features_modules: ignore non-init periphs 2022-08-17 14:37:24 +02:00
git_version.inc.mk makefiles/git_version.inc.mk: deferred GIT_VERSION definition 2019-07-22 12:00:45 +02:00
info-global.inc.mk Make: default to docker with generate-Makefile.ci 2023-02-04 16:53:49 +01:00
info-nproc.inc.mk make: replace curly braces with parenthesis 2018-03-22 20:43:15 +01:00
info.inc.mk Make: rename create-Makefile.ci to generate-Makefile.ci 2023-02-04 16:51:36 +01:00
kconfig.mk boards: Use BOARD.config pattern for kconfig 2022-02-14 13:10:09 +01:00
mcuboot.mk Merge pull request #11130 from cladmi/pr/make/flashfile/jlink 2019-03-14 12:01:02 +01:00
modules.inc.mk makefile: add a check for real modules 2020-09-04 15:01:16 +02:00
murdock.inc.mk makefiles/murdock.inc.mk: change policy to run tests by default 2019-08-21 12:49:26 +02:00
periph.mk Makefile: remove usage of SUBMODULES_NOFORCE 2020-04-15 12:11:44 +02:00
pseudomodules.inc.mk usbus: Add URB support 2023-02-27 10:09:53 +01:00
scan-build.inc.mk makefiles: avoid building archives when compiling 2020-09-04 15:01:10 +02:00
stdio.inc.mk sys/stdio: mark stdio_tinyusb_cdc_acm as buffered 2023-02-07 22:47:35 +01:00
suit.base.inc.mk makefiles/suit: allow multiple SUIT_SECs 2022-08-16 22:30:27 +02:00
suit.inc.mk makefiles/suit: allow to overwrite SUIT_VENDOR_DOMAIN 2022-06-01 13:18:00 +02:00
tests.inc.mk make: run static_tests.sh directly with static-tests target 2020-12-17 15:16:36 +01:00
ubsan.inc.mk make: add initial ubsan support 2022-02-16 12:20:45 +01:00
usb-codes.inc.mk makefile: Fix usage error with busybox grep 2020-10-06 17:16:26 +00:00
vars.inc.mk fuzzing: Add generic input reader 2022-12-15 15:13:18 +01:00