久久精品在这里_成人99免费视频_国产激情视频一区二区在线观看_国产伦精品一区二区三区免费 _亚洲午夜免费福利视频_色狠狠色狠狠综合_av在线综合网_91毛片在线观看_欧美视频一区二区在线观看_极品美女销魂一区二区三区免费_国产亚洲欧美激情_在线免费观看不卡av_日韩不卡一区二区三区_91精品国产麻豆国产自产在线_亚洲国产精品一区二区久久恐怖片_a4yy欧美一区二区三区


曙海教育集團論壇Linux專區Linux技術討論區 → 嵌入式實時Linux的技術


  共有9397人關注過本帖樹形打印

主題:嵌入式實時Linux的技術

美女呀,離線,留言給我吧!
wangxinxin
  1樓 個性首頁 | 博客 | 信息 | 搜索 | 郵箱 | 主頁 | UC


加好友 發短信
等級:青蜂俠 帖子:1393 積分:14038 威望:0 精華:0 注冊:2010-11-12 11:08:23
嵌入式實時Linux的技術  發帖心情 Post By:2010-11-15 14:10:46

PC硬件使用的增加是近年來高端嵌入式系統的一個最重要的發展。由于這個趨勢,嵌入式系統的硬件成本大大地下降了,然而應用于嵌入式PC平臺的軟件系統卻沒有太多的選擇。
目前嵌入式操作系統主要有Palm OS,WindowsCE,EPOC,LinuxCE,QNX.ECOS,LYNX等,但這些系統一般都價格昂貴、不具有良好的可移植性。由于linux具有適應于多種CPU和多種硬件平臺、性能穩定、裁剪性能好,開發和使用都很容易等特點,越來越多的人傾向于將Linux嵌入到移動計算平臺、信息家電、媒體手機及其它產品中去。這同時也對Linux的實時性提出了更高的要求。

我們參加開發的上海數字技術中心的電子警察系統就是這樣一個基于PC平臺的嵌入式系統。它的主要功能是安裝在十字路口上監視闖紅燈的汽車,錄制這些鏡頭,并適時通過網絡傳回總監控中心。該系統原來采用Vxworks作為運作平臺,然而由于Vxworks的昂貴,且只能安裝一臺機器,因此將Linux改制成嵌入式的、具有一定實時性的系統平臺。
1 硬件需求

考慮到實際的系統功能和系統開發的難度,我們決定選擇X86體系作為平臺,底板采PCM-5864/L板,CPU選擇Intel的P55C系列,同時它也支持PC104接口。I/O方面,PCM-5864/L支持EIDE、FDD、Keyboard、Mouse、RS-232、USB等接口,同時也集成了10Mbps/l00Mbps網卡。另外PCM-5864/L還集成了顯卡,并提供36位TTL的LCD接口、LVDS接口和Video-in/TV-out接口。由于電子磁盤體積小、抗震性能也較好的特點,我們選用M-Systems公司的DiskOnChip2000作為存儲設備,這樣比較適合該系統戶外作業的特性。Doc2000還提供了安裝的工具包、Linux下的驅動程序和對不同版本Linux內核的Patch。安裝時只需對Linux內核和Lilo進行相應修改即可。這樣的硬件選擇使系統開發的難度大大降低了。
2 嵌入Linux主要解決的幾個問題

由于采用X86體系作為平臺,大大降低了嵌入化Linux的難度,主要要考慮的問題可分為以下幾個方面:
2.1 非虛擬內存

Linux采用虛擬內存技術,當數據溢出內存時,可以將其交換到磁盤交換空間巾去,這對程序員來說是不可見的。然而,普通的嵌入式系統不需要這種強大的功能。實際上,可能不希望它在實時的關鍵系統里,因為它會帶來無法控制的時問因素。因此,考慮將虛擬內存的功能去掉。然而,清除Linux的虛擬內存代碼非常費事,我們采用一種迂回的方法,即將交換空間的大小設置為零。這樣,如果你寫的程序比實際的內存大,系統就會當作你的運行用盡了交換空間來處理;這個程序將不會運行,或者malloc將會失靈。這只是一種臨時的解決方案,系統中存在許多冗余未清除的代碼,如果進一步改進可以縮小系統體積。
2.2 處理文件系統

