HPM6750 在 SES 生成工程中 一些 cmake 命令说明
HPM6750 在使用 cmake file 文件生产 SES 工程时,涉及到太多的 cmake 函数
官网并没有给出详细的说明,只能自己慢慢提取官网的 cmake ,然后对自己的文件进行自定义,以下是使用到的记录说明:
修改为 gcc 编译工具链
set(SES_TOOLCHAIN_VARIANT "Andes")
自定义 SES 工程中的 linker script 文件位置
如果使用的是系统自带的板子情况:
set(SEGGER_LINKER_FILE "linker/segger/flash_sdram_xip.icf")
如果使用的是自定义板子的情况
set(SEGGER_LINKER_FILE "${BOARD_SEARCH_PATH}/linker_script/segger/flash_sdram_uf2.icf")
message(STATUS "config board ses project linker file path: ${SEGGER_LINKER_FILE}")
自定义 GNU 工程中的 linker script 文件位置
如果使用的是系统自带的板子情况:(需要使用绝对路径)
set(CUSTOM_GCC_LINKER_FILE linker/segger/flash_sdram_xip.icf)
如果使用的是自定义板子的情况
set(CUSTOM_GCC_LINKER_FILE "${BOARD_SEARCH_PATH}/linker_script/segger/flash_sdram_uf2.icf")
message(STATUS "config board gnu ld linker file path: ${CUSTOM_GCC_LINKER_FILE}")
自定义 SES 中的 debug 工具 为 jlink
sdk_ses_opt_debug_connection(J-Link)
自定义 头文件路径
sdk_inc(inc)
自定义 源文件路径 下面两个都可以添加成功
sdk_app_src(src/main.c)
sdk_src(src/main.c)
自定义添加子文件夹
add_subdirectory(file)
自定义 添加子文件夹
add_subdirectory(subdirectory)
自定义 按照条件 添加子文件夹
add_subdirectory_ifdef(CONFIG_XX subdirectory) // 必须配套使用 set(CONFIG_XX 1) 才能添加成功
自定义 堆栈大小
SET(HEAP_SIZE 0x4000) #segger default heap size 0x4000
SET(STACK_SIZE 0x8000) #segger default stack size 0x4000
调试串口 选项配置
sdk_compile_definitions(-DBOARD_CONSOLE_BASE=HPM_PUART)
sdk_compile_definitions(-DBOARD_CONSOLE_CLK_NAME=clock_puart)
编译优化等级选择 -O1 ~ -O3
sdk_compile_options("-O3")
freertos 功能 编译选项配置
sdk_compile_definitions(-D__freertos_irq_stack_top=_stack)
sdk_compile_definitions(-DCONFIG_FREERTOS=1)
sdk_compile_definitions(-DUSE_NONVECTOR_MODE=1)
sdk_compile_definitions(-DDISABLE_IRQ_PREEMPTIVE=1)
mac 是否使用自动协商功能
sdk_compile_definitions(-D__DISABLE_AUTO_NEGO=0)
使用中断的方式接收网络数据
sdk_compile_definitions(-D__ENABLE_ENET_RECEIVE_INTERRUPT=1)
sdk_compile_definitions(-D__ENABLE_DHCP=0)
phy 芯片类型选择
sdk_compile_definitions(-D__USE_RTL8201=1)
use xip build type config
if("${CMAKE_BUILD_TYPE}" STREQUAL "")
SET(CMAKE_BUILD_TYPE flash_sdram_xip)
endif()
find sdk package
find_package(hpm-sdk REQUIRED HINTS $ENV{HPM_SDK_BASE})
set project name
project(ht901_host_iap)
set ses project
generate_ses_project()
本文来自博客园,作者:求隐,转载请注明原文链接:https://www.cnblogs.com/duguqiuying/articles/17824497.html

浙公网安备 33010602011771号