在移远CAT1通讯模组的OPNECPU方案的SDK上,不破坏原有的工程结构,添加一个自定义的工程,适配于EC200和EC800系列的基于展锐平台的模组。
1、SDK路径下,如LTE01R02A05_C_SDK_U\components\ql-application目录下新建一个工程文件夹,在文件夹内加入C文件和h文件以及CMakeLists.txt文件,如图
2、CMakeLists.txt需要根据实际情况配置:
# Copyright (C) 2020 QUECTEL Technologies Limited and/or its affiliates("QUECTEL").
# All rights reserved.
#
set(target ql_app_biog)
add_library(${target} STATIC)
set_target_properties(${target} PROPERTIES ARCHIVE_OUTPUT_DIRECTORY ${out_app_lib_dir})
target_compile_definitions(${target} PRIVATE OSI_LOG_TAG=LOG_TAG_QUEC)
target_include_directories(${target} PUBLIC inc)
#target_link_libraries(${target} PRIVATE ql_api_common)
target_sources(${target} PRIVATE
zy_sys_data.c
zy_sys_log_tool.c
zy_sys_log.c
zy_sys_status.c
zy_bsp_init.c
zy_bsp_uart.c
zy_bsp_io.c
zy_bsp_virt_at.c
zy_uart_fun.c
zy_gsm_fun.c
zy_msg_fun.c
zy_can_fun.c
zy_gps_fun.c
zy_fota_fun.c
zy_track_fun.c
zy_test_fun.c
zy_common.c
)
relative_glob(srcs include/*.h src/*.c inc/*.h)
beautify_c_code(${target} ${srcs})
主要是set(target ql_app_hsxf) :定义工程library库名称
以及target_sources(${target} PRIVATE:定义工程要包含的C文件
3、添加工程文件夹
在SDK目录下,如LTE01R02A05_C_SDK_U\components\ql-application\CMakeLists.txt文件添加,参照文件内其它示例即可,如下图:
4、配置项目编译宏参数
在SDK目录如LTE01R02A05_C_SDK_U\components\ql-application\ql_app_feature_config.cmake文件下,增加配置,如下图:
# BIOG项目配置
if(CONFIG_QUEC_PROJECT_FEATURE_UART)
option(QL_APP_FEATURE_BIOG "Enable BIOG" ON)
else()
message(STATUS "FEATURE BIOG is disabled at core!")
option(QL_APP_FEATURE_BIOG "Enable BIOG " OFF)
endif()
message(STATUS "QL_APP_FEATURE_BIOG ${QL_APP_FEATURE_BIOG}")
这里配置成了只要CONFIG_QUEC_PROJECT_FEATURE_UART宏被定义了,就允许项目使能。
5、使能编译项目
在SDK目录,如LTE01R02A02_C_SDK_G\components\ql-application\ql_app_feature_config.h.in文件下,增加配置,如下图:
另外该文件内还可以通过开启或关闭宏定义选择是否开启SDK相应的功能
6、在ql_init文件中添加项目文件初始化函数
LTE01R02A02_C_SDK_G\components\ql-application\init\ql_init.c文件内的int appimg_enter(void *param)函数内部,添加业务逻辑,如创建一个任务。模组上电后,该函数就会被调用。
7、init文件夹下cmake中添加工程libraries依赖
LTE01R02A02_C_SDK_G\components\ql-application\init\CMakeLists.txt文件内添加,如图:
其中ql_app_biog这个宏来源于前文自定义新建的工程文件夹内的cmake文件的定义,两者需保持一致:
至此,一个自定义的工程就创建成功了。在项目根目录使用build_all命令即可编译项目。