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()

posted @ 2023-11-10 16:56  求隐  阅读(651)  评论(0)    收藏  举报