Guest User

Untitled

a guest
Feb 2nd, 2018
178
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C 2.48 KB | None | 0 0
  1. CMAKE_MINIMUM_REQUIRED(VERSION 2.8.4)
  2. SET(CMAKE_SYSTEM_NAME Generic)
  3.  
  4. #============================================================================================
  5. PROJECT(BlinkExample NONE)              # <-- Prjektname
  6.  
  7. SET(FILES main.c)           # <-- Quelldatei(en)
  8.  
  9. SET(DEVICE atmega328p)          # <-- MCU
  10. SET(FREQ 16000000)          # <-- MCU-Frequenz
  11.  
  12. set(AVR_H_FUSE 0xDB)
  13.  
  14. SET(AVRBIN /usr/bin)        # <-- Toolchain
  15. SET(AVROBJCOPY avr-objcopy)     # <--     ""
  16. SET(AVRSIZE avr-size)           # <--     ""
  17. SET(AVRDUDE avrdude)            # <--     ""
  18.  
  19. SET(PROGRAMMER usbasp)      # <-- Programmertype
  20. SET(PORT usb)                   # <-- USB bzw. Schnittstelle z.B. /dev/cu.usbserial....
  21. # SET(BAUD 57600)               # <-- Übertragungsrate
  22.  
  23. SET(EEPROM NO)                      # <-- soll eine x.eep Datei erstellt werden?
  24. SET(FLASH YES)                  # <-- soll Geflasht werden?
  25.  
  26. #============================================================================================
  27.  
  28. SET(CMAKE_C_COMPILER ${AVRBIN}/avr-gcc)
  29. SET(CMAKE_CXX_COMPILER ${AVRBIN}/avr-g++)
  30.  
  31. SET(CMAKE_C_FLAGS  "-Os -mmcu=${DEVICE} -DF_CPU=${FREQ}UL -std=gnu99 -Wl,--gc-sections")
  32. SET(CMAKE_CXX_FLAGS "-Os -mmcu=${DEVICE} -DF_CPU=${FREQ}UL -Wl,--gc-sections")
  33.  
  34. set(CMAKE_RUNTIME_OUTPUT_DIRECTORY "${CMAKE_CURRENT_SOURCE_DIR}/bin")
  35. set(CMAKE_PREFIX_PATH /opt/local/avr)
  36. set(CMAKE_EXECUTABLE_SUFFIX ".elf")
  37.  
  38. include_directories( /opt/local/avr/include)
  39.  
  40. SET(SOURCE_FILES ${FILES})
  41.  
  42. #============================================================================================
  43.  
  44. ADD_EXECUTABLE(${CMAKE_PROJECT_NAME} main.c)
  45.  
  46. ADD_CUSTOM_COMMAND(TARGET ${CMAKE_PROJECT_NAME} POST_BUILD COMMAND ${AVRBIN}/${AVROBJCOPY} -O ihex -R .eeprom ${CMAKE_RUNTIME_OUTPUT_DIRECTORY}/${CMAKE_PROJECT_NAME}.elf ${CMAKE_RUNTIME_OUTPUT_DIRECTORY}/${CMAKE_PROJECT_NAME}.hex)
  47.  
  48. if(EEPROM)
  49.     ADD_CUSTOM_COMMAND(TARGET ${CMAKE_PROJECT_NAME} POST_BUILD COMMAND ${AVRBIN}/${AVROBJCOPY} -O ihex -j .eeprom --set-section-flags=.eeprom="alloc,load"  --change-section-lma .eeprom=0 ${CMAKE_RUNTIME_OUTPUT_DIRECTORY}/${CMAKE_PROJECT_NAME}.elf ${CMAKE_RUNTIME_OUTPUT_DIRECTORY}/${CMAKE_PROJECT_NAME}.eep)
  50. endif(EEPROM)
  51.  
  52. ADD_CUSTOM_COMMAND(TARGET ${CMAKE_PROJECT_NAME} POST_BUILD COMMAND ${AVRBIN}/${AVRSIZE} --target=ihex ${CMAKE_RUNTIME_OUTPUT_DIRECTORY}/${CMAKE_PROJECT_NAME}.hex)
  53.  
  54. if(FLASH)
  55.     ADD_CUSTOM_COMMAND(TARGET ${CMAKE_PROJECT_NAME} POST_BUILD COMMAND ${AVRBIN}/${AVRDUDE} -p${DEVICE} -c${PROGRAMMER} -P${PORT} -b${BAUD} -U flash:w:${CMAKE_RUNTIME_OUTPUT_DIRECTORY}/${CMAKE_PROJECT_NAME}.hex)
  56. endif(FLASH)
Advertisement
Add Comment
Please, Sign In to add comment