韦大叔的书这里是不是写错了,应当是指向下一个结构体...

2020-01-01 17:49发布

WDS的书上有一段,
讲bootloader的15.1节

其中,tag_next 定义如下,它指向当前标记的末尾:

#define tag_next(t) ((struct tag *)((u32 *)(t) + (t)->hdr.size))


这个宏定义里面,嗯

首地址是t,加上一个tag的大小后
地址应当变成下一个tag,而不是
本tag的末尾

就像一个tag结构体,
大小是10个byte,首地址是
0x8000 0000
那么加上10个byte以后,指向
的是0x8000 000A,
是另外一个tag,而不是本tag的末尾,
因为本tag的末尾是
0x8000 0009

不知道是我对了,还是他错了……
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。