Compare commits
7 commits
master
...
ci-esp32-m
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
f174dddf6b | ||
|
|
2bcdd3b5d7 | ||
|
|
f0e8baf13d | ||
|
|
4b9a4b7c18 | ||
|
|
cb70cfdcf4 | ||
|
|
0d9a7c998f | ||
|
|
f937f430cd |
6 changed files with 114 additions and 8 deletions
11
.github/workflows/githubci.yml
vendored
11
.github/workflows/githubci.yml
vendored
|
|
@ -90,9 +90,12 @@ jobs:
|
|||
fail-fast: false
|
||||
matrix:
|
||||
arduino-platform:
|
||||
# ESP32
|
||||
- 'feather_esp32s2'
|
||||
- 'feather_esp32s3'
|
||||
core-version:
|
||||
- ''
|
||||
- '@2.0.14'
|
||||
- '@2.0.13'
|
||||
|
||||
steps:
|
||||
- name: Setup Python
|
||||
|
|
@ -117,7 +120,7 @@ jobs:
|
|||
env:
|
||||
BSP_URLS: https://raw.githubusercontent.com/espressif/arduino-esp32/gh-pages/package_esp32_index.json
|
||||
run: |
|
||||
arduino-cli core install esp32:esp32 --additional-urls $BSP_URLS
|
||||
arduino-cli core install esp32:esp32${{ matrix.core-version }} --additional-urls $BSP_URLS
|
||||
arduino-cli lib install "Adafruit SPIFlash" "MIDI Library" "Adafruit seesaw Library" "Adafruit NeoPixel" "SdFat - Adafruit Fork" "SD" "Adafruit Circuit Playground" "Adafruit InternalFlash" "Pico PIO USB"
|
||||
arduino-cli core list
|
||||
arduino-cli lib list
|
||||
|
|
@ -126,7 +129,9 @@ jobs:
|
|||
working-directory: ${{ github.workspace }}/ci
|
||||
run: |
|
||||
echo 'import build_platform' > build_esp32_stable.py
|
||||
echo 'build_platform.test_examples_in_folder("'${{ matrix.arduino-platform }}'")' >> build_esp32_v2.py
|
||||
echo 'build_platform.test_examples_in_folder("'${{ matrix.arduino-platform }}'", build_platform.BUILD_DIR)' >> build_esp32_stable.py
|
||||
echo 'exit(build_platform.success)' >> build_esp32_stable.py
|
||||
cat build_esp32_stable.py
|
||||
|
||||
- name: test platforms
|
||||
run: |
|
||||
|
|
|
|||
|
|
@ -89,7 +89,10 @@ extern "C" {
|
|||
//--------------------------------------------------------------------
|
||||
|
||||
// Enable host stack with MAX3421E (host shield)
|
||||
#ifndef CFG_TUH_ENABLED
|
||||
#define CFG_TUH_ENABLED 1
|
||||
#endif
|
||||
|
||||
#define CFG_TUH_MAX_SPEED OPT_MODE_FULL_SPEED
|
||||
#define CFG_TUH_MAX3421 1
|
||||
|
||||
|
|
|
|||
|
|
@ -40,6 +40,21 @@
|
|||
#include "device/usbd.h"
|
||||
#include "device/usbd_pvt.h"
|
||||
|
||||
// ESP32 out-of-sync
|
||||
#ifdef ARDUINO_ARCH_ESP32
|
||||
#ifndef TUSB_VERSION_BUILD
|
||||
#define TUSB_VERSION_BUILD 0
|
||||
#endif
|
||||
|
||||
#ifndef TUSB_VERSION_NUMBER
|
||||
#define TUSB_VERSION_NUMBER (TUSB_VERSION_MAJOR << 24 | TUSB_VERSION_MINOR << 16 | TUSB_VERSION_REVISION << 8 | TUSB_VERSION_BUILD)
|
||||
#endif
|
||||
#endif
|
||||
|
||||
#if TUSB_VERSION_NUMBER >= 0x0160003
|
||||
#define ESP32_HAS_DEINIT
|
||||
#endif
|
||||
|
||||
//--------------------------------------------------------------------+
|
||||
// USBD Configuration
|
||||
//--------------------------------------------------------------------+
|
||||
|
|
@ -106,7 +121,9 @@ tu_static usbd_class_driver_t const _usbd_driver[] = {
|
|||
{
|
||||
DRIVER_NAME("CDC")
|
||||
.init = cdcd_init,
|
||||
#ifdef ESP32_HAS_DEINIT
|
||||
.deinit = cdcd_deinit,
|
||||
#endif
|
||||
.reset = cdcd_reset,
|
||||
.open = cdcd_open,
|
||||
.control_xfer_cb = cdcd_control_xfer_cb,
|
||||
|
|
@ -119,7 +136,9 @@ tu_static usbd_class_driver_t const _usbd_driver[] = {
|
|||
{
|
||||
DRIVER_NAME("MSC")
|
||||
.init = mscd_init,
|
||||
#ifdef ESP32_HAS_DEINIT
|
||||
.deinit = NULL,
|
||||
#endif
|
||||
.reset = mscd_reset,
|
||||
.open = mscd_open,
|
||||
.control_xfer_cb = mscd_control_xfer_cb,
|
||||
|
|
@ -132,7 +151,9 @@ tu_static usbd_class_driver_t const _usbd_driver[] = {
|
|||
{
|
||||
DRIVER_NAME("HID")
|
||||
.init = hidd_init,
|
||||
#ifdef ESP32_HAS_DEINIT
|
||||
.deinit = hidd_deinit,
|
||||
#endif
|
||||
.reset = hidd_reset,
|
||||
.open = hidd_open,
|
||||
.control_xfer_cb = hidd_control_xfer_cb,
|
||||
|
|
@ -158,7 +179,9 @@ tu_static usbd_class_driver_t const _usbd_driver[] = {
|
|||
{
|
||||
DRIVER_NAME("VIDEO")
|
||||
.init = videod_init,
|
||||
#ifdef ESP32_HAS_DEINIT
|
||||
.deinit = videod_deinit,
|
||||
#endif
|
||||
.reset = videod_reset,
|
||||
.open = videod_open,
|
||||
.control_xfer_cb = videod_control_xfer_cb,
|
||||
|
|
@ -171,7 +194,9 @@ tu_static usbd_class_driver_t const _usbd_driver[] = {
|
|||
{
|
||||
DRIVER_NAME("MIDI")
|
||||
.init = midid_init,
|
||||
#ifdef ESP32_HAS_DEINIT
|
||||
.deinit = midid_deinit,
|
||||
#endif
|
||||
.open = midid_open,
|
||||
.reset = midid_reset,
|
||||
.control_xfer_cb = midid_control_xfer_cb,
|
||||
|
|
@ -184,7 +209,9 @@ tu_static usbd_class_driver_t const _usbd_driver[] = {
|
|||
{
|
||||
DRIVER_NAME("VENDOR")
|
||||
.init = vendord_init,
|
||||
#ifdef ESP32_HAS_DEINIT
|
||||
.deinit = vendord_deinit,
|
||||
#endif
|
||||
.reset = vendord_reset,
|
||||
.open = vendord_open,
|
||||
.control_xfer_cb = tud_vendor_control_xfer_cb,
|
||||
|
|
@ -197,7 +224,9 @@ tu_static usbd_class_driver_t const _usbd_driver[] = {
|
|||
{
|
||||
DRIVER_NAME("TMC")
|
||||
.init = usbtmcd_init_cb,
|
||||
#ifdef ESP32_HAS_DEINIT
|
||||
.deinit = usbtmcd_deinit,
|
||||
#endif
|
||||
.reset = usbtmcd_reset_cb,
|
||||
.open = usbtmcd_open_cb,
|
||||
.control_xfer_cb = usbtmcd_control_xfer_cb,
|
||||
|
|
@ -210,7 +239,9 @@ tu_static usbd_class_driver_t const _usbd_driver[] = {
|
|||
{
|
||||
DRIVER_NAME("DFU-RUNTIME")
|
||||
.init = dfu_rtd_init,
|
||||
#ifdef ESP32_HAS_DEINIT
|
||||
.deinit = dfu_rtd_deinit,
|
||||
#endif
|
||||
.reset = dfu_rtd_reset,
|
||||
.open = dfu_rtd_open,
|
||||
.control_xfer_cb = dfu_rtd_control_xfer_cb,
|
||||
|
|
@ -223,7 +254,9 @@ tu_static usbd_class_driver_t const _usbd_driver[] = {
|
|||
{
|
||||
DRIVER_NAME("DFU")
|
||||
.init = dfu_moded_init,
|
||||
#ifdef ESP32_HAS_DEINIT
|
||||
.deinit = dfu_moded_deinit,
|
||||
#endif
|
||||
.reset = dfu_moded_reset,
|
||||
.open = dfu_moded_open,
|
||||
.control_xfer_cb = dfu_moded_control_xfer_cb,
|
||||
|
|
@ -236,7 +269,9 @@ tu_static usbd_class_driver_t const _usbd_driver[] = {
|
|||
{
|
||||
DRIVER_NAME("NET")
|
||||
.init = netd_init,
|
||||
#ifdef ESP32_HAS_DEINIT
|
||||
.deinit = netd_deinit,
|
||||
#endif
|
||||
.reset = netd_reset,
|
||||
.open = netd_open,
|
||||
.control_xfer_cb = netd_control_xfer_cb,
|
||||
|
|
@ -249,7 +284,9 @@ tu_static usbd_class_driver_t const _usbd_driver[] = {
|
|||
{
|
||||
DRIVER_NAME("BTH")
|
||||
.init = btd_init,
|
||||
#ifdef ESP32_HAS_DEINIT
|
||||
.deinit = btd_deinit,
|
||||
#endif
|
||||
.reset = btd_reset,
|
||||
.open = btd_open,
|
||||
.control_xfer_cb = btd_control_xfer_cb,
|
||||
|
|
@ -450,6 +487,7 @@ bool tud_deinit(uint8_t rhport) {
|
|||
dcd_deinit(rhport);
|
||||
|
||||
// Deinit class drivers
|
||||
#ifdef ESP32_HAS_DEINIT
|
||||
for (uint8_t i = 0; i < TOTAL_DRIVER_COUNT; i++) {
|
||||
usbd_class_driver_t const* driver = get_driver(i);
|
||||
if(driver && driver->deinit) {
|
||||
|
|
@ -457,6 +495,7 @@ bool tud_deinit(uint8_t rhport) {
|
|||
driver->deinit();
|
||||
}
|
||||
}
|
||||
#endif
|
||||
|
||||
// Deinit device queue & task
|
||||
osal_queue_delete(_usbd_q);
|
||||
|
|
|
|||
|
|
@ -38,6 +38,21 @@
|
|||
#include "host/usbh_pvt.h"
|
||||
#include "hub.h"
|
||||
|
||||
// ESP32 out-of-sync
|
||||
#ifdef ARDUINO_ARCH_ESP32
|
||||
#ifndef TUSB_VERSION_BUILD
|
||||
#define TUSB_VERSION_BUILD 0
|
||||
#endif
|
||||
|
||||
#ifndef TUSB_VERSION_NUMBER
|
||||
#define TUSB_VERSION_NUMBER (TUSB_VERSION_MAJOR << 24 | TUSB_VERSION_MINOR << 16 | TUSB_VERSION_REVISION << 8 | TUSB_VERSION_BUILD)
|
||||
#endif
|
||||
#endif
|
||||
|
||||
#if TUSB_VERSION_NUMBER >= 0x0160003
|
||||
#define ESP32_HAS_DEINIT
|
||||
#endif
|
||||
|
||||
//--------------------------------------------------------------------+
|
||||
// USBH Configuration
|
||||
//--------------------------------------------------------------------+
|
||||
|
|
@ -170,9 +185,11 @@ typedef struct {
|
|||
static usbh_class_driver_t const usbh_class_drivers[] = {
|
||||
#if CFG_TUH_CDC
|
||||
{
|
||||
#ifdef ESP32_HAS_DEINIT
|
||||
.name = DRIVER_NAME("CDC"),
|
||||
.init = cdch_init,
|
||||
.deinit = cdch_deinit,
|
||||
#endif
|
||||
.init = cdch_init,
|
||||
.open = cdch_open,
|
||||
.set_config = cdch_set_config,
|
||||
.xfer_cb = cdch_xfer_cb,
|
||||
|
|
@ -182,9 +199,11 @@ static usbh_class_driver_t const usbh_class_drivers[] = {
|
|||
|
||||
#if CFG_TUH_MSC
|
||||
{
|
||||
#ifdef ESP32_HAS_DEINIT
|
||||
.name = DRIVER_NAME("MSC"),
|
||||
.init = msch_init,
|
||||
.deinit = msch_deinit,
|
||||
#endif
|
||||
.init = msch_init,
|
||||
.open = msch_open,
|
||||
.set_config = msch_set_config,
|
||||
.xfer_cb = msch_xfer_cb,
|
||||
|
|
@ -194,9 +213,11 @@ static usbh_class_driver_t const usbh_class_drivers[] = {
|
|||
|
||||
#if CFG_TUH_HID
|
||||
{
|
||||
#ifdef ESP32_HAS_DEINIT
|
||||
.name = DRIVER_NAME("HID"),
|
||||
.init = hidh_init,
|
||||
.deinit = hidh_deinit,
|
||||
#endif
|
||||
.init = hidh_init,
|
||||
.open = hidh_open,
|
||||
.set_config = hidh_set_config,
|
||||
.xfer_cb = hidh_xfer_cb,
|
||||
|
|
@ -206,9 +227,11 @@ static usbh_class_driver_t const usbh_class_drivers[] = {
|
|||
|
||||
#if CFG_TUH_HUB
|
||||
{
|
||||
#ifdef ESP32_HAS_DEINIT
|
||||
.name = DRIVER_NAME("HUB"),
|
||||
.init = hub_init,
|
||||
.deinit = hub_deinit,
|
||||
#endif
|
||||
.init = hub_init,
|
||||
.open = hub_open,
|
||||
.set_config = hub_set_config,
|
||||
.xfer_cb = hub_xfer_cb,
|
||||
|
|
@ -218,9 +241,11 @@ static usbh_class_driver_t const usbh_class_drivers[] = {
|
|||
|
||||
#if CFG_TUH_VENDOR
|
||||
{
|
||||
#ifdef ESP32_HAS_DEINIT
|
||||
.name = DRIVER_NAME("VENDOR"),
|
||||
.init = cush_init,
|
||||
.deinit = cush_deinit,
|
||||
#endif
|
||||
.init = cush_init,
|
||||
.open = cush_open,
|
||||
.set_config = cush_set_config,
|
||||
.xfer_cb = cush_isr,
|
||||
|
|
@ -453,6 +478,7 @@ bool tuh_deinit(uint8_t rhport) {
|
|||
|
||||
// deinit host stack if no controller is active
|
||||
if (!tuh_inited()) {
|
||||
#ifdef ESP32_HAS_DEINIT
|
||||
// Class drivers
|
||||
for (uint8_t drv_id = 0; drv_id < TOTAL_DRIVER_COUNT; drv_id++) {
|
||||
usbh_class_driver_t const* driver = get_driver(drv_id);
|
||||
|
|
@ -461,6 +487,7 @@ bool tuh_deinit(uint8_t rhport) {
|
|||
driver->deinit();
|
||||
}
|
||||
}
|
||||
#endif
|
||||
|
||||
osal_queue_delete(_usbh_q);
|
||||
_usbh_q = NULL;
|
||||
|
|
|
|||
|
|
@ -37,6 +37,37 @@
|
|||
#include "host/hcd.h"
|
||||
#include "host/usbh.h"
|
||||
|
||||
|
||||
// ESP32 out-of-sync
|
||||
#ifdef ARDUINO_ARCH_ESP32
|
||||
#ifndef TUSB_VERSION_BUILD
|
||||
#define TUSB_VERSION_BUILD 0
|
||||
#endif
|
||||
|
||||
#ifndef TUSB_VERSION_NUMBER
|
||||
#define TUSB_VERSION_NUMBER (TUSB_VERSION_MAJOR << 24 | TUSB_VERSION_MINOR << 16 | TUSB_VERSION_REVISION << 8 | TUSB_VERSION_BUILD)
|
||||
#endif
|
||||
|
||||
#if TUSB_VERSION_NUMBER < 0x0160003
|
||||
// ConfigID for tuh_configure()
|
||||
enum {
|
||||
TUH_CFGID_MAX3421 = 200,
|
||||
};
|
||||
|
||||
typedef struct {
|
||||
uint8_t max_nak; // max NAK per endpoint per frame
|
||||
uint8_t cpuctl; // R16: CPU Control Register
|
||||
uint8_t pinctl; // R17: Pin Control Register. FDUPSPI bit is ignored
|
||||
} tuh_configure_max3421_t;
|
||||
|
||||
typedef union {
|
||||
// For TUH_CFGID_RPI_PIO_USB_CONFIGURATION use pio_usb_configuration_t
|
||||
|
||||
tuh_configure_max3421_t max3421;
|
||||
} tuh_configure_param_t;
|
||||
#endif
|
||||
#endif
|
||||
|
||||
//--------------------------------------------------------------------+
|
||||
//
|
||||
//--------------------------------------------------------------------+
|
||||
|
|
|
|||
|
|
@ -24,5 +24,6 @@ def main(dir):
|
|||
click.echo(f"Updating {f}")
|
||||
shutil.copy(sample_file, f)
|
||||
|
||||
|
||||
if __name__ == '__main__':
|
||||
main()
|
||||
Loading…
Reference in a new issue