許多嵌入式系統沒有磁盤或者文件系統,Linux不需要它們也能運行,這樣可以在系統啟動時就將操作系統和預先編好的應用程序全都加載到內存中去。然而.考慮到以后的擴展,我們分析了Linux當前的文件系統,將與系統和程序運行相關的文件析取出來,移植到Doc上面.這樣就能為應用程序的開發人員提供更方便的接口。
2.3 設置啟動(Lilo和BIOS)

當PC系統啟動時,由BIOS執行了一些低水平的CPU初始化和其它硬件的配置,然后辨認哪個磁盤里有操作系統,把操作系統復制到RAM并且轉向它。在PC上運行的Linux依靠PC的BIOS來提供這些配置和OS加戟功能。由于選擇了X86系列作為平臺,同樣可以通過設置BIOS來設定由Doc啟動。我們將內核安裝在Doc上。同時修改目錄/etc下的lilo.config文件,使Lilo記錄內核代碼在存儲設備上的位置,然后將Lilo安裝在Doc上。這樣當系統啟動時.BIOS指定Doc為啟動設備,這時Lilo被執行。它指出Linux內核的位置,加載內核。
2.4 設備驅動程序的編寫

由于采用通用PC平臺,有許多驅動程序都不需要自己再編寫了。系統中,唯一需要編寫驅動程序的設備是上海數字中心的數據采集卡.該卡采用的是Bt848芯片。Bt848是一塊很常用的芯片.許多驅動程序都非常相近,因此編寫它的驅動程序有很好的例子可以參考,相應的,編寫應用程序只需調用驅動程序提供的接口即可,如同操作文件一樣。
3 Linux的實時性分析

以上簡要介紹了實現Linux的嵌入化過程,在嵌入化Linux的同時,還考慮提高它的實時性。于是著手分析Linux的實時性能和存在的不足。

概括來講,影響操作系統實時性能的主要有3個方面:
(1)外部中斷管理

我們知道,外部中斷發生時,操作系統調用中斷處理程序.進入核心態。為了保證系統執行的正確性,要求內核狀態不重入,也即保證這部分關鍵代碼執行結束之前不被打斷。因此,這時進入關中模式,這是外部中斷管理中影響Linux性能的一個關鍵的地方。在這段時間內,操作系統負責將中斷發送到相應的設備驅動程序去處理,系統不能進行其它任何工作,為了減少這個過程損耗的時間,Linux內核利用底半處理過程(bottom-half-handler)幫助實現中斷的快速處理。在Linux設備驅動程序中,往往將最關鍵最迅速的部分處理完成之后,將剩余部分任務放置到隊列中。當中斷響應完成后.再執行剩余部分的任務。在Linux中,主要設置了以下幾個數據結構來標志未完成的任務。
enum{
TIMER_BH=0,CONSOLE_BH,TQUEUE_BH,DIGI_BH,SERIAL_BH,RISCOM8_BH,SPECIALIX_BH,
ESP_BH,NET_BH,SCSI_BH,IMMEDIATE_BH,KEYBOARD_BH,CYCLADES_BH,CM206_BH,
JS_BH,MACSERIAL_BHISICOM_BH
};
上面每一項標識未完成任務的隊列類型,不同隊列的任務輕重緩急不同。
extern unsigned long bh_active;
extern unsigned long bh_mask;
extern void(*bh_base[32])(void);
bh_base代表的指針數組中可包含32個不同的底半處理過程。bh_mask和札bh_active的數據位分別代表對應的底半處理過程是否安裝和激活。如果bh_mask的第N位為1.則說明bh_base數組的第N個元素包含某個底半處理過程的地址;如果bh_active的第N位為1.則說明必須由調度程序在適當的時候調用第N個底半處理過程。這些數據結構的設置一般是在外部設備初始化和中斷處理函數運行時進行的。如:在serialc中進行serial設備的初始化,它調用語句init_bh(SERIAL_BH,do_serial_bh);來設置bh_base[]數組中相應于SERIAL_BH的那一項。又如:在serial設備的處理程序中通過語句queue_task(&info->tqueue,&tq_serial);將不是很緊急的任務放入tq_serial隊列中,等中斷處理函數結束,由bh_base中注冊的底半處理程序處理隊列中的任務。

