Hallo,
beim STM32 befindet sich z.B. ein Registersatz mit dem Type
USB_OTG_INEndpointTypeDef für jeden In Enpoint ab offset 0x900 im
Bereich der OTG Register.
Ich hatte versucht, diese Struktur als ein Array of structs
anzusprechen:
1 | USB_OTG_INEndpointTypeDef **in = (USB_OTG_INEndpointTypeDef **)(usbd_dev->driver->base_address + USB_OTG_IN_ENDPOINT_BASE);
|
und mit
anzusprechen. Leider geht das schief und
ist der Inhalt von DIEPCTL der i.ten Struktur.
Verwendet wurde arm-none-eabi-gcc (GNU Tools for ARM Embedded Processors
6-2017-q2-update) 6.3.1 20170620
Der Zugriff auf eine einzelne Struktur funktioniert wie erwertet:
1 | USB_OTG_INEndpointTypeDef *in = (USB_OTG_INEndpointTypeDef *)(usbd_dev->driver->base_address + USB_OTG_IN_ENDPOINT_BASE);
|
2 | in->DIEPCTL
|
Ist ein array of structs mit dem Zuweisen einer Adresse nicht erlaubt?
Bei meiner Suche im Web meine ich Hinweise darauf gefunden zu haben.
Oder wird ein bestimmter C Standard gebraucht?