ChinaUnix.net
相关文章推荐:

ARM 页表

arm中一级页表有4096个目录项,用虚拟地址的高12位,再结合协处理器CP15的寄存器C2的高18位为基地址来索引一个目录项,一个目录项对应1M虚拟空间。 然而在看linux2.6.30内核源代码时发现一个奇怪的问题,为什么PGDIR_SHIFT定义为21,而不是20. 有如下定义:[code]#define PGDIR_SHIFT 21 #define PGDIR_SIZE (1UL << PGDIR_SHIFT) /* to find an entry in a page-table-directory */ #define pgd_index(addr) ((addr) >> PGDI...

by bin_linux96 - Linux环境编程 - 2011-12-17 09:32:27 阅读(1754) 回复(0)

相关讨论

本帖最后由 linuxfellow 于 2012-02-17 10:36 编辑 arm pte table前2K是linux 页表, 高2k是h/w页表, 这两个页表究竟是啥? 如何理解? /* * Allocate one PTE table. * * +--------------+ 0 * | Linux pt 0 | * +--------------+ * | Linux pt 1 | * +--------------+ 2048 * | h/w pt 0 | * +--------------+ * | h/w pt 1 | * +--------------+ */ From d30e45eeabefadc6039d7f876a59e5f5f6cb11c6 Mon Sep 17 ...

by linuxfellow - 内核源码 - 2012-02-17 13:41:08 阅读(2549) 回复(3)

本帖最后由 arm-linux-gcc 于 2013-04-18 23:04 编辑 内核中并没有使用armv7的TTBR1,只用了TTBR0,感觉这东西可以把表示内核映射的页表和表示用户空间映射的页表分离开,但是linux中并未用这东西 于是就没有使用分离页表,那么0-4G的页表在物理上必须要连续,那么就必须使得每个进程的页表都要同时包含用户空间和内核空间两部分了(物理上相邻) 当切换进程时,直接把CP15协处理器中的TTBR0指向新进程的页表物理基地址,就可以...

by arm-linux-gcc - 内核源码 - 2013-09-18 17:57:01 阅读(4885) 回复(14)

本帖最后由 blake326 于 2012-08-20 23:19 编辑 bootloader把zImage的kernel(压缩过的二进制kernel)加载到特定位置执行。 那么zImage开始部分的解压缩代码将Image(未压缩的二进制kernel)加载到什么地方的呢。 假设vmlinux的 加载段地址(init section)是 0xC0008000的话。zImage会将Image解压到0XC0008000的内存吗。 好像这样才能方便的做页表映射。但是究竟怎样处理的,找不到相关处理的代码。 然后就是arm页表貌似与x8...

by blake326 - 内核源码 - 2012-08-21 14:13:05 阅读(2147) 回复(3)

本帖最后由 求linux注释 于 2014-08-23 16:38 编辑 arm处理器的一级页表有4096个描述符。开启MMU后,虚拟地址的高12位作为索引值(虚拟地址>>20)加上存放在CP15的C2里的页表地址可得到一级页表项的地址。 而linux里arm处理器的获取页表项却是这么定义的,如下:[code]#define PMD_SHIFT 21 #define PGDIR_SHIFT 21 #define pgd_index(addr) ((addr) >> PGDIR_SHIFT) /* 虚拟地址 >> 21 取出虚拟地址对...

by 求linux注释 - 内核源码 - 2015-10-28 16:42:02 阅读(2369) 回复(5)

本帖最后由 求linux注释 于 2014-08-23 16:25 编辑 arm处理器的一级页表有4096个描述符。开启MMU后,虚拟地址的高12位作为索引值(虚拟地址>>20可得到)加上存放在CP15的C2里的页表地址可得到一级页表项的地址。 而linux里arm处理器的获取页表项却是这么定义的,如下:[code]#define PMD_SHIFT 21 #define PGDIR_SHIFT 21 #define pgd_index(addr) ((addr) >> PGDIR_SHIFT) /* 虚拟地址 >> 21 取出虚拟...

by 求linux注释 - 嵌入式开发 - 2014-08-24 13:32:09 阅读(1204) 回复(4)

s3c2410手册和很多书籍上都说:“小页(4K)描述符的bit[1:0]应该为10(二进制)”。 可是我在读代码的时候发现:小页(4K)描述符的bit[1:0]并不为10(二进制)。 证据如下: 我们知道:在arm-linux下会把高端中断向量表0xffff0000,映射到物理地址0x30001000处。映射的长度为1页(4K)。 代码这样实现的: 通过一个二级页表映射的,第一级我就不说了。第二级页表中存放的是一个小页描述符0x300010df,这样就把虚拟地址0xffff0000处的一页...

by 巨人史玉柱 - 嵌入式开发 - 2009-09-22 12:22:20 阅读(1101) 回复(0)

s3c2410手册和很多书籍上都说:“小页(4K)描述符的bit[1:0]应该为10(二进制)”。 可是我在读代码的时候发现:小页(4K)描述符的bit[1:0]并不为10(二进制)。 证据如下: 我们知道:在arm-linux下会把高端中断向量表0xffff0000,映射到物理地址0x30001000处。映射的长度为1页(4K)。 代码这样实现的: 通过一个二级页表映射的,第一级我就不说了。第二级页表中存放的是一个小页描述符0x300010df,这样就把虚拟地址0xffff0000处的一页...

by 巨人史玉柱 - 内核源码 - 2009-09-22 12:20:48 阅读(1262) 回复(0)

arm 指令,mark http://blog.chinaunix.net/uid-25119314-id-252684.html

by blake326 - 内核源码 - 2013-07-23 10:55:34 阅读(1054) 回复(0)

想用arm9做一个网关,把2440作为客户端访问远程的服务器,将2440获得的数据传送到服务器数据库中,同时可以用网页来访问数据库, 求问应该如何做啊,毕业设计啊!!!什么都不会 ,求教大神呀,有资料的发点资料吧 谢谢啦

by 重远2012 - 嵌入式开发 - 2013-03-11 09:37:26 阅读(1047) 回复(3)

求助大虾们,怎用arm流水灯来观察文件的传输是不是成功。。。

by myshd2012 - 嵌入式开发 - 2012-05-22 21:57:32 阅读(733) 回复(0)