[发明专利]一种ARMv7m架构下可执行代码的存储方法有效
申请号: | 201510262282.7 | 申请日: | 2015-05-21 |
公开(公告)号: | CN104866345B | 公开(公告)日: | 2018-03-23 |
发明(设计)人: | 林志伟;黄健 | 申请(专利权)人: | 福建升腾资讯有限公司 |
主分类号: | G06F9/445 | 分类号: | G06F9/445;G06F12/02 |
代理公司: | 福州市鼓楼区京华专利事务所(普通合伙)35212 | 代理人: | 宋连梅 |
地址: | 350000 福建省福州市仓山区金*** | 国省代码: | 福建;35 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | 本发明提供一种ARMv7m架构下可执行代码的存储方法,由编译和烧录程序、启动程序、FPB关联程序、执行程序以及总线异常处理程序五个逻辑单元参与,通过FPB关联程序将一片RAM空间关联到一处未和物理Flash关联的地址上,将其作为存储了可执行代码的存储空间,供CPU内核获取和执行机器指令使用。同时该RAM空间可以动态被更新为新值,且可以被FPB重新设置关联到新的Flash地址上。这样,本发明方法仅使用一小片片内的Flash存储FPB管理代码,就可以利用不大的RAM空间和廉价的片外Flash,将CPU的可执行代码的存储空间扩大到512MB。 | ||
搜索关键词: | 一种 armv7m 架构 可执行 代码 存储 方法 | ||
【主权项】:
一种ARMv7m架构下可执行代码的存储方法,其特征在于:在编译和烧录程序中,通过编译器的参数配置,将启动程序、FPB关联程序、执行程序、总线异常处理程序、系统及驱动程序定位于CPU片内物理存储器关联的Flash地址空间上,而将其他程序定位于CPU片内没有物理存储器关联的Flash地址空间上;编译生成目标可执行代码的二进制镜像文件;然后,软件开发人员将该启动程序、FPB关联程序、执行程序、总线异常处理程序、系统及驱动程序烧录到其编译时指定地址的CPU物理存储器上,并将所述其他程序烧录到片外Flash上;在设备上电启动后的第一阶段,所述启动程序先依次初始化系统和设备驱动、初始化FPB组件以及软件全局变量这些基本运行环境,然后启动程序提取出后续程序的第一条指令代码的Flash执行地址,送入所述FPB关联程序进行FPB关联处理,所述FPB关联程序能被所述启动程序和所述执行程序调用;所述FPB关联程序传入地址参数为本次需要关联执行的第一条指令代码的Flash执行地址,执行“加载被执行代码并对其进行FPB关联的过程”;在得到调用者传入的代码的Flash执行地址后,检查对应地址的代码是否已经被加载到RAM缓冲中,如果代码未被加载到RAM缓冲中,则通过Flash驱动程序从片外的Flash中将对应代码载入RAM缓冲中,加载完成后,计算出程序指令地址对应的代码在RAM中的存储地址,设FPB组件一共有n个单元可供使用,每个单元关联m个字节的Flash地址空间,该RAM缓冲的大小定义为k字节,则k字节应该至少等于n*m字节,通过设置FPB,将该存储地址开始n*m字节的RAM地址与代码的Flash执行地址实现关联;所述执行程序在所述FPB关联程序之后被调用,所述执行程序的传入地址参数和所述FPB关联程序传入的地址参数相同,所述执行程序将传入的地址参数送入CPU的PC寄存器,然后CPU将自动完成后续的代码执行过程;当所述执行程序执行过程引发总线异常时,所述总线异常处理程序被调用执行,通过查询CPU的异常状态寄存器,从而获知异常是由CPU取指令引发还是由CPU数据访问引发,若异常由CPU取指令引发,则将异常地址作为参数调用所述FPB关联程序进行重关联处理,若异常由CPU数据访问引发,则所述总线异常处理程序继续检查引发异常的指令是否为LDM多寄存器加载指令,若是,则由所述总线异常处理程序代替CPU完成LDM指令的功能,然后返回下一条指令代码地址让CPU继续执行,若不是,则将要访问的数据地址作为参数调用所述FPB关联程序进行重关联处理。
下载完整专利技术内容需要扣除积分,VIP会员可以免费下载。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于福建升腾资讯有限公司,未经福建升腾资讯有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/patent/201510262282.7/,转载请声明来源钻瓜专利网。
- 上一篇:网页加载方法及装置
- 下一篇:FOTA数据的分布式持久化管理方法、系统和装置