添加自动化编译脚本。使用样例:
$ get_idf $ ./.dev-evb_s3.sh $ idf.py -p /dev/ttyUSB0 build size flash monitor
This commit is contained in:
20
.dev-evb_c2.sh
Executable file
20
.dev-evb_c2.sh
Executable file
@@ -0,0 +1,20 @@
|
||||
#!/bin/bash
|
||||
|
||||
# 非释放版本
|
||||
DEV_VERSION=1
|
||||
|
||||
# 对应在 sdkconfig_defaults 文件夹中的文件名的字段(对应 6 个字节的固件类型)
|
||||
FW_NAME=ESPEVB
|
||||
|
||||
# 对应在 sdkconfig_defaults 文件夹中的文件名的字段(芯片型号)
|
||||
CHIP_NAME=esp32c2
|
||||
|
||||
# 对应在 sdkconfig_defaults 文件夹中的文件名的字段(产品标识)
|
||||
ADDITIONAL=_eFly
|
||||
|
||||
# 文件名识别版本号(需要与实际版本严格对应)
|
||||
FW_VERSION_MAIN=6
|
||||
FW_VERSION_MINOR=1
|
||||
FW_VERSION_BUILD=0
|
||||
|
||||
. .sub-release.sh
|
||||
20
.dev-evb_c3.sh
Executable file
20
.dev-evb_c3.sh
Executable file
@@ -0,0 +1,20 @@
|
||||
#!/bin/bash
|
||||
|
||||
# 非释放版本
|
||||
DEV_VERSION=1
|
||||
|
||||
# 对应在 sdkconfig_defaults 文件夹中的文件名的字段(对应 6 个字节的固件类型)
|
||||
FW_NAME=ESPEVB
|
||||
|
||||
# 对应在 sdkconfig_defaults 文件夹中的文件名的字段(芯片型号)
|
||||
CHIP_NAME=esp32c3
|
||||
|
||||
# 对应在 sdkconfig_defaults 文件夹中的文件名的字段(产品标识)
|
||||
ADDITIONAL=_ledstrip
|
||||
|
||||
# 文件名识别版本号(需要与实际版本严格对应)
|
||||
FW_VERSION_MAIN=6
|
||||
FW_VERSION_MINOR=1
|
||||
FW_VERSION_BUILD=0
|
||||
|
||||
. .sub-release.sh
|
||||
20
.dev-evb_s3.sh
Executable file
20
.dev-evb_s3.sh
Executable file
@@ -0,0 +1,20 @@
|
||||
#!/bin/bash
|
||||
|
||||
# 非释放版本
|
||||
DEV_VERSION=1
|
||||
|
||||
# 对应在 sdkconfig_defaults 文件夹中的文件名的字段(对应 6 个字节的固件类型)
|
||||
FW_NAME=ESPEVB
|
||||
|
||||
# 对应在 sdkconfig_defaults 文件夹中的文件名的字段(芯片型号)
|
||||
CHIP_NAME=esp32s3
|
||||
|
||||
# 对应在 sdkconfig_defaults 文件夹中的文件名的字段(产品标识)
|
||||
ADDITIONAL=_evb
|
||||
|
||||
# 文件名识别版本号(需要与实际版本严格对应)
|
||||
FW_VERSION_MAIN=6
|
||||
FW_VERSION_MINOR=1
|
||||
FW_VERSION_BUILD=0
|
||||
|
||||
. .sub-release.sh
|
||||
105
.sub-release.sh
Executable file
105
.sub-release.sh
Executable file
@@ -0,0 +1,105 @@
|
||||
#!/bin/bash
|
||||
|
||||
if [ -n "$(git status --porcelain)" ]; then
|
||||
if [ -z ${DEV_VERSION} ] && [ "$1" != "menuconfig" ]; then
|
||||
echo -e "\033[31m[ERROR]\033[0m ${BASH_SOURCE}:${LINENO}: PLEASE COMMIT YOUR CHANGE FIRST!!!"
|
||||
exit 1
|
||||
fi
|
||||
fi
|
||||
|
||||
SAVE_FLAG=0
|
||||
if [ $# -eq 1 ]; then
|
||||
if [ "$1" != "save" ] && [ "$1" != "menuconfig" ]; then
|
||||
echo -e "\033[31m[ERROR]\033[0m ${BASH_SOURCE}:${LINENO}: Input parameter 'save' to save output file or 'menuconfig' to set configuration"
|
||||
exit 1
|
||||
fi
|
||||
SAVE_FLAG=1
|
||||
fi
|
||||
|
||||
# 固定变量
|
||||
RELEASE_DIR=release
|
||||
GIT_TIME=$(git log -1 --format="%at" | xargs -I{} date -d @{} +%Y%m%d_%H%M)
|
||||
GIT_HASH=$(git -C . log -1 --format="%h")
|
||||
if [ -z ${DEV_VERSION} ]; then
|
||||
GIT_RELEASE_CODE=${GIT_TIME}-${GIT_HASH}
|
||||
else
|
||||
GIT_RELEASE_CODE="(Development_version)"
|
||||
fi
|
||||
RELEASE_NAME=${FW_NAME}-${CHIP_NAME}-${GIT_RELEASE_CODE}-v${FW_VERSION_MAIN}.${FW_VERSION_MINOR}.${FW_VERSION_BUILD}
|
||||
RELEASE_PRO_FILE=${RELEASE_DIR}/Release-pro-${RELEASE_NAME}.bin
|
||||
RELEASE_OTA_FILE=${RELEASE_DIR}/Release-ota-${RELEASE_NAME}.bin
|
||||
SDK_CONFIG_FILE=sdkconfig_defaults/sdkconfig.release_${FW_NAME}_${CHIP_NAME}${ADDITIONAL}.defaults
|
||||
|
||||
|
||||
if [ ! -f ${RELEASE_OTA_FILE} ] || [ ! -f ${RELEASE_PRO_FILE} ] || [ "$1" != "save" ]; then
|
||||
|
||||
# 检查配置文件是否存在
|
||||
if [ ! -f ${SDK_CONFIG_FILE} ]; then
|
||||
echo -e "\033[31m[ERROR]\033[0m ${BASH_SOURCE}:${LINENO}: No such sdkconfig file '${SDK_CONFIG_FILE}'"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
# 删除输出目录下旧的临时输出文件
|
||||
mkdir -p ${RELEASE_DIR} && rm -f `find ${RELEASE_DIR} -maxdepth 1 -type f -name "*.bin"`
|
||||
|
||||
# 生成的头文件用于在编译阶段检查文件名与版本号的一致性
|
||||
echo -e \
|
||||
"/* Automatically generated file; DO NOT EDIT. */\r\n\r\n"\
|
||||
"#pragma once\r\n\r\n"\
|
||||
"#define FW_VERSION_MAIN ${FW_VERSION_MAIN} /* --------------------------------================================ 请检查版本号!! ================================-------------------------------- */\r\n"\
|
||||
"#define FW_VERSION_MINOR ${FW_VERSION_MINOR} /* --------------------------------================================ 请检查版本号!! ================================-------------------------------- */\r\n"\
|
||||
"#define FW_VERSION_BUILD ${FW_VERSION_BUILD} /* --------------------------------================================ 请检查版本号!! ================================-------------------------------- */\r\n"\
|
||||
"#define FW_RELEASE_CODE \"${GIT_RELEASE_CODE}\""\
|
||||
> app/config/version_build.h
|
||||
|
||||
# 执行完整编译
|
||||
if [ "$1" == "menuconfig" ]; then
|
||||
idf.py -D SDKCONFIG_DEFAULTS="${SDK_CONFIG_FILE}" set-target ${CHIP_NAME} menuconfig || exit 1
|
||||
exit 0
|
||||
else
|
||||
idf.py -D SDKCONFIG_DEFAULTS="${SDK_CONFIG_FILE}" set-target ${CHIP_NAME} build size || exit 1
|
||||
fi
|
||||
|
||||
# 复制固件文件到固定位置
|
||||
cp build/project.bin ${RELEASE_OTA_FILE} || exit 1
|
||||
|
||||
# 合并为完整量产包并输出到固定位置
|
||||
esptool.py \
|
||||
--chip ${CHIP_NAME} merge_bin \
|
||||
-o ${RELEASE_PRO_FILE} \
|
||||
0x0 build/bootloader/bootloader.bin \
|
||||
0x8000 build/partition_table/partition-table.bin \
|
||||
0x65000 build/ota_data_initial.bin \
|
||||
0x70000 build/project.bin \
|
||||
|| exit 1
|
||||
|
||||
fi
|
||||
|
||||
# 显示执行结果
|
||||
echo -e "\n\x1b[33m[COMPLETE]\x1b[0m"
|
||||
echo -e "Latest copy folder: \x1b[34m$(readlink -e ${RELEASE_DIR}/)/\x1b[0m"
|
||||
echo -e "Release ota packet: \x1b[34m${RELEASE_OTA_FILE}\x1b[0m"
|
||||
echo -e "Release production packet: \x1b[34m${RELEASE_PRO_FILE}\x1b[0m"
|
||||
|
||||
RELEASE_DIR=${RELEASE_DIR}/${FW_NAME}
|
||||
RELEASE_OTA_FILE_SAVE=${RELEASE_DIR}/$(basename ${RELEASE_OTA_FILE})
|
||||
RELEASE_PRO_FILE_SAVE=${RELEASE_DIR}/$(basename ${RELEASE_PRO_FILE})
|
||||
|
||||
if [ "${SAVE_FLAG}" == "0" ]; then
|
||||
|
||||
if [ ! -f ${RELEASE_OTA_FILE_SAVE} ] || [ ! -f ${RELEASE_PRO_FILE_SAVE} ]; then
|
||||
echo -e "To save these release files, run this command:\r\n${0} save"
|
||||
fi
|
||||
|
||||
else
|
||||
|
||||
# 将固定位置的 升级包和量产包 保存到对应的固件类型目录中
|
||||
mkdir -p ${RELEASE_DIR} || exit 1
|
||||
if [ ! -f ${RELEASE_OTA_FILE_SAVE} ] || [ ! -f ${RELEASE_PRO_FILE_SAVE} ]; then
|
||||
cp ${RELEASE_OTA_FILE} ${RELEASE_OTA_FILE_SAVE} || exit 1
|
||||
cp ${RELEASE_PRO_FILE} ${RELEASE_PRO_FILE_SAVE} || exit 1
|
||||
fi
|
||||
echo -e "Release ota packet: \x1b[34m${RELEASE_OTA_FILE_SAVE}\x1b[0m"
|
||||
echo -e "Release production packet: \x1b[34m${RELEASE_PRO_FILE_SAVE}\x1b[0m"
|
||||
|
||||
fi
|
||||
@@ -0,0 +1,26 @@
|
||||
# This file was generated using idf.py save-defconfig. It can be edited manually.
|
||||
# Espressif IoT Development Framework (ESP-IDF) Project Minimal Configuration
|
||||
#
|
||||
CONFIG_IDF_TARGET="esp32c2"
|
||||
CONFIG_BOOTLOADER_LOG_LEVEL_WARN=y
|
||||
CONFIG_ESPTOOLPY_FLASHSIZE_4MB=y
|
||||
CONFIG_PARTITION_TABLE_CUSTOM=y
|
||||
CONFIG_BOARD_NAME_DEVKIT_ESP32C2=y
|
||||
CONFIG_PRODUCT_ID_SBFWC2=y
|
||||
CONFIG_BT_ENABLED=y
|
||||
CONFIG_BT_BLE_42_FEATURES_SUPPORTED=y
|
||||
CONFIG_BT_LE_50_FEATURE_SUPPORT=n
|
||||
CONFIG_BT_LE_HCI_EVT_BUF_SIZE=257
|
||||
CONFIG_ESP_HTTP_CLIENT_ENABLE_DIGEST_AUTH=y
|
||||
CONFIG_ESP_SLEEP_POWER_DOWN_FLASH=y
|
||||
CONFIG_XTAL_FREQ_26=y
|
||||
CONFIG_ESP_IPC_TASK_STACK_SIZE=1536
|
||||
CONFIG_ESP_TIMER_TASK_STACK_SIZE=2048
|
||||
CONFIG_FREERTOS_HZ=1000
|
||||
CONFIG_FREERTOS_IDLE_TASK_STACKSIZE=768
|
||||
CONFIG_FREERTOS_ENABLE_BACKWARD_COMPATIBILITY=y
|
||||
CONFIG_FREERTOS_TIMER_TASK_PRIORITY=24
|
||||
CONFIG_FREERTOS_TIMER_TASK_STACK_DEPTH=1536
|
||||
CONFIG_FREERTOS_VTASKLIST_INCLUDE_COREID=y
|
||||
CONFIG_FREERTOS_GENERATE_RUN_TIME_STATS=y
|
||||
CONFIG_LOG_DEFAULT_LEVEL_NONE=y
|
||||
@@ -0,0 +1,24 @@
|
||||
# This file was generated using idf.py save-defconfig. It can be edited manually.
|
||||
# Espressif IoT Development Framework (ESP-IDF) Project Minimal Configuration
|
||||
#
|
||||
CONFIG_IDF_TARGET="esp32c3"
|
||||
CONFIG_BOOTLOADER_LOG_LEVEL_WARN=y
|
||||
CONFIG_ESPTOOLPY_FLASHSIZE_4MB=y
|
||||
CONFIG_PARTITION_TABLE_CUSTOM=y
|
||||
CONFIG_PRODUCT_ID_SBLED1=y
|
||||
CONFIG_CAP_LED_STRIP=y
|
||||
CONFIG_LED_STRIP_SKIP_PWRUP=y
|
||||
CONFIG_BT_ENABLED=y
|
||||
CONFIG_BT_BLE_42_FEATURES_SUPPORTED=y
|
||||
CONFIG_ESP_HTTP_CLIENT_ENABLE_DIGEST_AUTH=y
|
||||
CONFIG_ESP_SLEEP_POWER_DOWN_FLASH=y
|
||||
CONFIG_ESP_IPC_TASK_STACK_SIZE=1536
|
||||
CONFIG_ESP_TIMER_TASK_STACK_SIZE=2048
|
||||
CONFIG_FREERTOS_HZ=1000
|
||||
CONFIG_FREERTOS_IDLE_TASK_STACKSIZE=768
|
||||
CONFIG_FREERTOS_ENABLE_BACKWARD_COMPATIBILITY=y
|
||||
CONFIG_FREERTOS_TIMER_TASK_PRIORITY=24
|
||||
CONFIG_FREERTOS_TIMER_TASK_STACK_DEPTH=1536
|
||||
CONFIG_FREERTOS_VTASKLIST_INCLUDE_COREID=y
|
||||
CONFIG_FREERTOS_GENERATE_RUN_TIME_STATS=y
|
||||
CONFIG_LOG_DEFAULT_LEVEL_NONE=y
|
||||
@@ -0,0 +1,29 @@
|
||||
# This file was generated using idf.py save-defconfig. It can be edited manually.
|
||||
# Espressif IoT Development Framework (ESP-IDF) Project Minimal Configuration
|
||||
#
|
||||
CONFIG_IDF_TARGET="esp32s3"
|
||||
CONFIG_BOOTLOADER_LOG_LEVEL_WARN=y
|
||||
CONFIG_ESPTOOLPY_FLASHSIZE_4MB=y
|
||||
CONFIG_PARTITION_TABLE_CUSTOM=y
|
||||
CONFIG_BOARD_NAME_DEVKIT_ESP32S3=y
|
||||
CONFIG_PRODUCT_ID_SBF7V4=y
|
||||
CONFIG_CAP_LED_STRIP=y
|
||||
CONFIG_BUILD_WIFI=y
|
||||
CONFIG_BT_ENABLED=y
|
||||
CONFIG_BT_BLUEDROID_PINNED_TO_CORE_1=y
|
||||
CONFIG_BT_LOG_HCI_TRACE_LEVEL_ERROR=y
|
||||
CONFIG_BT_LOG_APPL_TRACE_LEVEL_ERROR=y
|
||||
CONFIG_BT_BLE_42_FEATURES_SUPPORTED=y
|
||||
CONFIG_BT_CTRL_DFT_TX_POWER_LEVEL_P21=y
|
||||
CONFIG_ESP_HTTP_CLIENT_ENABLE_DIGEST_AUTH=y
|
||||
CONFIG_ESP_SLEEP_POWER_DOWN_FLASH=y
|
||||
CONFIG_ESP_IPC_TASK_STACK_SIZE=1536
|
||||
CONFIG_ESP_TIMER_TASK_STACK_SIZE=2048
|
||||
CONFIG_FREERTOS_HZ=1000
|
||||
CONFIG_FREERTOS_IDLE_TASK_STACKSIZE=1536
|
||||
CONFIG_FREERTOS_ENABLE_BACKWARD_COMPATIBILITY=y
|
||||
CONFIG_FREERTOS_TIMER_TASK_PRIORITY=24
|
||||
CONFIG_FREERTOS_TIMER_TASK_STACK_DEPTH=1536
|
||||
CONFIG_FREERTOS_VTASKLIST_INCLUDE_COREID=y
|
||||
CONFIG_FREERTOS_GENERATE_RUN_TIME_STATS=y
|
||||
CONFIG_LOG_DEFAULT_LEVEL_NONE=y
|
||||
Reference in New Issue
Block a user