Просмотр исходного кода

fix IAR alignment OHCI hcca will occupies the whole 256 (instead of just 252 like the specs)

hathach 12 лет назад
Родитель
Сommit
13dd843a9f
2 измененных файлов с 4 добавлено и 2 удалено
  1. 1 1
      tinyusb/host/ohci/ohci.c
  2. 3 1
      tinyusb/host/ohci/ohci.h

+ 1 - 1
tinyusb/host/ohci/ohci.c

@@ -135,7 +135,7 @@ enum {
 //--------------------------------------------------------------------+
 // INTERNAL OBJECT & FUNCTION DECLARATION
 //--------------------------------------------------------------------+
-TUSB_CFG_ATTR_USBRAM STATIC_VAR ohci_data_t ohci_data;
+TUSB_CFG_ATTR_USBRAM ATTR_ALIGNED(256) STATIC_VAR ohci_data_t ohci_data;
 
 static ohci_ed_t * const p_ed_head[] =
 {

+ 3 - 1
tinyusb/host/ohci/ohci.h

@@ -77,9 +77,11 @@ typedef struct {
   volatile uint16_t frame_number;
   volatile uint16_t frame_pad;
   volatile uint32_t done_head;
-  uint8_t reserved[116]; // TODO try to make use of this area if possible
+  uint8_t reserved[116+4];  // TODO try to make use of this area if possible, extra 4 byte to make the whole struct size = 256
 }ohci_hcca_t; // ATTR_ALIGNED(256)
 
+STATIC_ASSERT( sizeof(ohci_hcca_t) == 256, "size is not correct" );
+
 typedef struct {
   uint32_t reserved[2];
   volatile uint32_t next_td;