[发明专利]用于嵌入式系统的子程序相互调用的方法无效
| 申请号: | 201010170472.3 | 申请日: | 2010-05-11 |
| 公开(公告)号: | CN101853181A | 公开(公告)日: | 2010-10-06 |
| 发明(设计)人: | 刘应军;董爱荣 | 申请(专利权)人: | 中达电通股份有限公司 |
| 主分类号: | G06F9/48 | 分类号: | G06F9/48 |
| 代理公司: | 上海光华专利事务所 31219 | 代理人: | 王松 |
| 地址: | 201209 上海*** | 国省代码: | 上海;31 |
| 权利要求书: | 查看更多 | 说明书: | 查看更多 |
| 摘要: | |||
| 搜索关键词: | 用于 嵌入式 系统 子程序 相互 调用 方法 | ||
技术领域
本发明属于电子计算机领域,涉及一种用于嵌入式系统的子程序相互调用的方法。
背景技术
嵌入式系统在广义上说就是计算机系统,它包括除了以通用为目的的计算机之外的所有计算机。与通用计算机系统可以满足多种任务不同,嵌入式系统只能完成某些特定目的的任务。部分为嵌入式系统编写的程序被称为固件,他们存储在只读存储器或闪存芯片中,他们运行在资源有限的计算机硬件中。嵌入式系统中的子程序在运行时使用的全局/局部变量以及子程序调用时的返回地址都占用RAM空间,随着嵌套调用的层次增加,占用的RAM空间也越大,而嵌入式系统中RAM空间十分有限。此外,一个子程序的bug很容易影响到其他子程序。
在某些单片机中,一些功能寄存器上电后只能写一次,使用这些寄存器时,必须整体规划,从而降低了程序的灵活性。
发明内容
本发明所要解决的技术问题是:提供一种能最大限度隔离子程序之间的联系,彻底释放先前运行子程序占用的资源,以及复位子程序对运行环境的修改的用于嵌入式系统的子程序相互调用的方法。
为解决上述技术问题,本发明采用如下技术方案。
一种用于嵌入式系统的子程序相互调用的方法包括以下步骤:
步骤一,嵌入式系统启动运行时,设置初始环境,检查初始标志,决定调用的哪个子程序;
步骤二,开始运行子程序:清除复位标志,设置独立的子程序运行环境,然后进入子程序主体;
步骤三,当需要调用另一个子程序时,设置复位标志及调用参数,重新启动CPU,从而转入步骤一。
作为本发明的一种优选方案,所述独立的子程序运行环境是通过重新启动CPU来实现的。
作为本发明的另一种优选方案,所述CPU是通过硬复位而不是软复位来重新启动的,所述硬复位包括设置看门狗,或复位信号;所述软复位包括直接跳到CPU上电时执行的第一条指令运行。
作为本发明的再一种优选方案,通过设置看门狗重启CPU的一种设置方法,设置的子程序运行环境有:A1、设置看门狗;A2、设置中断向量;A3、设置定时器。
作为本发明的再一种优选方案,通过硬复位重启CPU的一种设置方法,调用子程序的操作为:
B1、关闭中断源,屏蔽中断;
B2、设置复位标志为特征值,设置子程序地址标志为子程序的入口地址;设置传递给子程序的参数;
B3、停止复位看门狗,等待看门狗复位CPU,从而运行子程序。
作为本发明的再一种优选方案,步骤一中,所述设置初始环境包括设置初始堆栈,清零中断向量表。
作为本发明的再一种优选方案,步骤一中,所述检查初始标志包括检查复位标志,以及子程序地址标志。
本发明的有益效果在于:
1)每个子程序都可使用几乎全部的RAM;
2)硬复位后,一次性写的寄存器可再写;
3)最大限度的隔离了子程序bug对别的子程序的干扰;
4)每个子程序都可获得独立的运行环境。
附图说明
图1为子程序调用方法的示意图;
具体实施方式
下面结合附图对本发明的具体实施方式作进一步详细说明。
实施例
本实施例提供一种用于嵌入式系统的子程序相互调用的方法,该方法包括以下步骤:
一种用于嵌入式系统的子程序相互调用的方法包括以下步骤:
步骤一,嵌入式系统启动运行时,设置初始环境,检查初始标志,决定调用哪个子程序;所述设置初始环境包括设置初始堆栈,清零中断向量表;所述检查初始标志包括检查复位标志,以及子程序地址标志;初始标志可以放在RAM、或外部存储设备中,也可用I/O标示。
步骤二,开始运行子程序,首先清除复位标志,设置独立的子程序运行环境,然后进入子程序主体;所述独立的子程序运行环境是通过硬复位CPU来实现的;所述硬复位CPU是通过设置看门狗或复位信号来重新启动的;
设置的子程序运行环境有:
A1、设置看门狗;
A2、设置低电压侦测;
A3、设置省电模式;
A4、设置时钟生成器;
A5、设置中断向量;
A6、设置定时器。
步骤三,当需要调用另一个子程序时,操作为:
B1、关闭中断源,屏蔽中断;
B2、设置复位标志为特征值,设置子程序地址标志为子程序的入口地址,设置传递给子程序的参数;
B3、停止复位看门狗,等待看门狗复位CPU,进入步骤一。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于中达电通股份有限公司,未经中达电通股份有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201010170472.3/2.html,转载请声明来源钻瓜专利网。





