mirror of
https://github.com/hathach/tinyusb.git
synced 2025-01-17 05:32:55 +08:00
update build script to correctly skip non max3421 enabled for espressif boards
This commit is contained in:
parent
4c81d91a73
commit
4617fb5229
@ -1,2 +1,3 @@
|
||||
# Apply board specific content here
|
||||
set(IDF_TARGET "esp32")
|
||||
set(MAX3421_HOST 1)
|
||||
|
@ -1,2 +1,3 @@
|
||||
# Apply board specific content here
|
||||
set(IDF_TARGET "esp32s2")
|
||||
set(MAX3421_HOST 1)
|
||||
|
@ -0,0 +1,3 @@
|
||||
# Apply board specific content here
|
||||
set(IDF_TARGET "esp32s3")
|
||||
set(MAX3421_HOST 1)
|
53
hw/bsp/espressif/boards/adafruit_feather_esp32s3/board.h
Normal file
53
hw/bsp/espressif/boards/adafruit_feather_esp32s3/board.h
Normal file
@ -0,0 +1,53 @@
|
||||
/*
|
||||
* The MIT License (MIT)
|
||||
*
|
||||
* Copyright (c) 2020, Ha Thach (tinyusb.org)
|
||||
*
|
||||
* Permission is hereby granted, free of charge, to any person obtaining a copy
|
||||
* of this software and associated documentation files (the "Software"), to deal
|
||||
* in the Software without restriction, including without limitation the rights
|
||||
* to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
||||
* copies of the Software, and to permit persons to whom the Software is
|
||||
* furnished to do so, subject to the following conditions:
|
||||
*
|
||||
* The above copyright notice and this permission notice shall be included in
|
||||
* all copies or substantial portions of the Software.
|
||||
*
|
||||
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
||||
* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
||||
* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
||||
* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
||||
* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
||||
* OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
|
||||
* THE SOFTWARE.
|
||||
*
|
||||
* This file is part of the TinyUSB stack.
|
||||
*/
|
||||
|
||||
#ifndef BOARD_H_
|
||||
#define BOARD_H_
|
||||
|
||||
#ifdef __cplusplus
|
||||
extern "C" {
|
||||
#endif
|
||||
|
||||
#define NEOPIXEL_PIN 33
|
||||
#define NEOPIXEL_POWER_PIN 21
|
||||
#define NEOPIXEL_POWER_STATE 1
|
||||
|
||||
#define BUTTON_PIN 0
|
||||
#define BUTTON_STATE_ACTIVE 0
|
||||
|
||||
// SPI for USB host shield
|
||||
#define MAX3421_SPI_HOST SPI2_HOST
|
||||
#define MAX3421_SCK_PIN 36
|
||||
#define MAX3421_MOSI_PIN 35
|
||||
#define MAX3421_MISO_PIN 37
|
||||
#define MAX3421_CS_PIN 10
|
||||
#define MAX3421_INTR_PIN 9
|
||||
|
||||
#ifdef __cplusplus
|
||||
}
|
||||
#endif
|
||||
|
||||
#endif /* BOARD_H_ */
|
@ -1,2 +1,3 @@
|
||||
# Apply board specific content here
|
||||
set(IDF_TARGET "esp32s2")
|
||||
set(MAX3421_HOST 1)
|
||||
|
@ -1,2 +1,3 @@
|
||||
# Apply board specific content here
|
||||
set(IDF_TARGET "esp32c3")
|
||||
set(MAX3421_HOST 1)
|
||||
|
@ -1,2 +1,3 @@
|
||||
# Apply board specific content here
|
||||
set(IDF_TARGET "esp32c6")
|
||||
set(MAX3421_HOST 1)
|
||||
|
@ -84,10 +84,13 @@ def cmake_board(board, toolchain):
|
||||
# for espressif, we have to build example individually
|
||||
all_examples = get_examples(family)
|
||||
for example in all_examples:
|
||||
rcmd = run_cmd(f'cmake examples/{example} -B {build_dir}/{example} -G "Ninja" -DBOARD={board} -DMAX3421_HOST=1')
|
||||
if rcmd.returncode == 0:
|
||||
rcmd = run_cmd(f'cmake --build {build_dir}/{example}')
|
||||
ret[0 if rcmd.returncode == 0 else 1] += 1
|
||||
if build_utils.skip_example(example, board):
|
||||
ret[2] += 1
|
||||
else:
|
||||
rcmd = run_cmd(f'cmake examples/{example} -B {build_dir}/{example} -G "Ninja" -DBOARD={board}')
|
||||
if rcmd.returncode == 0:
|
||||
rcmd = run_cmd(f'cmake --build {build_dir}/{example}')
|
||||
ret[0 if rcmd.returncode == 0 else 1] += 1
|
||||
else:
|
||||
rcmd = run_cmd(f'cmake examples -B {build_dir} -G "Ninja" -DBOARD={board} -DCMAKE_BUILD_TYPE=MinSizeRel -DTOOLCHAIN={toolchain}')
|
||||
if rcmd.returncode == 0:
|
||||
|
@ -13,33 +13,25 @@ def skip_example(example, board):
|
||||
ex_dir = pathlib.Path('examples/') / example
|
||||
bsp = pathlib.Path("hw/bsp")
|
||||
|
||||
if (bsp / board / "board.mk").exists():
|
||||
# board without family
|
||||
board_dir = bsp / board
|
||||
family = ""
|
||||
mk_contents = ""
|
||||
else:
|
||||
# board within family
|
||||
board_dir = list(bsp.glob("*/boards/" + board))
|
||||
if not board_dir:
|
||||
# Skip unknown boards
|
||||
return True
|
||||
# board within family
|
||||
board_dir = list(bsp.glob("*/boards/" + board))
|
||||
if not board_dir:
|
||||
# Skip unknown boards
|
||||
return True
|
||||
|
||||
board_dir = list(board_dir)[0]
|
||||
board_dir = list(board_dir)[0]
|
||||
family_dir = board_dir.parent.parent
|
||||
family = family_dir.name
|
||||
|
||||
family_dir = board_dir.parent.parent
|
||||
family = family_dir.name
|
||||
|
||||
# family.mk
|
||||
family_mk = family_dir / "family.mk"
|
||||
mk_contents = family_mk.read_text()
|
||||
# family.mk
|
||||
family_mk = family_dir / "family.mk"
|
||||
mk_contents = family_mk.read_text()
|
||||
|
||||
# Find the mcu, first in family mk then board mk
|
||||
if "CFG_TUSB_MCU=OPT_MCU_" not in mk_contents:
|
||||
board_mk = board_dir / "board.cmake"
|
||||
board_mk = board_dir / "board.mk"
|
||||
if not board_mk.exists():
|
||||
board_mk = board_dir / "board.mk"
|
||||
|
||||
board_mk = board_dir / "board.cmake"
|
||||
mk_contents = board_mk.read_text()
|
||||
|
||||
mcu = "NONE"
|
||||
@ -49,18 +41,23 @@ def skip_example(example, board):
|
||||
token = token.strip("\"")
|
||||
_, opt_mcu = token.split("=")
|
||||
mcu = opt_mcu[len("OPT_MCU_"):]
|
||||
break
|
||||
if "esp32s2" in token:
|
||||
mcu = "ESP32S2"
|
||||
break
|
||||
if "esp32s3" in token:
|
||||
mcu = "ESP32S3"
|
||||
if mcu != "NONE":
|
||||
break
|
||||
|
||||
# Skip all OPT_MCU_NONE these are WIP port
|
||||
if mcu == "NONE":
|
||||
return True
|
||||
|
||||
max3421_enabled = False
|
||||
for line in mk_contents.splitlines():
|
||||
if "MAX3421_HOST=1" in line or 'MAX3421_HOST 1' in line:
|
||||
max3421_enabled = True
|
||||
break
|
||||
|
||||
skip_file = ex_dir / "skip.txt"
|
||||
only_file = ex_dir / "only.txt"
|
||||
|
||||
@ -74,6 +71,7 @@ def skip_example(example, board):
|
||||
if only_file.exists():
|
||||
onlys = only_file.read_text().split()
|
||||
if not ("mcu:" + mcu in onlys or
|
||||
("mcu:MAX3421" in onlys and max3421_enabled) or
|
||||
"board:" + board in onlys or
|
||||
"family:" + family in onlys):
|
||||
return True
|
||||
|
Loading…
x
Reference in New Issue
Block a user