一种Linux车载信息系统快速启动方法与流程

文档序号:12034399阅读:1081来源:国知局

本发明涉及嵌入式系统技术领域,尤其涉及一种linux车载信息系统快速启动方法。



背景技术:

随着汽车技术的飞速发展,行业内的竞争也越发激烈,除了成本价格的竞争之外,功能和性能的也是竞争的关键因素。在产品同质化日益严重的情况下,车载产品的竞争开始转移到性能的竞争上,尤其是对产品可靠性要求高的前装车厂客户,对产品的性能更为重视。

车载产品的性能表现在多个方面,目前行业比较关注的有:系统的启动时间、快速倒车响应时间等。其中,系统启动时间一直被认为是衡量系统优化程度的一个标志,体现了对操作系统掌控程度。

目前,linux操作系统以较低的成本但较高的安全性和可靠性、开源和广泛的芯片厂商驱动支持受到各车载产品厂商的青睐,从而得到了非常广阔的应用。

然而,目前基于linux操作系统的车载产品普遍存在系统启动时间较长的问题,一般在15秒左右,降低了用户体验。

因此,现有技术有待进一步改进。



技术实现要素:

本发明提供一种linux车载信息系统快速启动方法,旨在解决现有技术中的缺陷,实现linux车载信息系统的快速启动,提高用户体验。

为达到上述目的,本发明所采取的技术方案为:

本发明提供一种linux车载信息系统快速启动方法,包括:

uboot优化的步骤:根据第一预设优化规则对uboot进行优化;

内核优化的步骤:根据第二优化规则对内核进行优化;

systemd优化的步骤:根据第三优化规则对systemd进行优化;

在systemd服务中启动应用管理进程及依赖的底层服务的步骤:在systemd服务加载过程中,当监测到系统初始化和文件系统挂载服务已启动完成,则启动应用管理进程及依赖的底层服务;

启动关机前的应用程序的步骤:所述应用管理进程读取上一次关机前的应用程序id,并启动所述id对应的应用程序;

加载gui的步骤:所述应用程序启动完成后,加载gui进行显示;

启动其它中间件的步骤:所述gui加载完成后,所述应用管理进程启动除所述上一次关机前的应用程序之外的应用程序的中间件服务进程及应用服务进程;

连接中间件的步骤:所述中间件服务进程启动完成后,所述应用管理进程通知所述应用程序连接中间件服务进程,获取接口服务。

具体地,所述第一预设优化规则包括:

预先配置uboot初始化模块及环境变量;

根据配置后的uboot初始化模块及环境变量生成启动配置文件;

uboot根据所述启动配置文件加载启动文件。

进一步地,所述第一预设优化规则还包括:关闭启动文件加载的日志打印。

具体地,所述第二预设优化规则包括:

预先配置内核驱动;

根据配置后的内核驱动生成启动驱动加载文件;

根据所述启动驱动加载文件加载内核。

进一步地,第二预设优化规则还包括:关闭内核日志打印。

进一步地,第二预设优化规则还包括:关闭内核驱动的延时。

具体地,所述第三预设优化规则包括:

预先配置系统服务;

根据配置后的系统服务生成系统服务加载文件;

根据所述系统服务加载文件加载系统服务。

进一步地,所述第三预设优化规则还包括:关闭系统服务延时。

进一步地,所述第三预设优化规则还包括:延时加载cpu资源占用率超过预设阈值的系统服务。

具体地,所述延时加载cpu资源占用率超过预设阈值的系统服务的步骤包括:

通过预设指令读取各系统服务加载时的cpu资源占用率;

对cpu资源占用率超过超过预设阈值的系统服务延时到应用程序启动完成后加载。

本发明的有益效果在于:本发明通过对uboot、内核、systemd进行优化,并将应用管理进程的启动脚本嵌入到systemd中运行,使应用程序启动的时间提前,大大缩短了应用程序的启动时间和gui显示时间,最终实现了linux车载信息系统的快速启动。

附图说明

图1是本发明的linux车载信息系统快速启动方法的流程示意图。

具体实施方式

下面结合附图具体阐明本发明的实施方式,附图仅供参考和说明使用,不构成对本发明专利保护范围的限制。

如图1所示,本发明的实施例提供一种linux车载信息系统快速启动方法,包括:

步骤1、uboot优化的步骤:根据第一预设优化规则对uboot进行优化。

所述第一预设优化规则包括:

步骤101、预先配置uboot初始化模块及环境变量;

步骤102、根据配置后的uboot初始化模块及环境变量生成启动配置文件;

步骤103、uboot根据所述启动配置文件加载启动文件。

系统上电执行romcode后加载uboot到内存。uboot首先执行汇编指令硬件初始化,后跳转到c中的main函数,进行第一阶段相关硬件初始化和第二阶段硬件初始化;最后运行uboot命令参数,加载kernel(内核)和dtb到内存,并最终跳转到kernel内存的起始地址。如果不进行优化,整个过程耗时在300ms以上。

bsp里面包含了各种驱动模块和原始环境变量,例如板级初始化模块、备份和恢复模块,这就导致了uboot加载启动文件的时间较长。例如,bsp自带的备份和恢复模块并不适合所有的产品,因此这个模块会重复加载,增加了启动文件加载的时间。而bsp提供的原始环境变量占用空间较大,也进一步增加了启动文件加载的时间。

通过对uboot初始化模块及环境变量进行配置,禁止无用的模块和环境变量加载,简化了uboot的加载量,从而减少了启动文件的加载时间。

