[发明专利]一种向Linux内核传递内存大小参数的方法及系统有效
申请号: | 201610224257.4 | 申请日: | 2016-04-12 |
公开(公告)号: | CN105785824B | 公开(公告)日: | 2020-02-11 |
发明(设计)人: | 钟捷群 | 申请(专利权)人: | 上海斐讯数据通信技术有限公司 |
主分类号: | G05B19/04 | 分类号: | G05B19/04 |
代理公司: | 31251 上海硕力知识产权代理事务所(普通合伙) | 代理人: | 郭桂峰 |
地址: | 201616 *** | 国省代码: | 上海;31 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 linux 内核 传递 内存大小 参数 方法 系统 | ||
1.一种向Linux内核传递内存大小参数的方法,其特征在于,包括:
根据CPU平台,静态设置可支持的最大内存和最小内存;
静态配置bootargs环境变量;
在U-Boot引导程序运行过程中,以最大内存和最小内存为参数动态测定得到动态内存大小参数;
根据动态测定得到的动态内存大小参数,重新动态生成bootargs环境变量,包括:读取环境变量bootargs,解析其中静态配置的静态内存大小参数;判断静态内存大小参数是否存在,若存在且静态内存大小参数与动态内存大小参数不同,则使用动态内存大小参数,重新生成bootargs环境变量;若静态内存大小参数不存在,则使用动态内存大小参数,重新生成bootargs环境变量。
2.根据权利要求1所述的向Linux内核传递内存大小参数的方法,其特征在于,所述在U-Boot引导程序运行过程中,以最大内存和最小内存为参数动态测定内存大小参数的步骤包括:
在内存初始地址处写入预设魔术字;
将内存大小参数取初值为最小内存;
判断内存大小参数是否小于最大内存;
若小于,则读取内存初始地址加上内存大小参数处的变量;
判断变量是否等于魔术字,若等于,则动态内存大小参数取值为当前的内存大小参数,测定结束。
3.根据权利要求2所述的向Linux内核传递内存大小参数的方法,其特征在于,若在判断变量是否等于魔术字的步骤中,变量不等于魔术字,则内存大小参数乘以2;
并以新的内存大小参数,重新判断内存大小参数是否小于最大内存。
4.根据权利要求2所述的向Linux内核传递内存大小参数的方法,其特征在于,若在判断内存大小参数是否小于最大内存的步骤中,内存大小参数等于最大内存,则动态内存大小参数等于最大内存,测定结束。
5.根据权利要求2所述的向Linux内核传递内存大小参数的方法,其特征在于,若在判断内存大小参数是否小于最大内存的步骤中,内存大小参数大于最大内存,则反馈内存大小参数异常的警告,测定结束。
6.根据权利要求1所述的向Linux内核传递内存大小参数的方法,其特征在于,若在判断静态内存大小参数是否存在的步骤中,静态内存大小参数不存在,则在使用动态内存大小参数,重新生成bootargs环境变量的同时,返回静态内存大小参数不存在的警告。
7.根据权利要求1所述的向Linux内核传递内存大小参数的方法,其特征在于,所述最大内存的取值等于所使用的DDR内存控制器支持访问的最大内存;所述方法只使用一个DDR内存控制器;
将该最小内存设置为256MByte。
8.一种向Linux内核传递内存大小参数的系统,其特征在于,包括:
CPU平台,用于运行Linux系统和U-Boot引导程序;
U-Boot引导程序,用于向所述Linux系统的Linux内核传递内存大小参数;
所述U-Boot引导程序包括:
静态配置模块,用于根据CPU平台静态设置可支持的最大内存和最小内存、以及静态配置bootargs环境变量;
动态测定模块,用于在所述U-Boot引导程序运行过程中,以最大内存和最小内存为参数动态测定得到动态内存大小参数;
bootargs环境变量重新生成模块,用于根据所述动态测定模块得到的动态内存大小参数,重新动态生成bootargs环境变量,包括:读取环境变量bootargs,解析其中静态配置的静态内存大小参数;判断静态内存大小参数是否存在,若存在且静态内存大小参数与动态内存大小参数不同,则使用动态内存大小参数,重新生成bootargs环境变量;若静态内存大小参数不存在,则使用动态内存大小参数,重新生成bootargs环境变量。
9.如权利要求8所述的一种向Linux内核传递内存大小参数的系统,其特征在于,所述动态测定模块还用于:
在内存初始地址处写入预设魔术字;将内存大小参数取初值为最小内存;判断内存大小参数是否小于最大内存;若等于,则动态内存大小参数等于最大内存,测定结束;
若小于,则读取内存初始地址加上内存大小参数处的变量;判断变量是否等于魔术字,若等于,则动态内存大小参数取值为当前的内存大小参数,测定结束;若不等于,则内存大小参数乘以2,并以新的内存大小参数,重新判断内存大小参数是否小于最大内存。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于上海斐讯数据通信技术有限公司,未经上海斐讯数据通信技术有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201610224257.4/1.html,转载请声明来源钻瓜专利网。