瀏覽代碼

Fix compilation error for MKS Robin (#13506)

Alexander Gavrilenko 6 年之前
父節點
當前提交
6d9aaca082

+ 4
- 0
Marlin/src/HAL/HAL_STM32F1/HAL.h 查看文件

130
   #define analogInputToDigitalPin(p) (p)
130
   #define analogInputToDigitalPin(p) (p)
131
 #endif
131
 #endif
132
 
132
 
133
+#ifndef digitalPinHasPWM
134
+  #define digitalPinHasPWM(P) (PIN_MAP[P].timer_device != NULL)
135
+#endif
136
+
133
 #define CRITICAL_SECTION_START  uint32_t primask = __get_primask(); (void)__iCliRetVal()
137
 #define CRITICAL_SECTION_START  uint32_t primask = __get_primask(); (void)__iCliRetVal()
134
 #define CRITICAL_SECTION_END    if (!primask) (void)__iSeiRetVal()
138
 #define CRITICAL_SECTION_END    if (!primask) (void)__iSeiRetVal()
135
 #define ISRS_ENABLED() (!__get_primask())
139
 #define ISRS_ENABLED() (!__get_primask())

+ 15
- 3
Marlin/src/HAL/HAL_STM32F1/HAL_sdio_STM32F1.cpp 查看文件

21
  *
21
  *
22
  */
22
  */
23
 
23
 
24
-#if defined(__STM32F1__) && (defined(STM32_HIGH_DENSITY) || defined(STM32_XL_DENSITY))
24
+#if defined(ARDUINO_ARCH_STM32F1) && (defined(STM32_HIGH_DENSITY) || defined(STM32_XL_DENSITY))
25
 
25
 
26
 #include "HAL_sdio_STM32F1.h"
26
 #include "HAL_sdio_STM32F1.h"
27
 
27
 
76
   return true;
76
   return true;
77
 }
77
 }
78
 
78
 