为进一步减少启动文件加载的时间,在步骤103之后还包括:

步骤104、关闭启动文件加载的日志打印。

日志打印是通过printk函数来实现的,该函数在进行字符拷贝时,一次只拷贝一个字节,并且调用console命令输出还可能产生中断,不仅效率低,而且无用信息的输出直接影响系统性能。因此,关闭内核日志打印,可以进一步减少内核加载的时间。

步骤2、内核优化的步骤:根据第二优化规则对内核进行优化。

所述第二预设优化规则包括:

步骤201、预先配置内核驱动;

步骤202、根据配置后的内核驱动生成启动驱动加载文件;

步骤203、根据所述启动驱动加载文件加载内核。

在kernel阶段,先解压内核到内存,并重定位解压后的内核,对传入uboot参数进行id等检查,设置kernel的c运行环境,最后跳转到start_kernel函数,在此函数中运行内核初始化、加载驱动和文件系统加载。

linux内核包含了各种驱动,例如硬盘驱动、网络驱动、键盘鼠标驱动等,而车载信息系统对这些驱动并无硬件支持,通过对这些无硬件支持的驱动进行配置,禁止其加载,简化了启动驱动加载次数,从而减少了内核的加载时间。

为进一步减少内核加载的时间,在步骤203之后还包括:

步骤204、关闭内核日志打印。

为进一步减少内核加载的时间,在步骤204之后还包括:

步骤205、关闭内核驱动的延时。

内核驱动的延时是为了保证硬件初始化的时序,在保证硬件的时序正确的前提下,减少或关闭驱动中的延时可以缩短启动时间。

步骤3、systemd优化的步骤:根据第三优化规则对systemd进行优化。

所述第三预设优化规则包括:

步骤301、预先配置系统服务;

步骤302、根据配置后的系统服务生成系统服务加载文件;

步骤303、根据所述系统服务加载文件加载系统服务。

systemd是linux系统工具,用来启动守护进程。文件系统启动第一个init进程,并行启动各种系统服务、挂载点、定时任务、系统设备和socket等。

linux包含了各种系统服务,例如电源管理、ssh连接服务、硬件时间同步、系统优化、用户登录管理等服务,而车载信息系统对这些服务并无硬件支持,通过对这些无硬件支持的服务进行配置,禁止其加载,简化了系统服务加载量,从而减少了系统服务的加载时间。

为进一步减少系统服务加载的时间,在步骤303之后还包括:

步骤304、关闭系统服务延时。

为进一步减少系统服务加载的时间,在步骤304之后还包括:

步骤305、延时加载cpu资源占用率超过预设阈值的系统服务。

在本实施例中,所述步骤305包括:

步骤3051、通过预设指令读取各系统服务加载时的cpu资源占用率;

在具体实施时,系统通过调用通过如下指令读取各系统服务加载时的cpu资源占用率:

cat/proc/uptime

top-n1|grepcpu

步骤3052、对cpu资源占用率超过超过预设阈值的系统服务延时到应用程序启动完成后加载。

在本实施例中,所述预设阈值为50%。

步骤4、在systemd服务中启动应用管理进程及依赖的底层服务的步骤:在systemd服务加载过程中,当监测到系统初始化和文件系统挂载服务已启动完成,则启动应用管理进程及依赖的底层服务。

所述启动应用管理进程包括:启动应用管理父进程、启动中间件进程和启动上层应用进程。

应用管理父进程是所有应用进程的父进程,用于启动其他子进程,并对子进程进程守护,当子进程有异常时进行杀死并重启进程,以恢复子进程的正常功能;

中间件进程是应用程序依赖的基础服务,为其他应用中间件提供接口服务,例如源管理、设备管理、音频管理等。

上层应用进程是为上层应用app提供接口服务,封装平台共通的功能逻辑,例如收音机服务、媒体服务、蓝牙服务等。

在现有技术中,应用程序的启动是在systemd所有服务启动完之后才进行的,因此系统启动时间较长。而在本技术方案中,将应用管理进程的启动脚本嵌入到systemd中系统初始化和文件系统挂载服务脚本之后运行,使应用程序启动的时间提前。由于应用程序启动的时间提前,若所述应用程序依赖的底层服务还未准备好,则会导致应用程序无法正常运行,因此,需将所述应用程序依赖的底层服务嵌入到systemd服务中一并加载,达到快速启动和功能稳定正常之目的。

步骤5、启动关机前的应用程序的步骤:所述应用管理进程读取上一次关机前的应用程序id,并启动所述id对应的应用程序。

步骤6、加载gui的步骤:所述应用程序启动完成后,加载gui进行显示。

步骤7、启动其它中间件的步骤:所述gui加载完成后,所述应用管理进程启动除所述上一次关机前的应用程序之外的应用程序的中间件服务进程及应用服务进程。

通过优先启动基础服务可确保应用程序以最快的速度正常运行,使用户可以使用相应的功能。

待gui加载完成后再启动其它中间件服务进程,可以避免同时启动多个应用程序的进程,抢占系统资源,造成gui画面显示的延迟。

步骤8、连接中间件的步骤:所述中间件服务进程启动完成后,所述应用管理进程通知所述应用程序连接中间件服务进程,获取接口服务。

以上所揭露的仅为本发明的较佳实施例,不能以此来限定本发明的权利保护范围,因此依本发明申请专利范围所作的等同变化,仍属本发明所涵盖的范围。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1