免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
12
最近访问板块 发新帖
楼主: liuweifeng168
打印 上一主题 下一主题

linux内存大小的管理 [复制链接]

论坛徽章:
0
11 [报告]
发表于 2012-03-27 13:28 |只看该作者
.global _branch_kernel
_branch_kernel
        mov        r0, #0
        ldr        r1, machine
       
        adr        r2, tag_list
        add        r2, r2, #TEXT_BASE
        ldr        pc, kernel_addr
       
kernel_addr:
        .word        CPU_0_KERNEL_ADDR
       
tag_list:
#ATAG_CORE        (length = 2, empty)                       
        .word        0x2
        .word        TAG_CORE_POINT
#ATAG_NONE
        .word        0x2
        .word        0x0
       
machine:               
        .word        TAG_MACH
        .word        0
        .end

这是我的bootloader中写的一段code, 其实就是讲一个string的地址放在R2中,看看对你有没有帮助

论坛徽章:
0
12 [报告]
发表于 2012-03-31 18:47 |只看该作者
linux内存大小是怎样管理的?在uboot中进行内存大小的分配,在kernel中还需要对内存的大小管理吗?kernel怎么知道有多大的内存可以使用呢?
回复:
1. uboot 中进行内存大小的分配: 其实uboot中的内存分配和Kernel没有任何关系,uboot 只是个bootloader ,跳转到kernel 之后, uboot 就没有一点意义了,kernel 不需要也无法意识到uboot 的存在。  kernel 有自己的一套内存管理机制,kernel 内存的管理主要需要理解:启动时内存分配(bootmem),基于页的物理内存分配(buddy),以及 slab 。以及用户空间的虚拟内存管理(vm_area_struct 结构的管理) 和内核空间的虚拟内存管理vm_struct 结构的管理, 以及ioremap 的理解,任何问题可以加我QQ 752070534

论坛徽章:
0
13 [报告]
发表于 2012-04-01 07:59 |只看该作者
内存大小是通过ATAG 传给内核的。如果没有任内存参数,内核默认有一个关于内存的尺寸。
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP