Compare commits

...

7 commits

Author SHA1 Message Date
hathach
f174dddf6b
more ci fix 2024-05-02 16:53:30 +07:00
hathach
2bcdd3b5d7
fix build issue with esp32 core v2 2024-05-02 15:33:58 +07:00
hathach
f0e8baf13d
exit with build_platform.success 2024-05-02 12:37:29 +07:00
hathach
4b9a4b7c18
more ci script fix 2024-05-02 12:19:39 +07:00
hathach
cb70cfdcf4
correct ci build 2024-05-02 12:12:02 +07:00
hathach
0d9a7c998f
fix ci with latest 2024-05-02 12:03:40 +07:00
hathach
f937f430cd
add matrix core version for esp32 2024-05-02 11:59:32 +07:00
6 changed files with 114 additions and 8 deletions

View file

@ -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: |

View file

@ -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

View file

@ -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);

View file

@ -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;

View file

@ -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
//--------------------------------------------------------------------+
//
//--------------------------------------------------------------------+

View file

@ -24,5 +24,6 @@ def main(dir):
click.echo(f"Updating {f}")
shutil.copy(sample_file, f)
if __name__ == '__main__':
main()