一种单片机程序调用方法及系统的制作方法

文档序号:6337754阅读:202来源:国知局
专利名称:一种单片机程序调用方法及系统的制作方法
技术领域
本发明涉及单片机处理领域,特别涉及一种单片机程序调用方法及系统。
背景技术
单片机是一种集成在电路芯片,采用超大规模集成电路技术把具有数据处理能力的中央处理器CPU、随机存储器RAM、只读存储器ROM、多种I/O 口和中断系统、定时器/计时器等功能集成到一块硅片上构成的一个小而完善的计算机系统。随着现代工业的兴起,单片机在各领域的应用得到了空前发展,从而带动单片机的研究和开发得到很大的发展。具体而言,汽车电子技术的大幅度提高中单片机技术起了致关重要的作用,而汽车诊断设备和辅助工具也随之发展起来。对于汽车诊断及辅助设备除了功能齐全、安全可靠外,还需要快速的启动和反应能力。现有的单片机系统启动和反应很快,但功能单一,无法满足功能强大、应用齐全的多功能设备要求。嵌入式系统虽然可以实现功能强大、应用齐全等方面的要求,但系统的启动慢,且实时性差。

发明内容
本发明的目的旨在至少解决上述技术缺陷之一。为此,本发明的目的在于提出一种单片机程序调用方法,该方法具有实时性强、启动快且应用程序多样性的特点。本发明的另一个目的在于提出一种单片机程序调用系统。为达到上述目的,本发明第一方面的实施例提出了一种单片机程序调用方法,包括如下步骤运行单片机的主程序并将应用程序存储在程序存储单元中,保存所述应用程序在所述程序存储单元上的存储属性,其中,所述应用程序用于执行应用功能且所述应用程序独立运行;接收用户指令并读取所述应用程序在所述程序存储单元上的存储属性,在所述程序存储单元中查找所述指定应用程序并将其写到应用程序运行单元,所述指定应用程序为与所述用户指令对应的应用程序;中止所述单片机的主程序,通过指针调用方式调用所述应用程序运行单元中的指定应用程序;以及所述应用程序运行单元执行所述指定应用程序,执行完毕后返回执行所述单片机的主程序。根据本发明实施例的单片机程序调用方法,将大量的应用程序存储在外部的程序存储单元中,解决了单片机内部存储小导致存储的应用程序数量少的问题,从而实现了应用程序的多样性。并且本发明实施例的单片机程序调用方法采用指针调用方式调用完整的单片机应用程序到外部RAM中运行,其中各个应用程序均可以独立运行,既可以在没有单片机的主程序的情况下由外部RAM运行。
本发明第二方面的实施例提出了一种单片机程序调用系统,包括程序存储单元、 主程序运行单元和应用程序运行单元,所述程序存储单元,用于存储应用程序,并且保存所述应用程序的存储属性,其中,所述应用程序用于执行应用功能且所述应用程序之间独立运行;所述主程序运行单元,所述主程序运行单元位于所述单片机内,用于执行主程序、接收用户指令并从所述程序存储单元上读取所述应用程序的存储属性,在所述程序存储单元中查找指定应用程序并将其写到应用程序运行单元,通过指针调用方式调用所述应用程序运行单元中的指定应用程序,所述指定应用程序为与所述用户指令对应的应用程序;所述应用程序运行单元,所述应用程序运行单元与所述主程序运行单元相连,用于在所述主程序运行单元中止主程序后,执行所述指定应用程序,在所述应用程序运行单元执行完所述指定应用程序后,返回所述主程序运行单元继续执行主程序。根据本发明实施例的单片机程序调用系统,由外部的程序存储单元存储大量的应用程序,解决了单片机内部存储小导致存储的应用程序数量少的问题,从而实现了应用程序的多样性。并且由主程序运行单元采用指针调用方式调用完整的单片机应用程序到外部的应用程序运行单元中运行,其中各个应用程序均可以独立运行,既可以在没有单片机的主程序的情况下由外部的应用程序单元运行。本发明附加的方面和优点将在下面的描述中部分给出,部分将从下面的描述中变得明显,或通过本发明的实践了解到。


