CMakeLists.txt 22 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549
  1. # Copyright (C) 2018 RDA Technologies Limited and/or its affiliates("RDA").
  2. # All rights reserved.
  3. #
  4. # This software is supplied "AS IS" without any warranties.
  5. # RDA assumes no responsibility or liability for the use of the software,
  6. # conveys no license or title under any patent, copyright, or mask work
  7. # right to the product. RDA reserves the right to make changes in the
  8. # software without notification. RDA also make no representation or
  9. # warranty that such application will be suitable for the specified use
  10. # without further testing or modification.
  11. cmake_minimum_required(VERSION 3.13)
  12. set(SOURCE_TOP_DIR ${CMAKE_CURRENT_SOURCE_DIR})
  13. set(BINARY_TOP_DIR ${CMAKE_CURRENT_BINARY_DIR})
  14. set(CMAKE_C_COMPILER_FORCED 1)
  15. set(CMAKE_CXX_COMPILER_FORCED 1)
  16. add_definitions(-D_WINSOCKAPI_)
  17. #DEFINED BUILD_TARGET
  18. if(DEFINED ENV{BUILD_TARGET})
  19. set(BUILD_TARGET $ENV{BUILD_TARGET})
  20. message("BUILD_TARGET: ${BUILD_TARGET}")
  21. else()
  22. message(FATAL_ERROR "BUILD_TARGET: UNDEFINED")
  23. endif()
  24. #DEFINED CSDK_PRO
  25. if(DEFINED ENV{CSDK_PRO})
  26. set(CSDK_PRO $ENV{CSDK_PRO})
  27. add_definitions(-DCSDK_PRO="${CSDK_PRO}")
  28. message("CSDK_PRO: ${CSDK_PRO}")
  29. else()
  30. message(FATAL_ERROR "CSDK_PRO: UNDEFINED")
  31. endif()
  32. #DEFINED CSDK_VER
  33. if(DEFINED ENV{CSDK_VER})
  34. set(CSDK_VER $ENV{CSDK_VER})
  35. add_definitions(-DCSDK_VER="${CSDK_VER}")
  36. message("CSDK_VER: ${CSDK_VER} ")
  37. else()
  38. message(FATAL_ERROR "CSDK_VER: UNDEFINED")
  39. endif()
  40. #select FOTA_FLAG app or core or all
  41. if(DEFINED ENV{FOTA_FLAG})
  42. set(FOTA_FLAG $ENV{FOTA_FLAG})
  43. set(FOTA_TYPE $ENV{FOTA_TYPE})
  44. if (NOT (${FOTA_FLAG} STREQUAL "fota"))
  45. message(FATAL_ERROR "FOTA_FLAG: ${FOTA_FLAG} != fota")
  46. endif()
  47. if (NOT ((${FOTA_TYPE} STREQUAL "app") OR (${FOTA_TYPE} STREQUAL "core") OR (${FOTA_TYPE} STREQUAL "all")))
  48. message(FATAL_ERROR "FOTA_TYPE: ${FOTA_TYPE} != app or core or all")
  49. endif()
  50. message("${FOTA_FLAG}=${FOTA_TYPE}")
  51. endif()
  52. #select core_type 0=iot_SDK_720U 1:iot_SDK_720U_TTS
  53. if(DEFINED ENV{AM_MODEL})
  54. set(AM_MODEL $ENV{AM_MODEL})
  55. if ((${AM_MODEL} STREQUAL "iot_SDK_720U"))
  56. message("core/iot_SDK_720U")
  57. set(core_type 0)
  58. include(${CMAKE_SOURCE_DIR}/core/${AM_MODEL}/memd/version.cmake)
  59. set(core_name CSDK_RDA8910)
  60. set(core_vername CSDK_${CORE_VER}_RDA8910)
  61. set(core_bin_dir ${CMAKE_SOURCE_DIR}/core/iot_SDK_720U)
  62. set(core_stub_o ${core_bin_dir}/lib/core_stub.o)
  63. include(${core_bin_dir}/memd/core_config.cmake)
  64. include(${core_bin_dir}/memd/partinfo.cmake)
  65. include_directories(${core_bin_dir}/memd)
  66. if(CONFIG_BUILD_LUA)
  67. set(csdk_target Air720U_CSDK_app_${CSDK_PRO})
  68. else()
  69. set(csdk_target Air720U_CSDK_demo_${CSDK_PRO})
  70. endif(CONFIG_BUILD_LUA)
  71. set(APP_IMG_NAME "8915DM_cat1_CSDK")
  72. elseif((${AM_MODEL} STREQUAL "iot_SDK_720U_TTS"))
  73. message("core/iot_SDK_720U_TTS")
  74. set(core_type 1)
  75. add_definitions(-DTTS_ENABLE)
  76. include(${CMAKE_SOURCE_DIR}/core/${AM_MODEL}/memd/version.cmake)
  77. set(core_name CSDK_RDA8910_TTS)
  78. set(core_vername CSDK_${CORE_VER}_RDA8910_TTS)
  79. set(core_bin_dir ${CMAKE_SOURCE_DIR}/core/iot_SDK_720U_TTS)
  80. set(core_stub_o ${core_bin_dir}/lib/core_stub.o)
  81. include(${core_bin_dir}/memd/core_config.cmake)
  82. include(${core_bin_dir}/memd/partinfo.cmake)
  83. include_directories(${core_bin_dir}/memd)
  84. set(csdk_target Air720U_CSDK_TTS_demo_${CSDK_PRO})
  85. set(APP_IMG_NAME "8915DM_cat1_CSDK_TTS")
  86. else()
  87. message(FATAL_ERROR "AM_MODEL: ${AM_MODEL} != iot_SDK_720U_TTS or iot_SDK_720U")
  88. endif()
  89. endif()
  90. set(out_hex_dir ${CMAKE_CURRENT_BINARY_DIR}/hex)
  91. set(out_lib_dir ${CMAKE_CURRENT_BINARY_DIR}/lib)
  92. set(out_rel_dir ${CMAKE_CURRENT_BINARY_DIR}/rel)
  93. set(out_inc_dir ${CMAKE_CURRENT_BINARY_DIR}/include)
  94. set(tools_dir ${CMAKE_CURRENT_SOURCE_DIR}/tools)
  95. set(flash_ldscript ${SOURCE_TOP_DIR}/ldscripts/app_flashimg.ld)
  96. set(file_ldscript ${SOURCE_TOP_DIR}/ldscripts/app_fileimg.ld)
  97. set(cmd_mkappimg dtools mkappimg)
  98. set(pacgen_py ${tools_dir}/pacgen.py)
  99. set(gdbComGen_py ${tools_dir}/gdbComGen.py)
  100. #/*+\DEL\chenzhimin\2020.07.8\ */
  101. # set(pacgen_core_py ${tools_dir}/combine_core.py)
  102. #/*-\DEL\chenzhimin\2020.07.8\ */
  103. include(cmake/toolchain-gcc.cmake)
  104. #/*+\NEW\chenzhimin\2020.07.8\ */
  105. include(cmake/extension.cmake)
  106. include(config.cmake)
  107. if( NOT CONFIG_BOOT_FLASH_ADDRESS )
  108. math(EXPR CONFIG_BOOT_FLASH_ADDRESS "${CONFIG_NOR_PHY_ADDRESS}+${CONFIG_BOOT_FLASH_OFFSET}" OUTPUT_FORMAT HEXADECIMAL)
  109. math(EXPR CONFIG_APP_FLASH_ADDRESS "${CONFIG_NOR_PHY_ADDRESS}+${CONFIG_APP_FLASH_OFFSET}" OUTPUT_FORMAT HEXADECIMAL)
  110. math(EXPR CONFIG_FS_MODEM_FLASH_ADDRESS "${CONFIG_NOR_PHY_ADDRESS}+${CONFIG_FS_MODEM_FLASH_OFFSET}" OUTPUT_FORMAT HEXADECIMAL)
  111. math(EXPR CONFIG_FS_SYS_FLASH_ADDRESS "${CONFIG_NOR_PHY_ADDRESS}+${CONFIG_FS_SYS_FLASH_OFFSET}" OUTPUT_FORMAT HEXADECIMAL)
  112. endif()
  113. set(CONFIG_NVBIN_FIXED_SIZE 0x20000)
  114. #/*-\NEW\chenzhimin\2020.07.8\ */
  115. set(BUILD_SHARED_LIBS OFF)
  116. project(core C CXX ASM)
  117. #/*+\NEW\chenzhimin\2020.07.8\ add elua*/
  118. if(CONFIG_BUILD_LUA)
  119. include_directories(components/kernel_inc)
  120. add_definitions(-DAM_LUA_SUPPORT)
  121. math(EXPR CONFIG_LUA_FLASH_ADDRESS "${CONFIG_NOR_PHY_ADDRESS}+${CONFIG_LUA_FLASH_OFFSET}" OUTPUT_FORMAT HEXADECIMAL)
  122. math(EXPR CONFIG_APPIMG_FLASH_SIZE "${CONFIG_LUA_FLASH_OFFSET}-${CONFIG_APPIMG_FLASH_OFFSET}" OUTPUT_FORMAT HEXADECIMAL)
  123. add_subdirectory_if_exist(app/elua)
  124. endif(CONFIG_BUILD_LUA)
  125. #/*-\NEW\chenzhimin\2020.07.8\ add elua*/
  126. include_directories(components/include components/openat_inc)
  127. include_directories(components/newlib/include)
  128. function(cpp_only target file)
  129. add_library(${target} OBJECT ${file})
  130. set_source_files_properties(${file} PROPERTIES LANGUAGE C)
  131. target_compile_options(${target} PRIVATE -E -P -x c)
  132. endfunction()
  133. function(add_appimg target ldscript)
  134. set(gen_ldscript ${target}_ldscript)
  135. set(target_map_file ${out_hex_dir}/${target}.map)
  136. set(target_img_file ${out_hex_dir}/${target}.img)
  137. cpp_only(${gen_ldscript} ${ldscript})
  138. add_executable(${target} ${ARGN} ${core_stub_o})
  139. set_target_properties(${target} PROPERTIES RUNTIME_OUTPUT_DIRECTORY ${out_hex_dir})
  140. target_link_libraries(${target} PRIVATE -T $<TARGET_OBJECTS:${gen_ldscript}>)
  141. target_link_libraries(${target} PRIVATE -Wl,-Map=${target_map_file} -nostdlib -Wl,--gc-sections)
  142. add_custom_command(TARGET ${target} POST_BUILD
  143. COMMAND ${cmd_mkappimg} $<TARGET_FILE:${target}> ${target_img_file}
  144. BYPRODUCTS ${target_img_file} ${target_map_file}
  145. )
  146. endfunction()
  147. #/*+\DEL\chenzhimin\2020.07.8\*/
  148. # configure_file(${SOURCE_TOP_DIR}/components/lib/fdl1.img ${out_hex_dir}/fdl1.img COPYONLY)
  149. # configure_file(${SOURCE_TOP_DIR}/components/lib/fdl2.img ${out_hex_dir}/fdl2.img COPYONLY)
  150. #/*-\DEL\chenzhimin\2020.07.8\*/
  151. #/*+\ADD\chenzhimin\2020.07.8\*/
  152. configure_file(${SOURCE_TOP_DIR}/components/lib/lua.img ${out_hex_dir}/lua.img COPYONLY)
  153. #/*-\ADD\chenzhimin\2020.07.8\*/
  154. #/*+\ADD\chenzhimin\2020.07.8\ add dtools*/
  155. set(dtoolspath ${SOURCE_TOP_DIR}/tools/win32/dtools.exe)
  156. execute_process(
  157. COMMAND ${dtoolspath} pacdump ${core_bin_dir}/${core_name}.pac ${out_hex_dir}/oldpac
  158. OUTPUT_STRIP_TRAILING_WHITESPACE
  159. WORKING_DIRECTORY ${SOURCE_TOP_DIR}
  160. )
  161. #/*-\ADD\chenzhimin\2020.07.8\ add dtools*/
  162. #/*+\DEL\chenzhimin\2020.07.8\*/
  163. # macro(pac_init_fdl cmd pac_config)
  164. # set(${cmd}
  165. # cfg-init --pname UIX8910_MODEM --palias "APPIMG"
  166. # --pversion "8910 MODULE" --version "BP_R1.0.0"
  167. # --flashtype 1 ${pac_config}
  168. # cfg-host-fdl -a ${CONFIG_FDL1_IMAGE_START} -s ${CONFIG_FDL1_IMAGE_SIZE}
  169. # -p ${out_hex_dir}/fdl1.img ${pac_config}
  170. # cfg-fdl2 -a ${CONFIG_FDL2_IMAGE_START} -s ${CONFIG_FDL2_IMAGE_SIZE}
  171. # -p ${out_hex_dir}/fdl2.img ${pac_config}
  172. # )
  173. # endmacro()
  174. #/*-\DEL\chenzhimin\2020.07.8\*/
  175. #/*+\ADD\chenzhimin\2020.07.8\*/
  176. macro(pac_init_fdl cmd pac_config)
  177. set(${cmd}
  178. cfg-init --pname UIX8910_MODEM --palias "APPIMG"
  179. --pversion "8910 MODULE" --version "BP_R1.0.0"
  180. --flashtype 1 ${pac_config}
  181. cfg-host-fdl -a ${CONFIG_FDL1_IMAGE_START} -s ${CONFIG_FDL1_IMAGE_SIZE}
  182. -p ${out_hex_dir}/oldpac/fdl1.sign.img ${pac_config}
  183. cfg-fdl2 -a ${CONFIG_FDL2_IMAGE_START} -s ${CONFIG_FDL2_IMAGE_SIZE}
  184. -p ${out_hex_dir}/oldpac/fdl2.sign.img ${pac_config}
  185. )
  186. endmacro()
  187. #/*-\ADD\chenzhimin\2020.07.8\*/
  188. if(CONFIG_APPIMG_LOAD_FLASH)
  189. set(target appimg_flash_delete)
  190. set(pac_config ${out_hex_dir}/${target}.json)
  191. set(pac_file ${out_hex_dir}/${target}.pac)
  192. pac_init_fdl(init_fdl ${pac_config})
  193. execute_process(
  194. COMMAND python3 ${pacgen_py} ${init_fdl}
  195. cfg-erase-flash -i ERASE_APPIMG -a ${CONFIG_APPIMG_FLASH_ADDRESS}
  196. -s ${CONFIG_APPIMG_FLASH_SIZE} ${pac_config}
  197. dep-gen --base ${SOURCE_TOP_DIR} ${pac_config}
  198. OUTPUT_VARIABLE pac_dep
  199. OUTPUT_STRIP_TRAILING_WHITESPACE
  200. WORKING_DIRECTORY ${SOURCE_TOP_DIR}
  201. )
  202. add_custom_command(OUTPUT ${pac_file}
  203. COMMAND python3 ${pacgen_py} pac-gen ${pac_config} ${pac_file}
  204. DEPENDS ${pacgen_py} ${pac_config} ${pac_dep}
  205. WORKING_DIRECTORY ${SOURCE_TOP_DIR}
  206. )
  207. add_custom_target(${target}_pacgen ALL DEPENDS ${pac_file})
  208. endif()
  209. if(CONFIG_APPIMG_LOAD_FILE)
  210. set(target appimg_file_delete)
  211. set(pac_config ${out_hex_dir}/${target}.json)
  212. set(pac_file ${out_hex_dir}/${target}.pac)
  213. pac_init_fdl(init_fdl ${pac_config})
  214. execute_process(
  215. COMMAND python3 ${pacgen_py} ${init_fdl}
  216. cfg-del-appimg -i DEL_APPIMG ${pac_config}
  217. dep-gen --base ${SOURCE_TOP_DIR} ${pac_config}
  218. OUTPUT_VARIABLE pac_dep
  219. OUTPUT_STRIP_TRAILING_WHITESPACE
  220. WORKING_DIRECTORY ${SOURCE_TOP_DIR}
  221. )
  222. add_custom_command(OUTPUT ${pac_file}
  223. COMMAND python3 ${pacgen_py} pac-gen ${pac_config} ${pac_file}
  224. DEPENDS ${pacgen_py} ${pac_config} ${pac_dep}
  225. WORKING_DIRECTORY ${SOURCE_TOP_DIR}
  226. )
  227. add_custom_target(${target}_pacgen ALL DEPENDS ${pac_file})
  228. endif()
  229. add_subdirectory_if_exist(components/ril)
  230. add_subdirectory_if_exist(api)
  231. add_subdirectory_if_exist(../../../lua, lua)
  232. add_subdirectory_if_exist(../../../luat, luat)
  233. #/*+\ADD\chenzhimin\2020.07.9\*/
  234. if( CONFIG_BUILD_APP_SSL OR
  235. CONFIG_BUILD_APP_FTP OR
  236. CONFIG_BUILD_APP_HTTP OR
  237. CONFIG_BUILD_APP_LITTLEVGL OR
  238. CONFIG_BUILD_APP_MQTT OR
  239. CONFIG_BUILD_APP_OLED_SSD1306 OR
  240. CONFIG_BUILD_APP_OneWire)
  241. add_subdirectory_if_exist(app)
  242. endif()
  243. #/*-\ADD\chenzhimin\2020.07.9\*/
  244. set(target ${csdk_target})
  245. set(hex_bin_dir ${CMAKE_SOURCE_DIR}/hex/${target})
  246. set(hex_map_dir ${CMAKE_SOURCE_DIR}/hex/${target}_map)
  247. set(core_map_dir ${core_bin_dir}_map)
  248. set(hex_app_file ${hex_bin_dir}/${target}_APP.pac)
  249. if(CONFIG_APPIMG_LOAD_FILE)
  250. set(pac_delete_file ${out_hex_dir}/appimg_file_delete.pac)
  251. set(hex_delete_file ${hex_bin_dir}/appimg_file_delete.pac)
  252. elseif(CONFIG_APPIMG_LOAD_FLASH)
  253. set(pac_delete_file ${out_hex_dir}/appimg_flash_delete.pac)
  254. set(hex_delete_file ${hex_bin_dir}/appimg_flash_delete.pac)
  255. endif()
  256. set(hex_app_with_core_file ${hex_bin_dir}/${target}.pac)
  257. set(hex_map_file ${hex_map_dir}/${core_name}.map)
  258. set(hex_elf_file ${hex_map_dir}/${core_name}.elf)
  259. if(CONFIG_APPIMG_LOAD_FLASH)
  260. if(CONFIG_BUILD_LUA)
  261. add_subdirectory_if_exist(app/elua/user)
  262. else()
  263. add_subdirectory_if_exist(demo/${BUILD_TARGET})
  264. endif(CONFIG_BUILD_LUA)
  265. add_subdirectory_if_exist(app/${BUILD_TARGET})
  266. target_link_libraries(${target} PRIVATE api)
  267. target_link_libraries(${target} PRIVATE ../../../lua)
  268. target_link_libraries(${target} PRIVATE ../../../luat)
  269. #/*+\ADD\chenzhimin\2020.07.9\*/
  270. if( CONFIG_BUILD_APP_SSL OR
  271. CONFIG_BUILD_APP_FTP OR
  272. CONFIG_BUILD_APP_HTTP OR
  273. CONFIG_BUILD_APP_LITTLEVGL OR
  274. CONFIG_BUILD_APP_MQTT OR
  275. CONFIG_BUILD_APP_OLED_SSD1306 OR
  276. CONFIG_BUILD_APP_OneWire)
  277. target_link_libraries(${target} PRIVATE app)
  278. endif()
  279. #/*-\ADD\chenzhimin\2020.07.9\*/
  280. target_link_libraries(${target} PRIVATE ${libc_file_name} ${libm_file_name} ${libgcc_file_name})
  281. #/*+\DEL\chenzhimin\2020.07.8\*/
  282. # set(pac_config ${out_hex_dir}/${target}.json)
  283. #/*-\DEL\chenzhimin\2020.07.8\*/
  284. #/*+\ADD\chenzhimin\2020.07.8\*/
  285. set(pac_config ${out_hex_dir}/${target}_APP.json)
  286. set(pac_all_config ${out_hex_dir}/${target}.json)
  287. #/*-\ADD\chenzhimin\2020.07.8\*/
  288. set(pac_file ${out_hex_dir}/${target}_APP.pac)
  289. set(pac_file_with_core ${out_hex_dir}/${target}.pac)
  290. pac_init_fdl(init_fdl ${pac_config})
  291. #/*+\ADD\chenzhimin\2020.07.8\*/
  292. pac_init_fdl(init_all_fdl ${pac_all_config})
  293. if(CONFIG_BUILD_LUA)
  294. set(pac_app_8910
  295. cfg-image -i APPIMG -a ${CONFIG_APPIMG_FLASH_ADDRESS} -s ${CONFIG_APPIMG_FLASH_SIZE}
  296. -p ${out_hex_dir}/${target}.img ${pac_config}
  297. cfg-image -i LUA -a ${CONFIG_LUA_FLASH_ADDRESS} -s ${CONFIG_LUA_FLASH_SIZE}
  298. -p ${out_hex_dir}/lua.img ${pac_config}
  299. )
  300. set(pac_all_8910
  301. cfg-image -i APPIMG -a ${CONFIG_APPIMG_FLASH_ADDRESS} -s ${CONFIG_APPIMG_FLASH_SIZE}
  302. -p ${out_hex_dir}/${target}.img ${pac_all_config}
  303. cfg-image -i LUA -a ${CONFIG_LUA_FLASH_ADDRESS} -s ${CONFIG_LUA_FLASH_SIZE}
  304. -p ${out_hex_dir}/lua.img ${pac_all_config}
  305. )
  306. else()
  307. set(pac_app_8910
  308. cfg-image -i APPIMG -a ${CONFIG_APPIMG_FLASH_ADDRESS} -s ${CONFIG_APPIMG_FLASH_SIZE}
  309. -p ${out_hex_dir}/${target}.img ${pac_config}
  310. )
  311. set(pac_all_8910
  312. cfg-image -i APPIMG -a ${CONFIG_APPIMG_FLASH_ADDRESS} -s ${CONFIG_APPIMG_FLASH_SIZE}
  313. -p ${out_hex_dir}/${target}.img ${pac_all_config}
  314. )
  315. endif(CONFIG_BUILD_LUA)
  316. execute_process(
  317. COMMAND python3 ${pacgen_py}
  318. ${init_fdl}
  319. ${pac_app_8910}
  320. dep-gen --base ${SOURCE_TOP_DIR} ${pac_config}
  321. OUTPUT_VARIABLE pac_dep
  322. OUTPUT_STRIP_TRAILING_WHITESPACE
  323. WORKING_DIRECTORY ${SOURCE_TOP_DIR}
  324. )
  325. #/*-\ADD\chenzhimin\2020.07.8\*/
  326. #/*+\DEL\chenzhimin\2020.07.8\*/
  327. # execute_process(
  328. # COMMAND python3 ${pacgen_py} ${init_fdl}
  329. # cfg-image -i APPIMG -a ${CONFIG_APPIMG_FLASH_ADDRESS} -s ${CONFIG_APPIMG_FLASH_SIZE}
  330. # -p ${out_hex_dir}/${target}.img ${pac_config}
  331. # dep-gen --base ${SOURCE_TOP_DIR} ${pac_config}
  332. # OUTPUT_VARIABLE pac_dep
  333. # OUTPUT_STRIP_TRAILING_WHITESPACE
  334. # WORKING_DIRECTORY ${SOURCE_TOP_DIR}
  335. # )
  336. #/*-\DEL\chenzhimin\2020.07.8\*/
  337. add_custom_command(OUTPUT ${pac_file}
  338. COMMAND python3 ${pacgen_py} pac-gen ${pac_config} ${pac_file}
  339. DEPENDS ${pacgen_py} ${pac_config} ${pac_dep}
  340. WORKING_DIRECTORY ${SOURCE_TOP_DIR}
  341. )
  342. message(!!!!!!!!!!!!!!!!!!!!!!${pac_file_with_core})
  343. #/*+\DEL\chenzhimin\2020.07.8\*/
  344. # ##+ zhuwangbin 2020-6-30 add sffs.img
  345. # if (EXISTS ${out_hex_dir}/sffs.img)
  346. # add_custom_command(OUTPUT ${pac_file_with_core}
  347. # COMMAND python3 ${pacgen_core_py} ${out_hex_dir}/${target}.img ${pac_file_with_core} ${TTS_ENABLE} ${out_hex_dir}/sffs.img
  348. # DEPENDS ${pacgen_core_py} ${pac_dep}
  349. # WORKING_DIRECTORY ${SOURCE_TOP_DIR})
  350. # else()
  351. # add_custom_command(OUTPUT ${pac_file_with_core}
  352. # COMMAND python3 ${pacgen_core_py} ${out_hex_dir}/${target}.img ${pac_file_with_core} ${TTS_ENABLE} NULL
  353. # DEPENDS ${pacgen_core_py} ${pac_dep}
  354. # WORKING_DIRECTORY ${SOURCE_TOP_DIR})
  355. # endif()
  356. # ##- zhuwangbin 2020-6-30 add sffs.img
  357. #/*-\DEL\chenzhimin\2020.07.8\*/
  358. #/*+\ADD\chenzhimin\2020.07.8\*/
  359. pac_nvitem_8910(nvitem_all_8910 ${pac_all_config})
  360. set(pac_other_8910
  361. cfg-phase-check ${pac_all_config}
  362. cfg-image -i BOOTLOADER -a ${CONFIG_BOOT_FLASH_ADDRESS} -s ${CONFIG_BOOT_FLASH_SIZE}
  363. -p ${out_hex_dir}/oldpac/boot.sign.img ${pac_all_config}
  364. cfg-image -i AP -a ${CONFIG_APP_FLASH_ADDRESS} -s ${CONFIG_APP_FLASH_SIZE}
  365. -p ${out_hex_dir}/oldpac/${APP_IMG_NAME}.sign.img ${pac_all_config}
  366. cfg-image -i PS -a ${CONFIG_FS_MODEM_FLASH_ADDRESS} -s ${CONFIG_FS_MODEM_FLASH_SIZE}
  367. -p ${out_hex_dir}/oldpac/cat1_64X128_UIS8915DM_BB_RF_SingleSim.img ${pac_all_config}
  368. ${pac_all_8910}
  369. cfg-image -i SFFS -a ${CONFIG_FS_SYS_FLASH_ADDRESS} -s ${CONFIG_FS_SYS_FLASH_SIZE}
  370. -p ${out_hex_dir}/oldpac/sffs.img ${pac_all_config}
  371. cfg-erase-flash -i FLASH -a 0xFE000001 -s 0 ${pac_all_config}
  372. cfg-nv -s ${CONFIG_NVBIN_FIXED_SIZE}
  373. -p ${out_hex_dir}/oldpac/cat1_64X128_UIS8915DM_BB_RF_SingleSim_nvitem.bin ${pac_all_config}
  374. )
  375. execute_process(
  376. COMMAND python3 ${pacgen_py}
  377. ${init_all_fdl}
  378. ${nvitem_all_8910}
  379. ${pac_other_8910}
  380. dep-gen --base ${SOURCE_TOP_DIR} ${pac_all_config}
  381. OUTPUT_VARIABLE pac_dep
  382. OUTPUT_STRIP_TRAILING_WHITESPACE
  383. WORKING_DIRECTORY ${SOURCE_TOP_DIR}
  384. )
  385. add_custom_command(OUTPUT ${pac_file_with_core}
  386. COMMAND python3 ${pacgen_py} pac-gen ${pac_all_config} ${pac_file_with_core}
  387. DEPENDS ${pacgen_py} ${pac_all_config} ${pac_dep}
  388. WORKING_DIRECTORY ${SOURCE_TOP_DIR}
  389. )
  390. #/*-\ADD\chenzhimin\2020.07.8\*/
  391. add_custom_target(${target}_pacgen ALL DEPENDS ${pac_file} ${pac_file_with_core})
  392. endif()
  393. if(CONFIG_APPIMG_LOAD_FILE)
  394. if(CONFIG_BUILD_LUA)
  395. add_subdirectory_if_exist(app/elua/user)
  396. else()
  397. add_subdirectory_if_exist(demo/${BUILD_TARGET})
  398. endif(CONFIG_BUILD_LUA)
  399. target_link_libraries(${target} PRIVATE ${libc_file_name} ${libm_file_name} ${libgcc_file_name})
  400. set(pac_config ${out_hex_dir}/${target}.json)
  401. set(pac_file ${out_hex_dir}/${target}_APP.pac)
  402. set(pac_file_with_core ${out_hex_dir}/${target}.pac)
  403. pac_init_fdl(init_fdl ${pac_config})
  404. execute_process(
  405. COMMAND python3 ${pacgen_py} ${init_fdl}
  406. cfg-pack-file -i APPIMG -p ${out_hex_dir}/${target}.img
  407. -n ${CONFIG_APPIMG_LOAD_FILE_NAME} ${pac_config}
  408. dep-gen --base ${SOURCE_TOP_DIR} ${pac_config}
  409. OUTPUT_VARIABLE pac_dep
  410. OUTPUT_STRIP_TRAILING_WHITESPACE
  411. WORKING_DIRECTORY ${SOURCE_TOP_DIR}
  412. )
  413. add_custom_command(OUTPUT ${pac_file}
  414. COMMAND python3 ${pacgen_py} pac-gen ${pac_config} ${pac_file}
  415. DEPENDS ${pacgen_py} ${pac_config} ${pac_dep}
  416. WORKING_DIRECTORY ${SOURCE_TOP_DIR}
  417. )
  418. add_custom_command(OUTPUT ${pac_file_with_core}
  419. COMMAND python3 ${pacgen_core_py} ${out_hex_dir}/${target}.img ${pac_file_with_core} TTS_ENABLE
  420. DEPENDS ${pacgen_core_py} ${pac_dep}
  421. WORKING_DIRECTORY ${SOURCE_TOP_DIR}
  422. )
  423. add_custom_target(${target}_pacgen ALL DEPENDS ${pac_file} ${pac_file_with_core})
  424. endif()
  425. add_custom_command(OUTPUT ${hex_app_file} ${hex_app_with_core_file} ${hex_delete_file} ${hex_map_file} ${hex_elf_file}
  426. COMMAND ${CMAKE_COMMAND} -E make_directory ${hex_bin_dir}
  427. COMMAND ${CMAKE_COMMAND} -E copy ${pac_file} ${hex_app_file}
  428. COMMAND ${CMAKE_COMMAND} -E copy ${pac_file_with_core} ${hex_app_with_core_file}
  429. COMMAND ${CMAKE_COMMAND} -E make_directory ${hex_map_dir}
  430. COMMAND ${CMAKE_COMMAND} -E copy ${core_map_dir}/${core_name}.map ${hex_map_file}
  431. COMMAND ${CMAKE_COMMAND} -E copy ${core_map_dir}/${core_name}.elf ${hex_elf_file}
  432. COMMAND ${CMAKE_COMMAND} -E copy ${out_hex_dir}/${target}.elf ${hex_map_dir}/app.elf
  433. COMMAND ${CMAKE_COMMAND} -E copy ${out_hex_dir}/${target}.map ${hex_map_dir}/app.map
  434. COMMAND python3 ${gdbComGen_py} ${CMAKE_SOURCE_DIR} /hex/${target}_map/app.elf
  435. DEPENDS ${pac_file} ${pac_file_with_core}
  436. WORKING_DIRECTORY ${CMAKE_SOURCE_DIR})
  437. #/*+\NEW\zhuwangbin\2020.07.1\add dofta.bin */
  438. if(DEFINED ENV{FOTA_TYPE})
  439. set(hex_fota_file ${CSDK_PRO}_${CSDK_VER}_${core_vername}.dfota.bin)
  440. if (${FOTA_TYPE} STREQUAL "all")
  441. add_custom_command(OUTPUT ${hex_fota_file}
  442. COMMAND ${CMAKE_COMMAND} -E copy ${out_hex_dir}/${target}.img ${target}.img
  443. COMMAND ${CMAKE_COMMAND} -E copy ${core_bin_dir}/${core_name}.pac ${core_name}.pac
  444. COMMAND ${CMAKE_COMMAND} -E rename ${target}.img app.bin
  445. COMMAND ${CMAKE_COMMAND} -E rename ${core_name}.pac ${core_name}.bin
  446. COMMAND ${CMAKE_COMMAND} -E tar "cfv" "${hex_bin_dir}.zip" "--format=zip" "${core_name}.bin" "app.bin"
  447. COMMAND ${CMAKE_COMMAND} -E rename ${hex_bin_dir}.zip ${hex_fota_file}
  448. COMMAND ${CMAKE_COMMAND} -E remove [-f] ${core_name}.bin app.bin
  449. DEPENDS ${out_hex_dir}/${target}.img ${hex_app_file} ${hex_app_with_core_file}
  450. WORKING_DIRECTORY ${hex_bin_dir})
  451. add_custom_target(${target}_release ALL DEPENDS ${hex_app_file} ${hex_app_with_core_file} ${hex_map_file} ${hex_elf_file} ${hex_fota_file})
  452. endif()
  453. if (${FOTA_TYPE} STREQUAL "core")
  454. add_custom_command(OUTPUT ${hex_fota_file}
  455. COMMAND ${CMAKE_COMMAND} -E copy ${core_bin_dir}/${core_name}.pac ${core_name}.pac
  456. COMMAND ${CMAKE_COMMAND} -E rename ${core_name}.pac ${core_name}.bin
  457. COMMAND ${CMAKE_COMMAND} -E tar "cfv" "${hex_bin_dir}.zip" "--format=zip" "${core_name}.bin"
  458. COMMAND ${CMAKE_COMMAND} -E rename ${hex_bin_dir}.zip ${hex_fota_file}
  459. COMMAND ${CMAKE_COMMAND} -E remove [-f] ${core_name}.bin
  460. DEPENDS ${out_hex_dir}/${target}.img ${hex_app_file} ${hex_app_with_core_file}
  461. WORKING_DIRECTORY ${hex_bin_dir})
  462. add_custom_target(${target}_release ALL DEPENDS ${hex_app_file} ${hex_app_with_core_file} ${hex_map_file} ${hex_elf_file} ${hex_fota_file})
  463. endif()
  464. if (${FOTA_TYPE} STREQUAL "app")
  465. add_custom_command(OUTPUT ${hex_fota_file}
  466. COMMAND ${CMAKE_COMMAND} -E copy ${out_hex_dir}/${target}.img ${target}.img
  467. COMMAND ${CMAKE_COMMAND} -E rename ${target}.img app.bin
  468. COMMAND ${CMAKE_COMMAND} -E tar "cfv" "${hex_bin_dir}.zip" "--format=zip" "app.bin"
  469. COMMAND ${CMAKE_COMMAND} -E rename ${hex_bin_dir}.zip ${hex_fota_file}
  470. COMMAND ${CMAKE_COMMAND} -E remove [-f] app.bin
  471. DEPENDS ${out_hex_dir}/${target}.img ${hex_app_file} ${hex_app_with_core_file}
  472. WORKING_DIRECTORY ${hex_bin_dir})
  473. add_custom_target(${target}_release ALL DEPENDS ${hex_app_file} ${hex_app_with_core_file} ${hex_map_file} ${hex_elf_file} ${hex_fota_file})
  474. endif()
  475. else()
  476. add_custom_target(${target}_release ALL DEPENDS ${hex_app_file} ${hex_app_with_core_file} ${hex_map_file} ${hex_elf_file})
  477. endif()
  478. #/*-\NEW\zhuwangbin\2020.07.1\add dofta.bin */