[发明专利]构建运行环境的方法和装置有效
申请号: | 201610202997.8 | 申请日: | 2016-03-31 |
公开(公告)号: | CN107291423B | 公开(公告)日: | 2020-09-29 |
发明(设计)人: | 钟万勇;张宝祺 | 申请(专利权)人: | 龙芯中科技术有限公司 |
主分类号: | G06F8/20 | 分类号: | G06F8/20;G06F12/1027 |
代理公司: | 北京同立钧成知识产权代理有限公司 11205 | 代理人: | 陶敏;刘芳 |
地址: | 100095 北京市海淀*** | 国省代码: | 北京;11 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 构建 运行 环境 方法 装置 | ||
本发明提供一种构建运行环境的方法和装置,其中,该方法包括:首先对cache进行加锁,将加锁后的cache作为模拟内存;然后根据模拟内存的物理地址获取对应的虚拟地址;再根据虚拟地址在模拟内存中设置堆指针和栈指针;并根据可执行与可链接格式ELF文件结构在模拟内存中设置用于堆指针寻址的各个段。本发明通过上述技术方案构建出了C语言运行环境,使得开发人员无需使用汇编语言来编写内存配置,而可以直接采用C语言来编写内存配置,从而程序可读性高,且便于维护,进而方便了开发人员的开发测试。
技术领域
本发明涉及计算机技术领域,尤其涉及一种构建运行环境的方法和装置。
背景技术
PMON是一个兼有基本输入输出系统(Basic Input Output System,BIOS)和启动装载(bootloader)部分功能的开放源码软件,多用于嵌入式系统。基于无内部互锁流水级的微处理器(Microprocessor without interlocked piped stages,MIPS)架构的系统采用PMON作为类BIOS兼bootloader,并在其基础上做了很多完善工作,支持BIOS启动配置,内核加载,程序调试,内存寄存器显示、设置以及内存反汇编等等。
目前,PMON源代码中有一部分代码是用汇编语言编写的,例如PMON源代码中BIOS启动配置中的内存配置部分。开发人员在进行开发测试时,需要采用汇编语言来读取或改写内存配置等代码部分。
但是,在实际开发过程中发现,采用汇编语言编写的程序可读性差、且不便于维护以及开发人员的开发测试。
发明内容
本发明提供一种构建运行环境的方法和装置,使得开发人员可以直接采用C语言来编写内存配置,从而程序可读性好、且便于维护以及开发人员的开发测试。
本发明提供一种构建运行环境的方法,包括:
对cache进行加锁,将加锁后的cache作为模拟内存;
根据模拟内存的物理地址获取对应的虚拟地址;
根据虚拟地址在模拟内存中设置堆指针和栈指针;
根据可执行与可链接格式ELF文件结构在模拟内存中设置用于堆指针寻址的各个段。
在本发明的一实施例中,上述方法还包括:
在模拟内存中设置堆空间和栈空间;
将栈空间对应的虚拟地址更改为需要经过旁路转换缓冲TLB映射的虚拟地址;
根据栈空间的大小计算出映射到栈空间所需的TLB表项的数量,并根据栈空间对应的需要经过TLB映射的虚拟地址填写TLB表项;
根据栈空间对应的需要经过TLB映射的虚拟地址重设栈指针。
在本发明的一实施例中,栈空间对应的虚拟地址高于堆空间对应的虚拟地址。
在本发明的一实施例中,根据虚拟地址在模拟内存中设置堆指针和栈指针,包括:
设置堆指针指向模拟内存的最顶部对应的虚拟地址;
设置栈指针指向模拟内存的最底部对应的虚拟地址。
在本发明的一实施例中,堆空间与栈空间的比例为3:1。
在本发明的一实施例中,模拟内存中设置的各个段至少包括:代码段、数据段和块数据段。
本发明还提供一种构建运行环境的装置,包括:
锁缓存cache模块,用于对cache加锁,将加锁后的cache作为模拟内存;
获取模块,用于根据模拟内存的物理地址获取对应的虚拟地址;
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于龙芯中科技术有限公司,未经龙芯中科技术有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201610202997.8/2.html,转载请声明来源钻瓜专利网。
- 上一篇:智能移动终端及其分屏显示方法
- 下一篇:驱动电流调节系统及方法