avoid gcc warnings (and potential errors) when strict aliasing is on
This commit is contained in:
@@ -23,6 +23,8 @@
|
|||||||
* linker symbols must be defined in the linker command file.
|
* linker symbols must be defined in the linker command file.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
|
typedef uint32_t __attribute__((__may_alias__)) uint32_t_a;
|
||||||
|
|
||||||
extern uint8_t _MBAR[];
|
extern uint8_t _MBAR[];
|
||||||
extern uint8_t _MMUBAR[];
|
extern uint8_t _MMUBAR[];
|
||||||
extern uint8_t _RAMBAR0[];
|
extern uint8_t _RAMBAR0[];
|
||||||
|
|||||||
@@ -24,7 +24,9 @@
|
|||||||
*********************************************************************/
|
*********************************************************************/
|
||||||
|
|
||||||
/* Register read/write macros */
|
/* Register read/write macros */
|
||||||
#define MCF_MMU_MMUCR (*(volatile uint32_t*)(&_MMUBAR[0]))
|
|
||||||
|
/* note the uint32_t_a - this is to avoid gcc warnings about pointer aliasing */
|
||||||
|
#define MCF_MMU_MMUCR (*(volatile uint32_t_a*)(&_MMUBAR[0]))
|
||||||
#define MCF_MMU_MMUOR (*(volatile uint32_t*)(&_MMUBAR[0x4]))
|
#define MCF_MMU_MMUOR (*(volatile uint32_t*)(&_MMUBAR[0x4]))
|
||||||
#define MCF_MMU_MMUSR (*(volatile uint32_t*)(&_MMUBAR[0x8]))
|
#define MCF_MMU_MMUSR (*(volatile uint32_t*)(&_MMUBAR[0x8]))
|
||||||
#define MCF_MMU_MMUAR (*(volatile uint32_t*)(&_MMUBAR[0x10]))
|
#define MCF_MMU_MMUAR (*(volatile uint32_t*)(&_MMUBAR[0x10]))
|
||||||
|
|||||||
Reference in New Issue
Block a user