Typo in this posting we assume…7fe180c s.b. 7fe0180c (missing 0)
I should get the contents of 7fe180c. I get the contents of 7fe01810.
and EMAC_RX_BUFFER_ADDR = 7fe01800 of course would be prefixed 0x
I’ll guess that your compiler options are set to align structures on size_t boundaries.
I use IAR, not GCC, and it has a pragma to control this line by line, and a global default.
I’ve coded this same scheme for the long set of registers and buffers in the WizNet chip - but I used all uint8_t types in the arrays to avoid sizeof() issues in CPU portability and compilers.