一种微控制器的运行方法及终端
技术领域
本发明涉及控制器
技术领域
,特别涉及一种微控制器的运行方法及终端。背景技术
随着生活水平日益增高,人们对电子产品功能的需求越来越多,使得程序的设计也越来越复杂,程序结构如果设计得不好会使得程序错综复杂,不利于产品程序的开发、维护,以及移植,因此针对高端控制器的大型操作系统,例如windows、linux、android和ios等操作系统应运而生,均能够实现操作系统程序、设备驱动程序、应用程序的独立,使得程序结构清晰明了。
但是运行大型操作系统需要消耗的ROM(Read-Only Memory,只读存储器)、RAM(Random Access Memory,随机存取存储器)空间都很大,并且还需要控制器本身带有MMU(Memory Management Unit,内存管理单元)功能,来实现虚拟地址与物理地址之间的转换,防止各应用程序运行在相同或者重叠的空间上,由于上述条件的限制,大型操作系统的程序结构并不适用于微控制器。
因此,为微控制器量身打造的小型实时操作系统出现了,例如free-rtos、rt-thread、ucos、uclinux等,但是就目前在微控制器的应用领域中,除了uclinux可以实现操作系统程序、设备驱动程序、应用程序的独立外,其他都不支持这种方式。而且,虽然uclinux可以实现这种方式,但是它需要文件系统的支持,使得消耗的ROM空间最小也需要几百KB,这也是不能满足很多微控制器要求。
发明内容
本发明所要解决的技术问题是:提供了一种微控制器的运行方法及终端,能够提高微控制器的适用率。
为了解决上述技术问题,本发明采用的技术方案为:
一种微控制器的运行方法,包括步骤:
接收空间分配请求,根据所述空间分配请求为微控制器的内核程序、应用程序和设备驱动程序分配对应的独立存储空间;
启动并初始化所述内核程序,通过所述内核程序获取应用程序和设备驱动程序的创建信息,并根据所述获取到的创建信息创建并启动所述应用程序和设备驱动程序;
通过所述内核程序管理所有的所述应用程序和设备驱动程序。
为了解决上述技术问题,本发明采用的另一种技术方案为:
一种微控制器的运行终端,包括存储器、处理器以及存储在所述存储器上并可在处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现以下步骤:
接收空间分配请求,根据所述空间分配请求为微控制器的内核程序、应用程序和设备驱动程序分配对应的独立存储空间;
启动并初始化所述内核程序,通过所述内核程序获取应用程序和设备驱动程序的创建信息,并根据所述获取到的创建信息创建并启动所述应用程序和设备驱动程序;
通过所述内核程序管理所有的所述应用程序和设备驱动程序。
本发明的有益效果在于:根据空间分配请求为微控制器的内核程序、应用程序和设备驱动程序分配对应的独立存储空间,能够避免了因为没有内存管理单元而导致各程序运行在相同的或者重叠的空间上;使用内核程序获取应用程序和设备驱动程序的创建信息,并创建和启动应用程序和设备驱动程序,从而直接通过内核程序调用存储空间中应用程序和设备驱动程序的数据,不需要引入文件系统对内存进行管理,因此大大缩小了微控制器的文件大小,并且能够使内核程序、应用程序和设备驱动程序的存储空间相互独立,提高了微控制器的适用率。
附图说明
图1为本发明实施例的一种微控制器的运行方法的流程图;
图2为本发明实施例的一种微控制器的运行终端的示意图;
图3为本发明实施例的一种微控制器的运行方法的具体步骤流程图。
具体实施方式
为详细说明本发明的技术内容、所实现目的及效果,以下结合实施方式并配合附图予以说明。
请参照图1,本发明实施例提供了一种微控制器的运行方法,包括步骤:
接收空间分配请求,根据所述空间分配请求为微控制器的内核程序、应用程序和设备驱动程序分配对应的独立存储空间;
启动并初始化所述内核程序,通过所述内核程序获取应用程序和设备驱动程序的创建信息,并根据所述获取到的创建信息创建并启动所述应用程序和设备驱动程序;
通过所述内核程序管理所有的所述应用程序和设备驱动程序。
从上述描述可知,本发明的有益效果在于:根据空间分配请求为微控制器的内核程序、应用程序和设备驱动程序分配对应的独立存储空间,能够避免了因为没有内存管理单元而导致各程序运行在相同的或者重叠的空间上;使用内核程序获取应用程序和设备驱动程序的创建信息,并创建和启动应用程序和设备驱动程序,从而直接通过内核程序调用存储空间中应用程序和设备驱动程序的数据,不需要引入文件系统对内存进行管理,因此大大缩小了微控制器的文件大小,并且能够使内核程序、应用程序和设备驱动程序的存储空间相互独立,提高了微控制器的适用率。
进一步地,通过所述内核程序获取应用程序和设备驱动程序的创建信息,并根据所述获取到的创建信息创建所述应用程序和设备驱动程序包括:
通过所述内核程序查找所述应用程序和设备驱动程序的创建信息;
判断所述创建信息是否满足创建所述应用程序和设备驱动程序的条件,若是,则根据所述创建信息创建对应的应用程序和设备驱动程序,并返回上述通过所述内核程序查找所述应用程序和设备驱动程序的创建信息步骤,直至查找到全部创建信息或者创建的应用程序和设备驱动程序达到预设程序数量为止;
若否,则返回上述通过所述内核程序查找所述应用程序和设备驱动程序的创建信息步骤。
由上述描述可知,通过内核程序查询应用程序和设备驱动程序的创建信息并创建对应的应用程序和设备驱动程序,能够直接通过内核程序管理应用程序和设备驱动程序的创建,从而管理应用程序和设备驱动程序的存储空间,不必使用内存管理单元对各个程序内存进行管理。
进一步地,根据所述获取到的创建信息创建并启动所述应用程序和设备驱动程序之后包括:
将所述内核程序的数据访问接口发送至所述应用程序和设备驱动程序;
通过所述数据访问接口使所述应用程序和所述设备驱动程序访问内核程序中的数据。
由上述描述可知,内核程序提供数据访问接口给应用程序和设备驱动程序,能够使设备驱动程序和应用程序访问内核所公布的接口函数,以及实现应用程序间对所有公布的接口函数的访问,适应性的解决了在设备驱动程序、应用程序、内核程序三者相互存储空间相互独立时的数据访问。
进一步地,通过所述内核程序管理所有的所述应用程序包括:
通过所述内核程序的调度器对所有应用程序进行调度;
通过执行所述内核程序中的升级程序,对所述所有应用程序进行升级。
由上述描述可知,通过内核程序进行应用程序的调度和升级,能够通过内核程序对应用程序进行统一的管理,在不配置文件系统或内存管理单元的情况下适应性地使用内核程序对应用程序进行调度升级,提高了微控制器的适用率。
进一步地,所述通过所述内核程序获取应用程序和设备驱动程序的创建信息还包括:
通过内核程序获取应用程序和设备驱动程序的创建信息,根据所述创建信息在内核程序中创建线程同步机制;
通过所述内核程序管理所有的所述应用程序和设备驱动程序还包括:
根据所述内核程序中的线程同步机制对所述应用程序和设备驱动程序的数据进行同步和共享。
由上述描述可知,在内核程序中根据实际应用的需求创建线程同步机制,实现应用程序间数据的同步与共享,同时也实现了设备驱动程序数据的同步,能够在不设置内存管理单元和文件系统的情况下进行内存管理。
请参照图2,本发明另一实施例提供了一种微控制器的运行终端,包括存储器、处理器以及存储在所述存储器上并可在处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现以下步骤:
接收空间分配请求,根据所述空间分配请求为微控制器的内核程序、应用程序和设备驱动程序分配对应的独立存储空间;
启动并初始化所述内核程序,通过所述内核程序获取应用程序和设备驱动程序的创建信息,并根据所述获取到的创建信息创建并启动所述应用程序和设备驱动程序;
通过所述内核程序管理所有的所述应用程序和设备驱动程序。
由上述描述可知,根据空间分配请求为微控制器的内核程序、应用程序和设备驱动程序分配对应的独立存储空间,能够避免了因为没有内存管理单元而导致各程序运行在相同的或者重叠的空间上;使用内核程序获取应用程序和设备驱动程序的创建信息,并创建和启动应用程序和设备驱动程序,从而直接通过内核程序调用存储空间中应用程序和设备驱动程序的数据,不需要引入文件系统对内存进行管理,因此大大缩小了微控制器的文件大小,并且能够使内核程序、应用程序和设备驱动程序的存储空间相互独立,提高了微控制器的适用率。
进一步地,通过所述内核程序获取应用程序和设备驱动程序的创建信息,并根据所述获取到的创建信息创建所述应用程序和设备驱动程序包括:
通过所述内核程序查找所述应用程序和设备驱动程序的创建信息;
判断所述创建信息是否满足创建所述应用程序和设备驱动程序的条件,若是,则根据所述创建信息创建对应的应用程序和设备驱动程序,并返回上述通过所述内核程序查找所述应用程序和设备驱动程序的创建信息步骤,直至查找到全部创建信息或者创建的应用程序和设备驱动程序达到预设程序数量为止;
若否,则返回上述通过所述内核程序查找所述应用程序和设备驱动程序的创建信息步骤。
由上述描述可知,通过内核程序查询应用程序和设备驱动程序的创建信息并创建对应的应用程序和设备驱动程序,能够直接通过内核程序管理应用程序和设备驱动程序的创建,从而管理应用程序和设备驱动程序的存储空间,不必使用内存管理单元对各个程序内存进行管理。
进一步地,根据所述获取到的创建信息创建并启动所述应用程序和设备驱动程序之后包括:
将所述内核程序的数据访问接口发送至所述应用程序和设备驱动程序;
通过所述数据访问接口使所述应用程序和所述设备驱动程序访问内核程序中的数据。
由上述描述可知,内核程序提供数据访问接口给应用程序和设备驱动程序,能够使设备驱动程序和应用程序访问内核所公布的接口函数,以及实现应用程序间对所有公布的接口函数的访问,适应性的解决了在设备驱动程序、应用程序、内核程序三者相互存储空间相互独立时的数据访问。
进一步地,通过所述内核程序管理所有的所述应用程序包括:
通过所述内核程序的调度器对所有应用程序进行调度;
通过执行所述内核程序中的升级程序,对所述所有应用程序进行升级。
由上述描述可知,通过内核程序进行应用程序的调度和升级,能够通过内核程序对应用程序进行统一的管理,在不配置文件系统或内存管理单元的情况下适应性地使用内核程序对应用程序进行调度升级,提高了微控制器的适用率。
进一步地,所述通过所述内核程序获取应用程序和设备驱动程序的创建信息还包括:
通过内核程序获取应用程序和设备驱动程序的创建信息,根据所述创建信息在内核程序中创建线程同步机制;
通过所述内核程序管理所有的所述应用程序和设备驱动程序还包括:
根据所述内核程序中的线程同步机制对所述应用程序和设备驱动程序的数据进行同步和共享。
由上述描述可知,在内核程序中根据实际应用的需求创建线程同步机制,实现应用程序间数据的同步与共享,同时也实现了设备驱动程序数据的同步,能够在不设置内存管理单元和文件系统的情况下进行内存管理。
本发明上述一种微控制器的运行方法及终端,适用于在各种微控制器中实现内核程序、设备驱动程序和应用程序的独立,并且不需要文件系统或者内存管理系统支持,以下通过具体实施方式进行说明:
实施例一
请参照图1,一种微控制器的运行方法,包括步骤:
S1、接收空间分配请求,根据所述空间分配请求为微控制器的内核程序、应用程序和设备驱动程序分配对应的独立存储空间;
具体的,在本实施例中,微控制器的程序结构包括内核程序、应用程序和设备驱动程序,其中内核程序是基于实时操作系统内核开发的,实现对应用程序的创建、启动、调度、升级等操作,以及为各应用程序提供通讯接口;应用程序是软件设计中不可缺少的部分,是实现功能需求的一个或者多个程序,它的内部包含了一个或者多个任务;设备驱动程序是为微控制器的外部设备,如存储器、显示、通讯、LED、按键等,能够提供统一的读、写、设置、复位等操作接口,是应用程序访问外部设备的桥梁;
根据空间分配请求,在内核程序、应用程序以及设备驱动程序的工程中按照各自的空间需求分配对应的ROM和RAM的存储空间,其中每个程序在空间上相互独立、不重叠;
S2、启动并初始化所述内核程序,通过所述内核程序获取应用程序和设备驱动程序的创建信息,并根据所述获取到的创建信息创建并启动所述应用程序和设备驱动程序;
其中,通过所述内核程序获取应用程序和设备驱动程序的创建信息,并根据所述获取到的创建信息创建并启动所述应用程序和设备驱动程序包括:
通过所述内核程序查找所述应用程序和设备驱动程序的创建信息;
判断所述创建信息是否满足创建所述应用程序和设备驱动程序的条件,若是,则根据所述创建信息创建对应的应用程序和设备驱动程序,并返回上述通过所述内核程序查找所述应用程序和设备驱动程序的创建信息步骤,直至查找到全部创建信息或者创建的应用程序和设备驱动程序达到预设程序数量为止;
若否,则返回上述通过所述内核程序查找所述应用程序和设备驱动程序的创建信息步骤;
具体的,在本实施例中,设备驱动程序和应用程序需要提供创建的必要信息给内核程序,内核程序通过提供的创建信息创建并启动设备驱动程序和应用程序,创建信息中包含设备驱动程序和应用程序所公布的接口函数和数据结构信息;
请参照图3,内核程序启动之后通过搜索寻找设备驱动程序和应用程序提供的创建信息,如果创建信息满足创建程序的条件,则创建对应的程序,直到全部信息均搜索完成或者创建的程序达到了预设允许创建程序数量时则退出搜索;
在创建了所有应用程序和设备驱动程序之后,进行启动设备驱动程序,初始化所有的外部设备,并且启动所有创建的应用程序;
其中,所述通过所述内核程序获取应用程序和设备驱动程序的创建信息还包括:
通过内核程序获取应用程序和设备驱动程序的创建信息,根据所述创建信息在内核程序中创建线程同步机制;
具体的,在本实施例中,启动内核程序时包含内核程序的初始化,并创建线程同步机制,如创建事件、邮箱、信号量、互斥量、消息队列等,因此内核程序能够按照实际应用程序创建对应的事件、邮箱、信号量、互斥量、消息队列,以便于应用程序的数据管理;
其中,根据所述获取到的创建信息创建并启动所述应用程序和设备驱动程序之后包括:
将所述内核程序的数据访问接口发送至所述应用程序和设备驱动程序;
通过所述数据访问接口使所述应用程序和所述设备驱动程序访问内核程序中的数据;
具体的,内核程序需要提供必要的信息给设备驱动程序和应用程序,使设备驱动程序和应用程序能够访问内核程序所公布的接口函数,以及实现应用程序间对所有公布的接口函数的访问;
S3、通过所述内核程序管理所有的所述应用程序和设备驱动程序;
其中,根据所述内核程序中的线程同步机制对所述应用程序和设备驱动程序的数据进行同步和共享;
具体的,在本实施例中,根据内核程序中按照实际应用程序创建的事件、邮箱、信号量、互斥量、消息队列等同步机制,实现应用程序间数据同步与共享;
因此通过本实施例的上述微控制器的运行方法,能够自定义地划分内核程序、设备驱动程序和应用程序独立的ROM、RAM空间,并且通过内核程序创建和启动设备驱动程序和应用程序,避免了因为没有MMU而导致各应用程序运行在相同或者重叠的空间上,同时也省去了文件系统的引入,减小了ROM、RAM空间的消耗,整个程序文件最大只需几KB,大大增加了微控制器的适用率。
实施例二
本实施例与实施例一的不同之处在于,进一步限定了如何通过内核程序管理所有的应用程序:
具体的,通过所述内核程序的调度器对所有应用程序进行调度;
通过执行所述内核程序中的升级程序,对所述所有应用程序进行升级;
请参照图3,在本实施例中,内核程序的调度器对所有应用程序进行调度执行,并且在内核程序的主程序中包含了升级任务,通过升级任务判断是否有应用程序需要升级,若是,则限制其他应用程序对待升级应用程序所有资源的访问,并停止待升级应用程序,然后对待升级应用程序进行升级和启动,从而通过内核程序实现应用程序的管理,提高了微控制器的适用率。
实施例三
请参照图2,一种微控制器的运行终端,包括存储器、处理器以及存储在所述存储器上并可在处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现实施例一或实施例二的微控制器的运行方法的各个步骤。
综上所述,本发明提供的一种微控制器的运行方法及终端,根据空间分配请求为微控制器的内核程序、应用程序和设备驱动程序分配对应的独立的ROM和RAM存储空间,能够避免了因为没有内存管理单元而导致各程序运行在相同的或者重叠的空间上;在启动内核程序时,包括对内核程序进行初始化和同步机制的搭建,以便于后续对应用程序的管理;使用内核程序获取应用程序和设备驱动程序的创建信息,并创建和启动应用程序和设备驱动程序;启动以创建的程序,通过内核程序调度并管理所有的应用程序,根据实际应用程序的需求适应性地通过内核中创建的同步机制对应用程序的数据进行同步和共享,从而直接通过内核程序调用存储空间中应用程序和设备驱动程序的数据,不需要引入文件系统对内存进行管理,大大缩小了微控制器的文件大小,并且能够使内核程序、应用程序和设备驱动程序的存储空间相互独立,提高了微控制器的适用率。
以上所述仅为本发明的实施例,并非因此限制本发明的专利范围,凡是利用本发明说明书及附图内容所作的等同变换,或直接或间接运用在相关的技术领域,均同理包括在本发明的专利保护范围内。
- 上一篇:石墨接头机器人自动装卡簧、装栓机
- 下一篇:一种移动边缘网络业务卸载方法及装置