А так?
Код
#define MEMARR_BASE 0x40000000
typedef union
{
uint32_t mem_dw[MAXMEM / 2];
uint16_t mem_w[MAXMEM];
uint8_t mem_b[MAXMEM * 2];
} s_mem;
volatile s_mem *ss_mem = (volatile s_mem *)MEMARR_BASE;
ss_mem->mem_b[0];
ss_mem->mem_w[1];
ss_mem->mem_dw[2];