亚洲免费av电影一区二区三区,日韩爱爱视频,51精品视频一区二区三区,91视频爱爱,日韩欧美在线播放视频,中文字幕少妇AV,亚洲电影中文字幕,久久久久亚洲av成人网址,久久综合视频网站,国产在线不卡免费播放

        ?

        一種嵌入式遠(yuǎn)程視頻監(jiān)控系統(tǒng)終端的系統(tǒng)軟件設(shè)計(jì)

        2023-01-04 09:41:02
        技術(shù)與市場(chǎng) 2022年12期
        關(guān)鍵詞:實(shí)時(shí)性內(nèi)核線程

        周 鵬

        (撫順職業(yè)技術(shù)學(xué)院機(jī)械與電子工程系,遼寧 撫順 113122)

        0 引言

        在進(jìn)行嵌入式系統(tǒng)設(shè)計(jì)的過(guò)程中,系統(tǒng)軟件[1]是構(gòu)成各種應(yīng)用功能的重要環(huán)節(jié),若嵌入式系統(tǒng)沒(méi)有操作系統(tǒng)的植入,將無(wú)法實(shí)現(xiàn)更強(qiáng)大的功能。所以,當(dāng)視頻監(jiān)控系統(tǒng)的功能變得復(fù)雜時(shí),則需要各種軟件的配合及任務(wù)處理,如果依靠采用高性能的處理器來(lái)提升性能,依然無(wú)法實(shí)現(xiàn)多任務(wù)的協(xié)調(diào),因此必須將嵌入式操作系統(tǒng)移植到處理器中。有了嵌入式操作系統(tǒng)的幫助,后期的硬件驅(qū)動(dòng)開(kāi)發(fā)、應(yīng)用軟件設(shè)計(jì)會(huì)變得十分輕松和便捷。視頻監(jiān)控系統(tǒng)終端是一個(gè)需要完成多項(xiàng)任務(wù)的嵌入式系統(tǒng),它需要系統(tǒng)軟件來(lái)提供支撐,完成各種監(jiān)控任務(wù)和信息的處理。因此本文主要討論系統(tǒng)啟動(dòng)代碼的設(shè)計(jì)、嵌入式Linux操作系統(tǒng)內(nèi)核的實(shí)時(shí)性改造及其性能的測(cè)試。

        1 系統(tǒng)啟動(dòng)代碼的設(shè)計(jì)

        系統(tǒng)啟動(dòng)代碼(boot loader)是嵌入式系統(tǒng)開(kāi)發(fā)的一個(gè)重要環(huán)節(jié),它把操作系統(tǒng)和硬件平臺(tái)銜接起來(lái),對(duì)嵌入式系統(tǒng)開(kāi)發(fā)的后繼軟件開(kāi)發(fā)十分重要。系統(tǒng)啟動(dòng)代碼是在操作系統(tǒng)內(nèi)核之前運(yùn)行的一段啟動(dòng)程序[2],利用這部分程序,可以檢測(cè)啟動(dòng)外圍設(shè)備、構(gòu)建存儲(chǔ)空間的對(duì)應(yīng)關(guān)系,實(shí)現(xiàn)設(shè)備的軟硬件協(xié)同配合,讓整個(gè)系統(tǒng)處于最佳狀態(tài),為后續(xù)啟用操作系統(tǒng)做好準(zhǔn)備。系統(tǒng)啟動(dòng)代碼的設(shè)計(jì)需要花費(fèi)大量的精力,它是整個(gè)系統(tǒng)啟動(dòng)的首要條件。

        系統(tǒng)啟動(dòng)代碼的設(shè)計(jì)種類很多,這是由嵌入式系統(tǒng)所采用的微處理器結(jié)構(gòu)決定的,且它與外設(shè)關(guān)聯(lián)緊密,即使是基于同一種處理器構(gòu)建的不同開(kāi)發(fā)板,由于使用的擴(kuò)展接口、功能設(shè)備不同,往往也需要重新進(jìn)行啟動(dòng)代碼的設(shè)計(jì)與移植操作。我們無(wú)法建立一個(gè)能為所有嵌入式系統(tǒng)服務(wù)的啟動(dòng)代碼,所以本文主要設(shè)計(jì)一個(gè)用于遠(yuǎn)程視頻監(jiān)控終端的,即以S3C2440微處理器為核心的系統(tǒng)啟動(dòng)代碼。

        1.1 U-Boot的移植操作

        本文采用U-Boot-1.3.3的版本進(jìn)行啟動(dòng)代碼設(shè)計(jì),所需工作就是在U-Boot-1.3.3中添加監(jiān)控設(shè)備使用的硬件資源配置文件、操作選項(xiàng),隨后進(jìn)行編譯處理[3]。在準(zhǔn)備進(jìn)行移植操作之前,需要了解當(dāng)前版本的U-Boot是否支持設(shè)計(jì)所用的硬件設(shè)備,如所使用的處理器體系結(jié)構(gòu)是否一致,各種I/O端口、通信借口是否相同,然后再修改U-Boot-1.3.3相關(guān)代碼。本文將使用smdk2410源代碼為示例進(jìn)行代碼修改,使其能夠驅(qū)動(dòng)遠(yuǎn)程視頻監(jiān)控終端使用的硬件設(shè)備。

        1.2 目標(biāo)文件的生成

        當(dāng)對(duì)源代碼修改完畢后,進(jìn)入U(xiǎn)-Boot目錄下依次運(yùn)行以下命令:

        make clobber

        make clean

        make smdk2440_config

        make

        之后會(huì)生成5個(gè)文件:U-Boot;U-Boot.bin;U-Boot.srec;U-Boot.map;System.map,通過(guò)JTAG將二進(jìn)制文件U-Boot.bin燒入Flash中即可。

        2 嵌入式Linux內(nèi)核的實(shí)時(shí)性改進(jìn)

        Linux操作系統(tǒng)的是一種開(kāi)源操作系統(tǒng),在使用時(shí)可以對(duì)其根據(jù)實(shí)際的需求進(jìn)行裁剪和修改,使其成為符合自己設(shè)計(jì)所需的嵌入式操作系統(tǒng)。但由于該系統(tǒng)是一種面向多任務(wù)服務(wù)的操作系統(tǒng),因此它的實(shí)時(shí)性較差,為了讓它能夠應(yīng)用在遠(yuǎn)程監(jiān)控終端上,就必須對(duì)其進(jìn)行實(shí)時(shí)性改造[4]。下面本文針對(duì)Linux 2.6.26內(nèi)核對(duì)其進(jìn)行實(shí)時(shí)性改進(jìn)。

        2.1 Linux 2.6.26內(nèi)核的優(yōu)點(diǎn)與不足

        Linux 2.6.26內(nèi)核主要改善了內(nèi)核虛擬機(jī)支持,增加了OLPC支持,更新了攝像頭驅(qū)動(dòng)等。它在很多具體的嵌入式應(yīng)用中也完成了多項(xiàng)改進(jìn),如自身內(nèi)核可搶占特性等,在Linux 2.6.26之前的內(nèi)核版本中,當(dāng)操作系統(tǒng)執(zhí)行與內(nèi)核有關(guān)的事件時(shí),其無(wú)法實(shí)現(xiàn)中斷,經(jīng)過(guò)修改后內(nèi)核的互聯(lián)及響應(yīng)得到了大大的提升;輸入、輸出端口系統(tǒng)也實(shí)現(xiàn)了性能的改善,因此它可以在所有的工作任務(wù)中均具有一定的響應(yīng)特性。在Linux 2.6.26的內(nèi)核中,部分核心程序在執(zhí)行時(shí)會(huì)自動(dòng)停止中斷的處理模式,因此可以使進(jìn)程快速地完成自己的處理任務(wù)。它實(shí)現(xiàn)了在響應(yīng)外部設(shè)備中斷時(shí)不會(huì)重復(fù)進(jìn)入內(nèi)核,這段時(shí)間外部設(shè)備過(guò)來(lái)的所有中斷信息是不能響應(yīng)的,這樣就會(huì)有中斷響應(yīng)延遲的存在。

        2.2 Linux 2.6.26內(nèi)核的實(shí)時(shí)性改進(jìn)

        為了解決上述問(wèn)題,本文采用中斷線程化[5]來(lái)進(jìn)行有效的處理。

        1)Linux 2.6.26的內(nèi)核中斷在沒(méi)有被改進(jìn)之前它的應(yīng)答方式為:首先操作系統(tǒng)形成中斷,處理器在中斷控制器中得到中斷向量,隨后在中斷向量表中查找相應(yīng)的中斷向量。在沒(méi)有進(jìn)入中斷處理程序之前,CUP需要對(duì)其進(jìn)行權(quán)限的比對(duì),即檢查是否有權(quán)限進(jìn)入服務(wù)程序。

        2)Linux 2.6.26使用kthread_create()函數(shù)進(jìn)行系統(tǒng)內(nèi)核的線程建立,由于該線程運(yùn)行的位置處于內(nèi)核空間,所以在調(diào)用時(shí)無(wú)需在用戶與內(nèi)核空間進(jìn)行轉(zhuǎn)換,這樣其執(zhí)行的效果更好。通過(guò)建立中斷線程并形成中斷處理來(lái)實(shí)現(xiàn)中斷的線程化。利用kthread_create()函數(shù)在操作系統(tǒng)進(jìn)行初始化運(yùn)行時(shí)建立中斷線程。同時(shí)設(shè)定中斷的優(yōu)先級(jí),最高實(shí)時(shí)優(yōu)先級(jí)為50,依次類推直到25,因此任何IRQ線程的最低實(shí)時(shí)優(yōu)先級(jí)為25。

        3)標(biāo)準(zhǔn)Linux 2.6.26內(nèi)核的中斷響應(yīng)過(guò)程如上所述,可知任何的中斷均是以中斷處理程序進(jìn)入到common_interrupt函數(shù)中的,通過(guò)在common_interrupt函數(shù)中放入相關(guān)程序,如SAVE_ALL,call do_IRQ_JUDGE,jmp ret_from_intr來(lái)進(jìn)行改進(jìn),使得中斷發(fā)生后首先轉(zhuǎn)入do_IRQ_JUDGE。

        這種改進(jìn)是通過(guò)一個(gè)中斷服務(wù)進(jìn)程來(lái)為所有的中斷服務(wù),這樣就在一定程度上節(jié)省了系統(tǒng)資源。

        3 改進(jìn)后的內(nèi)核實(shí)時(shí)性能測(cè)試

        對(duì)Linux 2.6.26內(nèi)核進(jìn)行了實(shí)時(shí)性改進(jìn)后,需要對(duì)其進(jìn)行測(cè)試來(lái)確定其是否符合應(yīng)用的需要。實(shí)時(shí)性能測(cè)試為測(cè)試內(nèi)核的中斷響應(yīng)時(shí)間。

        中斷響應(yīng)時(shí)間為設(shè)備硬件發(fā)生中斷時(shí)到系統(tǒng)執(zhí)行中斷處理程序初始指令所需的時(shí)間。實(shí)時(shí)性測(cè)試的過(guò)程為:利用在不同時(shí)間登錄定時(shí)器計(jì)數(shù)據(jù)的方式來(lái)完成測(cè)試。系統(tǒng)檢測(cè)到外設(shè)中斷后立即登錄定時(shí)器內(nèi)數(shù)據(jù),在系統(tǒng)調(diào)用中斷處理程序后并執(zhí)行初始化程序開(kāi)始時(shí)再登錄取定時(shí)計(jì)數(shù)據(jù),將以上定時(shí)器的登錄數(shù)據(jù)進(jìn)行相減得到的數(shù)值就是中斷相應(yīng)時(shí)間。本文采用Linux Trace Toolkit工具進(jìn)行測(cè)試,它能夠根據(jù)實(shí)際系統(tǒng)的設(shè)計(jì)及相應(yīng)的時(shí)間設(shè)定來(lái)記錄固定時(shí)間的數(shù)據(jù)處理,性能測(cè)試良好是檢測(cè)嵌入式操作系統(tǒng)實(shí)時(shí)性能的有力工具。通過(guò)測(cè)試,得到平均中斷響應(yīng)時(shí)間的測(cè)試結(jié)果(見(jiàn)表1)。

        表1 三種內(nèi)核平均中斷響應(yīng)時(shí)間測(cè)試結(jié)果

        通過(guò)測(cè)試結(jié)果可以看出,將標(biāo)準(zhǔn)Linux 2.6.26內(nèi)核的中斷設(shè)置進(jìn)行修改之后,對(duì)比3種不同內(nèi)核的平均中斷相應(yīng)時(shí)間,改進(jìn)后的系統(tǒng)響應(yīng)時(shí)間明顯提升,達(dá)到了預(yù)期效果。

        4 結(jié)語(yǔ)

        本文首先設(shè)計(jì)了系統(tǒng)的啟動(dòng)代碼;接著對(duì)嵌入式Linux 2.6.26的內(nèi)核進(jìn)行了實(shí)時(shí)性改進(jìn),并對(duì)改進(jìn)后的內(nèi)核進(jìn)行了相應(yīng)的實(shí)時(shí)性能測(cè)試,從結(jié)果中可以看到,系統(tǒng)的實(shí)時(shí)性有了一定的提高,為后續(xù)應(yīng)用軟件的設(shè)計(jì)打下了基礎(chǔ),更加適合于遠(yuǎn)程視頻監(jiān)控系統(tǒng)的實(shí)時(shí)應(yīng)用開(kāi)發(fā)。

        猜你喜歡
        實(shí)時(shí)性內(nèi)核線程
        萬(wàn)物皆可IP的時(shí)代,我們當(dāng)夯實(shí)的IP內(nèi)核是什么?
        強(qiáng)化『高新』內(nèi)核 打造農(nóng)業(yè)『硅谷』
        基于規(guī)則實(shí)時(shí)性的端云動(dòng)態(tài)分配方法研究
        基于嵌入式Linux內(nèi)核的自恢復(fù)設(shè)計(jì)
        Linux內(nèi)核mmap保護(hù)機(jī)制研究
        基于虛擬局域網(wǎng)的智能變電站通信網(wǎng)絡(luò)實(shí)時(shí)性仿真
        航空電子AFDX與AVB傳輸實(shí)時(shí)性抗干擾對(duì)比
        淺談linux多線程協(xié)作
        一種車載Profibus總線系統(tǒng)的實(shí)時(shí)性分析
        Linux線程實(shí)現(xiàn)技術(shù)研究
        97se亚洲精品一区| 日本高清成人一区二区三区 | 爽爽午夜影视窝窝看片| 精品一区二区三区久久久| 手机av在线观看视频| 五月激情在线视频观看| 艳妇臀荡乳欲伦交换h在线观看| 亚洲人成人网站在线观看| 学生妹亚洲一区二区| 国产亚洲无码1024| 久久精品国产亚洲av忘忧草18 | 欧美h久免费女| 插入中文字幕在线一区二区三区| 青青草视频国产在线观看| 91精品啪在线观看国产色| 日本一区二区三区视频免费在线| 久久天堂精品一区二区三区四区| 欧美牲交a欧美牲交aⅴ免费下载| 精品国产一二三产品区别在哪| 国产一女三男3p免费视频 | 老熟女一区二区免费| 国产超碰在线91观看| 精品激情成人影院在线播放 | 无码人妻精品一区二区三区下载| 呦泬泬精品导航| 色婷婷精久久品蜜臀av蜜桃| 国产在线观看一区二区三区av | 久久久久成人精品无码| 蜜桃麻豆www久久囤产精品| 99久久精品国产成人综合| 国产美女精品AⅤ在线老女人| 色婷婷精品大在线视频| 一区二区三区中文字幕在线观看| 三级全黄裸体| 亚洲国产美女精品久久久| 日韩av一区二区三区四区av| 最新亚洲视频一区二区| 完整版免费av片| 特黄做受又粗又长又大又硬| 日本在线观看| 亚洲天堂av社区久久|