
在分析Linux2.6內(nèi)核新特性的基礎(chǔ)上,在S3C2410開發(fā)板上移植了2.6內(nèi)核和新的文件系統(tǒng),并成功地對H.264編解碼多媒體系統(tǒng)提供了支持。
本章主要給出了Linux平臺下文件、進(jìn)程控制與通信、線程控制與通信的編程實(shí)例。至此,一個(gè)完整的,涉及硬件原理、Bootloader、操作系統(tǒng)及文件系統(tǒng)移植、驅(qū)動(dòng)程序開發(fā)及應(yīng)用程序編寫的嵌入式Linux系列講解就全部結(jié)束了。
基于華邦W90P710處理器的Linux內(nèi)核應(yīng)用,詳細(xì)介紹了Linux串口驅(qū)動(dòng)的實(shí)現(xiàn)方法。同時(shí)對Linux文件系統(tǒng)操作入口函數(shù)及內(nèi)核的編譯做了詳細(xì)的說明。
隨著嵌入式技術(shù)的不斷發(fā)展,嵌入式系統(tǒng)在各種領(lǐng)域中得到了廣泛的應(yīng)用。本文針對嵌入式系統(tǒng)需要在顯示屏上實(shí)現(xiàn)字符的輸入,在Linux環(huán)境下,利用QT/E庫軟件,實(shí)現(xiàn)了軟鍵盤設(shè)計(jì)。主要介紹了軟鍵盤的設(shè)計(jì)以及軟鍵盤實(shí)現(xiàn)的程序編寫。
Linux系統(tǒng)下的多線程遵循POSIX線程接口,稱為pthread。編寫Linux下的多線程程序,需要使用頭文件pthread.h,連接時(shí)需要使用庫libpthread.a。順便說一下,Linux下pthread的實(shí)現(xiàn)是通過系統(tǒng)調(diào)用clone()來實(shí)現(xiàn)的。clone()是Linux所特有的系統(tǒng)調(diào)用,它的使用方式類似fork,關(guān)于clone()的詳細(xì)情況,有興趣的讀者可以去查看有關(guān)文檔說明。
使用GNU的工具我們?nèi)绾卧贚inux下創(chuàng)建自己的程序函數(shù)庫?一個(gè)“程序函數(shù)庫”簡單的說就是一個(gè)文件包含了一些編譯好的代碼和數(shù)據(jù),這些編譯好的代碼和數(shù)據(jù)可以在事后供其他的程序使用。程序函數(shù)庫可以使整個(gè)程序更加模塊化,更容易重新編譯,而且更方便升級。
本文討論了 Linux 內(nèi)核中可用的大量同步或鎖定機(jī)制。這些機(jī)制為 2.6.23 版內(nèi)核的許多可用方法提供了應(yīng)用程序接口(API)。但是在深入學(xué)習(xí) API 之前,首先需要明白將要解決的問題。
Linux 的虛擬內(nèi)存管理有幾個(gè)關(guān)鍵概念: 每個(gè)進(jìn)程有獨(dú)立的虛擬地址空間,進(jìn)程訪問的虛擬地址并不是真正的物理地址 虛擬地址可通過每個(gè)進(jìn)程上頁表與物理地址進(jìn)行映射,獲得真正物理地址 如果虛擬地址對應(yīng)物理地址不在物理內(nèi)存中,則產(chǎn)生缺頁中斷,真正分配物理地址,同時(shí)更新進(jìn)程的頁表;如果此時(shí)物理內(nèi)存已耗盡,則根據(jù)內(nèi)存替換算法淘汰部分頁面至物理磁盤中。
中斷(interrupt)被定義為一個(gè)事件,該事件改變處理器執(zhí)行的指令順序,這樣的事件與CPU芯片內(nèi)外部硬件電路產(chǎn)生的電信號相對應(yīng)。中斷通常分為同步(synchronous)中斷和異步(asynchronous)中斷。同步中斷指的是當(dāng)指令執(zhí)行時(shí)由CPU控制單元產(chǎn)生的,之所以稱為同步,是因?yàn)橹挥性谝粭l指令終止執(zhí)行后CPU才會發(fā)出中斷。異步中斷是由其他硬件設(shè)備依照CPU時(shí)鐘信號隨機(jī)產(chǎn)生的。在Intel處理器中,同步中斷被稱為異常,異步中斷被稱為中斷。
面向嵌入式 Linux 的 DPM 是一種正在發(fā)展的技術(shù)。由于全球開放源代碼領(lǐng)域的開發(fā)人員所做的貢獻(xiàn),它的核心技術(shù)正在進(jìn)步,但實(shí)際應(yīng)用仍然必須清除一系列“路障”。
在Linux操作系統(tǒng)下有三類主要的設(shè)備文件類型,一是字符設(shè)備,二是塊設(shè)備,三是網(wǎng)絡(luò)設(shè)備。字符設(shè)備和塊設(shè)備的主要區(qū)別是:在對字符設(shè)備發(fā)出讀/寫請求時(shí),實(shí)際的硬件I/O一般就緊接著發(fā)生了,塊設(shè)備則不然,它利用一塊系統(tǒng)內(nèi)存作緩沖區(qū),當(dāng)用戶進(jìn)程對設(shè)備請求能滿足用戶的要求,就返回請求的數(shù)據(jù),如果不能,就調(diào)用請求函數(shù)來進(jìn)行實(shí)際的I/O操作。塊設(shè)備是主要針對磁盤等慢速設(shè)備設(shè)計(jì)的,以免耗費(fèi)過多的CPU時(shí)間來等待。
針對MPI集群通信的特點(diǎn),通過分析當(dāng)前網(wǎng)絡(luò)的通信結(jié)構(gòu)和MPI的點(diǎn)到點(diǎn)通信模式,提出了一種基于數(shù)據(jù)鏈路層的集群通信機(jī)制,用以減少協(xié)議開銷和內(nèi)存拷貝次數(shù),從而提高集群節(jié)點(diǎn)間的通信性能,并且通過實(shí)驗(yàn)驗(yàn)證了該機(jī)制的可行性。
該文以自然界中的盒子魚為原型,設(shè)計(jì)了一款基于自主視覺的機(jī)器魚,通過圖像傳感器采集水下圖像信息并進(jìn)行處理和識別,并根據(jù)識別結(jié)果做出決策控制自身運(yùn)動(dòng)。系統(tǒng)以S3C2440為核心,在嵌入式Linux環(huán)境下通過傳感器采集各種有效信息,并控制舵機(jī)實(shí)現(xiàn)自身上升、下潛和轉(zhuǎn)彎等三維運(yùn)動(dòng)。本文設(shè)計(jì)了一種針對自主魚的水球比賽實(shí)驗(yàn),實(shí)驗(yàn)結(jié)果顯示,該系統(tǒng)具有較高的實(shí)時(shí)性和很好的靈活性。
Clutter是移動(dòng)Linux平臺中用具有創(chuàng)新性的開源圖形庫,其顯著特點(diǎn)是支持三維圖形和動(dòng)畫GUI,以及使用腳本語言描述圖形用戶界面?;贑lutter的應(yīng)用程序開發(fā),采用Clutter和GTK+的混合方案是很好的選擇。介紹了Clutter的軟件架構(gòu)、動(dòng)畫編程模型,以及集成庫Clutter-gtk的基本結(jié)構(gòu)、事件處理和應(yīng)用程序開發(fā)實(shí)例。
詳細(xì)分析了linux系統(tǒng)中input輸入子系統(tǒng)的實(shí)現(xiàn)代碼,從input driver層、input core層、event handler層3個(gè)方面介紹了input輸入子系統(tǒng)的實(shí)現(xiàn)框架及接口類型,對主要數(shù)據(jù)結(jié)構(gòu)struct input dev、struct input handle、struct input handler、struct input event、input register handle和重要函數(shù)input allocate device、input register device、i
提出一種以ARM+DSP等為硬件基礎(chǔ)的嵌入式Linux數(shù)控系統(tǒng)設(shè)計(jì)方案,將數(shù)控系統(tǒng)按實(shí)時(shí)性分為實(shí)時(shí)模塊和非實(shí)時(shí)模塊,采用運(yùn)動(dòng)控制芯片DSP保證實(shí)時(shí)性,ARM-Linux則運(yùn)行實(shí)時(shí)性要求不高但功能復(fù)雜的數(shù)控任務(wù).數(shù)控系統(tǒng)硬件上采用主從式雙CPU結(jié)構(gòu),軟件架構(gòu)包括界面層、實(shí)時(shí)層和非實(shí)時(shí)層.該方案充分利用了Linux的健壯、開源、應(yīng)用廣泛和運(yùn)動(dòng)
依據(jù)多連通域圖像四鄰域跟蹤原理設(shè)計(jì)了嵌入式Linux下的細(xì)胞特征提取算法.本算法解決了嵌入式下圖像處理API封裝不夠完善以及硬件資源欠缺的問題.實(shí)驗(yàn)結(jié)果表明,該算法能夠比較準(zhǔn)確地提取細(xì)胞的周長、面積等特征參數(shù).該算法移植至移動(dòng)嵌入式設(shè)備中解決了傳統(tǒng)PC機(jī)攜帶不便的難題.
物聯(lián)網(wǎng)的興起為智能家居提供了條件。本文提出了一種可行的智能家居的實(shí)現(xiàn)方法,通過2.4 GHz的無線射頻收發(fā)芯片nRF24L01完成內(nèi)部家居終端聯(lián)網(wǎng),并與主控平臺通信。通過西門子公司的MC39i GSM/GPRS終端無線模塊實(shí)現(xiàn)與外網(wǎng)通信。整個(gè)主控平臺由S3C2440作為主控芯片并基于嵌入式Linux操作系統(tǒng)開發(fā),具有友好的可視化圖形界面。
在高性能嵌入式控制系統(tǒng)中,運(yùn)行嵌入式Linux操作系統(tǒng)的主機(jī)ARM和DSP實(shí)現(xiàn)主從控制的設(shè)計(jì)方案具有顯著優(yōu)勢,并獲得廣泛運(yùn)用。而實(shí)現(xiàn)ARM與DSP之間的可靠通信是其關(guān)鍵技術(shù)之一。本文以Samsung公司的ARM9芯片S3C2440和TI公司的DSP芯片TMS320F28015為例,分析了I2C通信接口的原理及特點(diǎn),提出了基于I2C總線的多
筆者在從臺式頻譜儀到手持式頻譜儀的項(xiàng)目研發(fā)中實(shí)現(xiàn)了RTOS到Linux的應(yīng)用移植。本文介紹了整體的設(shè)計(jì)思路和一些關(guān)鍵問題的實(shí)現(xiàn)細(xì)節(jié)。