SConscript 8.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143
  1. import rtconfig
  2. Import('RTT_ROOT')
  3. from building import *
  4. # get current directory
  5. cwd = GetCurrentDir()
  6. # The set of source files associated with this SConscript file.
  7. src = Split("""
  8. CMSIS/Device/ST/STM32F1xx/Source/Templates/system_stm32f1xx.c
  9. STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_adc.c
  10. STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_adc_ex.c
  11. STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_gpio.c
  12. STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_gpio_ex.c
  13. STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash.c
  14. STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash_ex.c
  15. STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_dma.c
  16. STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_cortex.c
  17. STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_crc.c
  18. STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_i2c.c
  19. STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_irda.c
  20. STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_iwdg.c
  21. STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_pwr.c
  22. STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_rcc.c
  23. STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_rcc_ex.c
  24. STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_rtc.c
  25. STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_rtc_ex.c
  26. STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_smartcard.c
  27. STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_spi.c
  28. STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_spi_ex.c
  29. STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_tim.c
  30. STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_tim_ex.c
  31. STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_uart.c
  32. STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_usart.c
  33. STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_wwdg.c
  34. STM32F1xx_HAL_Driver/Src/stm32f1xx_hal.c
  35. STM32F1xx_HAL_Driver/Src/stm32f1xx_ll_adc.c
  36. STM32F1xx_HAL_Driver/Src/stm32f1xx_ll_crc.c
  37. STM32F1xx_HAL_Driver/Src/stm32f1xx_ll_dac.c
  38. STM32F1xx_HAL_Driver/Src/stm32f1xx_ll_dma.c
  39. STM32F1xx_HAL_Driver/Src/stm32f1xx_ll_exti.c
  40. STM32F1xx_HAL_Driver/Src/stm32f1xx_ll_fsmc.c
  41. STM32F1xx_HAL_Driver/Src/stm32f1xx_ll_gpio.c
  42. STM32F1xx_HAL_Driver/Src/stm32f1xx_ll_i2c.c
  43. STM32F1xx_HAL_Driver/Src/stm32f1xx_ll_pwr.c
  44. STM32F1xx_HAL_Driver/Src/stm32f1xx_ll_rcc.c
  45. STM32F1xx_HAL_Driver/Src/stm32f1xx_ll_rtc.c
  46. STM32F1xx_HAL_Driver/Src/stm32f1xx_ll_sdmmc.c
  47. STM32F1xx_HAL_Driver/Src/stm32f1xx_ll_spi.c
  48. STM32F1xx_HAL_Driver/Src/stm32f1xx_ll_tim.c
  49. STM32F1xx_HAL_Driver/Src/stm32f1xx_ll_usart.c
  50. STM32F1xx_HAL_Driver/Src/stm32f1xx_ll_usb.c
  51. STM32F1xx_HAL_Driver/Src/stm32f1xx_ll_utils.c
  52. """)
  53. #device options
  54. if GetDepend(['STM32F100RC']) or GetDepend(['STM32F100RC']) or GetDepend(['STM32F100RC']) or GetDepend(['STM32F100RD']) or GetDepend(['STM32F100RE']) or GetDepend(['STM32F100VD']) or GetDepend(['STM32F100VE']) or GetDepend(['STM32F100ZD']) or GetDepend(['STM32F100ZE']):
  55. STM32_TYPE = 'STM32F100xE'
  56. if GetDepend(['STM32F101TB']) or GetDepend(['STM32F101CB']) or GetDepend(['STM32F101RB']) or GetDepend(['STM32F101VB']):
  57. STM32_TYPE = 'STM32F101xB'
  58. if GetDepend(['STM32F101RC']) or GetDepend(['STM32F101VC']) or GetDepend(['STM32F101ZC']) or GetDepend(['STM32F101RD']) or GetDepend(['STM32F101RE']) or GetDepend(['STM32F101VD']) or GetDepend(['STM32F101VE']) or GetDepend(['STM32F101ZD']) or GetDepend(['STM32F101ZE']):
  59. STM32_TYPE = 'STM32F101xE'
  60. if GetDepend(['STM32F101RF']) or GetDepend(['STM32F101RG']) or GetDepend(['STM32F101VF']) or GetDepend(['STM32F101VG']) or GetDepend(['STM32F101ZF']) or GetDepend(['STM32F101ZG']):
  61. STM32_TYPE = 'STM32F101xG'
  62. if GetDepend(['STM32F102CB']) or GetDepend(['STM32F102RB']):
  63. STM32_TYPE = 'STM32F102xB'
  64. if GetDepend(['STM32F103T8']) or GetDepend(['STM32F103TB']) or GetDepend(['STM32F103C8']) or GetDepend(['STM32F103CB']) or GetDepend(['STM32F103R8']) or GetDepend(['STM32F103RB']) or GetDepend(['STM32F103V8']) or GetDepend(['STM32F103VB']):
  65. STM32_TYPE = 'STM32F103xB'
  66. if GetDepend(['STM32F103RC']) or GetDepend(['STM32F103VC']) or GetDepend(['STM32F103ZC']) or GetDepend(['STM32F103RD']) or GetDepend(['STM32F103RE']) or GetDepend(['STM32F103VD']) or GetDepend(['STM32F103VE']) or GetDepend(['STM32F103ZD']) or GetDepend(['STM32F103ZE']):
  67. STM32_TYPE = 'STM32F103xE'
  68. if GetDepend(['STM32F103RF']) or GetDepend(['STM32F103RG']) or GetDepend(['STM32F103VF']) or GetDepend(['STM32F103VG']) or GetDepend(['STM32F103ZF']) or GetDepend(['STM32F103ZG']):
  69. STM32_TYPE = 'STM32F103xG'
  70. if GetDepend(['STM32F105R8']) or GetDepend(['STM32F105RB']) or GetDepend(['STM32F105RC']) or GetDepend(['STM32F105V8']) or GetDepend(['STM32F105VB']) or GetDepend(['STM32F105VC']):
  71. STM32_TYPE = 'STM32F105xC'
  72. if GetDepend(['STM32F107RB']) or GetDepend(['STM32F107RC']) or GetDepend(['STM32F107VB']) or GetDepend(['STM32F107VC']):
  73. STM32_TYPE = 'STM32F107xC'
  74. if STM32_TYPE == 'STM32F100xB' or STM32_TYPE == 'STM32F100xE':
  75. src = src + ['STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_cec.c']
  76. if STM32_TYPE == 'STM32F103x6' or STM32_TYPE == 'STM32F103xB' or STM32_TYPE == 'STM32F103xE' or STM32_TYPE == 'STM32F103xG' or STM32_TYPE == 'STM32F105xC' or STM32_TYPE == 'STM32F107xC':
  77. src = src + ['STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c']
  78. if STM32_TYPE == 'STM32F100xB' or STM32_TYPE == 'STM32F100xE' or STM32_TYPE == 'STM32F101xE' or STM32_TYPE == 'STM32F101xG' or STM32_TYPE == 'STM32F103xE' or STM32_TYPE == 'STM32F103xG' or STM32_TYPE == 'STM32F105xC' or STM32_TYPE == 'STM32F107xC':
  79. src = src + ['STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_dac.c'] + ['STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_dac_ex.c']
  80. if STM32_TYPE == 'STM32F107xC':
  81. src = src + ['STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_eth.c']
  82. if STM32_TYPE == 'STM32F107xC' or STM32_TYPE == 'STM32F105xC':
  83. src = src + ['STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_hcd.c']
  84. if STM32_TYPE == 'STM32F107xC' or STM32_TYPE == 'STM32F105xC' or STM32_TYPE == 'STM32F103xE' or STM32_TYPE == 'STM32F103xG':
  85. src = src + ['STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_i2s.c']
  86. if STM32_TYPE == 'STM32F103xE' or STM32_TYPE == 'STM32F103xG':
  87. src = src + ['STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_mmc.c'] + ['STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_sd.c']
  88. if STM32_TYPE == 'STM32F101xE' or STM32_TYPE == 'STM32F103xE' or STM32_TYPE == 'STM32F101xG' or STM32_TYPE == 'STM32F103xG':
  89. src = src + ['STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_nand.c'] + ['STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_pccard.c']
  90. if STM32_TYPE == 'STM32F101xE' or STM32_TYPE == 'STM32F103xE' or STM32_TYPE == 'STM32F101xG' or STM32_TYPE == 'STM32F103xG' or STM32_TYPE == 'STM32F100xE':
  91. src = src + ['STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_nor.c'] + ['STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_sram.c']
  92. if STM32_TYPE == 'STM32F102x6' or STM32_TYPE == 'STM32F102xB' or STM32_TYPE == 'STM32F103x6' or STM32_TYPE == 'STM32F103xB' or STM32_TYPE == 'STM32F103xE' or STM32_TYPE == 'STM32F103xG' or STM32_TYPE == 'STM32F105xC' or STM32_TYPE == 'STM32F107xC':
  93. src = src + ['STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_pcd.c'] + ['STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_pcd_ex.c']
  94. # starupt scripts for each STM32 kind
  95. startup_scripts = {}
  96. startup_scripts['STM32F100xB'] = 'startup_stm32f100xb.s'
  97. startup_scripts['STM32F100xE'] = 'startup_stm32f100xe.s'
  98. startup_scripts['STM32F101x6'] = 'startup_stm32f101x6.s'
  99. startup_scripts['STM32F101xB'] = 'startup_stm32f101xb.s'
  100. startup_scripts['STM32F101xE'] = 'startup_stm32f101xe.s'
  101. startup_scripts['STM32F101xG'] = 'startup_stm32f101xg.s'
  102. startup_scripts['STM32F102x6'] = 'startup_stm32f102x6.s'
  103. startup_scripts['STM32F102xB'] = 'startup_stm32f102xb.s'
  104. startup_scripts['STM32F103x6'] = 'startup_stm32f103x6.s'
  105. startup_scripts['STM32F103xB'] = 'startup_stm32f103xb.s'
  106. startup_scripts['STM32F103xE'] = 'startup_stm32f103xe.s'
  107. startup_scripts['STM32F103xG'] = 'startup_stm32f103xe.s'
  108. startup_scripts['STM32F105xC'] = 'startup_stm32f105xc.s'
  109. startup_scripts['STM32F107xC'] = 'startup_stm32f107xc.s'
  110. # add for startup script
  111. if rtconfig.CROSS_TOOL == 'gcc':
  112. src = src + ['CMSIS/Device/ST/STM32F1xx/Source/Templates/gcc/' + startup_scripts[STM32_TYPE]]
  113. elif rtconfig.CROSS_TOOL == 'keil':
  114. src = src + ['CMSIS/Device/ST/STM32F1xx/Source/Templates/arm/' + startup_scripts[STM32_TYPE]]
  115. elif rtconfig.CROSS_TOOL == 'iar':
  116. src = src + ['CMSIS/Device/ST/STM32F1xx/Source/Templates/iar/' + startup_scripts[STM32_TYPE]]
  117. path = [cwd + '/CMSIS/Device/ST/STM32F1xx/Include',
  118. cwd + '/STM32F1xx_HAL_Driver/Inc',
  119. cwd + '/CMSIS/Include']
  120. if GetDepend(['RT_USING_RTT_CMSIS']):
  121. path += [RTT_ROOT + '/components/CMSIS/Include']
  122. CPPDEFINES = ['USE_HAL_DRIVER',STM32_TYPE]
  123. group = DefineGroup('STM32_HAL', src, depend = [''], CPPPATH = path, CPPDEFINES = CPPDEFINES)
  124. Return('group')