CMake: Separate run-from-RAM and DFU binaries.
PortaPack uses the run-from-RAM build for HackRF mode, but doesn't want the serial number to show up as "RunningFromRAM".
This commit is contained in:
@ -82,7 +82,7 @@ SET(HACKRF_OPTS "-D${BOARD} -DLPC43XX -D${MCU_PARTNO} -DTX_ENABLE -D'VERSION_STR
|
|||||||
|
|
||||||
SET(LDSCRIPT_M4 "-T${PATH_HACKRF_FIRMWARE_COMMON}/${MCU_PARTNO}_M4_memory.ld -Tlibopencm3_lpc43xx_rom_to_ram.ld -T${PATH_HACKRF_FIRMWARE_COMMON}/LPC43xx_M4_M0_image_from_text.ld")
|
SET(LDSCRIPT_M4 "-T${PATH_HACKRF_FIRMWARE_COMMON}/${MCU_PARTNO}_M4_memory.ld -Tlibopencm3_lpc43xx_rom_to_ram.ld -T${PATH_HACKRF_FIRMWARE_COMMON}/LPC43xx_M4_M0_image_from_text.ld")
|
||||||
|
|
||||||
SET(LDSCRIPT_M4_DFU "-T${PATH_HACKRF_FIRMWARE_COMMON}/${MCU_PARTNO}_M4_memory.ld -Tlibopencm3_lpc43xx.ld -T${PATH_HACKRF_FIRMWARE_COMMON}/LPC43xx_M4_M0_image_from_text.ld")
|
SET(LDSCRIPT_M4_RAM "-T${PATH_HACKRF_FIRMWARE_COMMON}/${MCU_PARTNO}_M4_memory.ld -Tlibopencm3_lpc43xx.ld -T${PATH_HACKRF_FIRMWARE_COMMON}/LPC43xx_M4_M0_image_from_text.ld")
|
||||||
|
|
||||||
SET(LDSCRIPT_M0 "-T${PATH_HACKRF_FIRMWARE_COMMON}/LPC43xx_M0_memory.ld -Tlibopencm3_lpc43xx_m0.ld")
|
SET(LDSCRIPT_M0 "-T${PATH_HACKRF_FIRMWARE_COMMON}/LPC43xx_M0_memory.ld -Tlibopencm3_lpc43xx_m0.ld")
|
||||||
|
|
||||||
@ -103,8 +103,8 @@ SET(CFLAGS_M4 "-std=gnu99 ${CFLAGS_COMMON} ${CPUFLAGS_M4} -DLPC43XX_M4")
|
|||||||
SET(CXXFLAGS_M4 "-std=gnu++0x ${CFLAGS_COMMON} ${CPUFLAGS_M4} -DLPC43XX_M4")
|
SET(CXXFLAGS_M4 "-std=gnu++0x ${CFLAGS_COMMON} ${CPUFLAGS_M4} -DLPC43XX_M4")
|
||||||
SET(LDFLAGS_M4 "${LDFLAGS_COMMON} ${CPUFLAGS_M4} ${LDSCRIPT_M4} -Xlinker -Map=m4.map")
|
SET(LDFLAGS_M4 "${LDFLAGS_COMMON} ${CPUFLAGS_M4} ${LDSCRIPT_M4} -Xlinker -Map=m4.map")
|
||||||
|
|
||||||
SET(CFLAGS_M4_DFU "-std=gnu99 ${CFLAGS_COMMON} ${CPUFLAGS_M4} -DLPC43XX_M4 -DDFU_MODE")
|
SET(CFLAGS_M4_RAM "-std=gnu99 ${CFLAGS_COMMON} ${CPUFLAGS_M4} -DLPC43XX_M4")
|
||||||
SET(LDFLAGS_M4_DFU "${LDFLAGS_COMMON} ${CPUFLAGS_M4} ${LDSCRIPT_M4_DFU} -Xlinker -Map=m4.map")
|
SET(LDFLAGS_M4_RAM "${LDFLAGS_COMMON} ${CPUFLAGS_M4} ${LDSCRIPT_M4_RAM} -Xlinker -Map=m4.map")
|
||||||
|
|
||||||
set(BUILD_SHARED_LIBS OFF)
|
set(BUILD_SHARED_LIBS OFF)
|
||||||
|
|
||||||
@ -201,10 +201,34 @@ macro(DeclareTargets)
|
|||||||
COMMAND ${CMAKE_OBJCOPY} -Obinary ${PROJECT_NAME}.elf ${PROJECT_NAME}.bin
|
COMMAND ${CMAKE_OBJCOPY} -Obinary ${PROJECT_NAME}.elf ${PROJECT_NAME}.bin
|
||||||
)
|
)
|
||||||
|
|
||||||
|
# RAM - using a differnet LD script to run directly from RAM
|
||||||
|
# TODO: Duplicated from DFU code, below, except without -DDFU_MODE. Extract to shared code somehow.
|
||||||
|
add_library(${PROJECT_NAME}_ram_objects OBJECT ${SRC_M4} m0_bin.s)
|
||||||
|
set_target_properties(${PROJECT_NAME}_ram_objects PROPERTIES COMPILE_FLAGS "${CFLAGS_M4_RAM}")
|
||||||
|
add_dependencies(${PROJECT_NAME}_ram_objects ${PROJECT_NAME}_m0.bin)
|
||||||
|
add_executable(${PROJECT_NAME}_ram.elf $<TARGET_OBJECTS:${PROJECT_NAME}_ram_objects>)
|
||||||
|
add_dependencies(${PROJECT_NAME}_ram.elf libopencm3_${PROJECT_NAME})
|
||||||
|
|
||||||
|
target_link_libraries(
|
||||||
|
${PROJECT_NAME}_ram.elf
|
||||||
|
c
|
||||||
|
nosys
|
||||||
|
opencm3_lpc43xx
|
||||||
|
m
|
||||||
|
)
|
||||||
|
|
||||||
|
set_target_properties(${PROJECT_NAME}_ram.elf PROPERTIES LINK_FLAGS "${LDFLAGS_M4_RAM}")
|
||||||
|
|
||||||
|
add_custom_target(
|
||||||
|
${PROJECT_NAME}_ram.bin
|
||||||
|
DEPENDS ${PROJECT_NAME}_ram.elf
|
||||||
|
COMMAND ${CMAKE_OBJCOPY} -Obinary ${PROJECT_NAME}_ram.elf ${PROJECT_NAME}_ram.bin
|
||||||
|
)
|
||||||
|
|
||||||
# DFU - using a differnet LD script to run directly from RAM
|
# DFU - using a differnet LD script to run directly from RAM
|
||||||
# Object files to be linked for DFU flash versions
|
# Object files to be linked for DFU flash versions
|
||||||
add_library(${PROJECT_NAME}_dfu_objects OBJECT ${SRC_M4} m0_bin.s)
|
add_library(${PROJECT_NAME}_dfu_objects OBJECT ${SRC_M4} m0_bin.s)
|
||||||
set_target_properties(${PROJECT_NAME}_dfu_objects PROPERTIES COMPILE_FLAGS "${CFLAGS_M4_DFU}")
|
set_target_properties(${PROJECT_NAME}_dfu_objects PROPERTIES COMPILE_FLAGS "${CFLAGS_M4_RAM} -DDFU_MODE")
|
||||||
add_dependencies(${PROJECT_NAME}_dfu_objects ${PROJECT_NAME}_m0.bin)
|
add_dependencies(${PROJECT_NAME}_dfu_objects ${PROJECT_NAME}_m0.bin)
|
||||||
add_executable(${PROJECT_NAME}_dfu.elf $<TARGET_OBJECTS:${PROJECT_NAME}_dfu_objects>)
|
add_executable(${PROJECT_NAME}_dfu.elf $<TARGET_OBJECTS:${PROJECT_NAME}_dfu_objects>)
|
||||||
add_dependencies(${PROJECT_NAME}_dfu.elf libopencm3_${PROJECT_NAME})
|
add_dependencies(${PROJECT_NAME}_dfu.elf libopencm3_${PROJECT_NAME})
|
||||||
@ -217,7 +241,7 @@ macro(DeclareTargets)
|
|||||||
m
|
m
|
||||||
)
|
)
|
||||||
|
|
||||||
set_target_properties(${PROJECT_NAME}_dfu.elf PROPERTIES LINK_FLAGS "${LDFLAGS_M4_DFU}")
|
set_target_properties(${PROJECT_NAME}_dfu.elf PROPERTIES LINK_FLAGS "${LDFLAGS_M4_RAM}")
|
||||||
|
|
||||||
add_custom_target(
|
add_custom_target(
|
||||||
${PROJECT_NAME}_dfu.bin
|
${PROJECT_NAME}_dfu.bin
|
||||||
|
Reference in New Issue
Block a user