中斷管理的第二個關鍵部分即是系統是否允許中斷嵌套的能力,也就是說,當響應一個中斷時,是否允許其它更高優先級的中斷打斷,等更高優先級的中斷處理完畢,是否還能恢復原來中斷處理的現場。通過這項功能,系統設計者可以指示外部中斷的優先級,從而確保高優先級的任務能及時處理。Linux允許中斷嵌套,它是利用外部中斷管理器來設置中斷的優先級的。在Linux的中斷處理程序的啟動過程中,它一般調用語句mask_and_ack_8259A(irq);來設置8259中的int_mask寄存器.使優先級比此中斷低的中斷不能發生。在中斷處理程序離開時,調用enable_8259A_irq(irq)來改回8259中int_mask寄存器原來的值。因此,intr類中斷的優先級由硬件8259來決定.

由此可見,Linux的中斷管理部分具有高效的特點,已經可以滿足許多軟實時任務的要求。
(2)進程搶先調度

在許多控制系統中,實時控制軟件是非常簡單的,可以直接寫入中斷處理程序中與一個特定的中斷聯系起來。還有一些就不那么簡單了,必須開啟專門的用戶進程為它服務。

這時當這個高優先級的進程提交時,如有其它進程正在運行,它就必須打斷正在運行的進程。若正在運行的進程運行在用戶態,系統一般允許它被打斷且執行其它優先權高的進程,若正在運行的進程運行在系統態,則此時是否允許被打斷決定了系統是搶先式的還是非搶先式的。

Linux就是一個非搶先式的操作系統,在用戶執行系統調用時,不允許其它進程的調度,這樣就影響了系統的響應度。一個真正的搶先式的操作系統允許正在系統狀態下的當前進程被打斷,然后進程切換回來時還能繼續從剛才的執行點繼續下去。但某些關鍵部分的代碼段。系統必須保證其原子性,并防止重入。通常有如下幾種方法:
在關鍵代碼斷前關閉中斷,等其執行完畢之后再將中斷打開; 設計一個信號量.在關鍵代碼段之前加鎖,在其后解鎖;
在系統代碼中保證安全的地方加入切換進程的代碼switch(),防止該進程長久占用CPU,允許調度其它進程; 在關鍵代碼段加入一個switchaccept標志,開始該代碼段時。將此標志置為否.離開時再置回原來的值.這樣在執行該段代碼時,即使進程調度器被激活,它也會先檢查此標志。若為否,則返回,并不進行進程切換。

(3)進程調度策略

第三個影響系統響應速度的關鍵部分就是進程調度的策略。對于一個實時性能強的操作系統來說,系統必須規定不同進程的優先級,并把優先級作為唯一的進程選擇的標準。Linux的后期版本參照Posixl.b標準,在某些方面已經具備了一些實時操作系統的特性。Linux有兩種類型的進程:一般進程和實時進程,它可以通過sched_setscheduler系統調用設置實時進程。實時進程比所有一般進程的優先級高,Linux設置實對進程的權重為它的counter值加1000;設置一般進程的權重為counter。因此,實時進程總會被認為是最值得運行的進程。

然而,Linux核心的設計主要集中在應用程序的吞吐量上。追求吞吐量的必然結果,就是Linux調度器運用一種"公平共享"的策略保證所有的進程得到平均的CPU資源。而且,Linux的進程調度器只是簡單地將標有實時標志的進程的權重加1000,至于實時進程間的輕重緩急還沒有周密的完整的設計。因此,Linux的進程調度器還遠不能稱作是一個真正的實時進程凋度器。
4 擬采用的策略

根據以上分析的特點,我們決定主要從以下4個方面來修改Linux的核心代碼。

