uboot标记列表的位置计算关键在于两个宏:
#define tag_next(t) ((struct tag *)((u32 *)(t) + (t)->hdr.size)) /*(u32 *)(t) ,指针强制转换(u32*)四字节对其,*/
#define tag_size(type) ((sizeof(struct tag_header) + sizeof(struct type)) >> 2) /*四字节对其*/
本文介绍U-Boot中用于计算标记列表位置的两个关键宏:tag_next和tag_size。通过这两个宏实现四字节对齐,确保了标记列表在内存中的正确布局。
uboot标记列表的位置计算关键在于两个宏:
#define tag_next(t) ((struct tag *)((u32 *)(t) + (t)->hdr.size)) /*(u32 *)(t) ,指针强制转换(u32*)四字节对其,*/
#define tag_size(type) ((sizeof(struct tag_header) + sizeof(struct type)) >> 2) /*四字节对其*/

被折叠的 条评论
为什么被折叠?