You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

697 lines
19 KiB

2020 November 28 Breaking Changes Update (#11053) * Branch point for 2020 November 28 Breaking Change * Remove matrix_col_t to allow MATRIX_ROWS > 32 (#10183) * Add support for soft serial to ATmega32U2 (#10204) * Change MIDI velocity implementation to allow direct control of velocity value (#9940) * Add ability to build a subset of all keyboards based on platform. * Actually use eeprom_driver_init(). * Make bootloader_jump weak for ChibiOS. (#10417) * Joystick 16-bit support (#10439) * Per-encoder resolutions (#10259) * Share button state from mousekey to pointing_device (#10179) * Add hotfix for chibios keyboards not wake (#10088) * Add advanced/efficient RGB Matrix Indicators (#8564) * Naming change. * Support for STM32 GPIOF,G,H,I,J,K (#10206) * Add milc as a dependency and remove the installed milc (#10563) * ChibiOS upgrade: early init conversions (#10214) * ChibiOS upgrade: configuration file migrator (#9952) * Haptic and solenoid cleanup (#9700) * XD75 cleanup (#10524) * OLED display update interval support (#10388) * Add definition based on currently-selected serial driver. (#10716) * New feature: Retro Tapping per key (#10622) * Allow for modification of output RGB values when using rgblight/rgb_matrix. (#10638) * Add housekeeping task callbacks so that keyboards/keymaps are capable of executing code for each main loop iteration. (#10530) * Rescale both ChibiOS and AVR backlighting. * Reduce Helix keyboard build variation (#8669) * Minor change to behavior allowing display updates to continue between task ticks (#10750) * Some GPIO manipulations in matrix.c change to atomic. (#10491) * qmk cformat (#10767) * [Keyboard] Update the Speedo firmware for v3.0 (#10657) * Maartenwut/Maarten namechange to evyd13/Evy (#10274) * [quantum] combine repeated lines of code (#10837) * Add step sequencer feature (#9703) * aeboards/ext65 refactor (#10820) * Refactor xelus/dawn60 for Rev2 later (#10584) * add DEBUG_MATRIX_SCAN_RATE_ENABLE to common_features.mk (#10824) * [Core] Added `add_oneshot_mods` & `del_oneshot_mods` (#10549) * update chibios os usb for the otg driver (#8893) * Remove HD44780 References, Part 4 (#10735) * [Keyboard] Add Valor FRL TKL (+refactor) (#10512) * Fix cursor position bug in oled_write_raw functions (#10800) * Fixup version.h writing when using SKIP_VERSION=yes (#10972) * Allow for certain code in the codebase assuming length of string. (#10974) * Add AT90USB support for serial.c (#10706) * Auto shift: support repeats and early registration (#9826) * Rename ledmatrix.h to match .c file (#7949) * Split RGB_MATRIX_ENABLE into _ENABLE and _DRIVER (#10231) * Split LED_MATRIX_ENABLE into _ENABLE and _DRIVER (#10840) * Merge point for 2020 Nov 28 Breaking Change
3 years ago
  1. MCU_ORIG := $(MCU)
  2. ifneq ($(findstring MKL26Z64, $(MCU)),)
  3. # Cortex version
  4. MCU = cortex-m0plus
  5. # ARM version, CORTEX-M0/M1 are 6, CORTEX-M3/M4/M7 are 7
  6. ARMV = 6
  7. ## chip/board settings
  8. # - the next two should match the directories in
  9. # <chibios>/os/hal/ports/$(MCU_FAMILY)/$(MCU_SERIES)
  10. MCU_FAMILY = KINETIS
  11. MCU_SERIES = KL2x
  12. # Linker script to use
  13. # - it should exist either in <chibios>/os/common/ports/ARMCMx/compilers/GCC/ld/
  14. # or <keyboard_dir>/ld/
  15. MCU_LDSCRIPT ?= MKL26Z64
  16. # Startup code to use
  17. # - it should exist in <chibios>/os/common/ports/ARMCMx/compilers/GCC/mk/
  18. MCU_STARTUP ?= kl2x
  19. # Board: it should exist either in <chibios>/os/hal/boards/,
  20. # <keyboard_dir>/boards/, or drivers/boards/
  21. BOARD ?= PJRC_TEENSY_LC
  22. endif
  23. ifneq ($(findstring MK20DX128, $(MCU)),)
  24. # Cortex version
  25. MCU = cortex-m4
  26. # ARM version, CORTEX-M0/M1 are 6, CORTEX-M3/M4/M7 are 7
  27. ARMV = 7
  28. ## chip/board settings
  29. # - the next two should match the directories in
  30. # <chibios>/os/hal/ports/$(MCU_FAMILY)/$(MCU_SERIES)
  31. MCU_FAMILY = KINETIS
  32. MCU_SERIES = K20x
  33. # Linker script to use
  34. # - it should exist either in <chibios>/os/common/ports/ARMCMx/compilers/GCC/ld/
  35. # or <keyboard_dir>/ld/
  36. MCU_LDSCRIPT ?= MK20DX128
  37. # Startup code to use
  38. # - it should exist in <chibios>/os/common/ports/ARMCMx/compilers/GCC/mk/
  39. MCU_STARTUP ?= k20x5
  40. # Board: it should exist either in <chibios>/os/hal/boards/,
  41. # <keyboard_dir>/boards/, or drivers/boards/
  42. BOARD ?= PJRC_TEENSY_3
  43. endif
  44. ifneq ($(findstring MK20DX256, $(MCU)),)
  45. # Cortex version
  46. MCU = cortex-m4
  47. # ARM version, CORTEX-M0/M1 are 6, CORTEX-M3/M4/M7 are 7
  48. ARMV = 7
  49. ## chip/board settings
  50. # - the next two should match the directories in
  51. # <chibios>/os/hal/ports/$(MCU_FAMILY)/$(MCU_SERIES)
  52. MCU_FAMILY = KINETIS
  53. MCU_SERIES = K20x
  54. # Linker script to use
  55. # - it should exist either in <chibios>/os/common/ports/ARMCMx/compilers/GCC/ld/
  56. # or <keyboard_dir>/ld/
  57. MCU_LDSCRIPT ?= MK20DX256
  58. # Startup code to use
  59. # - it should exist in <chibios>/os/common/ports/ARMCMx/compilers/GCC/mk/
  60. MCU_STARTUP ?= k20x7
  61. # Board: it should exist either in <chibios>/os/hal/boards/,
  62. # <keyboard_dir>/boards/, or drivers/boards/
  63. BOARD ?= PJRC_TEENSY_3_1
  64. endif
  65. ifneq ($(findstring MK66FX1M0, $(MCU)),)
  66. # Cortex version
  67. MCU = cortex-m4
  68. # ARM version, CORTEX-M0/M1 are 6, CORTEX-M3/M4/M7 are 7
  69. ARMV = 7
  70. ## chip/board settings
  71. # - the next two should match the directories in
  72. # <chibios>/os/hal/ports/$(MCU_FAMILY)/$(MCU_SERIES)
  73. MCU_FAMILY = KINETIS
  74. MCU_SERIES = MK66F18
  75. # Linker script to use
  76. # - it should exist either in <chibios>/os/common/ports/ARMCMx/compilers/GCC/ld/
  77. # or <keyboard_dir>/ld/
  78. MCU_LDSCRIPT ?= MK66FX1M0
  79. # Startup code to use
  80. # - it should exist in <chibios>/os/common/startup/ARMCMx/compilers/GCC/mk/
  81. MCU_STARTUP ?= MK66F18
  82. # Board: it should exist either in <chibios>/os/hal/boards/,
  83. # <keyboard_dir>/boards/, or drivers/boards/
  84. BOARD ?= PJRC_TEENSY_3_6
  85. endif
  86. ifneq ($(findstring STM32F042, $(MCU)),)
  87. # Cortex version
  88. MCU = cortex-m0
  89. # ARM version, CORTEX-M0/M1 are 6, CORTEX-M3/M4/M7 are 7
  90. ARMV = 6
  91. ## chip/board settings
  92. # - the next two should match the directories in
  93. # <chibios>/os/hal/ports/$(MCU_FAMILY)/$(MCU_SERIES)
  94. MCU_FAMILY = STM32
  95. MCU_SERIES = STM32F0xx
  96. # Linker script to use
  97. # - it should exist either in <chibios>/os/common/startup/ARMCMx/compilers/GCC/ld/
  98. # or <keyboard_dir>/ld/
  99. MCU_LDSCRIPT ?= STM32F042x6
  100. # Startup code to use
  101. # - it should exist in <chibios>/os/common/startup/ARMCMx/compilers/GCC/mk/
  102. MCU_STARTUP ?= stm32f0xx
  103. # Board: it should exist either in <chibios>/os/hal/boards/,
  104. # <keyboard_dir>/boards/, or drivers/boards/
  105. BOARD ?= GENERIC_STM32_F042X6
  106. USE_FPU ?= no
  107. # UF2 settings
  108. UF2_FAMILY ?= STM32F0
  109. # Stack sizes: Since this chip has limited RAM capacity, the stack area needs to be reduced.
  110. # This ensures that the EEPROM page buffer fits into RAM
  111. USE_PROCESS_STACKSIZE = 0x600
  112. USE_EXCEPTIONS_STACKSIZE = 0x300
  113. endif
  114. ifneq ($(findstring STM32F072, $(MCU)),)
  115. # Cortex version
  116. MCU = cortex-m0
  117. # ARM version, CORTEX-M0/M1 are 6, CORTEX-M3/M4/M7 are 7
  118. ARMV = 6
  119. ## chip/board settings
  120. # - the next two should match the directories in
  121. # <chibios>/os/hal/ports/$(MCU_FAMILY)/$(MCU_SERIES)
  122. MCU_FAMILY = STM32
  123. MCU_SERIES = STM32F0xx
  124. # Linker script to use
  125. # - it should exist either in <chibios>/os/common/startup/ARMCMx/compilers/GCC/ld/
  126. # or <keyboard_dir>/ld/
  127. MCU_LDSCRIPT ?= STM32F072xB
  128. # Startup code to use
  129. # - it should exist in <chibios>/os/common/startup/ARMCMx/compilers/GCC/mk/
  130. MCU_STARTUP ?= stm32f0xx
  131. # Board: it should exist either in <chibios>/os/hal/boards/,
  132. # <keyboard_dir>/boards/, or drivers/boards/
  133. BOARD ?= GENERIC_STM32_F072XB
  134. USE_FPU ?= no
  135. # UF2 settings
  136. UF2_FAMILY ?= STM32F0
  137. endif
  138. ifneq ($(findstring STM32F103, $(MCU)),)
  139. # Cortex version
  140. MCU = cortex-m3
  141. # ARM version, CORTEX-M0/M1 are 6, CORTEX-M3/M4/M7 are 7
  142. ARMV = 7
  143. ## chip/board settings
  144. # - the next two should match the directories in
  145. # <chibios>/os/hal/ports/$(MCU_FAMILY)/$(MCU_SERIES)
  146. MCU_FAMILY = STM32
  147. MCU_SERIES = STM32F1xx
  148. # Linker script to use
  149. # - it should exist either in <chibios>/os/common/startup/ARMCMx/compilers/GCC/ld/
  150. # or <keyboard_dir>/ld/
  151. MCU_LDSCRIPT ?= STM32F103x8
  152. # Startup code to use
  153. # - it should exist in <chibios>/os/common/startup/ARMCMx/compilers/GCC/mk/
  154. MCU_STARTUP ?= stm32f1xx
  155. # Board: it should exist either in <chibios>/os/hal/boards/,
  156. # <keyboard_dir>/boards/, or drivers/boards/
  157. BOARD ?= GENERIC_STM32_F103
  158. USE_FPU ?= no
  159. # UF2 settings
  160. UF2_FAMILY ?= STM32F1
  161. endif
  162. ifneq ($(findstring STM32F303, $(MCU)),)
  163. # Cortex version
  164. MCU = cortex-m4
  165. # ARM version, CORTEX-M0/M1 are 6, CORTEX-M3/M4/M7 are 7
  166. ARMV = 7
  167. ## chip/board settings
  168. # - the next two should match the directories in
  169. # <chibios>/os/hal/ports/$(MCU_FAMILY)/$(MCU_SERIES)
  170. MCU_FAMILY = STM32
  171. MCU_SERIES = STM32F3xx
  172. # Linker script to use
  173. # - it should exist either in <chibios>/os/common/startup/ARMCMx/compilers/GCC/ld/
  174. # or <keyboard_dir>/ld/
  175. MCU_LDSCRIPT ?= STM32F303xC
  176. # Startup code to use
  177. # - it should exist in <chibios>/os/common/startup/ARMCMx/compilers/GCC/mk/
  178. MCU_STARTUP ?= stm32f3xx
  179. # Board: it should exist either in <chibios>/os/hal/boards/,
  180. # <keyboard_dir>/boards/, or drivers/boards/
  181. BOARD ?= GENERIC_STM32_F303XC
  182. USE_FPU ?= yes
  183. # UF2 settings
  184. UF2_FAMILY ?= STM32F3
  185. endif
  186. ifneq ($(findstring STM32F401, $(MCU)),)
  187. # Cortex version
  188. MCU = cortex-m4
  189. # ARM version, CORTEX-M0/M1 are 6, CORTEX-M3/M4/M7 are 7
  190. ARMV = 7
  191. ## chip/board settings
  192. # - the next two should match the directories in
  193. # <chibios>/os/hal/ports/$(MCU_FAMILY)/$(MCU_SERIES)
  194. MCU_FAMILY = STM32
  195. MCU_SERIES = STM32F4xx
  196. # Linker script to use
  197. # - it should exist either in <chibios>/os/common/startup/ARMCMx/compilers/GCC/ld/
  198. # or <keyboard_dir>/ld/
  199. ifeq ($(strip $(BOOTLOADER)), tinyuf2)
  200. MCU_LDSCRIPT ?= STM32F401xC_tinyuf2
  201. FIRMWARE_FORMAT ?= uf2
  202. else
  203. MCU_LDSCRIPT ?= STM32F401xC
  204. endif
  205. # Startup code to use
  206. # - it should exist in <chibios>/os/common/startup/ARMCMx/compilers/GCC/mk/
  207. MCU_STARTUP ?= stm32f4xx
  208. # Board: it should exist either in <chibios>/os/hal/boards/,
  209. # <keyboard_dir>/boards/, or drivers/boards/
  210. BOARD ?= BLACKPILL_STM32_F401
  211. USE_FPU ?= yes
  212. # UF2 settings
  213. UF2_FAMILY ?= STM32F4
  214. endif
  215. ifneq ($(findstring STM32F405, $(MCU)),)
  216. # Cortex version
  217. MCU = cortex-m4
  218. # ARM version, CORTEX-M0/M1 are 6, CORTEX-M3/M4/M7 are 7
  219. ARMV = 7
  220. ## chip/board settings
  221. # - the next two should match the directories in
  222. # <chibios>/os/hal/ports/$(MCU_FAMILY)/$(MCU_SERIES)
  223. MCU_FAMILY = STM32
  224. MCU_SERIES = STM32F4xx
  225. # Linker script to use
  226. # - it should exist either in <chibios>/os/common/ports/ARMCMx/compilers/GCC/ld/
  227. # or <keyboard_dir>/ld/
  228. MCU_LDSCRIPT ?= STM32F405xG
  229. # Startup code to use
  230. # - it should exist in <chibios>/os/common/startup/ARMCMx/compilers/GCC/mk/
  231. MCU_STARTUP ?= stm32f4xx
  232. # Board: it should exist either in <chibios>/os/hal/boards/,
  233. # <keyboard_dir>/boards/, or drivers/boards/
  234. BOARD ?= GENERIC_STM32_F405XG
  235. USE_FPU ?= yes
  236. # UF2 settings
  237. UF2_FAMILY ?= STM32F4
  238. endif
  239. ifneq ($(findstring STM32F407, $(MCU)),)
  240. # Cortex version
  241. MCU = cortex-m4
  242. # ARM version, CORTEX-M0/M1 are 6, CORTEX-M3/M4/M7 are 7
  243. ARMV = 7
  244. ## chip/board settings
  245. # - the next two should match the directories in
  246. # <chibios>/os/hal/ports/$(MCU_FAMILY)/$(MCU_SERIES)
  247. MCU_FAMILY = STM32
  248. MCU_SERIES = STM32F4xx
  249. # Linker script to use
  250. # - it should exist either in <chibios>/os/common/startup/ARMCMx/compilers/GCC/ld/
  251. # or <keyboard_dir>/ld/
  252. MCU_LDSCRIPT ?= STM32F407xE
  253. # Startup code to use
  254. # - it should exist in <chibios>/os/common/startup/ARMCMx/compilers/GCC/mk/
  255. MCU_STARTUP ?= stm32f4xx
  256. # Board: it should exist either in <chibios>/os/hal/boards/,
  257. # <keyboard_dir>/boards/, or drivers/boards/
  258. BOARD ?= GENERIC_STM32_F407XE
  259. USE_FPU ?= yes
  260. # UF2 settings
  261. UF2_FAMILY ?= STM32F4
  262. endif
  263. ifneq ($(findstring STM32F411, $(MCU)),)
  264. # Cortex version
  265. MCU = cortex-m4
  266. # ARM version, CORTEX-M0/M1 are 6, CORTEX-M3/M4/M7 are 7
  267. ARMV = 7
  268. ## chip/board settings
  269. # - the next two should match the directories in
  270. # <chibios>/os/hal/ports/$(MCU_FAMILY)/$(MCU_SERIES)
  271. MCU_FAMILY = STM32
  272. MCU_SERIES = STM32F4xx
  273. # Linker script to use
  274. # - it should exist either in <chibios>/os/common/startup/ARMCMx/compilers/GCC/ld/
  275. # or <keyboard_dir>/ld/
  276. ifeq ($(strip $(BOOTLOADER)), tinyuf2)
  277. MCU_LDSCRIPT ?= STM32F411xE_tinyuf2
  278. FIRMWARE_FORMAT ?= uf2
  279. else
  280. MCU_LDSCRIPT ?= STM32F411xE
  281. endif
  282. # Startup code to use
  283. # - it should exist in <chibios>/os/common/startup/ARMCMx/compilers/GCC/mk/
  284. MCU_STARTUP ?= stm32f4xx
  285. # Board: it should exist either in <chibios>/os/hal/boards/,
  286. # <keyboard_dir>/boards/, or drivers/boards/
  287. BOARD ?= BLACKPILL_STM32_F411
  288. USE_FPU ?= yes
  289. # UF2 settings
  290. UF2_FAMILY ?= STM32F4
  291. endif
  292. ifneq ($(findstring STM32F446, $(MCU)),)
  293. # Cortex version
  294. MCU = cortex-m4
  295. # ARM version, CORTEX-M0/M1 are 6, CORTEX-M3/M4/M7 are 7
  296. ARMV = 7
  297. ## chip/board settings
  298. # - the next two should match the directories in
  299. # <chibios>/os/hal/ports/$(MCU_FAMILY)/$(MCU_SERIES)
  300. MCU_FAMILY = STM32
  301. MCU_SERIES = STM32F4xx
  302. # Linker script to use
  303. # - it should exist either in <chibios>/os/common/startup/ARMCMx/compilers/GCC/ld/
  304. # or <keyboard_dir>/ld/
  305. MCU_LDSCRIPT ?= STM32F446xE
  306. # Startup code to use
  307. # - it should exist in <chibios>/os/common/startup/ARMCMx/compilers/GCC/mk/
  308. MCU_STARTUP ?= stm32f4xx
  309. # Board: it should exist either in <chibios>/os/hal/boards/,
  310. # <keyboard_dir>/boards/, or drivers/boards/
  311. BOARD ?= GENERIC_STM32_F446XE
  312. USE_FPU ?= yes
  313. endif
  314. ifneq ($(findstring STM32G431, $(MCU)),)
  315. # Cortex version
  316. MCU = cortex-m4
  317. # ARM version, CORTEX-M0/M1 are 6, CORTEX-M3/M4/M7 are 7
  318. ARMV = 7
  319. ## chip/board settings
  320. # - the next two should match the directories in
  321. # <chibios>/os/hal/ports/$(MCU_FAMILY)/$(MCU_SERIES)
  322. MCU_FAMILY = STM32
  323. MCU_SERIES = STM32G4xx
  324. # Linker script to use
  325. # - it should exist either in <chibios>/os/common/startup/ARMCMx/compilers/GCC/ld/
  326. # or <keyboard_dir>/ld/
  327. MCU_LDSCRIPT ?= STM32G431xB
  328. # Startup code to use
  329. # - it should exist in <chibios>/os/common/startup/ARMCMx/compilers/GCC/mk/
  330. MCU_STARTUP ?= stm32g4xx
  331. # Board: it should exist either in <chibios>/os/hal/boards/,
  332. # <keyboard_dir>/boards/, or drivers/boards/
  333. BOARD ?= GENERIC_STM32_G431XB
  334. USE_FPU ?= yes
  335. # UF2 settings
  336. UF2_FAMILY ?= STM32G4
  337. endif
  338. ifneq ($(findstring STM32G474, $(MCU)),)
  339. # Cortex version
  340. MCU = cortex-m4
  341. # ARM version, CORTEX-M0/M1 are 6, CORTEX-M3/M4/M7 are 7
  342. ARMV = 7
  343. ## chip/board settings
  344. # - the next two should match the directories in
  345. # <chibios>/os/hal/ports/$(MCU_FAMILY)/$(MCU_SERIES)
  346. MCU_FAMILY = STM32
  347. MCU_SERIES = STM32G4xx
  348. # Linker script to use
  349. # - it should exist either in <chibios>/os/common/startup/ARMCMx/compilers/GCC/ld/
  350. # or <keyboard_dir>/ld/
  351. MCU_LDSCRIPT ?= STM32G474xE
  352. # Startup code to use
  353. # - it should exist in <chibios>/os/common/startup/ARMCMx/compilers/GCC/mk/
  354. MCU_STARTUP ?= stm32g4xx
  355. # Board: it should exist either in <chibios>/os/hal/boards/,
  356. # <keyboard_dir>/boards/, or drivers/boards/
  357. BOARD ?= GENERIC_STM32_G474XE
  358. USE_FPU ?= yes
  359. # UF2 settings
  360. UF2_FAMILY ?= STM32G4
  361. endif
  362. ifneq (,$(filter $(MCU),STM32L433 STM32L443))
  363. # Cortex version
  364. MCU = cortex-m4
  365. # ARM version, CORTEX-M0/M1 are 6, CORTEX-M3/M4/M7 are 7
  366. ARMV = 7
  367. ## chip/board settings
  368. # - the next two should match the directories in
  369. # <chibios>/os/hal/ports/$(MCU_FAMILY)/$(MCU_SERIES)
  370. MCU_FAMILY = STM32
  371. MCU_SERIES = STM32L4xx
  372. # Linker script to use
  373. # - it should exist either in <chibios>/os/common/startup/ARMCMx/compilers/GCC/ld/
  374. # or <keyboard_dir>/ld/
  375. MCU_LDSCRIPT ?= STM32L432xC
  376. # Startup code to use
  377. # - it should exist in <chibios>/os/common/startup/ARMCMx/compilers/GCC/mk/
  378. MCU_STARTUP ?= stm32l4xx
  379. # Board: it should exist either in <chibios>/os/hal/boards/,
  380. # <keyboard_dir>/boards/, or drivers/boards/
  381. BOARD ?= GENERIC_STM32_L433XC
  382. PLATFORM_NAME ?= platform_l432
  383. USE_FPU ?= yes
  384. # UF2 settings
  385. UF2_FAMILY ?= STM32L4
  386. endif
  387. ifneq (,$(filter $(MCU),STM32L412 STM32L422))
  388. # Cortex version
  389. MCU = cortex-m4
  390. # ARM version, CORTEX-M0/M1 are 6, CORTEX-M3/M4/M7 are 7
  391. ARMV = 7
  392. ## chip/board settings
  393. # - the next two should match the directories in
  394. # <chibios>/os/hal/ports/$(MCU_FAMILY)/$(MCU_SERIES)
  395. MCU_FAMILY = STM32
  396. MCU_SERIES = STM32L4xx
  397. # Linker script to use
  398. # - it should exist either in <chibios>/os/common/startup/ARMCMx/compilers/GCC/ld/
  399. # or <keyboard_dir>/ld/
  400. MCU_LDSCRIPT ?= STM32L412xB
  401. # Startup code to use
  402. # - it should exist in <chibios>/os/common/startup/ARMCMx/compilers/GCC/mk/
  403. MCU_STARTUP ?= stm32l4xx
  404. # Board: it should exist either in <chibios>/os/hal/boards/,
  405. # <keyboard_dir>/boards/, or drivers/boards/
  406. BOARD ?= GENERIC_STM32_L412XB
  407. PLATFORM_NAME ?= platform_l432
  408. USE_FPU ?= yes
  409. # UF2 settings
  410. UF2_FAMILY ?= STM32L4
  411. endif
  412. ifneq ($(findstring WB32F3G71, $(MCU)),)
  413. # Cortex version
  414. MCU = cortex-m3
  415. # ARM version, CORTEX-M0/M1 are 6, CORTEX-M3/M4/M7 are 7
  416. ARMV = 7
  417. ## chip/board settings
  418. # - the next two should match the directories in
  419. # <chibios>/os/hal/ports/$(MCU_FAMILY)/$(MCU_SERIES)
  420. MCU_FAMILY = WB32
  421. MCU_SERIES = WB32F3G71xx
  422. # Linker script to use
  423. # - it should exist either in <chibios>/os/common/ports/ARMCMx/compilers/GCC/ld/
  424. # or <keyboard_dir>/ld/
  425. MCU_LDSCRIPT ?= WB32F3G71x9
  426. # Startup code to use
  427. # - it should exist in <chibios>/os/common/startup/ARMCMx/compilers/GCC/mk/
  428. MCU_STARTUP ?= wb32f3g71xx
  429. # Board: it should exist either in <chibios>/os/hal/boards/,
  430. # <keyboard_dir>/boards/, or drivers/boards/
  431. BOARD ?= GENERIC_WB32_F3G71XX
  432. USE_FPU ?= no
  433. endif
  434. ifneq ($(findstring GD32VF103, $(MCU)),)
  435. # RISC-V
  436. MCU = risc-v
  437. # RISC-V extensions and abi configuration
  438. MCU_ARCH = rv32imac
  439. MCU_ABI = ilp32
  440. MCU_CMODEL = medlow
  441. ## chip/board settings
  442. # - the next two should match the directories in
  443. # <chibios>/os/hal/ports/$(MCU_FAMILY)/$(MCU_SERIES)
  444. MCU_FAMILY = GD32V
  445. MCU_SERIES = GD32VF103
  446. # Linker script to use
  447. # - it should exist either in <chibios>/os/common/startup/RISCV-ECLIC/compilers/GCC/ld/
  448. # or <keyboard_dir>/ld/
  449. MCU_LDSCRIPT ?= GD32VF103xB
  450. # Startup code to use
  451. # - it should exist in <chibios>/os/common/startup/RISCV-ECLIC/compilers/GCC/mk/
  452. MCU_STARTUP ?= gd32vf103
  453. # Board: it should exist either in <chibios>/os/hal/boards/,
  454. # <keyboard_dir>/boards/, or drivers/boards/
  455. BOARD ?= SIPEED_LONGAN_NANO
  456. USE_FPU ?= no
  457. endif
  458. ifneq (,$(filter $(MCU),at90usb162 atmega16u2 atmega32u2 atmega16u4 atmega32u4 at90usb646 at90usb647 at90usb1286 at90usb1287))
  459. PROTOCOL = LUFA
  460. # Processor frequency.
  461. # This will define a symbol, F_CPU, in all source code files equal to the
  462. # processor frequency in Hz. You can then use this symbol in your source code to
  463. # calculate timings. Do NOT tack on a 'UL' at the end, this will be done
  464. # automatically to create a 32-bit value in your source code.
  465. #
  466. # This will be an integer division of F_USB below, as it is sourced by
  467. # F_USB after it has run through any CPU prescalers. Note that this value
  468. # does not *change* the processor frequency - it should merely be updated to
  469. # reflect the processor speed set externally so that the code can use accurate
  470. # software delays.
  471. F_CPU ?= 16000000
  472. # LUFA specific
  473. #
  474. # Target architecture (see library "Board Types" documentation).
  475. ARCH = AVR8
  476. # Input clock frequency.
  477. # This will define a symbol, F_USB, in all source code files equal to the
  478. # input clock frequency (before any prescaling is performed) in Hz. This value may
  479. # differ from F_CPU if prescaling is used on the latter, and is required as the
  480. # raw input clock is fed directly to the PLL sections of the AVR for high speed
  481. # clock generation for the USB and other AVR subsections. Do NOT tack on a 'UL'
  482. # at the end, this will be done automatically to create a 32-bit value in your
  483. # source code.
  484. #
  485. # If no clock division is performed on the input clock inside the AVR (via the
  486. # CPU clock adjust registers or the clock division fuses), this will be equal to F_CPU.
  487. F_USB ?= $(F_CPU)
  488. # Interrupt driven control endpoint task
  489. ifeq (,$(filter $(NO_INTERRUPT_CONTROL_ENDPOINT),yes))
  490. OPT_DEFS += -DINTERRUPT_CONTROL_ENDPOINT
  491. endif
  492. ifneq (,$(filter $(MCU),at90usb162 atmega16u2 atmega32u2))
  493. NO_I2C = yes
  494. endif
  495. endif
  496. ifneq (,$(filter $(MCU),atmega32a))
  497. # MCU name for avrdude
  498. AVRDUDE_MCU = m32
  499. PROTOCOL = VUSB
  500. # Processor frequency.
  501. # This will define a symbol, F_CPU, in all source code files equal to the
  502. # processor frequency in Hz. You can then use this symbol in your source code to
  503. # calculate timings. Do NOT tack on a 'UL' at the end, this will be done
  504. # automatically to create a 32-bit value in your source code.
  505. F_CPU ?= 12000000
  506. endif
  507. ifneq (,$(filter $(MCU),atmega328p))
  508. # MCU name for avrdude
  509. AVRDUDE_MCU = m328p
  510. PROTOCOL = VUSB
  511. # Processor frequency.
  512. # This will define a symbol, F_CPU, in all source code files equal to the
  513. # processor frequency in Hz. You can then use this symbol in your source code to
  514. # calculate timings. Do NOT tack on a 'UL' at the end, this will be done
  515. # automatically to create a 32-bit value in your source code.
  516. F_CPU ?= 16000000
  517. endif
  518. ifneq (,$(filter $(MCU),atmega328))
  519. # MCU name for avrdude
  520. AVRDUDE_MCU = m328
  521. PROTOCOL = VUSB
  522. # Processor frequency.
  523. # This will define a symbol, F_CPU, in all source code files equal to the
  524. # processor frequency in Hz. You can then use this symbol in your source code to
  525. # calculate timings. Do NOT tack on a 'UL' at the end, this will be done
  526. # automatically to create a 32-bit value in your source code.
  527. F_CPU ?= 16000000
  528. endif
  529. ifneq (,$(filter $(MCU),attiny85))
  530. PROTOCOL = VUSB
  531. # Processor frequency.
  532. # This will define a symbol, F_CPU, in all source code files equal to the
  533. # processor frequency in Hz. You can then use this symbol in your source code to
  534. # calculate timings. Do NOT tack on a 'UL' at the end, this will be done
  535. # automatically to create a 32-bit value in your source code.
  536. F_CPU ?= 16500000
  537. endif