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