设置可高度的Relase版本,不然Usb没法枚举,Debug速度太慢

This commit is contained in:
zqm
2026-04-07 17:09:58 +08:00
parent 380d7e9130
commit faa0b3cb5e
2091 changed files with 23969 additions and 19851 deletions

View File

@@ -0,0 +1,43 @@
# CMake script to patch sections.ld file
# This script adds 64KB alignment after .flash.appdesc section
string(REPLACE "\\" "/" CMAKE_BINARY_DIR "${CMAKE_BINARY_DIR}")
set(SECTIONS_LD "${CMAKE_BINARY_DIR}/esp-idf/esp_system/ld/sections.ld")
if(EXISTS ${SECTIONS_LD})
file(READ ${SECTIONS_LD} CONTENT)
# 检查是否已经应用了修复
if(NOT CONTENT MATCHES "Rust segment overlap fix")
# 查找 .flash.appdesc 段的结束
string(FIND "${CONTENT}" ".flash.appdesc" APPDESC_POS)
if(APPDESC_POS GREATER -1)
# 查找 .flash.appdesc 段的结束
string(FIND "${CONTENT}" "} >default_rodata_seg" APPDESC_END_POS ${APPDESC_POS})
if(APPDESC_END_POS GREATER -1)
# 计算插入位置
math(EXPR INSERT_POS "${APPDESC_END_POS} + 20")
# 在 .flash.appdesc 段结束后添加 64KB 对齐
string(SUBSTRING "${CONTENT}" 0 ${INSERT_POS} CONTENT_HEAD)
string(SUBSTRING "${CONTENT}" ${INSERT_POS} -1 CONTENT_TAIL)
set(NEW_CONTENT "${CONTENT_HEAD}
/* Rust segment overlap fix */
. = ALIGN(0x10000);
${CONTENT_TAIL}")
file(WRITE ${SECTIONS_LD} "${NEW_CONTENT}")
message(STATUS "Applied segment overlap fix: added 64KB alignment after appdesc")
else()
message(WARNING "Could not find .flash.appdesc section end")
endif()
else()
message(WARNING "Could not find .flash.appdesc section")
endif()
else()
message(STATUS "Segment overlap fix already applied")
endif()
else()
message(WARNING "sections.ld not found at ${SECTIONS_LD}")
endif()