欧美在线观看视频网站,亚洲熟妇色自偷自拍另类,啪啪伊人网,中文字幕第13亚洲另类,中文成人久久久久影院免费观看 ,精品人妻人人做人人爽,亚洲a视频

一種Linux車載信息系統(tǒng)快速啟動方法與流程

文檔序號:12034399閱讀:1258來源:國知局

本發(fā)明涉及嵌入式系統(tǒng)技術(shù)領域,尤其涉及一種linux車載信息系統(tǒng)快速啟動方法。



背景技術(shù):

隨著汽車技術(shù)的飛速發(fā)展,行業(yè)內(nèi)的競爭也越發(fā)激烈,除了成本價格的競爭之外,功能和性能的也是競爭的關鍵因素。在產(chǎn)品同質(zhì)化日益嚴重的情況下,車載產(chǎn)品的競爭開始轉(zhuǎn)移到性能的競爭上,尤其是對產(chǎn)品可靠性要求高的前裝車廠客戶,對產(chǎn)品的性能更為重視。

車載產(chǎn)品的性能表現(xiàn)在多個方面,目前行業(yè)比較關注的有:系統(tǒng)的啟動時間、快速倒車響應時間等。其中,系統(tǒng)啟動時間一直被認為是衡量系統(tǒng)優(yōu)化程度的一個標志,體現(xiàn)了對操作系統(tǒng)掌控程度。

目前,linux操作系統(tǒng)以較低的成本但較高的安全性和可靠性、開源和廣泛的芯片廠商驅(qū)動支持受到各車載產(chǎn)品廠商的青睞,從而得到了非常廣闊的應用。

然而,目前基于linux操作系統(tǒng)的車載產(chǎn)品普遍存在系統(tǒng)啟動時間較長的問題,一般在15秒左右,降低了用戶體驗。

因此,現(xiàn)有技術(shù)有待進一步改進。



技術(shù)實現(xiàn)要素:

本發(fā)明提供一種linux車載信息系統(tǒng)快速啟動方法,旨在解決現(xiàn)有技術(shù)中的缺陷,實現(xiàn)linux車載信息系統(tǒng)的快速啟動,提高用戶體驗。

為達到上述目的,本發(fā)明所采取的技術(shù)方案為:

本發(fā)明提供一種linux車載信息系統(tǒng)快速啟動方法,包括:

uboot優(yōu)化的步驟:根據(jù)第一預設優(yōu)化規(guī)則對uboot進行優(yōu)化;

內(nèi)核優(yōu)化的步驟:根據(jù)第二優(yōu)化規(guī)則對內(nèi)核進行優(yōu)化;

systemd優(yōu)化的步驟:根據(jù)第三優(yōu)化規(guī)則對systemd進行優(yōu)化;

在systemd服務中啟動應用管理進程及依賴的底層服務的步驟:在systemd服務加載過程中,當監(jiān)測到系統(tǒng)初始化和文件系統(tǒng)掛載服務已啟動完成,則啟動應用管理進程及依賴的底層服務;

啟動關機前的應用程序的步驟:所述應用管理進程讀取上一次關機前的應用程序id,并啟動所述id對應的應用程序;

加載gui的步驟:所述應用程序啟動完成后,加載gui進行顯示;

啟動其它中間件的步驟:所述gui加載完成后,所述應用管理進程啟動除所述上一次關機前的應用程序之外的應用程序的中間件服務進程及應用服務進程;

連接中間件的步驟:所述中間件服務進程啟動完成后,所述應用管理進程通知所述應用程序連接中間件服務進程,獲取接口服務。

具體地,所述第一預設優(yōu)化規(guī)則包括:

預先配置uboot初始化模塊及環(huán)境變量;

根據(jù)配置后的uboot初始化模塊及環(huán)境變量生成啟動配置文件;

uboot根據(jù)所述啟動配置文件加載啟動文件。

