Merge branch 'isp_dma_one_frame_v6.1' into 'release/v6.1'

feat(isp): support isp dma input and add example (v6.1)

See merge request espressif/esp-idf!50754
This commit is contained in:
morris
2026-08-28 10:05:35 +08:00
29 changed files with 1436 additions and 28 deletions
+21 -2
View File
@@ -833,7 +833,8 @@ endfunction()
#[[
target_add_binary_data(<target> <embed_file> <embed_type>
[RENAME_TO <symbol>])
[RENAME_TO <symbol>]
[ALIGN <alignment>]
[DEPENDS <dependency>...])
*target[in]*
@@ -853,6 +854,11 @@ endfunction()
Use the given symbol name for the embedded data. If no symbol name is
provided, the embed_file file name will be used instead.
*ALIGN[in,opt]*
Align the embedded data's start symbol to the given positive power
of two.
*DEPENDS[in,opt]*
List of additional dependencies for the generated file containing
@@ -863,7 +869,7 @@ endfunction()
build process.
#]]
function(target_add_binary_data target embed_file embed_type)
cmake_parse_arguments(_ "" "RENAME_TO" "DEPENDS" ${ARGN})
cmake_parse_arguments(_ "" "RENAME_TO;ALIGN" "DEPENDS" ${ARGN})
idf_build_get_property(build_dir BUILD_DIR)
# In cmakev1, the executable target was named "${project}.elf".
@@ -888,11 +894,24 @@ function(target_add_binary_data target embed_file embed_type)
set(rename_to_arg -D "VARIABLE_BASENAME=${__RENAME_TO}")
endif()
set(align_arg)
if(DEFINED __ALIGN)
if(NOT __ALIGN MATCHES "^[1-9][0-9]*$")
message(FATAL_ERROR "ALIGN must be a positive integer")
endif()
math(EXPR alignment_mask "${__ALIGN} & (${__ALIGN} - 1)")
if(NOT alignment_mask EQUAL 0)
message(FATAL_ERROR "ALIGN must be a power of two")
endif()
set(align_arg -D "DATA_ALIGNMENT=${__ALIGN}")
endif()
add_custom_command(OUTPUT "${embed_srcfile}"
COMMAND "${CMAKE_COMMAND}"
-D "DATA_FILE=${embed_file}"
-D "SOURCE_FILE=${embed_srcfile}"
${rename_to_arg}
${align_arg}
-D "FILE_TYPE=${embed_type}"
-P "${idf_path}/tools/cmake/scripts/data_file_embed_asm.cmake"
MAIN_DEPENDENCY "${embed_file}"