[发明专利]一种向Linux内核传递内存大小参数的方法及系统有效
申请号: | 201610224257.4 | 申请日: | 2016-04-12 |
公开(公告)号: | CN105785824B | 公开(公告)日: | 2020-02-11 |
发明(设计)人: | 钟捷群 | 申请(专利权)人: | 上海斐讯数据通信技术有限公司 |
主分类号: | G05B19/04 | 分类号: | G05B19/04 |
代理公司: | 31251 上海硕力知识产权代理事务所(普通合伙) | 代理人: | 郭桂峰 |
地址: | 201616 *** | 国省代码: | 上海;31 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 linux 内核 传递 内存大小 参数 方法 系统 | ||
本发明公开了一种向Linux内核传递内存大小参数的方法及系统,该方法包括:根据CPU平台,静态设置可支持的最大内存和最小内存;静态配置bootargs环境变量;在U‑Boot引导程序运行过程中,以最大内存和最小内存为参数动态测定得到动态内存大小参数;根据动态测定得到的动态内存大小参数,重新动态生成bootargs环境变量。本发明可以减少维护麻烦,容易出错的情况发生。
技术领域
本发明涉及操作系统领域,尤其涉及一种向Linux内核传递内存大小参数的方法及系统。
背景技术
现有技术中,常常需要采用命令行传递参数给Linux内核的U-Boot,命令行参数来源于bootargs环境变量,在bootargs中通常包含Linux可用的内存大小参数mem。
但是,在具体使用过程中,例如,出现使用同样CPU平台,但内存大小不同的产品时,静态配置bootargs存在如下问题:(1)需要对不同的产品静态配置不同的bootargs(因为mem不同),维护麻烦;(2)一旦bootargs被破坏,则内存参数丢失,可能导致产品运行出错。
由于其中内存大小参数尤为重要,因而若能够更好地向Linux内核传递内存大小参数,将能够很好的改善现有技术的缺陷,而这一目标也是本领域技术人员正在研究的方向。
发明内容
本发明所要解决的技术问题是维护麻烦,容易出错。
为了解决上述问题,本发明提供了一种向Linux内核传递内存大小参数的方法,包括步骤:
根据CPU平台,静态设置可支持的最大内存和最小内存;
静态配置bootargs环境变量;
在U-Boot引导程序运行过程中,以最大内存和最小内存为参数动态测定得到动态内存大小参数;
根据动态测定得到的动态内存大小参数,重新动态生成bootargs环境变量。
可选的,所述在U-Boot引导程序运行过程中,以最大内存和最小内存为参数动态测定内存大小参数的步骤包括:
在内存初始地址处写入预设魔术字;
将内存大小参数取初值为最小内存;
判断内存大小参数是否小于最大内存;
若小于,则读取内存初始地址加上内存大小参数处的变量;
判断变量是否等于魔术字,若等于,则动态内存大小参数取值为当前的内存大小参数,测定结束。本方案首选在动态测定过程中,限制了内存大小参数的取值范围,若超出最小内存和最大内存限定的范围,因而不会出现动态内存大小参数超出范围而出现异常的情况;另外,通过预设魔术字的设置,可以使得测定得到的动态内存大小参数符合当前产品的需要。
可选的,若在判断变量是否等于魔术字的步骤中,变量不等于魔术字,则内存大小参数乘以2;
并以新的内存大小参数,重新判断内存大小参数是否小于最大内存。循环判断,直至找到最适合的动态内存大小参数。
可选的,若在判断内存大小参数是否小于最大内存的步骤中,内存大小参数等于最大内存,则动态内存大小参数等于最大内存,测定结束。
可选的,若在判断内存大小参数是否小于最大内存的步骤中,内存大小参数大于最大内存,则反馈内存大小参数异常的警告,测定结束。若动态测定步骤出现异常,则将该异常反馈给系统,以便根据异常进行修复,帮助更好地进行维护。
可选的,所述根据动态测定得到的动态内存大小参数,重新动态生成bootargs环境变量的步骤包括:
读取环境变量bootargs,解析其中静态配置的静态内存大小参数;
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于上海斐讯数据通信技术有限公司,未经上海斐讯数据通信技术有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201610224257.4/2.html,转载请声明来源钻瓜专利网。