[发明专利]一种系统启动及运行的方法、装置有效
申请号: | 201611244019.6 | 申请日: | 2016-12-28 |
公开(公告)号: | CN108255526B | 公开(公告)日: | 2020-07-31 |
发明(设计)人: | 吴宏雷 | 申请(专利权)人: | 深圳市中兴微电子技术有限公司 |
主分类号: | G06F9/4401 | 分类号: | G06F9/4401 |
代理公司: | 北京天昊联合知识产权代理有限公司 11112 | 代理人: | 彭瑞欣;张天舒 |
地址: | 518055 广东省深*** | 国省代码: | 广东;44 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 系统启动 运行 方法 装置 | ||
本发明公开了一种系统启动及运行的方法及装置,所述方法包括:将存储设备划分成多个存储区,将系统代码划分成多个段代码;将所述多个段代码存储至所述存储设备中对应的存储区中;启动或运行系统时,将所述存储设备的存储区中存储的段代码复制至内存中运行。
技术领域
本发明涉及通信终端的系统启动运行技术,尤其涉及一种系统启动及运行的方法、装置。
背景技术
有些嵌入式芯片具有很小且分布怪异的地址空间。一个几十K或者几百K的地址空间可能会包括高速的片内随机存取存储器(RAM,Ramdom Access Memory),低速的片外RAM。也可能会存在多个不连续的RAM区域,比如有的嵌入式芯片存在多个几十K或者几百K的不连续地址空间,每个地址空间都包括高速的片内RAM,低速的片外RAM。
面对这种分布怪异且很小的内存地址空间,传统的系统是无法加载到内存运行的。这是因为传统的系统一般加载的地址和运行的地址是连续的,并且代码的大小大于内存容量。基于此,如何把操作系统挤入容量更小和地址不连续的内存运行是有待解决的问题。
发明内容
为解决上述技术问题,本发明实施例提供了一种系统启动及运行的方法、装置。
本发明实施例提供的系统启动及运行的方法,包括:
将存储设备划分成多个存储区,将系统代码划分成多个段代码;
将所述多个段代码存储至所述存储设备中对应的存储区中;
启动或运行系统时,将所述存储设备的存储区中存储的段代码复制至内存中运行。
本发明实施例中,所述将存储设备划分成多个存储区,将系统代码划分成多个段代码,包括:
将存储设备划分成如下存储区:一级启动区、通用区、异常中断处理区、二级启动区、调度运行区、高速运行区和功能区;
将系统代码划分成如下段代码:一级启动段代码、通用段代码、异常中断处理段代码、二级启动段代码、调度运行段代码、高速运行段代码和功能段代码。
本发明实施例中,所述将系统代码划分成多个段代码,还包括:
将所述功能段代码按照功能划分成多个子段代码,其中,每个子段代码对应一个功能。
本发明实施例中,所述方法还包括:
根据子段代码的使用频率和/或使用时间指标为各个所述子段代码设置相应的优先级。
本发明实施例中,所述功能段代码中的子段代码满足以下至少之一:
在子段代码中使用局部变量;
将常量存放在子段代码中,伴随子段代码进出内存;
不同子段代码之间无引用关系;
子段代码之间的引用关系所确定出的子段代码总容量小于等于空闲的内存容量;
不同子段代码之间的引用函数的寻址,通过函数指针数组钩子的方式间接寻址,其中,所述函数指针数组钩子存放至所述通用段代码中,所述指针数组钩子由所述调度运行段代码管理。
本发明实施例中,将所述多个段代码存储至所述存储设备中对应的存储区时,将各个段代码以及子段代码按照页对齐的方式进行存储。
本发明实施例中,启动系统时,将所述存储设备的存储区中存储的段代码复制至内存中运行,包括:
将所述一级启动段代码复制至内置内存中;
运行所述一级启动段代码,初始化外置内存,并将所述二级启动段代码复制至外置内存中;
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于深圳市中兴微电子技术有限公司,未经深圳市中兴微电子技术有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201611244019.6/2.html,转载请声明来源钻瓜专利网。
- 上一篇:一种自动化采样系统及其应用
- 下一篇:一种稻瘟病菌抑制剂的制备方法