Firmware for the remote control translator
Vous ne pouvez pas sélectionner plus de 25 sujets Les noms de sujets doivent commencer par une lettre ou un nombre, peuvent contenir des tirets ('-') et peuvent comporter jusqu'à 35 caractères.

Makefile 6.0KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218
  1. ##############################################################################
  2. # Build global options
  3. # NOTE: Can be overridden externally.
  4. #
  5. # Compiler options here.
  6. ifeq ($(USE_OPT),)
  7. USE_OPT = -O2 -ggdb -fomit-frame-pointer -falign-functions=16
  8. endif
  9. # C specific options here (added to USE_OPT).
  10. ifeq ($(USE_COPT),)
  11. USE_COPT =
  12. endif
  13. # C++ specific options here (added to USE_OPT).
  14. ifeq ($(USE_CPPOPT),)
  15. USE_CPPOPT = -fno-rtti
  16. endif
  17. # Enable this if you want the linker to remove unused code and data
  18. ifeq ($(USE_LINK_GC),)
  19. USE_LINK_GC = yes
  20. endif
  21. # Linker extra options here.
  22. ifeq ($(USE_LDOPT),)
  23. USE_LDOPT =
  24. endif
  25. # Enable this if you want link time optimizations (LTO)
  26. ifeq ($(USE_LTO),)
  27. USE_LTO = yes
  28. endif
  29. # If enabled, this option allows to compile the application in THUMB mode.
  30. ifeq ($(USE_THUMB),)
  31. USE_THUMB = yes
  32. endif
  33. # Enable this if you want to see the full log while compiling.
  34. ifeq ($(USE_VERBOSE_COMPILE),)
  35. USE_VERBOSE_COMPILE = no
  36. endif
  37. # If enabled, this option makes the build process faster by not compiling
  38. # modules not used in the current configuration.
  39. ifeq ($(USE_SMART_BUILD),)
  40. USE_SMART_BUILD = yes
  41. endif
  42. #
  43. # Build global options
  44. ##############################################################################
  45. ##############################################################################
  46. # Architecture or project specific options
  47. #
  48. # Stack size to be allocated to the Cortex-M process stack. This stack is
  49. # the stack used by the main() thread.
  50. ifeq ($(USE_PROCESS_STACKSIZE),)
  51. USE_PROCESS_STACKSIZE = 0x400
  52. endif
  53. # Stack size to the allocated to the Cortex-M main/exceptions stack. This
  54. # stack is used for processing interrupts and exceptions.
  55. ifeq ($(USE_EXCEPTIONS_STACKSIZE),)
  56. USE_EXCEPTIONS_STACKSIZE = 0x400
  57. endif
  58. # Enables the use of FPU (no, softfp, hard).
  59. ifeq ($(USE_FPU),)
  60. USE_FPU = no
  61. endif
  62. #
  63. # Architecture or project specific options
  64. ##############################################################################
  65. ##############################################################################
  66. # Project, sources and paths
  67. #
  68. # Define project name here
  69. PROJECT = remote-control-translator-firmware
  70. # Imported source files and paths
  71. CHIBIOS = ChibiOS
  72. # Startup files.
  73. include $(CHIBIOS)/os/common/startup/ARMCMx/compilers/GCC/mk/startup_stm32f1xx.mk
  74. # HAL-OSAL files (optional).
  75. include $(CHIBIOS)/os/hal/hal.mk
  76. include $(CHIBIOS)/os/hal/ports/STM32/STM32F1xx/platform.mk
  77. include $(CHIBIOS)/os/hal/boards/STM32F103C8_MINIMAL/board.mk
  78. include $(CHIBIOS)/os/hal/osal/rt/osal.mk
  79. # RTOS files (optional).
  80. include $(CHIBIOS)/os/rt/rt.mk
  81. include $(CHIBIOS)/os/common/ports/ARMCMx/compilers/GCC/mk/port_v7m.mk
  82. # Other files (optional).
  83. include $(CHIBIOS)/test/rt/test.mk
  84. # Define linker script file here
  85. LDSCRIPT= $(STARTUPLD)/STM32F103xB.ld
  86. # C sources that can be compiled in ARM or THUMB mode depending on the global
  87. # setting.
  88. CSRC = $(STARTUPSRC) \
  89. $(KERNSRC) \
  90. $(PORTSRC) \
  91. $(OSALSRC) \
  92. $(HALSRC) \
  93. $(PLATFORMSRC) \
  94. $(BOARDSRC) \
  95. $(TESTSRC) \
  96. $(wildcard src/*.c)
  97. # C++ sources that can be compiled in ARM or THUMB mode depending on the global
  98. # setting.
  99. CPPSRC =
  100. # C sources to be compiled in ARM mode regardless of the global setting.
  101. # NOTE: Mixing ARM and THUMB mode enables the -mthumb-interwork compiler
  102. # option that results in lower performance and larger code size.
  103. ACSRC =
  104. # C++ sources to be compiled in ARM mode regardless of the global setting.
  105. # NOTE: Mixing ARM and THUMB mode enables the -mthumb-interwork compiler
  106. # option that results in lower performance and larger code size.
  107. ACPPSRC =
  108. # C sources to be compiled in THUMB mode regardless of the global setting.
  109. # NOTE: Mixing ARM and THUMB mode enables the -mthumb-interwork compiler
  110. # option that results in lower performance and larger code size.
  111. TCSRC =
  112. # C sources to be compiled in THUMB mode regardless of the global setting.
  113. # NOTE: Mixing ARM and THUMB mode enables the -mthumb-interwork compiler
  114. # option that results in lower performance and larger code size.
  115. TCPPSRC =
  116. # List ASM source files here
  117. ASMSRC =
  118. ASMXSRC = $(STARTUPASM) $(PORTASM) $(OSALASM)
  119. INCDIR = $(CHIBIOS)/os/license \
  120. $(STARTUPINC) $(KERNINC) $(PORTINC) $(OSALINC) \
  121. $(HALINC) $(PLATFORMINC) $(BOARDINC) $(TESTINC) \
  122. $(CHIBIOS)/os/various
  123. #
  124. # Project, sources and paths
  125. ##############################################################################
  126. ##############################################################################
  127. # Compiler settings
  128. #
  129. MCU = cortex-m3
  130. #TRGT = arm-elf-
  131. TRGT = arm-none-eabi-
  132. CC = $(TRGT)gcc
  133. CPPC = $(TRGT)g++
  134. # Enable loading with g++ only if you need C++ runtime support.
  135. # NOTE: You can use C++ even without C++ support if you are careful. C++
  136. # runtime support makes code size explode.
  137. LD = $(TRGT)gcc
  138. #LD = $(TRGT)g++
  139. CP = $(TRGT)objcopy
  140. AS = $(TRGT)gcc -x assembler-with-cpp
  141. AR = $(TRGT)ar
  142. OD = $(TRGT)objdump
  143. SZ = $(TRGT)size
  144. HEX = $(CP) -O ihex
  145. BIN = $(CP) -O binary
  146. # ARM-specific options here
  147. AOPT =
  148. # THUMB-specific options here
  149. TOPT = -mthumb -DTHUMB
  150. # Define C warning options here
  151. CWARN = -Wall -Wextra -Wundef -Wstrict-prototypes
  152. # Define C++ warning options here
  153. CPPWARN = -Wall -Wextra -Wundef
  154. #
  155. # Compiler settings
  156. ##############################################################################
  157. ##############################################################################
  158. # Start of user section
  159. #
  160. # List all user C define here, like -D_DEBUG=1
  161. UDEFS =
  162. # Define ASM defines here
  163. UADEFS =
  164. # List all user directories here
  165. UINCDIR =
  166. # List the user directory to look for the libraries here
  167. ULIBDIR =
  168. # List all user libraries here
  169. ULIBS =
  170. #
  171. # End of user defines
  172. ##############################################################################
  173. RULESPATH = $(CHIBIOS)/os/common/startup/ARMCMx/compilers/GCC
  174. include $(RULESPATH)/rules.mk