mirror of
https://github.com/MrUnknownDE/OpenIris-ESPIDF.git
synced 2026-04-21 15:33:44 +02:00
Add a tool to easily switch between board configs, cleanup configs
This commit is contained in:
2433
sdkconfig.base_defaults
Normal file
2433
sdkconfig.base_defaults
Normal file
File diff suppressed because it is too large
Load Diff
@@ -1,23 +1,16 @@
|
|||||||
CONFIG_BLINK_LED_GPIO=y
|
|
||||||
CONFIG_BLINK_GPIO=38
|
CONFIG_BLINK_GPIO=38
|
||||||
|
|
||||||
CONFIG_ESP32S3_DEFAULT_CPU_FREQ_240=y
|
CONFIG_ESP32S3_DEFAULT_CPU_FREQ_240=y
|
||||||
CONFIG_ESP32S3_SPIRAM_SUPPORT=y
|
CONFIG_ESP32S3_SPIRAM_SUPPORT=y
|
||||||
# CONFIG_SPIRAM_MODE_QUAD is not set
|
|
||||||
CONFIG_SPIRAM_MODE_OCT=y
|
|
||||||
|
|
||||||
# CONFIG_ESPTOOLPY_FLASHSIZE_1MB is not set
|
# CONFIG_ESPTOOLPY_FLASHSIZE_1MB is not set
|
||||||
# CONFIG_ESPTOOLPY_FLASHSIZE_2MB is not set
|
# CONFIG_ESPTOOLPY_FLASHSIZE_2MB is not set
|
||||||
CONFIG_ESPTOOLPY_FLASHSIZE_4MB = y
|
CONFIG_ESPTOOLPY_FLASHSIZE_4MB=y
|
||||||
# CONFIG_ESPTOOLPY_FLASHSIZE_8MB is not set
|
# CONFIG_ESPTOOLPY_FLASHSIZE_8MB is not set
|
||||||
# CONFIG_ESPTOOLPY_FLASHSIZE_16MB is not set
|
# CONFIG_ESPTOOLPY_FLASHSIZE_16MB is not set
|
||||||
# CONFIG_ESPTOOLPY_FLASHSIZE_32MB is not set
|
# CONFIG_ESPTOOLPY_FLASHSIZE_32MB is not set
|
||||||
# CONFIG_ESPTOOLPY_FLASHSIZE_64MB is not set
|
# CONFIG_ESPTOOLPY_FLASHSIZE_64MB is not set
|
||||||
# CONFIG_ESPTOOLPY_FLASHSIZE_128MB is not set
|
# CONFIG_ESPTOOLPY_FLASHSIZE_128MB is not set
|
||||||
CONFIG_ESPTOOLPY_FLASHSIZE="4MB"
|
CONFIG_ESPTOOLPY_FLASHSIZE="4MB"
|
||||||
|
|
||||||
# Camera sensor pinout configuration
|
# Camera sensor pinout configuration
|
||||||
#
|
|
||||||
CONFIG_CAMERA_MODULE_NAME="SWROOM_BABBLE_S3"
|
CONFIG_CAMERA_MODULE_NAME="SWROOM_BABBLE_S3"
|
||||||
CONFIG_PWDN_GPIO_NUM=-1
|
CONFIG_PWDN_GPIO_NUM=-1
|
||||||
CONFIG_RESET_GPIO_NUM=-1
|
CONFIG_RESET_GPIO_NUM=-1
|
||||||
@@ -36,11 +29,9 @@ CONFIG_VSYNC_GPIO_NUM=21
|
|||||||
CONFIG_HREF_GPIO_NUM=14
|
CONFIG_HREF_GPIO_NUM=14
|
||||||
CONFIG_PCLK_GPIO_NUM=7
|
CONFIG_PCLK_GPIO_NUM=7
|
||||||
# end of Camera sensor pinout configuration
|
# end of Camera sensor pinout configuration
|
||||||
|
|
||||||
CONFIG_FLASHMODE_QIO=y
|
CONFIG_FLASHMODE_QIO=y
|
||||||
# CONFIG_FLASHMODE_QOUT is not set
|
# CONFIG_FLASHMODE_QOUT is not set
|
||||||
# CONFIG_FLASHMODE_DIO is not set
|
# CONFIG_FLASHMODE_DIO is not set
|
||||||
|
|
||||||
CONFIG_SPIRAM_MODE_QUAD=y
|
CONFIG_SPIRAM_MODE_QUAD=y
|
||||||
# CONFIG_SPIRAM_MODE_OCT is not set
|
# CONFIG_SPIRAM_MODE_OCT is not set
|
||||||
CONFIG_SPIRAM_TYPE_AUTO=y
|
CONFIG_SPIRAM_TYPE_AUTO=y
|
||||||
@@ -1,12 +1,9 @@
|
|||||||
CONFIG_BLINK_LED_GPIO=y
|
CONFIG_BLINK_LED_GPIO=y
|
||||||
CONFIG_BLINK_GPIO=21
|
CONFIG_BLINK_GPIO=21
|
||||||
|
|
||||||
CONFIG_ESPTOOLPY_FLASHSIZE_8MB=y
|
CONFIG_ESPTOOLPY_FLASHSIZE_8MB=y
|
||||||
|
|
||||||
CONFIG_ESP32S3_DEFAULT_CPU_FREQ_240=y
|
CONFIG_ESP32S3_DEFAULT_CPU_FREQ_240=y
|
||||||
CONFIG_ESP32S3_SPIRAM_SUPPORT=y
|
CONFIG_ESP32S3_SPIRAM_SUPPORT=y
|
||||||
CONFIG_SPIRAM_MODE_OCT=y
|
CONFIG_SPIRAM_MODE_OCT=y
|
||||||
|
|
||||||
# CONFIG_ESPTOOLPY_FLASHSIZE_1MB is not set
|
# CONFIG_ESPTOOLPY_FLASHSIZE_1MB is not set
|
||||||
# CONFIG_ESPTOOLPY_FLASHSIZE_2MB is not set
|
# CONFIG_ESPTOOLPY_FLASHSIZE_2MB is not set
|
||||||
# CONFIG_ESPTOOLPY_FLASHSIZE_4MB is not set
|
# CONFIG_ESPTOOLPY_FLASHSIZE_4MB is not set
|
||||||
@@ -16,9 +13,7 @@ CONFIG_ESPTOOLPY_FLASHSIZE_8MB=y
|
|||||||
# CONFIG_ESPTOOLPY_FLASHSIZE_64MB is not set
|
# CONFIG_ESPTOOLPY_FLASHSIZE_64MB is not set
|
||||||
# CONFIG_ESPTOOLPY_FLASHSIZE_128MB is not set
|
# CONFIG_ESPTOOLPY_FLASHSIZE_128MB is not set
|
||||||
CONFIG_ESPTOOLPY_FLASHSIZE="8MB"
|
CONFIG_ESPTOOLPY_FLASHSIZE="8MB"
|
||||||
|
|
||||||
# Camera sensor pinout configuration
|
# Camera sensor pinout configuration
|
||||||
#
|
|
||||||
CONFIG_CAMERA_MODULE_NAME="ESP32S3_XIAO_SENSE"
|
CONFIG_CAMERA_MODULE_NAME="ESP32S3_XIAO_SENSE"
|
||||||
CONFIG_PWDN_GPIO_NUM=-1
|
CONFIG_PWDN_GPIO_NUM=-1
|
||||||
CONFIG_RESET_GPIO_NUM=-1
|
CONFIG_RESET_GPIO_NUM=-1
|
||||||
@@ -37,12 +32,9 @@ CONFIG_VSYNC_GPIO_NUM=38
|
|||||||
CONFIG_HREF_GPIO_NUM=47
|
CONFIG_HREF_GPIO_NUM=47
|
||||||
CONFIG_PCLK_GPIO_NUM=13
|
CONFIG_PCLK_GPIO_NUM=13
|
||||||
# end of Camera sensor pinout configuration
|
# end of Camera sensor pinout configuration
|
||||||
|
|
||||||
# CONFIG_FLASHMODE_QIO is not set
|
# CONFIG_FLASHMODE_QIO is not set
|
||||||
# CONFIG_FLASHMODE_QOUT is not set
|
# CONFIG_FLASHMODE_QOUT is not set
|
||||||
CONFIG_FLASHMODE_DIO=y
|
CONFIG_FLASHMODE_DIO=y
|
||||||
|
|
||||||
# CONFIG_SPIRAM_MODE_QUAD is not set
|
|
||||||
CONFIG_SPIRAM_MODE_OCT=y
|
CONFIG_SPIRAM_MODE_OCT=y
|
||||||
CONFIG_SPIRAM_TYPE_AUTO=y
|
CONFIG_SPIRAM_TYPE_AUTO=y
|
||||||
# CONFIG_SPIRAM_TYPE_ESPPSRAM16 is not set
|
# CONFIG_SPIRAM_TYPE_ESPPSRAM16 is not set
|
||||||
|
|||||||
@@ -1,14 +0,0 @@
|
|||||||
CONFIG_ESP32_DEFAULT_CPU_FREQ_240=y
|
|
||||||
CONFIG_ESP32S2_DEFAULT_CPU_FREQ_240=y
|
|
||||||
CONFIG_ESP32S3_DEFAULT_CPU_FREQ_240=y
|
|
||||||
|
|
||||||
CONFIG_FREERTOS_HZ=1000
|
|
||||||
|
|
||||||
CONFIG_BLINK_LED_GPIO=y
|
|
||||||
CONFIG_BLINK_GPIO=21
|
|
||||||
|
|
||||||
CONFIG_ESPTOOLPY_FLASHSIZE_8MB=y
|
|
||||||
|
|
||||||
CONFIG_ESP32S3_DEFAULT_CPU_FREQ_240=y
|
|
||||||
CONFIG_ESP32S3_SPIRAM_SUPPORT=y
|
|
||||||
CONFIG_SPIRAM_MODE_OCT=y
|
|
||||||
@@ -1069,9 +1069,11 @@ CONFIG_SPIRAM=y
|
|||||||
#
|
#
|
||||||
# SPI RAM config
|
# SPI RAM config
|
||||||
#
|
#
|
||||||
# CONFIG_SPIRAM_MODE_QUAD is not set
|
CONFIG_SPIRAM_MODE_QUAD=y
|
||||||
CONFIG_SPIRAM_MODE_OCT=y
|
# CONFIG_SPIRAM_MODE_OCT is not set
|
||||||
CONFIG_SPIRAM_TYPE_AUTO=y
|
CONFIG_SPIRAM_TYPE_AUTO=y
|
||||||
|
# CONFIG_SPIRAM_TYPE_ESPPSRAM16 is not set
|
||||||
|
# CONFIG_SPIRAM_TYPE_ESPPSRAM32 is not set
|
||||||
# CONFIG_SPIRAM_TYPE_ESPPSRAM64 is not set
|
# CONFIG_SPIRAM_TYPE_ESPPSRAM64 is not set
|
||||||
CONFIG_SPIRAM_ALLOW_STACK_EXTERNAL_MEMORY=y
|
CONFIG_SPIRAM_ALLOW_STACK_EXTERNAL_MEMORY=y
|
||||||
CONFIG_SPIRAM_CLK_IO=30
|
CONFIG_SPIRAM_CLK_IO=30
|
||||||
@@ -1079,10 +1081,10 @@ CONFIG_SPIRAM_CS_IO=26
|
|||||||
# CONFIG_SPIRAM_XIP_FROM_PSRAM is not set
|
# CONFIG_SPIRAM_XIP_FROM_PSRAM is not set
|
||||||
# CONFIG_SPIRAM_FETCH_INSTRUCTIONS is not set
|
# CONFIG_SPIRAM_FETCH_INSTRUCTIONS is not set
|
||||||
# CONFIG_SPIRAM_RODATA is not set
|
# CONFIG_SPIRAM_RODATA is not set
|
||||||
|
# CONFIG_SPIRAM_SPEED_120M is not set
|
||||||
CONFIG_SPIRAM_SPEED_80M=y
|
CONFIG_SPIRAM_SPEED_80M=y
|
||||||
# CONFIG_SPIRAM_SPEED_40M is not set
|
# CONFIG_SPIRAM_SPEED_40M is not set
|
||||||
CONFIG_SPIRAM_SPEED=80
|
CONFIG_SPIRAM_SPEED=80
|
||||||
# CONFIG_SPIRAM_ECC_ENABLE is not set
|
|
||||||
CONFIG_SPIRAM_BOOT_INIT=y
|
CONFIG_SPIRAM_BOOT_INIT=y
|
||||||
# CONFIG_SPIRAM_IGNORE_NOTFOUND is not set
|
# CONFIG_SPIRAM_IGNORE_NOTFOUND is not set
|
||||||
# CONFIG_SPIRAM_USE_MEMMAP is not set
|
# CONFIG_SPIRAM_USE_MEMMAP is not set
|
||||||
|
|||||||
@@ -1069,7 +1069,6 @@ CONFIG_SPIRAM=y
|
|||||||
#
|
#
|
||||||
# SPI RAM config
|
# SPI RAM config
|
||||||
#
|
#
|
||||||
# CONFIG_SPIRAM_MODE_QUAD is not set
|
|
||||||
CONFIG_SPIRAM_MODE_OCT=y
|
CONFIG_SPIRAM_MODE_OCT=y
|
||||||
CONFIG_SPIRAM_TYPE_AUTO=y
|
CONFIG_SPIRAM_TYPE_AUTO=y
|
||||||
# CONFIG_SPIRAM_TYPE_ESPPSRAM64 is not set
|
# CONFIG_SPIRAM_TYPE_ESPPSRAM64 is not set
|
||||||
|
|||||||
105
tools/switchBoardType.py
Normal file
105
tools/switchBoardType.py
Normal file
@@ -0,0 +1,105 @@
|
|||||||
|
import os
|
||||||
|
import argparse
|
||||||
|
|
||||||
|
HEADER_COLOR = "\033[95m"
|
||||||
|
OKGREEN = '\033[92m'
|
||||||
|
WARNING = '\033[93m'
|
||||||
|
OKBLUE = '\033[94m'
|
||||||
|
ENDC = '\033[0m'
|
||||||
|
|
||||||
|
sdkconfig_defaults = "sdkconfig.base_defaults"
|
||||||
|
supported_boards = [
|
||||||
|
"xiao-esp32s3",
|
||||||
|
"project_babble"
|
||||||
|
]
|
||||||
|
|
||||||
|
parser = argparse.ArgumentParser()
|
||||||
|
parser.add_argument("-b", "--board", help="Board to switch to", choices=supported_boards)
|
||||||
|
parser.add_argument("--dry-run", help="Dry run, won't modify files", action="store_true", required=False)
|
||||||
|
parser.add_argument("--diff", help="Show the difference between base config and selected board", action="store_true", required=False)
|
||||||
|
args = parser.parse_args()
|
||||||
|
|
||||||
|
|
||||||
|
def get_root_path() -> str:
|
||||||
|
return os.path.split(os.path.dirname(os.path.realpath(__file__)))[0]
|
||||||
|
|
||||||
|
|
||||||
|
def get_main_config_path() -> str:
|
||||||
|
return os.path.join(get_root_path(), "sdkconfig")
|
||||||
|
|
||||||
|
|
||||||
|
def get_board_config_path() -> str:
|
||||||
|
return os.path.join(get_root_path(), f"sdkconfig.board.{args.board}")
|
||||||
|
|
||||||
|
|
||||||
|
def get_base_config_path() -> str:
|
||||||
|
return os.path.join(get_root_path(), sdkconfig_defaults)
|
||||||
|
|
||||||
|
|
||||||
|
def parse_config(config_file) -> dict:
|
||||||
|
config = {}
|
||||||
|
for line in config_file:
|
||||||
|
line = line.strip().split("=")
|
||||||
|
if len(line) == 2:
|
||||||
|
config[line[0]] = line[1]
|
||||||
|
else:
|
||||||
|
# lines without value are usually comments, we're safe to store empty string there
|
||||||
|
config[line[0]] = ""
|
||||||
|
return config
|
||||||
|
|
||||||
|
|
||||||
|
def compute_diff(parsed_base_config: dict, parsed_board_config: dict) -> dict:
|
||||||
|
diff = {}
|
||||||
|
for key in parsed_board_config:
|
||||||
|
if key not in parsed_base_config:
|
||||||
|
if parsed_board_config[key] != "":
|
||||||
|
diff[key] = f"{OKGREEN}+{ENDC} {parsed_board_config[key]}"
|
||||||
|
else:
|
||||||
|
if parsed_board_config[key] != parsed_base_config[key]:
|
||||||
|
diff[key] = f"{OKGREEN}{parsed_base_config[key]}{ENDC} -> {OKBLUE}{parsed_board_config[key]}{ENDC}"
|
||||||
|
return diff
|
||||||
|
|
||||||
|
|
||||||
|
print(f"{OKGREEN}Switching configuration to board:{ENDC} {OKBLUE}{args.board}{ENDC}")
|
||||||
|
print(f"{OKGREEN}Using defaults from :{ENDC} {get_base_config_path()}", )
|
||||||
|
print(f"{OKGREEN}Using board config from :{ENDC} {get_board_config_path()}")
|
||||||
|
|
||||||
|
main_config = open(get_main_config_path(), "w")
|
||||||
|
base_config = open(get_base_config_path(), "r")
|
||||||
|
board_config = open(get_board_config_path(), "r")
|
||||||
|
|
||||||
|
parsed_base_config = parse_config(base_config)
|
||||||
|
parsed_board_config = parse_config(board_config)
|
||||||
|
|
||||||
|
if args.diff:
|
||||||
|
diff = compute_diff(parsed_base_config, parsed_board_config)
|
||||||
|
|
||||||
|
if not diff:
|
||||||
|
print(f"{HEADER_COLOR}[DIFF]{ENDC} Nothing has changed between the base config and {OKBLUE}{args.board}{ENDC} config")
|
||||||
|
else:
|
||||||
|
print(f"{HEADER_COLOR}[DIFF]{ENDC} The following keys have changed between the base config and {OKBLUE}{args.board}{ENDC} config:")
|
||||||
|
for key in diff:
|
||||||
|
print(f"{HEADER_COLOR}[DIFF]{ENDC} {key} : {diff[key]}")
|
||||||
|
|
||||||
|
if not args.dry_run:
|
||||||
|
# the main idea is to always replace the main config with the base config
|
||||||
|
# and then add the board config on top of that, overriding where necessary.
|
||||||
|
# This way we can have known working defaults safe from accidental modifications by espidf
|
||||||
|
# with know working per-board config
|
||||||
|
# and a still modifiable sdkconfig for espidf
|
||||||
|
for key in parsed_board_config:
|
||||||
|
parsed_base_config[key] = parsed_board_config[key]
|
||||||
|
|
||||||
|
print(f"{WARNING}Writing changes to main config file{ENDC}")
|
||||||
|
for key, value in parsed_base_config.items():
|
||||||
|
if value:
|
||||||
|
main_config.write(f"{key}={value}\n")
|
||||||
|
else:
|
||||||
|
main_config.write(f"{key}\n")
|
||||||
|
else:
|
||||||
|
print(f"{WARNING}[DRY-RUN]{ENDC} Skipping writing to files")
|
||||||
|
|
||||||
|
main_config.close()
|
||||||
|
base_config.close()
|
||||||
|
board_config.close()
|
||||||
|
print(f"{OKGREEN}Done. ESP-IDF is setup to build for:{ENDC} {OKBLUE}{args.board}{ENDC}")
|
||||||
Reference in New Issue
Block a user