大小端模式详解

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/huhuolianmeng/article/details/71153030

大小端模式的测试:

随便找一个裸机代码测试即可:下面以pwm.bin例子

1.汇编代码:arm-linux-objdump -S pwm.elf | less

d0020010 <_start>:
d0020010: e59f0020 ldr r0, [pc, #32] ; d0020038 <_start+0x28>

2.hexdump -C 210.bin

(是不是感到疑惑啊!d0020010: e59f0020 怎么没有和00000000 2a 2a 2a 2a 因为
我用SD卡烧录的,需要加16B的头校验 2a 2a 2a 2a 2a 2a 2a 2a e2 1d 01 00 2a 2a 2a 2a 。。。不过e2 1d 01 00这才是真正的头校验信息,怎么得到的这个信息不用说了吧。。。有了mkv210_image.c 文件经编译后生成mkx210,./mkx210 pwm.bin 210.bin)实在不想说了 这个太简单了 头有点痛 本人还是大学生 还要上课 ,,,不说了
00000000 2a 2a 2a 2a 2a 2a 2a 2a e2 1d 01 00 2a 2a 2a 2a |….|
00000010 20 00 9f e5 00 10 a0 e3 00 10 80 e5 34 00 00 eb | ………..4…|
00000020 14 d0 9f e5 10 0f 11 ee 01 0a 80 e3 10 0f 01 ee |…………….|
00000030 6c 00 00 eb fe ff ff ea 00 00 70 e2 80 7d 03 d0 |l………p..}..|
00000040 41 1a 00 00 00 61 65 61 62 69 00 01 10 00 00 00 |A….aeabi……|

比较:大端模式:
e59f0020 在linux中测试是00000010 20 00 9f e5 可见高字节放到了高地址

3.uboo下面测试

在uboot命令行下面我通过tftp 服务器把210.bin下载到了我的DDR 内存中了,如果你想问我TFTP 怎么搭建 我会在我的其他博客中讲述的:::
DH@local # tftp 0x30008000 210.bin
dm9000 i/o: 0x88000300, id: 0x90000a46
DM9000: running in 16 bit mode
MAC: 00:40:5c:26:0a:5b
operating at 100M full duplex mode
Using dm9000 device
TFTP from server 192.168.1.141; our IP address is 192.168.1.111
Filename ‘210.bin’.
Load address: 0x30008000
Loading: T ##
2.9 KiB/s
done
Bytes transferred = 16384 (4000 hex)
WDH@local # md 30008000
30008000: 2a2a2a2a 2a2a2a2a 00011de2 2a2a2a2a ….
30008010: e59f0020 e3a01000 e5801000 eb000034 ………..4…
30008020: e59fd014 ee110f10 e3800a01 ee010f10 …………….
30008030: eb00006c eafffffe e2700000 d0037d80 l………p..}..
30008040: 00001a41 61656100 01006962 00000010 A….aeabi……
比较:小端模式:
e59f0020 在arm中测试是30008010: e59f0020 可见高字节放到了低地址

猜你喜欢

转载自blog.csdn.net/huhuolianmeng/article/details/71153030
今日推荐