(1)在內核中插入搶先點 由于Linux是一個非搶先式的操作系統。因此當一個實時進程提交時,很可能因為當前的進程正處于核心態不能被打斷而不能得到及時的處理。因此有必要在Linux內核中插入搶先點,使實時進程得到處理。根據上一節分析的特點,太體有4種方法可供選擇。權衡這4種方法的利弊,我們決定采用第4種方法,即在關鍵代碼段加入一個switchaccept標志,開始該代碼段時,將此標志置為否.離開時再置回原來的值。這種方法比采甩semaphore的好處是,如果采用許多種semaphore的話.要考慮是否會產生死鎖的問題。比采用鎖中斷的好處是.將中斷鎖住將丟失中斷,而這樣不會。而以固定的周期加switch語句顯然有失靈活性。這樣.采用這種方法,需要我們分析Linux所有系統調用的代碼,畫出其結構流程圖。分析出哪些部分是關鍵部分,也即不允許置入的部分。在關鍵代碼前后更改switchaccept標志。這項工作比較艱巨。同時修改進程調度器,使其判斷switchaccept標志來決定是否執行進程切換。
(2)修改進程調度器Linux的進程調度器雖然已經具有一定的實時性能,但還遠遠達不到真正實時調度器的標準,因此需要修改其進程調度器,必要的話可讓Linux運行在兩種模式下,實時模式和分時模式。可設計一些相關的系統調用,并在實時進程提交時,將系統轉化為實時模式,當實時進程結束時,再轉化為分時模式。
(3)Linux的中斷管理根據前面分析過的,Linux的中斷管理及時地將緊要的任務完成后,將其余不重要的緩慢的任務放置在任務隊列中,等到系統空閑(cpu idle())或系統調用等返回時再完成這些任務,這樣就提高了系統的響應速度,同時,Linux還支持中斷嵌套。因此,不再對其作太大改動。
(4)鎖定內存 在本項目的規劃中本打算實現Linux鎖內存的功能,使優先權高的進程在內存中的數據不被換出,從而提高實時進程的運行速度。然而,在分析了Linux代碼后,發現后來版本的Linux已通過系統調用sys mlock實現了此項功能

