если массив по количеству элементов равен степени 2, 3-4-8-16, то
можно закруглить наложив маску на индекс. Добить размер массива до 256 элементов и будет максимально скорострельно
typedef __packed union{
uint32_t full;
struct {
uint32_t lPart : 8;
uint32_t hPart : 24;
}part;
}AddrStruct;
#pragma data_alignment=256 __root uint8_t aData[256] = {0};
AddrStruct astr ={.full = (uint32_t ) &aData[0]};
void foo(void){
uint8_t val;
register AddrStruct reg = astr;
val = *(uint8_t *) reg.full, reg.part.lPart++;
astr = reg;
printf("%d\n", val);
}