[发明专利]一种嵌入式操作系统代码加载的方法及装置有效
| 申请号: | 201510420963.1 | 申请日: | 2015-07-17 |
| 公开(公告)号: | CN106708542B | 公开(公告)日: | 2020-10-13 |
| 发明(设计)人: | 金志涛 | 申请(专利权)人: | 中兴通讯股份有限公司 |
| 主分类号: | G06F9/445 | 分类号: | G06F9/445 |
| 代理公司: | 深圳鼎合诚知识产权代理有限公司 44281 | 代理人: | 薛祥辉 |
| 地址: | 518057 广东省深圳市*** | 国省代码: | 广东;44 |
| 权利要求书: | 查看更多 | 说明书: | 查看更多 |
| 摘要: | |||
| 搜索关键词: | 一种 嵌入式 操作系统 代码 加载 方法 装置 | ||
1.一种嵌入式操作系统代码加载的方法,其特征在于,所述方法包括:
获取所述嵌入式操作系统的当前使用场景;
根据使用场景与代码地址的对应关系,获取与所述当前使用场景对应的在第一内存区域中需要恢复代码的代码地址,所述使用场景与代码地址的对应关系中,任一使用场景对应的代码地址为所述第一内存区域中的部分区域;
根据所述需要恢复代码的代码地址,获取需要恢复代码和调用函数;
加载所述需要恢复代码,并根据所述调用函数从第二内存区域中加载当前使用场景所对应的其他代码。
2.根据权利要求1所述的方法,其特征在于,所述第一内存区域为用于存放嵌入式操作系统中频繁调度代码的内存区域,所述第二内存区域为外部存储控制器。
3.根据权利要求2所述的方法,其特征在于,在所述获取与所述当前使用场景对应的在第一内存区域中需要恢复的代码地址之前,所述方法还包括:
将所述第一内存区域根据代码的调用频率划分多个内存子区域,其中每个内存子区域所对应的代码的调用频率不同,且相邻的内存子区域所映射的虚拟地址之间的间隔值至少为32MB。
4.根据权利要求3所述的方法,其特征在于,所述第一内存区域划分为第一内存子区域、第二内存子区域和第三内存子区域,其中第一内存子区域和第二内存子区域中均存放有代码,第三内存子区域为保留区域,且第一内存子区域中的代码调用频率大于第二内次子区域中的代码调用频率。
5.根据权利要求3所述的方法,其特征在于,所述根据所述调用函数从第二内存区域中加载当前使用场景所对应的其他代码,包括:
将与内存子区域对应的所述调用函数经过汇编后生成LDR指令,所述LDR指令链接地址位于所述调用函数对应的内存子区域中,所述LDR指令能在全地址范围跳转。
6.一种嵌入式操作系统代码加载的装置,其特征在于,所述装置包括:
第一获取模块,用于获取所述嵌入式操作系统的当前使用场景;
第二获取模块,用于根据使用场景与代码地址的对应关系,获取与所述当前使用场景对应的在第一内存区域中需要恢复代码的代码地址,所述使用场景与代码地址的对应关系中,任一使用场景对应的代码地址为所述第一内存区域中的部分区域;
第三获取模块,用于根据所述需要恢复代码的代码地址,获取需要恢复代码和调用函数;
加载模块,用于加载所述需要恢复代码,并根据所述调用函数从第二内存区域中加载当前使用场景所对应的其他代码。
7.根据权利要求6所述的装置,其特征在于,所述第一内存区域为用于存放嵌入式操作系统中频繁调度代码的内存区域,所述第二内存区域为外部存储控制器。
8.根据权利要求7所述的装置,其特征在于,所述装置还包括划分模块,用于将所述第一内存区域根据代码的调用频率划分多个内存子区域,其中每个内存子区域所对应的代码的调用频率不同,且相邻的内存子区域所映射的虚拟地址之间的间隔值至少为32MB。
9.根据权利要求8所述的装置,其特征在于,所述第一内存区域划分为第一内存子区域、第二内存子区域和第三内存子区域,其中第一内存子区域和第二内存子区域中均存放有代码,第三内存子区域为保留区域,且第一内存子区域中的代码调用频率大于第二内次子区域中的代码调用频率。
10.根据权利要求8所述的装置,其特征在于,所述加载模块还用于,将与内存子区域对应的所述调用函数经过汇编后生成LDR指令,所述LDR指令链接地址位于所述调用函数对应的内存子区域中,所述LDR指令能在全地址范围跳转。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于中兴通讯股份有限公司,未经中兴通讯股份有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201510420963.1/1.html,转载请声明来源钻瓜专利网。
- 上一篇:版本升级处理方法及装置
- 下一篇:一种操作系统的OTA升级方法及装置





