
該文以自然界中的盒子魚為原型,設(shè)計(jì)了一款基于自主視覺的機(jī)器魚,通過圖像傳感器采集水下圖像信息并進(jìn)行處理和識(shí)別,并根據(jù)識(shí)別結(jié)果做出決策控制自身運(yùn)動(dòng)。系統(tǒng)以S3C2440為核心,在嵌入式Linux環(huán)境下通過傳感器采集各種有效信息,并控制舵機(jī)實(shí)現(xiàn)自身上升、下潛和轉(zhuǎn)彎等三維運(yùn)動(dòng)。本文設(shè)計(jì)了一種針對(duì)自主魚的水球比賽實(shí)驗(yàn),實(shí)驗(yàn)結(jié)果顯示,該系統(tǒng)具有較高的實(shí)時(shí)性和很好的靈活性。
Clutter是移動(dòng)Linux平臺(tái)中用具有創(chuàng)新性的開源圖形庫(kù),其顯著特點(diǎn)是支持三維圖形和動(dòng)畫GUI,以及使用腳本語(yǔ)言描述圖形用戶界面?;贑lutter的應(yīng)用程序開發(fā),采用Clutter和GTK+的混合方案是很好的選擇。介紹了Clutter的軟件架構(gòu)、動(dòng)畫編程模型,以及集成庫(kù)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)框架及接口類型,對(duì)主要數(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ì)胞的周長(zhǎng)、面積等特征參數(shù).該算法移植至移動(dòng)嵌入式設(shè)備中解決了傳統(tǒng)PC機(jī)攜帶不便的難題.
物聯(lián)網(wǎng)的興起為智能家居提供了條件。本文提出了一種可行的智能家居的實(shí)現(xiàn)方法,通過2.4 GHz的無(wú)線射頻收發(fā)芯片nRF24L01完成內(nèi)部家居終端聯(lián)網(wǎng),并與主控平臺(tái)通信。通過西門子公司的MC39i GSM/GPRS終端無(wú)線模塊實(shí)現(xiàn)與外網(wǎng)通信。整個(gè)主控平臺(tái)由S3C2440作為主控芯片并基于嵌入式Linux操作系統(tǒng)開發(fā),具有友好的可視化圖形界面。
在高性能嵌入式控制系統(tǒng)中,運(yùn)行嵌入式Linux操作系統(tǒng)的主機(jī)ARM和DSP實(shí)現(xiàn)主從控制的設(shè)計(jì)方案具有顯著優(yōu)勢(shì),并獲得廣泛運(yùn)用。而實(shí)現(xiàn)ARM與DSP之間的可靠通信是其關(guān)鍵技術(shù)之一。本文以Samsung公司的ARM9芯片S3C2440和TI公司的DSP芯片TMS320F28015為例,分析了I2C通信接口的原理及特點(diǎn),提出了基于I2C總線的多
筆者在從臺(tái)式頻譜儀到手持式頻譜儀的項(xiàng)目研發(fā)中實(shí)現(xiàn)了RTOS到Linux的應(yīng)用移植。本文介紹了整體的設(shè)計(jì)思路和一些關(guān)鍵問題的實(shí)現(xiàn)細(xì)節(jié)。
vi是Linux系統(tǒng)的第一個(gè)全屏幕交互式編輯程序,它從誕生至今一直得到廣大用戶的青睞,歷經(jīng)數(shù)十年仍然是人們主要使用的文本編輯工具,足以見其生命力之強(qiáng),而強(qiáng)大的生命力是其強(qiáng)大的功能帶來的。由于大多數(shù)讀者在此之前都已經(jīng)用慣了Windows平臺(tái)上的編輯器,因此,在剛剛接觸時(shí)總會(huì)或多或少不適應(yīng),但只要習(xí)慣之后,就能感受到它的方便與快捷。
有了一個(gè)初步的了解后,讀者是否想親自試一下?其實(shí)安裝Linux是一件很容易的事情,不過在開始安裝之前,還需要了解一下在Linux安裝過程中可能遇到的一些基本知識(shí)以及它與Windows的區(qū)別。
Linux中的文件類型與Windows有顯著的區(qū)別,其中最顯著的區(qū)別在于Linux對(duì)目錄和設(shè)備都當(dāng)作文件來進(jìn)行處理,這樣就簡(jiǎn)化了對(duì)各種不同類型設(shè)備的處理,提高了效率。Linux中主要的文件類型分為4種:普通文件、目錄文件、鏈接文件和設(shè)備文件。
當(dāng)用戶在命令行下工作時(shí),不是直接同操作系統(tǒng)內(nèi)核交互信息的,而是由命令解釋器接受命令,分析后再傳給相關(guān)的程序。shell是一種Linux中的命令行解釋程序,就如同command.com是DOS下的命令解釋程序一樣,為用戶提供使用操作系統(tǒng)的接口。它們之間的關(guān)系如圖2.1所示。用戶在提示符下輸入的命令都由shell先解釋然后傳給Linux內(nèi)核。
在了解了Linux的常見命令之后,下面詳細(xì)講解Linux的啟動(dòng)過程。Linux的啟動(dòng)過程包含了Linux工作原理的精髓,而且在嵌入式開發(fā)過程中非常需要這方面的知識(shí)。
init進(jìn)程的作用是啟動(dòng)Linux系統(tǒng)服務(wù)(也就是運(yùn)行在后臺(tái)的守護(hù)進(jìn)程)。Linux的系統(tǒng)服務(wù)包括兩種,第一種是獨(dú)立運(yùn)行的系統(tǒng)服務(wù),它們常駐內(nèi)存中,自開機(jī)后一直運(yùn)行著(如httpd),具有很快的響應(yīng)速度;第二種是由xinet設(shè)定的服務(wù)。
在Linux下安裝一個(gè)完整的軟件(嵌入式Linux的必備工具——交叉編譯工具),掌握Linux常見命令,學(xué)會(huì)設(shè)置環(huán)境變量,同時(shí)搭建起嵌入式Linux的交叉編譯環(huán)境(關(guān)于交叉編譯的具體概念在本書后面會(huì)詳細(xì)講解),為今后的實(shí)驗(yàn)打下良好的基礎(chǔ)。
C語(yǔ)言最早是由貝爾實(shí)驗(yàn)室的Dennis Ritchie為了UNIX的輔助開發(fā)而編寫的,它是在B語(yǔ)言的基礎(chǔ)上開發(fā)出來的。盡管C語(yǔ)言不是專門針對(duì)UNIX操作系統(tǒng)或機(jī)器編寫的,但它與UNIX系統(tǒng)的關(guān)系十分緊密。由于它的硬件無(wú)關(guān)性和可移植性,使C語(yǔ)言逐漸成為世界上使用最廣泛的計(jì)算機(jī)語(yǔ)言。
讀者通過親自動(dòng)手安裝Linux操作系統(tǒng),對(duì)Linux有個(gè)初步的認(rèn)識(shí),并且加深對(duì)Linux中的基本概念的理解,熟悉Linux文件系統(tǒng)目錄結(jié)構(gòu)。
GNU CC是GNU項(xiàng)目中符合ANSI C標(biāo)準(zhǔn)的編譯系統(tǒng),能夠編譯用C、C++和Object C等語(yǔ)言編寫的程序。gcc不僅功能強(qiáng)大,而且可以編譯如C、C++、Object C、Java、Fortran、Pascal、Modula-3和Ada等多種語(yǔ)言,而且gcc是一個(gè)交叉平臺(tái)編譯器。
調(diào)試是所有程序員都會(huì)面臨的問題。如何提高程序員的調(diào)試效率,更好、更快地定位程序中的問題從而加快程序開發(fā)的進(jìn)度,是大家都很關(guān)注的問題。就如讀者熟知的Windows下的一些調(diào)試工具,如Visual Studio自帶的設(shè)置斷點(diǎn)、單步跟蹤等,都受到了廣大用戶的贊賞。
到此為止,讀者已經(jīng)了解了如何在Linux下使用編輯器編寫代碼,如何使用gcc把代碼編譯成可執(zhí)行文件,還學(xué)習(xí)了如何使用gdb來調(diào)試程序,那么,所有的工作看似已經(jīng)完成了,為什么還需要make這個(gè)工程管理器呢?