关于大小端的问题,启动代码有这样的一段
[ ENDIAN_CHANGE
ASSERT
:DEF:ENTRY_BUS_WIDTH
[ ENTRY_BUS_WIDTH=32
b
ChangeBigEndian
;DCD 0xea000007
]
[ ENTRY_BUS_WIDTH=16
andeq
r14,r7,r0,lsl #20
;DCD 0x0007ea00
]
[ ENTRY_BUS_WIDTH=8
streq
r0,[r0,-r10,ror #1] ;DCD 0x070000ea
]
|
b
ResetHandler
]
对于
[ ENTRY_BUS_WIDTH=32
b
ChangeBigEndian
;DCD 0xea000007
]
显然是大端保存,此时cpu是小端读取为什么可以使用b
ChangeBigEndian?
为什么32位下小端读的数据与大端读的数据是一样的?
望大侠解惑!谢谢! |