浏览代码

🚑️ Prevent BFT unaligned compressed data corruption (#22134)

ellensp 4 年前
父节点
当前提交
a9eff3597d
没有帐户链接到提交者的电子邮件
共有 1 个文件被更改,包括 3 次插入11 次删除
  1. 3
    11
      Marlin/src/feature/binary_stream.h

+ 3
- 11
Marlin/src/feature/binary_stream.h 查看文件

@@ -24,9 +24,11 @@
24 24
 #include "../inc/MarlinConfig.h"
25 25
 
26 26
 #define BINARY_STREAM_COMPRESSION
27
-
28 27
 #if ENABLED(BINARY_STREAM_COMPRESSION)
29 28
   #include "../libs/heatshrink/heatshrink_decoder.h"
29
+  // STM32 (and others?) require a word-aligned buffer for SD card transfers via DMA
30
+  static __attribute__((aligned(sizeof(size_t)))) uint8_t decode_buffer[512] = {};
31
+  static heatshrink_decoder hsd;
30 32
 #endif
31 33
 
32 34
 inline bool bs_serial_data_available(const serial_index_t index) {
@@ -37,16 +39,6 @@ inline int bs_read_serial(const serial_index_t index) {
37 39
   return SERIAL_IMPL.read(index);
38 40
 }
39 41
 
40
-#if ENABLED(BINARY_STREAM_COMPRESSION)
41
-  static heatshrink_decoder hsd;
42
-  #if BOTH(ARDUINO_ARCH_STM32F1, SDIO_SUPPORT)
43
-    // STM32 requires a word-aligned buffer for SD card transfers via DMA
44
-    static __attribute__((aligned(sizeof(size_t)))) uint8_t decode_buffer[512] = {};
45
-  #else
46
-    static uint8_t decode_buffer[512] = {};
47
-  #endif
48
-#endif
49
-
50 42
 class SDFileTransferProtocol  {
51 43
 private:
52 44
   struct Packet {

正在加载...
取消
保存