進一步地,所述第一預設優(yōu)化規(guī)則還包括:關閉啟動文件加載的日志打印。

具體地,所述第二預設優(yōu)化規(guī)則包括:

預先配置內(nèi)核驅(qū)動;

根據(jù)配置后的內(nèi)核驅(qū)動生成啟動驅(qū)動加載文件;

根據(jù)所述啟動驅(qū)動加載文件加載內(nèi)核。

進一步地,第二預設優(yōu)化規(guī)則還包括:關閉內(nèi)核日志打印。

進一步地,第二預設優(yōu)化規(guī)則還包括:關閉內(nèi)核驅(qū)動的延時。

具體地,所述第三預設優(yōu)化規(guī)則包括:

預先配置系統(tǒng)服務;

根據(jù)配置后的系統(tǒng)服務生成系統(tǒng)服務加載文件;

根據(jù)所述系統(tǒng)服務加載文件加載系統(tǒng)服務。

進一步地,所述第三預設優(yōu)化規(guī)則還包括:關閉系統(tǒng)服務延時。

進一步地,所述第三預設優(yōu)化規(guī)則還包括:延時加載cpu資源占用率超過預設閾值的系統(tǒng)服務。

具體地,所述延時加載cpu資源占用率超過預設閾值的系統(tǒng)服務的步驟包括:

通過預設指令讀取各系統(tǒng)服務加載時的cpu資源占用率;

對cpu資源占用率超過超過預設閾值的系統(tǒng)服務延時到應用程序啟動完成后加載。

本發(fā)明的有益效果在于:本發(fā)明通過對uboot、內(nèi)核、systemd進行優(yōu)化,并將應用管理進程的啟動腳本嵌入到systemd中運行,使應用程序啟動的時間提前,大大縮短了應用程序的啟動時間和gui顯示時間,最終實現(xiàn)了linux車載信息系統(tǒng)的快速啟動。

附圖說明

圖1是本發(fā)明的linux車載信息系統(tǒng)快速啟動方法的流程示意圖。

具體實施方式

下面結(jié)合附圖具體闡明本發(fā)明的實施方式,附圖僅供參考和說明使用,不構(gòu)成對本發(fā)明專利保護范圍的限制。

如圖1所示,本發(fā)明的實施例提供一種linux車載信息系統(tǒng)快速啟動方法,包括:

步驟1、uboot優(yōu)化的步驟:根據(jù)第一預設優(yōu)化規(guī)則對uboot進行優(yōu)化。

所述第一預設優(yōu)化規(guī)則包括:

步驟101、預先配置uboot初始化模塊及環(huán)境變量;

步驟102、根據(jù)配置后的uboot初始化模塊及環(huán)境變量生成啟動配置文件;

步驟103、uboot根據(jù)所述啟動配置文件加載啟動文件。

系統(tǒng)上電執(zhí)行romcode后加載uboot到內(nèi)存。uboot首先執(zhí)行匯編指令硬件初始化,后跳轉(zhuǎn)到c中的main函數(shù),進行第一階段相關硬件初始化和第二階段硬件初始化;最后運行uboot命令參數(shù),加載kernel(內(nèi)核)和dtb到內(nèi)存,并最終跳轉(zhuǎn)到kernel內(nèi)存的起始地址。如果不進行優(yōu)化,整個過程耗時在300ms以上。

bsp里面包含了各種驅(qū)動模塊和原始環(huán)境變量,例如板級初始化模塊、備份和恢復模塊,這就導致了uboot加載啟動文件的時間較長。例如,bsp自帶的備份和恢復模塊并不適合所有的產(chǎn)品,因此這個模塊會重復加載,增加了啟動文件加載的時間。而bsp提供的原始環(huán)境變量占用空間較大,也進一步增加了啟動文件加載的時間。

通過對uboot初始化模塊及環(huán)境變量進行配置,禁止無用的模塊和環(huán)境變量加載,簡化了uboot的加載量,從而減少了啟動文件的加載時間。

