@ -6,3 +6,78 @@ zephyr_include_directories(include)
if ( NOT CONFIG_MCUBOOT AND NOT CONFIG_SOC_ESP32_APPCPU AND NOT CONFIG_SOC_ESP32S3_APPCPU )
if ( NOT CONFIG_MCUBOOT AND NOT CONFIG_SOC_ESP32_APPCPU AND NOT CONFIG_SOC_ESP32S3_APPCPU )
zephyr_sources_ifdef ( CONFIG_ESP_SPIRAM esp_psram.c )
zephyr_sources_ifdef ( CONFIG_ESP_SPIRAM esp_psram.c )
endif ( )
endif ( )
# G e t f l a s h s i z e t o u s e i n e s p t o o l a s s t r i n g
math ( EXPR esptoolpy_flashsize "${CONFIG_FLASH_SIZE} / 0x100000" )
# G e t U A R T b a u d r a t e f r o m D T
dt_chosen ( dts_shell_uart PROPERTY "zephyr,shell-uart" )
if ( ${ dts_shell_uart } )
dt_prop ( monitor_baud PATH ${ dts_shell_uart } PROPERTY "current-speed" )
endif ( )
message ( "-- Espressif HAL path: ${ESP_IDF_PATH}" )
if ( CONFIG_ESP_SIMPLE_BOOT OR CONFIG_MCUBOOT )
if ( CONFIG_BUILD_OUTPUT_BIN )
set ( ESPTOOL_PY ${ ESP_IDF_PATH } /tools/esptool_py/esptool.py )
message ( "-- Use the esptool.py: ${ESPTOOL_PY}" )
set ( ELF2IMAGE_ARG "" )
if ( NOT CONFIG_MCUBOOT )
set ( ELF2IMAGE_ARG "--ram-only-header" )
endif ( )
set_property ( GLOBAL APPEND PROPERTY extra_post_build_commands
C O M M A N D $ { P Y T H O N _ E X E C U T A B L E } $ { E S P T O O L _ P Y }
A R G S - - c h i p $ { C O N F I G _ S O C } e l f 2 i m a g e $ { E L F 2 I M A G E _ A R G }
- - f l a s h _ m o d e d i o
- - f l a s h _ f r e q $ { C O N F I G _ E S P T O O L P Y _ F L A S H F R E Q }
- - f l a s h _ s i z e $ { e s p t o o l p y _ f l a s h s i z e } M B
- o $ { C M A K E _ B I N A R Y _ D I R } / z e p h y r / $ { K E R N E L _ B I N _ N A M E }
$ { C M A K E _ B I N A R Y _ D I R } / z e p h y r / $ { K E R N E L _ E L F _ N A M E } )
endif ( )
endif ( )
set_property ( TARGET bintools PROPERTY disassembly_flag_inline_source )
# S e l e c t t h e i m a g e o r i g i n d e p e n d i n g o n t h e b o o t c o n f i g u r a t i o n
if ( CONFIG_SOC_ESP32_APPCPU OR CONFIG_SOC_ESP32S3_APPCPU )
dt_nodelabel ( dts_partition_path NODELABEL "slot0_appcpu_partition" )
elseif ( CONFIG_MCUBOOT OR CONFIG_ESP_SIMPLE_BOOT )
dt_nodelabel ( dts_partition_path NODELABEL "boot_partition" )
else ( )
dt_nodelabel ( dts_partition_path NODELABEL "slot0_partition" )
endif ( )
dt_reg_addr ( image_off PATH ${ dts_partition_path } )
board_finalize_runner_args ( esp32 "--esp-app-address=${image_off}" )
board_finalize_runner_args ( esp32 "--esp-flash-size=${esptoolpy_flashsize}MB" )
board_finalize_runner_args ( esp32 "--esp-flash-freq=${CONFIG_ESPTOOLPY_FLASHFREQ}" )
board_finalize_runner_args ( esp32 "--esp-flash-mode=${CONFIG_ESPTOOLPY_FLASHMODE}" )
board_finalize_runner_args ( esp32 "--esp-monitor-baud=${monitor_baud}" )
message ( "-- Image partition ${dts_partition_path}" )
# L o o k f o r c r o s s r e f e r e n c e s b e t w e e n b o o t l o a d e r s e c t i o n s
if ( CONFIG_MCUBOOT )
message ( "check_callgraph using: ${ESP_IDF_PATH}/tools/ci/check_callgraph.py" )
set_property ( GLOBAL APPEND PROPERTY extra_post_build_commands
C O M M A N D
$ { P Y T H O N _ E X E C U T A B L E } $ { E S P _ I D F _ P A T H } / t o o l s / c i / c h e c k _ c a l l g r a p h . p y
A R G S
- - r t l - d i r s $ { C M A K E _ B I N A R Y _ D I R } / z e p h y r
- - e l f - f i l e $ { C M A K E _ B I N A R Y _ D I R } / z e p h y r / $ { K E R N E L _ E L F _ N A M E }
f i n d - r e f s
- - f r o m - s e c t i o n = ' . i r a m 0 . l o a d e r _ t e x t '
- - t o - s e c t i o n = ' . i r a m 0 . t e x t '
- - e x i t - c o d e )
endif ( )
if ( CONFIG_MCUBOOT )
set ( SOC_LINKER_SCRIPT ${ CMAKE_CURRENT_SOURCE_DIR } /../ ${ CONFIG_SOC } /mcuboot.ld CACHE INTERNAL "" )
elseif ( CONFIG_SOC_ESP32_APPCPU OR CONFIG_SOC_ESP32S3_APPCPU )
set ( SOC_LINKER_SCRIPT ${ CMAKE_CURRENT_SOURCE_DIR } /../ ${ CONFIG_SOC } /default_appcpu.ld CACHE INTERNAL "" )
else ( )
set ( SOC_LINKER_SCRIPT ${ CMAKE_CURRENT_SOURCE_DIR } /../ ${ CONFIG_SOC } /default.ld CACHE INTERNAL "" )
endif ( )