79
-bool SDIO_ReadBlock(uint32_t blockAddress, uint8_t *data) {
79
+bool SDIO_ReadBlock_DMA(uint32_t blockAddress, uint8_t *data) {
80
   if (SDIO_GetCardState() != SDIO_CARD_TRANSFER) return false;
80
   if (SDIO_GetCardState() != SDIO_CARD_TRANSFER) return false;
81
   if (blockAddress >= SdCard.LogBlockNbr) return false;
81
   if (blockAddress >= SdCard.LogBlockNbr) return false;
82
   if ((0x03 & (uint32_t)data)) return false; // misaligned data
82
   if ((0x03 & (uint32_t)data)) return false; // misaligned data
100
 
100
 
101
   dma_disable(SDIO_DMA_DEV, SDIO_DMA_CHANNEL);
101
   dma_disable(SDIO_DMA_DEV, SDIO_DMA_CHANNEL);
102
 
102
 
103
+  if (SDIO->STA & SDIO_STA_RXDAVL) {
104
+    while (SDIO->STA & SDIO_STA_RXDAVL) (void) SDIO->FIFO;
105
+    SDIO_CLEAR_FLAG(SDIO_ICR_CMD_FLAGS | SDIO_ICR_DATA_FLAGS);
106
+    return false;
107
+  }
108
+
103
   if (SDIO_GET_FLAG(SDIO_STA_TRX_ERROR_FLAGS)) {
109
   if (SDIO_GET_FLAG(SDIO_STA_TRX_ERROR_FLAGS)) {
104
     SDIO_CLEAR_FLAG(SDIO_ICR_CMD_FLAGS | SDIO_ICR_DATA_FLAGS);
110
     SDIO_CLEAR_FLAG(SDIO_ICR_CMD_FLAGS | SDIO_ICR_DATA_FLAGS);
105
     return false;
111
     return false;
108
   return true;
114
   return true;
109
 }
115
 }
110
 
116
 
117
+bool SDIO_ReadBlock(uint32_t blockAddress, uint8_t *data) {
118
+  uint32_t retries = 3;
119
+  while (retries--) if (SDIO_ReadBlock_DMA(blockAddress, data)) return true;
120
+  return false;
121
+}
122
+
111
 bool SDIO_WriteBlock(uint32_t blockAddress, const uint8_t *data) {
123
 bool SDIO_WriteBlock(uint32_t blockAddress, const uint8_t *data) {
112
   if (SDIO_GetCardState() != SDIO_CARD_TRANSFER) return false;
124
   if (SDIO_GetCardState() != SDIO_CARD_TRANSFER) return false;
113
   if (blockAddress >= SdCard.LogBlockNbr) return false;
125
   if (blockAddress >= SdCard.LogBlockNbr) return false;
264
   return true;
276
   return true;
265
 }
277
 }
266
 
278
 
267
-#endif // __STM32F1__ && (STM32_HIGH_DENSITY || STM32_XL_DENSITY)
279
+#endif // ARDUINO_ARCH_STM32F1 && (STM32_HIGH_DENSITY || STM32_XL_DENSITY)

+ 2
- 2
Marlin/src/HAL/HAL_STM32F1/u8g_com_stm32duino_fsmc.cpp 查看文件

26
  * Communication interface for FSMC
26
  * Communication interface for FSMC
27
  */
27
  */
28
 
28
 
29
-#if (defined(STM32F1) || defined(STM32F1xx)) && (defined(STM32_HIGH_DENSITY) || defined(STM32_XL_DENSITY))
29
+#if defined(ARDUINO_ARCH_STM32F1) && (defined(STM32_HIGH_DENSITY) || defined(STM32_XL_DENSITY))
30
 
30
 
31
 #include "../../inc/MarlinConfig.h"
31
 #include "../../inc/MarlinConfig.h"
32
 
32
 
267
 
267
 
268
 #endif // HAS_GRAPHICAL_LCD
268
 #endif // HAS_GRAPHICAL_LCD
269
 
269
 
270
-#endif // (STM32F1 || STM32F1xx) && (STM32_HIGH_DENSITY || STM32_XL_DENSITY)
270
+#endif // ARDUINO_ARCH_STM32F1 && (STM32_HIGH_DENSITY || STM32_XL_DENSITY)

+ 1
- 1
Marlin/src/lcd/dogm/HAL_LCD_com_defines.h 查看文件

47
   uint8_t u8g_com_HAL_LPC1768_ssd_hw_i2c_fn(u8g_t *u8g, uint8_t msg, uint8_t arg_val, void *arg_ptr);
47
   uint8_t u8g_com_HAL_LPC1768_ssd_hw_i2c_fn(u8g_t *u8g, uint8_t msg, uint8_t arg_val, void *arg_ptr);
48
   #define U8G_COM_SSD_I2C_HAL u8g_com_arduino_ssd_i2c_fn
48
   #define U8G_COM_SSD_I2C_HAL u8g_com_arduino_ssd_i2c_fn
49
 
49
 
50
-  #if defined(STM32F1) || defined(STM32F1xx)
50
+  #if defined(ARDUINO_ARCH_STM32F1)
51
     uint8_t u8g_com_stm32duino_fsmc_fn(u8g_t *u8g, uint8_t msg, uint8_t arg_val, void *arg_ptr);
51
     uint8_t u8g_com_stm32duino_fsmc_fn(u8g_t *u8g, uint8_t msg, uint8_t arg_val, void *arg_ptr);
52
     #define U8G_COM_HAL_FSMC_FN u8g_com_stm32duino_fsmc_fn
52
     #define U8G_COM_HAL_FSMC_FN u8g_com_stm32duino_fsmc_fn
53
   #else
53
   #else

+ 3
- 1
buildroot/share/PlatformIO/scripts/mks_robin.py 查看文件

1
 Import("env")
1
 Import("env")
2
 
2
 
3
 # Relocate firmware from 0x08000000 to 0x08007000
3
 # Relocate firmware from 0x08000000 to 0x08007000
4
-env['CPPDEFINES'].remove(("VECT_TAB_ADDR", 134217728))
4
+for define in env['CPPDEFINES']:
5
+    if define[0] == "VECT_TAB_ADDR":
6
+        env['CPPDEFINES'].remove(define)
5
 env['CPPDEFINES'].append(("VECT_TAB_ADDR", "0x08007000"))
7
 env['CPPDEFINES'].append(("VECT_TAB_ADDR", "0x08007000"))
6
 env.Replace(LDSCRIPT_PATH="buildroot/share/PlatformIO/ldscripts/mks_robin.ld")
8
 env.Replace(LDSCRIPT_PATH="buildroot/share/PlatformIO/ldscripts/mks_robin.ld")
7
 
9
 

+ 1
- 0
platformio.ini 查看文件

308
 extra_scripts = buildroot/share/PlatformIO/scripts/mks_robin.py
308
 extra_scripts = buildroot/share/PlatformIO/scripts/mks_robin.py
309
 build_flags   = !python Marlin/src/HAL/HAL_STM32F1/STM32F1_flag_script.py
309
 build_flags   = !python Marlin/src/HAL/HAL_STM32F1/STM32F1_flag_script.py
310
   ${common.build_flags}
310
   ${common.build_flags}
311
+  -DSTM32_XL_DENSITY
311
 src_filter    = ${common.default_src_filter} +<src/HAL/HAL_STM32F1>
312
 src_filter    = ${common.default_src_filter} +<src/HAL/HAL_STM32F1>
312
 lib_deps      = ${common.lib_deps}
313
 lib_deps      = ${common.lib_deps}
313
 lib_ignore    = c1921b4
314
 lib_ignore    = c1921b4

Loading…
取消
儲存