為進一步減少啟動文件加載的時間,在步驟103之后還包括:

步驟104、關閉啟動文件加載的日志打印。

日志打印是通過printk函數(shù)來實現(xiàn)的,該函數(shù)在進行字符拷貝時,一次只拷貝一個字節(jié),并且調(diào)用console命令輸出還可能產(chǎn)生中斷,不僅效率低,而且無用信息的輸出直接影響系統(tǒng)性能。因此,關閉內(nèi)核日志打印,可以進一步減少內(nèi)核加載的時間。

步驟2、內(nèi)核優(yōu)化的步驟:根據(jù)第二優(yōu)化規(guī)則對內(nèi)核進行優(yōu)化。

所述第二預設優(yōu)化規(guī)則包括:

步驟201、預先配置內(nèi)核驅(qū)動;

步驟202、根據(jù)配置后的內(nèi)核驅(qū)動生成啟動驅(qū)動加載文件;

步驟203、根據(jù)所述啟動驅(qū)動加載文件加載內(nèi)核。

在kernel階段,先解壓內(nèi)核到內(nèi)存,并重定位解壓后的內(nèi)核,對傳入uboot參數(shù)進行id等檢查,設置kernel的c運行環(huán)境,最后跳轉(zhuǎn)到start_kernel函數(shù),在此函數(shù)中運行內(nèi)核初始化、加載驅(qū)動和文件系統(tǒng)加載。

linux內(nèi)核包含了各種驅(qū)動,例如硬盤驅(qū)動、網(wǎng)絡驅(qū)動、鍵盤鼠標驅(qū)動等,而車載信息系統(tǒng)對這些驅(qū)動并無硬件支持,通過對這些無硬件支持的驅(qū)動進行配置,禁止其加載,簡化了啟動驅(qū)動加載次數(shù),從而減少了內(nèi)核的加載時間。

為進一步減少內(nèi)核加載的時間,在步驟203之后還包括:

步驟204、關閉內(nèi)核日志打印。

為進一步減少內(nèi)核加載的時間,在步驟204之后還包括:

步驟205、關閉內(nèi)核驅(qū)動的延時。

內(nèi)核驅(qū)動的延時是為了保證硬件初始化的時序,在保證硬件的時序正確的前提下,減少或關閉驅(qū)動中的延時可以縮短啟動時間。

步驟3、systemd優(yōu)化的步驟:根據(jù)第三優(yōu)化規(guī)則對systemd進行優(yōu)化。

所述第三預設優(yōu)化規(guī)則包括:

步驟301、預先配置系統(tǒng)服務;

步驟302、根據(jù)配置后的系統(tǒng)服務生成系統(tǒng)服務加載文件;

步驟303、根據(jù)所述系統(tǒng)服務加載文件加載系統(tǒng)服務。

systemd是linux系統(tǒng)工具,用來啟動守護進程。文件系統(tǒng)啟動第一個init進程,并行啟動各種系統(tǒng)服務、掛載點、定時任務、系統(tǒng)設備和socket等。

linux包含了各種系統(tǒng)服務,例如電源管理、ssh連接服務、硬件時間同步、系統(tǒng)優(yōu)化、用戶登錄管理等服務,而車載信息系統(tǒng)對這些服務并無硬件支持,通過對這些無硬件支持的服務進行配置,禁止其加載,簡化了系統(tǒng)服務加載量,從而減少了系統(tǒng)服務的加載時間。

為進一步減少系統(tǒng)服務加載的時間,在步驟303之后還包括:

步驟304、關閉系統(tǒng)服務延時。

為進一步減少系統(tǒng)服務加載的時間,在步驟304之后還包括:

步驟305、延時加載cpu資源占用率超過預設閾值的系統(tǒng)服務。

在本實施例中,所述步驟305包括:

步驟3051、通過預設指令讀取各系統(tǒng)服務加載時的cpu資源占用率;

