Browse Source

Fix unaligned access with LTO (#7801)

Forces 4 byte alignment for USB input & output buffers to prevent unaligned accesses by chibios with LTO enabled
George Harris 5 years ago
parent
commit
e9ffc53476
1 changed files with 2 additions and 2 deletions
  1. 2 2
      tmk_core/protocol/chibios/usb_main.c

+ 2 - 2
tmk_core/protocol/chibios/usb_main.c

@@ -227,8 +227,8 @@ typedef struct {
             .in_size     = stream##_EPSIZE,                                                     \
             .out_size    = stream##_EPSIZE,                                                     \
             .fixed_size  = fixedsize,                                                           \
-            .ib          = (uint8_t[BQ_BUFFER_SIZE(stream##_IN_CAPACITY, stream##_EPSIZE)]){},  \
-            .ob          = (uint8_t[BQ_BUFFER_SIZE(stream##_OUT_CAPACITY, stream##_EPSIZE)]){}, \
+            .ib          = (__attribute__((aligned(4))) uint8_t[BQ_BUFFER_SIZE(stream##_IN_CAPACITY, stream##_EPSIZE)]){},  \
+            .ob          = (__attribute__((aligned(4))) uint8_t[BQ_BUFFER_SIZE(stream##_OUT_CAPACITY, stream##_EPSIZE)]){}, \
         }                                                                                       \
     }