LX800在車(chē)載監控系統中的應用
2 系統軟件設計
Linux采用統一的框架對硬件進(jìn)行管理,從一個(gè)硬件平臺到另一個(gè)硬件平臺的改動(dòng)與上層應用無(wú)關(guān)。Linux可以隨意地配置,不需要任何許可證或與商家的合作關(guān)系,源代碼可以免費得到,這使得采用Linux作為操作系統不會(huì )遇到任何關(guān)于版權的糾紛。Linux本身內置網(wǎng)絡(luò )支持,而目前嵌入式系統對網(wǎng)絡(luò )支持要求越來(lái)越高,Linux的高度模塊化使添加部件非常容易。Linux是一個(gè)和Unix相似、以?xún)群藶榛A的、具有完全的內存訪(fǎng)問(wèn)控制、支持大量硬件(包括x86、Alpha、ARM等現有的大部分芯片)等特性的一種通用操作系統。其程序源碼全部公開(kāi),任何人可以修改,并在GNU通用公共許可證下發(fā)行。這樣,開(kāi)發(fā)人員可以對操作系統進(jìn)行定制裁減,適應其特殊需要。其強大的語(yǔ)言編譯器GCC、G++等不但成熟完善,而且使用方便。本論文中基于V2.6.27內核通過(guò)make menuconfig對內核進(jìn)行部分功能裁減。
軟硬件綜合開(kāi)發(fā)是嵌入式系統的一大特色,軟件設計是在緊密聯(lián)系硬件的基礎上來(lái)完成的。本文的車(chē)載監控系統設計遵循嵌入式軟件的體系結構設計方法,分為兩個(gè)部分:①相關(guān)驅動(dòng)的開(kāi)發(fā),如底層包括擴展的PCI9054驅動(dòng)、串口驅動(dòng)、CAN驅動(dòng)及內核自帶的網(wǎng)絡(luò )驅動(dòng)、USB、CS5536等設備驅動(dòng);②應用程序的開(kāi)發(fā),包括顯示監控任務(wù)的實(shí)現、配置文件讀寫(xiě)實(shí)現等。
2.1 設備驅動(dòng)開(kāi)發(fā)
底層接口層封裝監控顯示軟件與底層通信硬件接口、操作系統交互等部分的代碼,通過(guò)定義統一的接口規范,實(shí)現上層軟件不依賴(lài)具體的硬件平臺,從而實(shí)現軟件易于移植。
作為底層驅動(dòng)模塊的基本結構至少必須包含兩個(gè)函數:module_init()和module_exit()。第一個(gè)函數是在把模塊加載入內核時(shí)調用的;第二個(gè)函數則在刪除該模塊時(shí)調用。module_init()向內核注冊模塊所能提供的所有新功能,即可以由應用程序使用的新功能。函數module_ exit()的任務(wù)是清除掉module_init()所做的一切,保證這個(gè)模塊被安全地卸載。模塊的調用情況如圖2所示。下面以PCI9054為代表,描述硬件驅動(dòng)設計過(guò)程。本文引用地址:http://dyxdggzs.com/article/148218.htm
評論