摘要: 供head.S调用,其中__mmap_switched的b start_kernel跳转到C执行,且永不返回。 跳转到start_kernel时寄存器值: R0 = cp#15 control register R1 = machine id R2 = atags/dtb pointer R9 = 阅读全文
posted @ 2016-09-11 09:46 yuxi_o 阅读(661) 评论(0) 推荐(0) 编辑
摘要: 内核默认的运行地址为PHY_OFFSET+0x8000,即物理地址开始后的0x8000字节处,前面是留给参数用的。参数以atag方式存储,默认放在0x100偏移位置。 http://blog.chinaunix.net/uid-20451980-id-1945241.html Linux kerne 阅读全文
posted @ 2016-09-11 09:31 yuxi_o 阅读(1257) 评论(0) 推荐(0) 编辑
摘要: 转自:http://blog.sina.com.cn/s/blog_65373f1401019f49.html 转载自解惑-Linux内核空间 Linux虚拟内存的大小为2^32(在32位的x86机器上),内核将这4G字节的空间分为两部分。最高的1G字节(从虚地址0xC0000000到0xFFFFF 阅读全文
posted @ 2016-09-11 07:36 yuxi_o 阅读(482) 评论(0) 推荐(0) 编辑
摘要: void * kmalloc(size_t size, gfp_t gfp_mask); kmalloc()第一个参数是要分配的块的大小,第一个参数为分配标志,用于控制kmalloc()的行为。 kmalloc()的底层依赖于__get_free_pages()来实现,分配标志的前缀GFP正好是这个 阅读全文
posted @ 2016-09-11 07:10 yuxi_o 阅读(624) 评论(0) 推荐(0) 编辑