在2440的启动代码中,如果想让系统在大端模式下运行,需将ENDIAN_CHANGE设定为TRUE,然后编译器会根据不同的总线宽度编译不同的指令,32位、16位和8位指令的机器码分别如下0xea000007、0x0007ea00、0x070000ea,小弟不明白的是这个指令为何跟位宽产生了关联,对32位的0xea000007,实际大端编译后A+3、A+2、A+1、A的值分别为07、00、00、ea,对于16位则分别对应00、ea、07、00,8位时则是ea、00、00、07,这样系统上电时,在小端模式下运行,读出的指令不就分别是0x07000000ea、0x00ea0700、0xea000007,怎么会都是b ChangeBigEndian这条指令的意思了,实在不明白这指令跟BUS_WIDTH有什么关系,希望大虾们给予指点,不甚感激 |