隨著計算機網(wǎng)絡(luò)技術(shù)、移動通信技術(shù)、多媒體技術(shù)的快速發(fā)展,無線監(jiān)控系統(tǒng)以其便捷、實用、安裝方便等優(yōu)點被廣泛應(yīng)用于軍事、工業(yè)、農(nóng)業(yè)等場合,更走進了人們的日常生活,給人們的生活帶來了便捷的信息化服務(wù)。
嵌入式系統(tǒng)分為4層,硬件層、驅(qū)動層、操作系統(tǒng)層和應(yīng)用層。嵌入式操作系統(tǒng)是負責(zé)嵌入式系統(tǒng)的全部軟、硬件資源的分配、任務(wù)調(diào)度,控制、協(xié)調(diào)并發(fā)活動。它必須體現(xiàn)其所在系統(tǒng)的特征,能夠通過裝卸某些模塊來達到系統(tǒng)所要求的功能,是一種用途廣泛的系統(tǒng)軟件。
[導(dǎo)讀] 前面的文章有提到linux啟動的第一個進程為init,那么該進程究竟是如何從內(nèi)核啟動入口一步一步運行起來的,而該進程又有些什么作用呢?做嵌入式Linux開發(fā),有必要對這些概念了解清楚。本文基于ARM體系的內(nèi)核啟動做出解析。 跳轉(zhuǎn)內(nèi)核前基本準備 參考./Do
01 問題 首先確認下,我們這里講的單片機主要是指51、STM32、MSP430、PIC、LPCxx等各種單片機開發(fā)工作。而嵌入式主要是指嵌入式linux軟件開發(fā),也就是硬件上基于嵌入式ARM、MIPS等平臺,軟件上基于linux系統(tǒng)的驅(qū)動開發(fā)、應(yīng)用開發(fā)等工作。 圍繞單片機和嵌入式
也許你會注意到,現(xiàn)在做嵌入式的人中,做linux研究的人遠比做WinCE的人多,很多產(chǎn)家提供的資料也是以linux為主。我一直很難理解,其實WinCE的界面比linux的界面好看多了,使用起來也很方便,更為重要的是,WinCE的開發(fā)和Windows下的開發(fā)基本一樣,學(xué)起來簡單
前言 這篇文章簡單我們來一起梳理嵌入式Linux的一些知識,方便于一些想跟我一樣想要由單片機進階到嵌入式Linux的朋友做一些參考學(xué)習(xí)。 現(xiàn)在隨著嵌入式Linux的教程不斷增多,相信應(yīng)該有不少學(xué)單片機的朋友開始折騰這個了吧~ 嵌入式Linux學(xué)哪些東西 1、認識Linu
嵌入式Linux要學(xué)哪些?一些人總在尋思,怕走了彎路,又怕學(xué)的東西離企業(yè)需求遠。那么今天就請華清遠見高級講師曹大神告訴你,9點淺析嵌入式學(xué)習(xí)步驟。下面是他本人親筆。1、要學(xué)習(xí)Linux,首先要會用,如
本文主要提出了一種可應(yīng)用于監(jiān)控組態(tài)軟件的實時數(shù)據(jù)庫的實現(xiàn)方法。通過對實時數(shù)據(jù)庫在組態(tài)軟件中的地位與作用的分析,結(jié)合嵌入式Linux在實時多任務(wù)方面的特性,設(shè)計并實現(xiàn)了利用多種存儲介質(zhì)構(gòu)造實時數(shù)據(jù)庫存儲結(jié)構(gòu),并給出了描述實時數(shù)據(jù)模型的數(shù)據(jù)結(jié)構(gòu)與訪問數(shù)據(jù)庫的通用函數(shù)接口。
面向嵌入式 Linux 的 DPM 是一種正在發(fā)展的技術(shù)。由于全球開放源代碼領(lǐng)域的開發(fā)人員所做的貢獻,它的核心技術(shù)正在進步,但實際應(yīng)用仍然必須清除一系列“路障”。
提出一種以ARM+DSP等為硬件基礎(chǔ)的嵌入式Linux數(shù)控系統(tǒng)設(shè)計方案,將數(shù)控系統(tǒng)按實時性分為實時模塊和非實時模塊,采用運動控制芯片DSP保證實時性,ARM-Linux則運行實時性要求不高但功能復(fù)雜的數(shù)控任務(wù).數(shù)控系統(tǒng)硬件上采用主從式雙CPU結(jié)構(gòu),軟件架構(gòu)包括界面層、實時層和非實時層.該方案充分利用了Linux的健壯、開源、應(yīng)用廣泛和運動
依據(jù)多連通域圖像四鄰域跟蹤原理設(shè)計了嵌入式Linux下的細胞特征提取算法.本算法解決了嵌入式下圖像處理API封裝不夠完善以及硬件資源欠缺的問題.實驗結(jié)果表明,該算法能夠比較準確地提取細胞的周長、面積等特征參數(shù).該算法移植至移動嵌入式設(shè)備中解決了傳統(tǒng)PC機攜帶不便的難題.
自由開源軟件在嵌入式應(yīng)用上,受到青睞,Linux日益成為主流的嵌入式操作系統(tǒng)之一。隨著摩托羅拉手機A760、IBM智能型手表WatchPad、夏普PDA Zaurus等一款款高性能“智能數(shù)碼產(chǎn)品”的出現(xiàn),以及Motolola、三星、MontaVista、飛利浦、Nokia、IBM、SUN等眾多國際頂級巨頭的加入。
交叉編譯的概念在第4章中已經(jīng)詳細講述過,搭建交叉編譯環(huán)境是嵌入式開發(fā)的第一步,也是必備的一步。搭建交叉編譯環(huán)境的方法很多,不同的體系結(jié)構(gòu)、不同的操作內(nèi)容甚至是不同版本的內(nèi)核,都會用到不同的交叉編譯器,而且,有些交叉編譯器經(jīng)常會有部分的bug,這都會導(dǎo)致最后的代碼無法正常地運行。因此,選擇合適的交叉編譯器對于嵌入式開發(fā)是非常重要的。
簡單地說,Bootloader就是在操作系統(tǒng)內(nèi)核運行之前運行的一段程序,它類似于PC機中的BIOS程序。通過這段程序,可以完成硬件設(shè)備的初始化,并建立內(nèi)存空間的映射關(guān)系,從而將系統(tǒng)的軟硬件環(huán)境帶到一個合適的狀態(tài),為最終加載系統(tǒng)內(nèi)核做好準備。
讀者一定都聽說過著名的OSI協(xié)議參考模型,它是基于國際標準化組織(ISO)的建議發(fā)展起來的,從上到下共分為7層:應(yīng)用層、表示層、會話層、傳輸層、網(wǎng)絡(luò)層、數(shù)據(jù)鏈路層及物理層。這個7層的協(xié)議模型雖然規(guī)定得非常細致和完善,但在實際中卻得不到廣泛的應(yīng)用,其重要的原因之一就在于它過于復(fù)雜。
在Linux中的網(wǎng)絡(luò)編程是通過socket接口來進行的。人們常說的socket是一種特殊的I/O接口,它也是一種文件描述符。socket是一種常用的進程之間通信機制,通過它不僅能實現(xiàn)本地機器上的進程之間的通信,而且通過網(wǎng)絡(luò)能夠在不同機器上的進程之間進行通信。
在實際情況中,人們往往遇到多個客戶端連接服務(wù)器端的情況。由于之前介紹的如connet()、recv()和send()等都是阻塞性函數(shù),如果資源沒有準備好,則調(diào)用該函數(shù)的進程將進入睡眠狀態(tài),這樣就無法處理I/O多路復(fù)用的情況了。本節(jié)給出了兩種解決I/O多路復(fù)用的解決方法,這兩個函數(shù)都是之前學(xué)過的fcntl()和select()。
通過實現(xiàn)NTP協(xié)議的練習(xí),進一步掌握Linux網(wǎng)絡(luò)編程,并且提高協(xié)議的分析與實現(xiàn)能力,為參與完成綜合性項目打下良好的基礎(chǔ)。
本章首先概括地講解了OSI分層結(jié)構(gòu)以及TCP/IP協(xié)議各層的主要功能,介紹了常見的TCP/IP協(xié)議族,并且重點講解了網(wǎng)絡(luò)編程中需要用到的TCP和UDP協(xié)議,為嵌入式Linux的網(wǎng)絡(luò)編程打下良好的基礎(chǔ)。
操作系統(tǒng)是通過各種驅(qū)動程序來駕馭硬件設(shè)備的,它為用戶屏蔽了各種各樣的設(shè)備,驅(qū)動硬件是操作系統(tǒng)最基本的功能,并且提供統(tǒng)一的操作方式。設(shè)備驅(qū)動程序是內(nèi)核的一部分,硬件驅(qū)動程序是操作系統(tǒng)最基本的組成部分,在Linux內(nèi)核源程序中也占有60%以上。因此,熟悉驅(qū)動的編寫是很重要的。