board.h 5.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228
  1. /*
  2. * File : board.h
  3. * This file is part of RT-Thread RTOS
  4. * COPYRIGHT (C) 2009, RT-Thread Development Team
  5. *
  6. * The license and distribution terms for this file may be
  7. * found in the file LICENSE in this distribution or at
  8. * http://www.rt-thread.org/license/LICENSE
  9. *
  10. * Change Logs:
  11. * Date Author Notes
  12. * 2009-09-22 Bernard add board.h to this bsp
  13. * 2017-10-20 ZYH emmm...setup for HAL Libraries
  14. */
  15. // <<< Use Configuration Wizard in Context Menu >>>
  16. #ifndef __BOARD_H__
  17. #define __BOARD_H__
  18. #include "stm32f1xx_hal.h"
  19. /* board configuration */
  20. #if \
  21. defined(STM32F101TB)||\
  22. defined(STM32F103T8)||\
  23. defined(STM32F103TB)
  24. #define STM32F10X_PIN_NUMBERS 36
  25. #elif \
  26. defined(STM32F101CB)||\
  27. defined(STM32F102CB)||\
  28. defined(STM32F103C8)||\
  29. defined(STM32F103CB)
  30. #define STM32F10X_PIN_NUMBERS 48
  31. #elif \
  32. defined(STM32F100RC)||\
  33. defined(STM32F100RD)||\
  34. defined(STM32F100RE)||\
  35. defined(STM32F101RB)||\
  36. defined(STM32F101RC)||\
  37. defined(STM32F101RD)||\
  38. defined(STM32F101RE)||\
  39. defined(STM32F101RF)||\
  40. defined(STM32F101RG)||\
  41. defined(STM32F102RB)||\
  42. defined(STM32F103R8)||\
  43. defined(STM32F103RB)||\
  44. defined(STM32F103RC)||\
  45. defined(STM32F103RD)||\
  46. defined(STM32F103RE)||\
  47. defined(STM32F103RF)||\
  48. defined(STM32F103RG)||\
  49. defined(STM32F105R8)||\
  50. defined(STM32F105RB)||\
  51. defined(STM32F105RC)||\
  52. defined(STM32F107RB)||\
  53. defined(STM32F107RC)
  54. #define STM32F10X_PIN_NUMBERS 64
  55. #elif \
  56. defined(STM32F100VC)||\
  57. defined(STM32F100VD)||\
  58. defined(STM32F100VE)||\
  59. defined(STM32F101VB)||\
  60. defined(STM32F101VC)||\
  61. defined(STM32F101VD)||\
  62. defined(STM32F101VE)||\
  63. defined(STM32F101VF)||\
  64. defined(STM32F101VG)||\
  65. defined(STM32F103V8)||\
  66. defined(STM32F103VB)||\
  67. defined(STM32F103VC)||\
  68. defined(STM32F103VD)||\
  69. defined(STM32F103VE)||\
  70. defined(STM32F103VF)||\
  71. defined(STM32F103VG)||\
  72. defined(STM32F105V8)||\
  73. defined(STM32F105VB)||\
  74. defined(STM32F105VC)||\
  75. defined(STM32F107VB)||\
  76. defined(STM32F107VC)
  77. #define STM32F10X_PIN_NUMBERS 100
  78. #elif \
  79. defined(STM32F100ZC)||\
  80. defined(STM32F100ZD)||\
  81. defined(STM32F100ZE)||\
  82. defined(STM32F101ZC)||\
  83. defined(STM32F101ZD)||\
  84. defined(STM32F101ZE)||\
  85. defined(STM32F101ZF)||\
  86. defined(STM32F101ZG)||\
  87. defined(STM32F103ZC)||\
  88. defined(STM32F103ZD)||\
  89. defined(STM32F103ZE)||\
  90. defined(STM32F103ZF)||\
  91. defined(STM32F103ZG)
  92. #define STM32F10X_PIN_NUMBERS 144
  93. #endif
  94. #if \
  95. defined(STM32F100RC)||\
  96. defined(STM32F100VC)||\
  97. defined(STM32F100ZC)
  98. #define STM32_SRAM_SIZE 24
  99. //#define STM32F100xE
  100. #elif \
  101. defined(STM32F100RD)||\
  102. defined(STM32F100RE)||\
  103. defined(STM32F100VD)||\
  104. defined(STM32F100VE)||\
  105. defined(STM32F100ZD)||\
  106. defined(STM32F100ZE)
  107. #define STM32_SRAM_SIZE 32
  108. //#define STM32F100xE
  109. #elif \
  110. defined(STM32F101TB)||\
  111. defined(STM32F101CB)||\
  112. defined(STM32F101RB)||\
  113. defined(STM32F101VB)
  114. #define STM32_SRAM_SIZE 16
  115. //#define STM32F101xB
  116. #elif \
  117. defined(STM32F101RC)||\
  118. defined(STM32F101VC)||\
  119. defined(STM32F101ZC)
  120. #define STM32_SRAM_SIZE 32
  121. //#define STM32F101xE
  122. #elif \
  123. defined(STM32F101RD)||\
  124. defined(STM32F101RE)||\
  125. defined(STM32F101VD)||\
  126. defined(STM32F101VE)||\
  127. defined(STM32F101ZD)||\
  128. defined(STM32F101ZE)
  129. #define STM32_SRAM_SIZE 48
  130. //#define STM32F101xE
  131. #elif \
  132. defined(STM32F101RF)||\
  133. defined(STM32F101RG)||\
  134. defined(STM32F101VF)||\
  135. defined(STM32F101VG)||\
  136. defined(STM32F101ZF)||\
  137. defined(STM32F101ZG)
  138. #define STM32_SRAM_SIZE 80
  139. //#define STM32F101xG
  140. #elif \
  141. defined(STM32F102CB)||\
  142. defined(STM32F102RB)
  143. #define STM32_SRAM_SIZE 16
  144. //#define STM32F102xB
  145. #elif \
  146. defined(STM32F103T8)||\
  147. defined(STM32F103TB)||\
  148. defined(STM32F103C8)||\
  149. defined(STM32F103CB)||\
  150. defined(STM32F103R8)||\
  151. defined(STM32F103RB)||\
  152. defined(STM32F103V8)||\
  153. defined(STM32F103VB)
  154. #define STM32_SRAM_SIZE 20
  155. //#define STM32F103xB
  156. #elif \
  157. defined(STM32F103RC)||\
  158. defined(STM32F103VC)||\
  159. defined(STM32F103ZC)
  160. #define STM32_SRAM_SIZE 48
  161. //#define STM32F103xE
  162. #elif \
  163. defined(STM32F103RD)||\
  164. defined(STM32F103RE)||\
  165. defined(STM32F103VD)||\
  166. defined(STM32F103VE)||\
  167. defined(STM32F103ZD)||\
  168. defined(STM32F103ZE)
  169. #define STM32_SRAM_SIZE 64
  170. //#define STM32F103xE
  171. #elif \
  172. defined(STM32F103RF)||\
  173. defined(STM32F103RG)||\
  174. defined(STM32F103VF)||\
  175. defined(STM32F103VG)||\
  176. defined(STM32F103ZF)||\
  177. defined(STM32F103ZG)
  178. #define STM32_SRAM_SIZE 96
  179. //#define STM32F103xG
  180. #elif \
  181. defined(STM32F105R8)||\
  182. defined(STM32F105RB)||\
  183. defined(STM32F105RC)||\
  184. defined(STM32F105V8)||\
  185. defined(STM32F105VB)||\
  186. defined(STM32F105VC)
  187. #define STM32_SRAM_SIZE 64
  188. //#define STM32F105xC
  189. #elif \
  190. defined(STM32F107RB)||\
  191. defined(STM32F107RC)||\
  192. defined(STM32F107VB)||\
  193. defined(STM32F107VC)
  194. #define STM32_SRAM_SIZE 64
  195. //#define STM32F107xC
  196. #endif
  197. /* whether use board external SRAM memory */
  198. // <e>Use external SRAM memory on the board
  199. // <i>Enable External SRAM memory
  200. #define STM32_EXT_SRAM 0
  201. // <o>Begin Address of External SRAM
  202. // <i>Default: 0x68000000
  203. #define STM32_EXT_SRAM_BEGIN 0x68000000 /* the begining address of external SRAM */
  204. // <o>End Address of External SRAM
  205. // <i>Default: 0x68080000
  206. #define STM32_EXT_SRAM_END 0x68080000 /* the end address of external SRAM */
  207. // </e>
  208. // <o> Internal SRAM memory size[Kbytes] <8-64>
  209. // <i>Default: 64
  210. #define STM32_SRAM_END (0x20000000 + STM32_SRAM_SIZE * 1024)
  211. #ifdef __CC_ARM
  212. extern int Image$$RW_IRAM1$$ZI$$Limit;
  213. #define HEAP_BEGIN ((void *)&Image$$RW_IRAM1$$ZI$$Limit)
  214. #elif __ICCARM__
  215. #pragma section="HEAP"
  216. #define HEAP_BEGIN (__segment_end("HEAP"))
  217. #else
  218. extern int __bss_end;
  219. #define HEAP_BEGIN ((void *)&__bss_end)
  220. #endif
  221. #define HEAP_END STM32_SRAM_END
  222. void rt_hw_board_init(void);
  223. #endif /* __BOARD_H__ */