The IAR compilier does not resolve references to fields in the anonymous structs defined within the usbh_dev0_t and usbh_device_t structs as they are defined. The problem seems to relate to the placement of the 'volatile' keyword at the struct level. I fixed the problem by removing the 'volatile' from the struct level, and instead placing it on each of the field declarations within the structs.

This commit is contained in:
Tom Peterson 2022-02-25 16:49:55 -06:00
parent b797d1aa50
commit c06ecbef0c
1 changed files with 10 additions and 10 deletions

View File

@ -62,12 +62,12 @@ typedef struct
uint8_t hub_port;
uint8_t speed;
volatile struct TU_ATTR_PACKED
struct TU_ATTR_PACKED
{
uint8_t connected : 1;
uint8_t addressed : 1;
uint8_t configured : 1;
uint8_t suspended : 1;
volatile uint8_t connected : 1;
volatile uint8_t addressed : 1;
volatile uint8_t configured : 1;
volatile uint8_t suspended : 1;
};
} usbh_dev0_t;
@ -78,12 +78,12 @@ typedef struct {
uint8_t hub_port;
uint8_t speed;
volatile struct TU_ATTR_PACKED
struct TU_ATTR_PACKED
{
uint8_t connected : 1;
uint8_t addressed : 1;
uint8_t configured : 1;
uint8_t suspended : 1;
volatile uint8_t connected : 1;
volatile uint8_t addressed : 1;
volatile uint8_t configured : 1;
volatile uint8_t suspended : 1;
};
//------------- device descriptor -------------//