公开/公告号CN112181626A
专利类型发明专利
公开/公告日2021-01-05
原文格式PDF
申请/专利权人 华东计算技术研究所(中国电子科技集团公司第三十二研究所);
申请/专利号CN202011110582.0
发明设计人 王若波;
申请日2020-10-16
分类号G06F9/48(20060101);G06F9/50(20060101);
代理机构31334 上海段和段律师事务所;
代理人李佳俊;郭国中
地址 201800 上海市嘉定区嘉罗路1485号
入库时间 2023-06-19 09:27:35
技术领域
本发明涉及嵌入式技术领域,具体地,涉及一种脱离Android操作系统调度CPU的系统、方法及介质。
背景技术
随着现代CPU越来越复杂,单独编写运行于现代CPU上运行的嵌入式软件越来越困难,工作量越来越大。而使用操作系统,要么功能太简单,使用不方便,界面不友好(如VxWorks等某些实时系统)。要么功能太复杂,CPU调度不透明,延时大,实时性差(如windows,Android等操作系统)。为了避免上述操作系统的缺点。研究一种脱离操作系统调用的方法是有必要的。此种方法即能利操作系统复杂的功能用,界面友好,符合使用习惯,又能通过脱离操作系统调度的CPU核心专门运行实时控制程序,开发和裸机基本一致,无操作系统干扰,实时性强。因此脱离操作系统调度CPU的实现方法的研究与实现是十分必要并且具有极高的现实意义的。
专利文献CN109522099A(申请号:201710850598.7)公开了一种提高非实时性操作系统实时性的方法及其系统,方法包括在安全区域中运行Monitor程序,初始化配置包括双系统切换的中断处理;在安全区域中运行RTOS操作系统,初始化配置包括对应的外设资源、内存资源、使用快速中断方式,以及一优先级最低的任务对应只有在RTOS操作系统空闲时才能触发切换请求至Monitor程序;在普通区域中运行非实时操作系统,初始化配置包括对应的外设资源、内存资源以及使用普通中断方式。
发明内容
针对现有技术中的缺陷,本发明的目的是提供一种脱离Android操作系统调度CPU的系统、方法及介质。
根据本发明提供的脱离Android操作系统调度CPU的系统,包括:IMX6Q四核处理器,连接在IMX6Q四核处理器上的DDR3内存、EMMC、NOR FLASH和LVDS接口;
所述四核处理器用于运行操作系统和嵌入式软件;
所述DDR3内存用于为嵌入式软件和操作系统提供运行空间和数据存储空间;
所述EMMC用于提供操作系统存储空间;
所述NOR FLASH用于提供引导程序的存储空间;
所述LVDS用于提供液晶屏显示接口空间。
优选的,对Android操作系统的预设个数的内核屏蔽操作系统进行调度,包括:
模块1:将Android操作系统设置屏蔽一个或多个CPU内核;
模块2:设置页表,划分被屏蔽的处理器的页表,为被屏蔽的处理器准备运行空间;
模块3:对Android系统的睡眠程序进行修改;
模块4:修改Android启动程序,预留被屏蔽内核的运行空间。
优选的,在屏蔽的内核上运行符合预设规范的实时处理程序,包括:
模块5:配置CPU页表;
模块6:配置CPU的中断向量表;
模块7:设置CPU使用的中断对其他CPU都不可见;
模块8:设置CPU和Android操作系统通讯的内存空间。
优选的,Android操作系统和实时处理程序通讯的驱动程序,包括:
模块9:启动或停止预设内核;
模块10:根据调用对相应地址进行读写;
模块11:传送预设命令到到被屏蔽的内核。
根据本发明提供的脱离Android操作系统调度CPU的方法,包括:
步骤S11:上电后进入加载程序;
步骤S12:加载程序根据启动配置决定是否加载Android操作系统;
步骤S13:加载程序加载Android操作系统;
步骤S14:进入Android操作系统,通过USB把嵌入式软件拷贝到Android操作系统中;
步骤S15:运行界面程序;
步骤S16:在界面程序中读取嵌入式软件;
步骤S17:在界面程序中把嵌入式软件通过通讯驱动程序加载到DDR中划分的为嵌入式实时软件保留的内存中;
步骤S18:在界面程序中启动实时嵌入式软件。
优选的,Android操作系统的配置步骤包括:
步骤S21:在Android操作系统中设置屏蔽一个或多个CPU内核;
步骤S22:设置页表,划分被屏蔽的处理器的页表,为被屏蔽的处理器准备运行空间;
步骤S23:对Android操作系统的睡眠程序进行修改;
步骤S24:修改Android操作系统启动程序,预留被屏蔽内核的运行空间;
步骤S25:编译Android操作系统;
步骤S26:把配置好的Android操作系统通过加载程序烧写到EMMC中。
优选的,实时嵌入式软件实现步骤包括:
步骤S31:配置CPU页表;
步骤S32:配置CPU的中断向量表;
步骤S33:设置CPU使用的中断对其他CPU都不可见;
步骤S34:设置CPU和Android操作系统通讯的内存空间;
步骤S35:收到上传命令把数据放置在预设Android操作系统通讯的内存中,通过指令保持该内存的CACHE和其他CPU一致。
优选的,Android操作系统和实时处理程序通讯的步骤包括:
步骤S41:根据上层应用程序收到的命令,如果是启动嵌入式命令则执行步骤S42,如果是写数据则执行步骤S43,如果是读数据则执行步骤S44;否则继续等待命令;
步骤S42:根据传进的CPU号同步该CPU的CACHE,设置启动地址,启动该CPU;
步骤S43:写数据到内存,同步所有CPU的CACHE;
步骤S44:读数据到内核空间,把内核地址转换成用户地址返回到用户程序。
根据本发明提供的一种存储有计算机程序的计算机可读存储介质,所述计算机程序被处理器执行时实现上述的方法的步骤。
与现有技术相比,本发明具有如下的有益效果:本发明能把功能强大但实时性差的Android操作系统和实时处理程序结合起来,既能享受Android操作系统使用方便,功能强大,界面美观的优点,又能享受嵌入式程序实时性强,不受操作系统干扰控制力强的好处。
附图说明
通过阅读参照以下附图对非限制性实施例所作的详细描述,本发明的其它特征、目的和优点将会变得更明显:
图1为本发明中硬件平台系统框图。
具体实施方式
下面结合具体实施例对本发明进行详细说明。以下实施例将有助于本领域的技术人员进一步理解本发明,但不以任何形式限制本发明。应当指出的是,对本领域的普通技术人员来说,在不脱离本发明构思的前提下,还可以做出若干变化和改进。这些都属于本发明的保护范围。
实施例:
如图1,本系统的硬件平台有主要包括IMX6Q四核处理器、DDR31G内存、8G EMMC、2MNOR FLASH,LVDS接口等。其中四核处理器主要用来运行操作系统和嵌入式软件,DDR3内存主要为嵌入式软件和操作系统提供运行空间和数据存储空间,8G EMMC提供操作系统存储空间,2M NOR FLASH提供引导程序的存储空间,LVDS提供液晶屏显示接口空间。
本发明的软件系统
1)对Android操作系统指定某一个或某多个内核(<3个)屏蔽操作系统调度,包括:
对Android操作系统设置屏蔽一个或多个CPU内核;
设置页表,划分被屏蔽的处理器的页表,为被屏蔽的处理器准备运行空间;
对Android系统的睡眠程序做适当修改,防止Android进入睡眠时把ddr置成低功耗等待状态;
修改Android启动程序,预留被屏蔽内核的运行空间。
2)在屏蔽的内核上运行符合一定规范的特定实时处理程序,包括:
配置本CPU页表;
配置本CPU的中断向量表;
设置本CPU使用的中断对其他CPU都不可见;
设置本CPU和Android通讯的内存空间;
3)Android操作系统和特定实时处理程序通讯的驱动程序,包括:
启动或停止特定的内核,
根据调用对特定的地址进行读写,
传送特定的命令到到被屏蔽的内核。
本发明系统的操作步骤包括:
步骤S11:上电后进入加载程序;
步骤S12:加载程序根据启动配置决定是否加载Android;
步骤S13:加载程序加载Android;
步骤S14:进入Android系统,通过USB把嵌入式软件拷贝到Android的文件系统;
步骤S15:运行界面程序;
步骤S16:在界面程序中读取嵌入式软件;
步骤S17:在界面程序中把嵌入式软件通过通讯驱动程序加载到DDR中划分的为嵌入式实时软件保留的内存中;
步骤S18:在界面程序中启动实时嵌入式软件。
Android操作系统的配置实现步骤如下:
步骤S21:对Android操作系统设置屏蔽一个或多个CPU内核;
步骤S22:设置页表,划分被屏蔽的处理器的页表,为被屏蔽的处理器准备运行空间;
步骤S23:对Android系统的睡眠程序做适当修改,防止Android进入睡眠时把ddr置成低功耗等待状态;
步骤S24:修改Android启动程序,预留被屏蔽内核的运行空间;
步骤S25:编译Android系统;
步骤S26:把配置好的Android系统通过加载程序烧写到EMMC中。
实时嵌入式软件实现步骤如下:
步骤S31:配置本CPU页表;
步骤S32:配置本CPU的中断向量表;
步骤S33:设置本CPU使用的中断对其他CPU都不可见;
步骤S34:设置本CPU和Android通讯的内存空间;
步骤S35:收到上传命令把数据放置在特定和Android通讯的内存中,通过特殊指令保持该内存的CACHE和其他CPU一致。
Android操作系统和特定实时处理程序通讯的具体实现步骤如下:
步骤S41:根据上层应用程序收到的命令,如果是启动嵌入式命令则转到步骤S42,如果是写数据则转到步骤S43,如果是读数据则转到步骤S44;否则继续等待命令。
步骤S42:根据传进的CPU号同步该CPU的CACHE,设置启动地址,启动该CPU;
步骤S43:写数据到内存,同步所有CPU的CACHE;
步骤S44:读数据到内核空间,把内核地址转换成用户地址返回到用户程序。
本领域技术人员知道,除了以纯计算机可读程序代码方式实现本发明提供的系统、装置及其各个模块以外,完全可以通过将方法步骤进行逻辑编程来使得本发明提供的系统、装置及其各个模块以逻辑门、开关、专用集成电路、可编程逻辑控制器以及嵌入式微控制器等的形式来实现相同程序。所以,本发明提供的系统、装置及其各个模块可以被认为是一种硬件部件,而对其内包括的用于实现各种程序的模块也可以视为硬件部件内的结构;也可以将用于实现各种功能的模块视为既可以是实现方法的软件程序又可以是硬件部件内的结构。
以上对本发明的具体实施例进行了描述。需要理解的是,本发明并不局限于上述特定实施方式,本领域技术人员可以在权利要求的范围内做出各种变化或修改,这并不影响本发明的实质内容。在不冲突的情况下,本申请的实施例和实施例中的特征可以任意相互组合。
机译: 在android操作系统上对应用程序进行分类的方法以及具有用于android操作系统上的应用程序分类程序的计算机可读记录介质
机译: 调度单元和CPU分配方法以及存储调度程序的存储介质
机译: 调度装置,CPU的分配方法以及通过调度程序存储的存储介质