支持(0中立(0反對(0單帖管理 | 引用 | 回復 回到頂部

返回版面帖子列表

嵌入式實時Linux的技術








簽名
久久精品在这里_成人99免费视频_国产激情视频一区二区在线观看_国产伦精品一区二区三区免费 _亚洲午夜免费福利视频_色狠狠色狠狠综合_av在线综合网_91毛片在线观看_欧美视频一区二区在线观看_极品美女销魂一区二区三区免费_国产亚洲欧美激情_在线免费观看不卡av_日韩不卡一区二区三区_91精品国产麻豆国产自产在线_亚洲国产精品一区二区久久恐怖片_a4yy欧美一区二区三区
图片区小说区国产精品视频| 国产一区二区三区黄视频| 一区二区三区在线视频免费| 国产成人精品网址| 水蜜桃一区二区| 国产农村妇女毛片精品久久麻豆| 久久99精品久久久久婷婷| 国产在线精品一区二区三区》| 制服丝袜中文字幕一区| 亚洲一区在线观看免费观看电影高清 | 欧美丰满嫩嫩电影| 亚洲午夜久久久| 国产日韩一区二区三区| 精品sm捆绑视频| 精品一区二区免费| 色综合色综合色综合色综合色综合 | 久久精品国产精品青草色艺| 国产成人激情av| 蜜桃在线一区二区三区精品| 欧美午夜视频网站| 国产日韩av一区二区| 日韩av电影免费观看高清完整版 | 午夜成人在线视频| 欧美精品123| 综合色中文字幕| 国产精品久久久久久免费观看| 欧美va亚洲va香蕉在线| 国产成人av一区二区| 欧美精品日韩一区| 韩国精品免费视频| 欧美视频你懂的| 麻豆国产一区二区| 在线免费观看不卡av| 日日夜夜精品视频天天综合网| 日韩免费av电影| 亚洲国产中文字幕| 香蕉久久免费影视| 午夜久久久久久电影| 亚洲一卡二卡| 免费视频一区二区| 欧美日韩在线播放三区| 国产一区二区三区四区五区入口| 欧美丝袜第三区| 国精产品一区一区三区mba桃花| 91黄色小视频| 久久国产精品99久久人人澡| 欧美日韩极品在线观看一区| 国产麻豆91精品| 精品免费视频.| 99久久国产免费免费| 中文久久乱码一区二区| 国产伦精品一区二区三| 国产精品大尺度| 日本黑人久久| 日韩va欧美va亚洲va久久| 欧美在线|欧美| 国产一区二区三区四| 欧美成人伊人久久综合网| 91啪九色porn原创视频在线观看| 中文字幕第一区| 欧美精品二区三区四区免费看视频| 一区二区三区小说| 国产盗摄一区二区| 久久久免费看| 中文字幕中文在线不卡住| 99久久精品免费| 日韩欧美一二三四区| 国产综合色精品一区二区三区| 亚洲精品中字| 亚洲一区二区三区视频在线播放| 精品国产综合久久| 国产免费观看久久| 一本久久综合亚洲鲁鲁五月天 | 美脚丝袜一区二区三区在线观看| 一二三四区精品视频| 日本高清不卡一区| 成人午夜看片网址| 中文字幕中文在线不卡住| 亚洲在线色站| 粉嫩13p一区二区三区| 中日韩免费视频中文字幕| 亚洲国产一区二区在线| 国产在线一区观看| 国产精品美女一区二区三区| 亚洲精品影院| 成人深夜视频在线观看| 亚洲欧美日韩中文播放| 欧美日韩精品一区二区在线播放| 91久久久一线二线三线品牌| 亚洲va中文字幕| 欧美精品一区视频| 亚洲成人第一| 97精品视频在线观看自产线路二| 一区二区三区在线视频播放| 欧美猛男gaygay网站| 精品一区二区三区国产| 狠狠v欧美v日韩v亚洲ⅴ| 国产精品丝袜一区| 欧美在线看片a免费观看| 999视频在线观看| 久久国产视频网| 亚洲天堂av一区| 日韩一区二区在线免费观看| 日本一区视频在线播放| 成人av网址在线观看| 亚洲国产精品久久久久秋霞影院 | 麻豆精品在线视频| 国产精品―色哟哟| 欧美日本一道本| 青青草成人激情在线| 国产91精品一区二区麻豆网站| 亚洲一区二区偷拍精品| 精品欧美一区二区久久| 亚洲欧美精品在线观看| 99re在线观看| 国产一区二区三区四区五区美女| 亚洲欧美激情视频在线观看一区二区三区| 3751色影院一区二区三区| 视频一区二区精品| 99re国产视频| 国产一区二区三区免费看| 亚洲国产视频一区二区| 中文成人综合网| 欧美一区午夜视频在线观看| 欧美日韩在线精品| 91大片在线观看| 国产精品1区二区.| 日本成人在线不卡视频| 综合久久一区二区三区| 精品91自产拍在线观看一区| 欧美三级午夜理伦三级中视频| 日本不卡二区高清三区| 国产精品久久久久久免费观看| 粉嫩av一区二区三区| 精品一区二区免费在线观看| 爽好久久久欧美精品| 最好看的中文字幕久久| 久久精品欧美一区二区三区麻豆| 3atv在线一区二区三区| 欧美伊人久久久久久久久影院| 五月天色一区| 欧美一区二区视频17c| 国产精品免费一区二区三区在线观看 | 欧美日韩久久一区| 亚洲第一激情av| 欧美日韩一区二区在线观看视频| 99re在线播放| 久久精品国产免费| 中文字幕不卡在线播放| 欧美性色欧美a在线播放| 91青青草免费观看| 久久精品国产网站| 日韩毛片在线免费观看| 51久久夜色精品国产麻豆| 欧美成人dvd在线视频| 成人免费视频caoporn| 五月激情六月综合| 国产精品美女久久久久久久网站| 欧美老女人在线| 一区二区三区的久久的视频| 91香蕉视频污在线| 激情欧美一区二区| 亚洲国产人成综合网站| 国产视频一区二区在线| 欧美精品丝袜久久久中文字幕| 日本一区二区三区免费观看| 91网上在线视频| 国产丶欧美丶日本不卡视频| 丝袜脚交一区二区| 国产精品护士白丝一区av| 精品裸体舞一区二区三区| 欧美亚洲高清一区| 相泽南亚洲一区二区在线播放| 国产成人精品福利一区二区三区| 国产在线播放一区| 亚洲一级在线观看| 18成人在线观看| 国产日韩亚洲欧美综合| 日韩视频中午一区| 欧美精品欧美精品系列| 一本久久综合亚洲鲁鲁五月天 | 欧美色图在线观看| 亚洲精品人成| 久久综合一区二区三区| 成人黄色在线免费观看| av亚洲精华国产精华精| 国产传媒日韩欧美成人| 麻豆成人久久精品二区三区红| 亚洲bt欧美bt精品777| 一区二区三区日韩欧美| 亚洲免费电影在线| 亚洲欧洲日产国码二区| 国产精品美女久久久久久| 久久久99久久精品欧美| 26uuu亚洲| 久久久亚洲综合| 久久久久久一级片| 2021久久国产精品不只是精品| 日韩欧美一区二区在线视频| 欧美一级二级在线观看|