[发明专利]嵌入式系统程序执行方法有效
申请号: | 201410195480.1 | 申请日: | 2014-05-09 |
公开(公告)号: | CN103927187B | 公开(公告)日: | 2017-03-22 |
发明(设计)人: | 张玉祺 | 申请(专利权)人: | 金祺创(北京)技术有限公司 |
主分类号: | G06F9/44 | 分类号: | G06F9/44 |
代理公司: | 深圳市神州联合知识产权代理事务所(普通合伙)44324 | 代理人: | 邓扬 |
地址: | 100081 北京市海淀区*** | 国省代码: | 北京;11 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 嵌入式 系统 程序 执行 方法 | ||
1.一种嵌入式系统程序执行方法,用于在嵌入式系统中执行应用程序,其特征在于,包括:
应用程序编译生成以段为单元的对象文件;
在运行程序初始化函数之前,禁用WDT计时器;
在RAM中分配空间,并编写拷贝函数,将文件中的各段从FLASH拷贝到RAM。
2.根据权利要求1所述的方法,其特征在于,所述文件以段的形式组织代码和数据,分为赋值段和未赋值段,其中在嵌入式系统上电时,赋值段含有真实有效的参数,未赋值段用于保留程序运行过程中所需开辟的变量的地址空间,在程序运行时,所有的赋值段链接到非易失性存储器中,未赋值段的代码链接到RAM中,
所述赋值段包括以下内容段:.text、.cinit、.pinit、.switch、
.const、.econst,其中.text、.cinit、.pinit、.switch段为程序空间,.const、.econst段为数据空间,
所述未赋值段包括以下内容段:.bss、.ebss、.stack、.system、.esystem,均为数据空间。
3.根据权利要求2所述的方法,其特征在于,所述嵌入式系统基于TMS320C6455微处理器,对该微处理器汇编成各自的目标代码段,然后用链接器将其链接起来生成可执行文件,
上电后,程序起始标号的长跳转指令被加载到入口地址处并开始执行,接着指针跳转到WDT计时器禁用代码,之后再执行拷贝函数,将所有段复制到RAM中,所述长跳转指令及WDT计时器禁用代码部分分别置于相应的段下,并组合成汇编文件,添加到工程文件的source路径下,
并且,拷贝函数可将代码段及各个变量段从FLASH拷贝到RAM,应用程序在复制时,通过链接命令文件中指明的信息调用段的起始地址、长度以及运行地址,同时将拷贝函数链接到代码拷贝段中。
4.根据权利要求3所述的方法,其特征在于,当所有的段都被复制完毕时,通过跳转指令跳转到程序初始化函数,直接进入主函数执行。
5.根据权利要求3所述的方法,其特征在于,在将段进行拷贝时,首先将该段的大小先暂存到寄存器XAR5,再存储到累加器ACC中;将加载地址存储到XAR6寄存器中;运行地址存储到XAR7寄存器中,再执行copy操作即可完成该段的拷贝。
6.根据权利要求3所述的方法,其特征在于,所述链接命令文件分为两部分,第一部分用于指明和定义装载代码所用到的所有存储区域即程序空间和数据空间,以便链接器进行配置;第二部分主要是将每一个输出段映射到所分配的存储空间里面去,并指定段的加载地址和运行地址,
对于赋值段,加载和运行分配到不同的存储空间,对未赋值段的加载和运行只需分配到RAM空间,并且在用户代码从FLASH拷贝到片内RAM之前,将WDT计时器禁用段加载和运行于FLASH中。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于金祺创(北京)技术有限公司,未经金祺创(北京)技术有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201410195480.1/1.html,转载请声明来源钻瓜专利网。