在具體實施時,系統(tǒng)通過調(diào)用通過如下指令讀取各系統(tǒng)服務加載時的cpu資源占用率:

cat/proc/uptime

top-n1|grepcpu

步驟3052、對cpu資源占用率超過超過預設閾值的系統(tǒng)服務延時到應用程序啟動完成后加載。

在本實施例中,所述預設閾值為50%。

步驟4、在systemd服務中啟動應用管理進程及依賴的底層服務的步驟:在systemd服務加載過程中,當監(jiān)測到系統(tǒng)初始化和文件系統(tǒng)掛載服務已啟動完成,則啟動應用管理進程及依賴的底層服務。

所述啟動應用管理進程包括:啟動應用管理父進程、啟動中間件進程和啟動上層應用進程。

應用管理父進程是所有應用進程的父進程,用于啟動其他子進程,并對子進程進程守護,當子進程有異常時進行殺死并重啟進程,以恢復子進程的正常功能;

中間件進程是應用程序依賴的基礎服務,為其他應用中間件提供接口服務,例如源管理、設備管理、音頻管理等。

上層應用進程是為上層應用app提供接口服務,封裝平臺共通的功能邏輯,例如收音機服務、媒體服務、藍牙服務等。

在現(xiàn)有技術(shù)中,應用程序的啟動是在systemd所有服務啟動完之后才進行的,因此系統(tǒng)啟動時間較長。而在本技術(shù)方案中,將應用管理進程的啟動腳本嵌入到systemd中系統(tǒng)初始化和文件系統(tǒng)掛載服務腳本之后運行,使應用程序啟動的時間提前。由于應用程序啟動的時間提前,若所述應用程序依賴的底層服務還未準備好,則會導致應用程序無法正常運行,因此,需將所述應用程序依賴的底層服務嵌入到systemd服務中一并加載,達到快速啟動和功能穩(wěn)定正常之目的。

步驟5、啟動關機前的應用程序的步驟:所述應用管理進程讀取上一次關機前的應用程序id,并啟動所述id對應的應用程序。

步驟6、加載gui的步驟:所述應用程序啟動完成后,加載gui進行顯示。

步驟7、啟動其它中間件的步驟:所述gui加載完成后,所述應用管理進程啟動除所述上一次關機前的應用程序之外的應用程序的中間件服務進程及應用服務進程。

通過優(yōu)先啟動基礎服務可確保應用程序以最快的速度正常運行,使用戶可以使用相應的功能。

待gui加載完成后再啟動其它中間件服務進程,可以避免同時啟動多個應用程序的進程,搶占系統(tǒng)資源,造成gui畫面顯示的延遲。

步驟8、連接中間件的步驟:所述中間件服務進程啟動完成后,所述應用管理進程通知所述應用程序連接中間件服務進程,獲取接口服務。

以上所揭露的僅為本發(fā)明的較佳實施例,不能以此來限定本發(fā)明的權(quán)利保護范圍,因此依本發(fā)明申請專利范圍所作的等同變化,仍屬本發(fā)明所涵蓋的范圍。

當前第1頁1 2 
網(wǎng)友詢問留言 已有0條留言
  • 還沒有人留言評論。精彩留言會獲得點贊!
1
上思县| 泌阳县| 荔波县| 肥乡县| 永德县| 改则县| 扶绥县| 疏勒县| 绩溪县| 鄂尔多斯市| 三明市| 中阳县| 吕梁市| 贡觉县| 赫章县| 海城市| 叙永县| 招远市| 东方市| 佛学| 石阡县| 鄂尔多斯市| 焦作市| 陕西省| 游戏| 突泉县| 台东县| 晋中市| 隆尧县| 大竹县| 崇阳县| 虞城县| 全椒县| 秦皇岛市| 湖北省| 沂南县| 长子县| 前郭尔| 武威市| 巴南区| 苍南县|