I am porting FreeRTOS 8.0.0 to other ARMv7 platforms based on the …/portable/GCC/ARM_CA9. I found the system generates data abort when accessing portICCPMR_PRIORITY_MASK_REGISTER.
portICCPMR_PRIORITY_MASK_REGISTER is defined as ( *( ( volatile uint8_t * ) ( portINTERRUPT_CONTROLLER_CPU_INTERFACE_ADDRESS + portICCPMR_PRIORITY_MASK_OFFSET ) ) ) in portmacro.h. According to ARM IHI0048B GIC Architecture Specification, section 4.1.4, all registers support 32-bit access. Some registers support 8-bit access. All other accesses are implementation dependent.
I changed portICCPMR_PRIORITY_MASK_REGISTER to 32-bit wide register, the data abort goes away.
Does the register width change make sense?
Is there any side effect of the width change?