本发明上述的和/或附加的方面和优点从下面结合附图对实施例的描述中将变得明显和容易理解,其中图1为根据本发明实施例的单片机程序调用方法的示意图;图2为根据本发明实施例的单片机程序调用方法的流程示意图;以及图3为根据本发明实施例的单片机程序调用系统的结构示意图;图4为图3中所示的单片机程序调用系统执行过程的示意图。
具体实施例方式下面详细描述本发明的实施例,所述实施例的示例在附图中示出,其中自始至终相同或类似的标号表示相同或类似的元件或具有相同或类似功能的元件。下面通过参考附图描述的实施例是示例性的,仅用于解释本发明,而不能解释为对本发明的限制。如图1和图2所示,根据本发明实施例的单片机程序调用方法,包括如下步骤SlOl 运行单片机的主程序并将应用程序存储在程序存储单元中,保存应用程序在程序存储单元上的存储属性;执行步骤S1011,运行单片机的主程序,执行步骤S1012,对单片机进行初始化。其中,单片机的主程序在单片机片上FLASH运行。在此情况下,单片机的主程序具有 CPU (Central Processing Unit,中央处理器)控制权。将具体执行各种应用的应用程序存储在程序存储单元中,其中程序存储单元位于单片机的外部,例如SD卡、U盘等存储设备。程序存储单元可以通过SPI (Serial PeripheralInterface,串行外设接口)总线等与单片机内的CPU进行连接。
在本发明的一个实施例中,程序存储单元采用上述SD卡或U盘时,不同应用程序存储在存储设备的不同目录中。在程序存储单元中以配置文件形式配置保存各个应用程序在程序存储单元中的存储属性,其中存储属性包括各个应用程序的名称和应用程序在程序存储单元上的存储路径。每一个应用程序均可以独立运行,即应用程序在没有主程序的情况下也可以直接烧写到单片机片上FLASH运行。S102:接收用户指令并读取应用程序在程序存储单元上的存储属性,在程序存储单元中查找指定应用程序并将其写到应用程序运行单元;单片机的主程序运行在监视等待状态下,执行步骤S1021,监测是否有来自用户的用户指令或指示其他触发事件的操作指令。当主程序监测到有用户指令时,读取程序存储单元中的配置文件。在本发明的一个实施例中,用户指令可以通过键盘等外部设备输入。主程序在读取配置文件后,将所有的应用程序的名称均以菜单的形式列出,并根据用户指令确定指定应用程序,即指定应用程序为与用户指令对应的应用程序。执行步骤S1022,根据指定应用程序在配置文件中的存储属性查找该程序的存储路径,进而根据存储路径查找到该指定应用程序。在查找到指定应用程序后,执行步骤S1023,主程序控制CPU打开上述指定应用程序,将该指定应用程序的数据内容分成多个数据块,将每个数据块读入到单片机的内部随即存取存储器RAM中,再将该数据块写入到应用程序运行单元中,然后再读取下一块,直到将指定应用程序的全部数据块写入到应用程序运行单元中。在本发明的一个实施例中,应用程序运行单元为外部RAM,外部RAM通过数据总线、地址总线与单片机进行连接。并且应用程序运行单元也可以根据单片机系统的特点进行自定义连接设计。程序存储单元和应用程序运行单元没有直接的联系。数据的读写均通过CPU来完成中转。在本发明的一个实施例中,应用程序运行单元的存储容量大于或等于单片机的 FLASH存储器的容量。当主程序监测到有其他操作指令时,执行步骤SlOM和步骤S1025,根据该操作指令执行相应的动作,并在执行完成后返回重新监测是否有来自用户的用户指令或其他操作指令。S103:中止单片机的主程序,通过指针调用方式调用应用程序运行单元中的指定应用程序;在将指定应用程序的全部数据块写入到应用程序运行单元中后,CPU准备调用指定应用程序。在此之前,CPU保存单片机的主程序的运行现场,具体而言,CPU保存主程序当前处理位置。执行步骤S1031和步骤S1032,根据应用程序在程序存储单元上的存储属性获取与用户指令对应的指定应用程序的起始地址,将该起始地址化为程序指针进行调用。换言之,间接地将单片机的程序指针PC指到了应用程序运行单元(如RAM)上的该应用程序所在的起始地址。主程序根据上述程序指针调用指定应用程序。在执行完应用程序的调用后, 中止单片机的主程序,CPU的控制权从主程序交给应用程序。S104:应用程序运行单元执行指定应用程序,执行完毕后返回执行单片机的主程序。在利用程序指针调用指定应用程序后,执行步骤S1041和S1042,应用程序运行单元执行该指定应用程序,并在执行完成后返回。应用程序执行完返回后,根据步骤103中保存的主程序的运行现场,执行步骤S1043,主程序再恢复现场又继续从调用前的地方接着运行,主程序继续等待新的指令。应用程序运行单元在应用程序执行完返回后就不做其他任何工作,其内部的数据也不用做任何处理。当接收到新的用户指令时,即有新的应用程序需要调用时直接将新的应用程序数据复制到应用程序运行单元并覆盖之前的数据即可。在上述步骤中,应用程序和主程序均为独立开发编译和独立运行的,当需要调用应用程序时,将该应用程序的起始地址作为程序指针通过指针调用实现,不需要操作系统也可以进行应用程序间的调用。在应用程序调用后可以自动返回,从而给不带操作系统却想运行多个程序的提供了一个很好的解决方法,实现了在有限资源上实现无限功能的运用方法。根据本发明实施例的单片机程序调用方法,既保证了实时性能、快速启动性能,又实现了应用程序的多样性。从系统设计角度看,应用程序可以独立设计和实现,有利于模块化设计和系统的扩展,可以在有限的资源上实现无限功能的应用。从应用角度看,本发明实施例的单片机程序调用方法实现简单,成本低。下面参考图3和图4描述根据本发明实施例的单片机程序调用系统100。如图3所示,根据本发明实施例的单片机程序调用系统100包括程序存储单元 110、主程序运行单元120和应用程序执行单元130。如图4所示,程序存储单元110位于单片机的外部,可以通过SPI总线等与单片机内的CPU进行连接。程序存储单元110可以存储具体执行各种应用的应用程序(如应用程序1、应用程序2、应用程序3、应用程序4...应用程序η),并且保存应用程序的存储属性。在本发明的一个实施例中,程序存储单元110可以为SD卡、U盘等存储设备。每一个应用程序均可以独立运行,即应用程序在没有主程序的情况下也可以直接烧写到单片机片上FLASH运行。在本发明的一个实施例中,程序存储单元110采用上述SD卡或U盘时,不同应用程序存储在存储设备的不同目录中。在程序存储单元110中以配置文件形式配置保存各个应用程序在程序存储单元110中的存储属性,其中存储属性包括各个应用程序的名称和应用程序在程序存储单元上的存储路径。主程序运行单元120位于单片机内,与程序存储单元110相连,用于运行的主程序,对单片机进行初始化。其中,单片机的主程序在单片机片上FLASH运行。在此情况下, 主程序运行单元120具有CPU控制权。主程序运行单元120运行在监视等待状态下,监测是否有来自用户的用户指令或指示其他触发事件的操作指令。当主程序运行单元120监测到有用户指令时,读取程序存储单元110中的配置文件。在本发明的一个实施例中,用户指令可以通过键盘等外部设备输入。主程序运行单元 120在读取配置文件后,将所有的应用程序的名称均以菜单的形式列出,并根据用户指令确定指定应用程序,即指定应用程序为与用户指令对应的应用程序。主程序运行单元120根据指定应用程序在配置文件中的存储属性查找该程序的存储路径,进而根据存储路径查找到该指定应用程序。主程序运行单元120控制CPU打开上述指定应用程序,将该指定应用程序的数据内容分成多个数据块,将每个数据块读入到单片机的内部随即存取存储器RAM 中,再将该数据块写入到应用程序运行单元130中,然后再读取下一块,直到将指定应用程序的全部数据块写入到应用程序运行单元130中。在本发明的一个实施例中,应用程序运行单元130为外部RAM,外部RAM通过数据总线、地址总线与单片机进行连接。并且应用程序运行单元130也可以根据单片机系统的特点进行自定义连接设计。程序存储单元110和应用程序运行单元130没有直接的联系。 数据的读写均通过CPU来完成中转。在本发明的一个实施例中,应用程序运行单元130的存储容量大于或等于单片机的FLASH存储器的容量。当主程序运行单元120监测到有其他操作指令时,根据该操作指令执行相应的动作,并在执行完成后返回重新监测是否有来自用户的用户指令或其他操作指令。主程序运行单元120在将指定应用程序的全部数据块写入到应用程序运行单元 130中后,CPU准备调用指定应用程序。在此之前,CPU保存单片机的主程序的运行现场,具体而言,CPU保存主程序运行单元120当前处理位置。主程序运行单元120根据应用程序在程序存储单元130上的存储属性获取与用户指令对应的指定应用程序的起始地址,将该起始地址化为程序指针进行调用。换言之,主程序运行单元120间接地将单片机的程序指针PC指到了应用程序运行单元(如RAM)上的该应用程序所在的起始地址。主程序运行单元120根据上述程序指针调用指定应用程序。主程序运行单元120在执行完应用程序的调用后,中止单片机的主程序,即主程序运行单元120停止工作。CPU的控制权从主程序运行单元120交给应用程序运行单元130。在主程序运行单元120利用程序指针调用指定应用程序后,应用程序运行单元 130执行该指定应用程序。应用程序执行完返回后,根据已保存的主程序的运行现场,主程序运行单元120再恢复现场又继续从调用前的地方接着运行,主程序运行单元120继续等待新的指令。应用程序运行单元130在应用程序执行完返回后就不做其他任何工作,其内部的数据也不用做任何处理。当接收到新的用户指令时,即有新的应用程序需要调用时直接将新的应用程序数据复制到应用程序运行单元130并覆盖之前的数据即可。应用程序和主程序均为独立开发编译和独立运行的,当需要调用应用程序时,将该应用程序的起始地址作为程序指针通过指针调用实现,不需要操作系统也可以进行应用程序间的调用。在应用程序调用后可以自动返回,从而给不带操作系统却想运行多个程序的提供了一个很好的解决方法,实现了在有限资源上实现无限功能的运用方法。根据本发明实施例的单片机程序调用系统,由外部的程序存储单元存储大量的应用程序,解决了单片机内部存储小导致存储的应用程序数量少的问题,从而实现了应用程序的多样性。从系统设计角度看,应用程序可以独立设计和实现,有利于模块化设计和系统的扩展,可以在有限的资源上实现无限功能的应用。从应用角度看,本发明实施例的单片机程序调用系统实现简单,成本低。在本说明书的描述中,参考术语“一个实施例”、“一些实施例”、“示例”、“具体示例”、或“一些示例”等的描述意指结合该实施例或示例描述的具体特征、结构、材料或者特
8点包含于本发明的至少一个实施例或示例中。在本说明书中,对上述术语的示意性表述不一定指的是相同的实施例或示例。而且,描述的具体特征、结构、材料或者特点可以在任何的一个或多个实施例或示例中以合适的方式结合。 尽管已经示出和描述了本发明的实施例,对于本领域的普通技术人员而言,可以理解在不脱离本发明的原理和精神的情况下可以对这些实施例进行多种变化、修改、替换和变型,本发明的范围由所附权利要求及其等同限定。
权利要求
1.一种单片机程序调用方法,其特征在于,包括如下步骤运行单片机的主程序并将应用程序存储在程序存储单元中,保存所述应用程序在所述程序存储单元上的存储属性,其中,所述应用程序用于执行应用功能且所述应用程序独立运行;接收用户指令并读取所述应用程序在所述程序存储单元上的存储属性,在所述程序存储单元中查找所述指定应用程序并将其写到应用程序运行单元,所述指定应用程序为与所述用户指令对应的应用程序;通过指针调用方式调用所述应用程序运行单元中的指定应用程序;以及中止所述单片机的主程序,所述应用程序运行单元执行所述指定应用程序,执行完毕后返回执行所述单片机的主程序。
2.如权利要求1所述的单片机程序调用方法,其特征在于,所述应用程序在所述程序存储单元上的存储属性包括所述应用程序的名称和所述应用程序在所述程序存储单元上的存储路径。
3.如权利要求2所述的单片机程序调用方法,其特征在于,所述在程序存储单元中查找指定应用程序并将其写到应用程序运行单元,包括根据所述用户指令在所述存储属性中查找指定应用程序的存储路径;打开所述指定应用程序;将所述指定应用程序分为数据块,将每个数据块读到所述单片机的内部随机存取存储器RAM,由所述单片机的内部随机存取存储器RAM读取到所述应用程序运行单元,直至所述指定应用程序的全部数据块写入完成。
4.如权利要求1所述的单片机程序调用方法,其特征在于,所述在调用所述应用程序运行单元中的指定应用程序之前,保存所述单片机的主程序当前处理位置。
5.如权利要求4所述的单片机程序调用方法,其特征在于,所述通过指针调用方式调用所述应用程序运行单元中的指定应用程序,包括根据所述应用程序在所述程序存储单元上的存储属性获取所述指定应用程序的起始地址;将所述指定应用程序的起始地址转化为程序指针;利用所述程序指针调用所述指定应用程序。
6.如权利要求5所述的单片机程序调用方法,其特征在于,所述在应用程序运行单元执行完毕所述指定应用程序后,根据所述当前处理位置继续执行所述单片机的主程序。
7.如权利要求1所述的单片机程序调用方法,其特征在于,所述单片的主程序存储在所述单片机的FLASH存储器上,所述应用程序运行单元的存储容量大于或等于所述单片机的FLASH存储器的容量。
8.如权利要求7所述的单片机程序调用方法,其特征在于,所述应用程序运行单元为随机存取存储器RAM。
9.一种单片机程序调用系统,其特征在于,包括程序存储单元、主程序运行单元和应用程序运行单元,所述程序存储单元,用于存储应用程序,并且保存所述应用程序的存储属性,其中,所述应用程序用于执行应用功能且所述应用程序独立运行;所述主程序运行单元,所述主程序运行单元位于所述单片机内,用于执行主程序、接收用户指令并从所述程序存储单元上读取所述应用程序的存储属性,在所述程序存储单元中查找指定应用程序并将其写到应用程序运行单元,通过指针调用方式调用所述应用程序运行单元中的指定应用程序,所述指定应用程序为与所述用户指令对应的应用程序;所述应用程序运行单元,所述应用程序运行单元与所述主程序运行单元相连,用于在所述主程序运行单元中止主程序后,执行所述指定应用程序,在所述应用程序运行单元执行完所述指定应用程序后,返回所述主程序运行单元继续执行主程序。
10.如权利要求9所述的单片机程序调用系统,其特征在于,所述应用程序运行单元为随机存取存储器RAM。
11.如权利要求10所述的单片机程序调用系统,其特征在于,所述应用程序的存储属性包括所述应用程序的名称和所述应用程序在所述程序存储单元上的存储路径。
12.如权利要求11所述的单片机程序调用系统,其特征在于,所述主程序运行单元根据所述用户指令查找所述指定应用程序的存储路径,并打开所述指定应用程序,将所述指定应用程序分为数据块,将每个数据块读到所述单片机的内部随机存取存储器RAM,由所述单片机的内部随机存取存储器RAM读取到所述应用程序运行单元,直至所述指定应用程序的全部数据块读取完成。
13.如权利要求9所述的单片机程序调用系统,其特征在于,所述主程序运行单元在调用所述应用程序运行单元中的指定应用程序之前,保存当前处理位置。
14.如权利要求13所述的单片机程序调用系统,其特征在于,所述主程序运行单元根据所述应用程序在所述程序存储单元上的存储属性获取所述指定应用程序的起始地址,将所述指定应用程序的起始地址转化为程序指针,并利用所述程序指针调用所述指定应用程序。
15.如权利要求14所述的单片机程序调用系统,其特征在于,所述主程序运行单元在执行完毕所述指定应用程序后,根据所述当前处理位置继续执行所述主程序。
16.如权利要求9所述的单片机程序调用系统,其特征在于,所述主程序运行单元存储在所述单片机的FLASH存储器上,所述应用程序运行单元的存储容量大于或等于所述单片机的FLASH存储器的容量。
全文摘要
本发明提出一种单片机程序调用方法,包括如下步骤运行单片机的主程序并将应用程序存储在程序存储单元中,保存应用程序在所述程序存储单元上的存储属性;接收用户指令并读取应用程序在所述程序存储单元上的存储属性,在程序存储单元中查找所述指定应用程序并将其写到应用程序运行单元;通过指针调用方式调用应用程序运行单元中的指定应用程序;中止单片机的主程序,执行所述指定应用程序,执行完毕后返回执行单片机的主程序。本发明解决了单片机内部存储小导致存储的应用程序数量少的问题,从而实现了应用程序的多样性,并且不需要操作系统也可以进行应用程序间的调用。本发明还提出了一种单片机程序调用系统。
文档编号G06F9/46GK102479105SQ20101057470
公开日2012年5月30日 申请日期2010年11月25日 优先权日2010年11月25日
发明者姜代平, 雷鹏娟 申请人:比亚迪股份有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1