关于内核初始化时页表的建立问题:__create_page_tables
我参考的内核版本是2.6.22.6,硬件平台是s3c2440
我的疑问,对应一下两句汇编代码:
__create_page_tables:
...
/*
* Now setup the pagetables for our kernel direct
* mapped region.
*/
add r0, r4, #(KERNEL_START & 0xff000000) >> 18 //KERNEL_START = c0008000
str r3, [r0, #(KERNEL_START & 0x00f00000) >> 18]! //r4 = 30004000
...
这两句和下面的汇编,有什么不同?
add r0,r4,#(KERNEL_START & 0xFFF00000)>>18
str r3,[r0]
使用这两句不是更加言简意赅吗?