aboutsummaryrefslogtreecommitdiff
path: root/binutils.cmake
diff options
context:
space:
mode:
authorTrygve Laugstøl <trygvis@inamo.no>2017-01-15 15:04:02 +0100
committerTrygve Laugstøl <trygvis@inamo.no>2017-01-15 15:04:02 +0100
commit2155ab2b72cc4f076dc0a25d0e3a5fdd4d218998 (patch)
tree8f89f8a86b949382456a2813d467518033995782 /binutils.cmake
parent7bd30b64fb5eaccb9c4a78b0bb4413d5a476089c (diff)
downloadmcu.cmake-2155ab2b72cc4f076dc0a25d0e3a5fdd4d218998.tar.gz
mcu.cmake-2155ab2b72cc4f076dc0a25d0e3a5fdd4d218998.tar.bz2
mcu.cmake-2155ab2b72cc4f076dc0a25d0e3a5fdd4d218998.tar.xz
mcu.cmake-2155ab2b72cc4f076dc0a25d0e3a5fdd4d218998.zip
o Adding a generic binutils part for creating the info files (.nm, disassembly, size, hex and bin files.)
o Adding initial support for STM32F103xx chips. Can easily be expanded to all at least the F1 series.
Diffstat (limited to 'binutils.cmake')
-rw-r--r--binutils.cmake40
1 files changed, 40 insertions, 0 deletions
diff --git a/binutils.cmake b/binutils.cmake
new file mode 100644
index 0000000..742fb06
--- /dev/null
+++ b/binutils.cmake
@@ -0,0 +1,40 @@
+function(mcu_binutils_create_dump_targets TARGET)
+ if (MCU_ARM_OBJDUMP)
+ add_custom_command(TARGET ${TARGET} POST_BUILD
+ COMMAND ${CMAKE_COMMAND} -E make_directory ${TARGET}-info
+ COMMAND ${MCU_ARM_OBJDUMP} -D ${TARGET} > ${TARGET}-info/${TARGET}.asm
+ BYPRODUCTS ${TARGET}-info/${TARGET}.asm)
+ endif ()
+
+ if (MCU_ARM_NM)
+ add_custom_command(TARGET ${TARGET} POST_BUILD
+ COMMAND ${CMAKE_COMMAND} -E make_directory ${TARGET}-info
+ COMMAND ${MCU_ARM_NM} -C ${TARGET} > ${TARGET}-info/${TARGET}.nm
+ BYPRODUCTS ${TARGET}-info/${TARGET}.nm)
+ endif ()
+
+ if (MCU_ARM_SIZE)
+ add_custom_command(TARGET ${TARGET} POST_BUILD
+ COMMAND ${CMAKE_COMMAND} -E make_directory ${TARGET}-info
+ COMMAND ${MCU_ARM_SIZE} ${TARGET} > ${TARGET}-info/${TARGET}.size
+ BYPRODUCTS ${TARGET}-info/${TARGET}.size)
+ endif ()
+
+ if (MCU_ARM_READELF)
+ add_custom_command(TARGET ${TARGET} POST_BUILD
+ COMMAND ${CMAKE_COMMAND} -E make_directory ${TARGET}-info
+ COMMAND ${MCU_ARM_READELF} -a ${TARGET} > ${TARGET}-info/${TARGET}.readelf
+ BYPRODUCTS ${TARGET}-info/${TARGET}.readelf)
+ endif ()
+
+ if (MCU_ARM_OBJCOPY)
+ add_custom_command(TARGET ${TARGET} POST_BUILD
+ COMMAND ${CMAKE_COMMAND} -E make_directory ${TARGET}-info
+ COMMAND ${MCU_ARM_OBJCOPY} -O ihex ${TARGET} ${TARGET}-info/${TARGET}.hex
+ BYPRODUCTS ${TARGET}-info/${TARGET}.hex)
+ add_custom_command(TARGET ${TARGET} POST_BUILD
+ COMMAND ${CMAKE_COMMAND} -E make_directory ${TARGET}-info
+ COMMAND ${MCU_ARM_OBJCOPY} -O binary ${TARGET} ${TARGET}-info/${TARGET}.bin
+ BYPRODUCTS ${TARGET}-info/${TARGET}.bin)
+ endif ()
+endfunction()