導航:首頁 > 編程語言 > 嵌入式s3c2410linux聊天程序

嵌入式s3c2410linux聊天程序

發布時間:2023-05-13 15:05:23

1. 求嵌入式linux開發詳細流程(步驟)

  1. 建立以Linux系統為基抄礎的開發襲環境;

  2. 配置開發主機(MINICOM調試嵌入式開發板、NFS網路文件系統,防火牆);

  3. 建立引導裝載程序BOOTLOADER(公開源代碼的BOOTLOADER,如U-BOOT、BLOB、VIVI、LILO、ARM-BOOT、RED-BOOT等);

  4. 下載別人已經移植好的Linux操作系統(如μCLinux、ARM-Linux、PPC-Linux等);

  5. 建立根文件系統(包括:/etc/init.d/rc.S、/etc/profile、/etc/.profile等);

  6. 建立應用程序的Flash磁碟分區,一般使用JFFS2或YAFFS文件系統;

  7. 開發應用程序,應用程序可以放入根文件系統中,也可以放入YAFFS、JFFS2文件系統中;

  8. 燒寫內核、根文件系統、應用程序、發布產品。

2. 嵌入式需要學習什麼

嵌入式開發學習路線圖-尚觀嵌入式研究室-嵌入式路線圖

-------作者:尚觀嵌入式研究室UEA0908班 范同學
為什麼選擇學習嵌入式?

嵌入式系統無疑是當前最熱門最有發展前途的IT應用領域之一,同時也是當今IT領域僅存的幾個金領職位之一。當前的中國IT人才面臨嚴重的「後繼乏人」,
而且這種缺口由於培訓缺乏、教育模式等原因造成的,而缺口最大的,就是高級IT人才。如果你從事的IT培訓不專業,面對競爭越來越激烈的職場,基本找不到
工作。據專家預測,嵌入式每年人才缺口在30萬左右。

入式職業發展講解視頻

視頻中主要講解什麼樣的人適合從事嵌入式行業、嵌入式行業從業人員需要具備哪些基本素質、嵌入式行業的特點以及嵌入式行業的現狀與發展。

嵌入式研發方向職業生涯講解視頻(1)
嵌入式研發方向職業生涯講解視頻(2)
嵌入式研發方向職業生涯講解視頻(3)

嵌入式研發方向職業生涯講解視頻(4)
嵌入式研發方向職業生涯講解視頻(5)

ARM+Linux嵌入式底層內核驅動方向學習總體路線圖

基礎學習Ⅰ---Linux入門

目前嵌入式主要開發環境有
Linux、Wince等;Linux因其開源、開發操作便利而被廣泛採用。而Linux操作系統也只是一個簡單的操作系統,簡單的使用對於嵌入式開發人
員來說價值並不很高,真正有價值的是掌握Linux的基本服務和Linux的設計理念、思想,這對於嵌入式開發人員的長期發展是很極其重要的。Linux
系統有很多發行版,RedHat、Ubuntu、Fedora等。作為嵌入式開發人員,我們沒有必要把精力放到使用哪個Linux發行版上,而是盡快把
Linux系統盡快安裝好。如果打算堅持長期學習,那麼建議您把自己的電腦做成雙系統,而不要在虛擬機上安

基礎學習Ⅱ---C語言

C語言是嵌入式開發必備的基礎知識。在Linux下從事C語言的開發,你會覺得更為順暢、更為自然,因為C語言是因unix的出現而誕生的,Linux內
核幾乎完全是由C語言編寫完成的。學習C語言,如果不會用指針,那麼就稱不上會C語言。做嵌入式開發指針更顯得尤為重要,所以做嵌入式開發除了掌握位操
作、限定詞等,對指針的掌握是不可或缺的。而且要掌握多級指針、函數指針等等。涉及到指針,那麼就會講到內存分配。在大學中,學習C語言一般的學習很少講
到內存分配,但是如果期望從事嵌入式開發,那麼就必須懂得C語言是怎麼做內存分配管理的。指針之外,還要學習模塊化編譯處理、指針與數組、gcc、
Makefile、GDB、遞歸、結構體、宏定義使用等。C語言是整棟嵌入式大廈的基礎,所以在學習嵌入式時,必須把C語言重視起來,多敲代碼,多練。一
名優秀的程序員必定是通過「體力勞動」再轉向「腦力勞動的」,這也是為什麼我們要有「寫不出代碼=0」思想的原因所在。
如果說C語言相當於文字,那麼數據結構就相當於在造句、寫文章。代碼質量有一部分取決於對數據結構的掌握程度。在數據結構部分我們要把鏈表、樹、排序作
為學習重點。而且我們也可以查看一些比較常見的函數(如str、strcat、printf等)在內核中是如何實現的,以及編寫代碼模擬堆棧,這
不僅有利於編寫代碼質量的提高,而且還可以初步了解Linux內核精髓,為今後工作打下堅實的基礎。

C++、QT在嵌入式開發領域,是用來開發圖形界面的,希望從事上層應用開發及圖形界面,那麼在C++、QT方面需要比較深入的學習。

B)經典學習視頻推薦:

1-1c語言編輯器vi的使用

1-2c語言編譯過程及編譯器gcc

2-1c語言的數據類型

2-2數據快速引用

2-3c語言運算符及表達式

3-1c語言的分支結構

3-2c語言的循環結構

4-1c語言函數的定義及傳

4-2c語言函數調用

5-1-1c語言的一維數組

5-1-2二維數組及多維數組

5-1-3c語言字元數組

5-2-1c語言結構體-Struct

5-2-2C語言聯合體-Union

6-1c語言指針的概念

6-2c語言指針與一維數組

6-3指針與二維數組及字元

6-4指針與結構體、聯合體

6-5c語言指針與函數

6-6c語言指針常量與常量

7c語言存儲空間管理

8-1c語言存儲模型分析

8-2雙向循環鏈表的創建增

8-3雙向循環鏈表的數據管

C)經典學習案例:
1、學員成績管理系統2、計算器3、電子詞典4、文件壓縮器

基礎進階---Linux應用程序設計

Linux的思想源於Unix。Linux繼承了Unix的優點,但是沒有用UNIX的代碼,所有程序都是重新編寫的,而且Linux與Unix的源碼級兼容。Linux是類Unix操作系統。Linux
不僅符合 POSIX 標准,而且還包括其它 UNIX 標準的多種特性,例如,UNIX 的 System V 介面文檔(System V Interface
Document,SVID)和伯克利軟體發布(Berkeley Software Distribution,BSD)版本。Linux 採用了折衷的策略,包含了
UNIX 幾個典型特性當中最實用的一些功能:
Linux 採用了 SVR4 的進程間通信(IPC)機制:共享內存、消息隊列、信號。

Linux 支持 BSD Socket 網路編程介面。
許多 Linux 發行版採用 SysV init
機制,支持運行級別。
此階段的學習是從事嵌入式上層應用開發以及底層開發人員的必修課程。進程、線程、信號、文件鎖、socket是這部分內容的重點。要把這些內容學的透徹非要下些苦功夫不可。而且函數是系統提供給我們的,難免要對計算機系統深入理解一番。TCP/IP協議也是要涉及到的。有問題建議用Google搜索及登陸chinaunix論壇。通過這個階段的學習,我們就可以初步實現一些應用程序的開發了,如做自己的shell命令解析器、簡單的聊天軟體、視頻多播等。

A)經典書籍推薦:

B)經典學習視頻推薦:

Linux網路開發-1、ARP攻擊原理
Linux網路開發-2、ARP攻擊實例分析
Linux網路開發-3、ARP攻擊程序代碼分析和socket構造

C)經典學習案例:
1、串口監聽程序
2、圖片瀏覽器 3、MP3播放器 4、聊天程序 5、 ftp程序
6、音頻廣播程序 7、ping的實現
8、DDos攻擊程序 9、ARP攻擊程序

嵌入式入門---ARM體系結構

從這部分開始,我們將真正進入嵌入式開發學習階段。首先我們要知道採用哪種處理器。目前通用嵌入式處理器有ARM、MIPS、PowerPC、X86等。從市場產品佔有率上看,ARM處理器遠遠領先於同類其它處理器,並逐步掠奪傳統51單片機和英特爾市場份額。據招聘網站統計,目前用人單位在技術水平上要求開發人員掌握ARM9及以上平台的開發技術。ARM公司在發布ARM11產品後,更改以往的數字標記更新方式,轉為發布ARM
Cortex。但是Cortex並不是更高端,而是全新系列的處理器,比如Cortex
M3,它主要應用於機械加工、工控領域,目的是取代以前的ARM7處理器。
在開始學習前,建議有一塊自己的開發板,目前ARM9
2440的開發板價格在400-600元之間,ARM11
6410的開發板價格要高一些,最便宜的也要1200元以上。在此,提醒大家盡量不要買mini開發板,雖然mini開發板的價格要便宜些,但是與正常開發板相比,mini板功能是不完善的。嵌入式匯編有別於X86匯編,所以如果以前沒有接觸過匯編語言,那麼沒有必要先去學X86匯編再學嵌入式匯編,可以直接學習嵌入式匯編。除了匯編我們還要學習ARM指令集。有了開發板,我們要下載相對應處理器的DataSheet及開發板電路原理圖。ARM體系結構的學習我們是不能完全照抄別人代碼的,因為我們自己手中的開發板及處理器與別人是不同的,除非所用的代碼是根據你手中的開發板來編寫的。所以,我們要先去看書、看視頻資料理解原理及工作方式等,然後根據自己開發板的電路原理圖和DataSheet來編寫代碼,達到理解外圍設備工作原理和操作硬體的目的。

B)經典學習視頻推薦:
1)嵌入式掃盲篇

嵌入式漫談1

嵌入式漫談2

嵌入式漫談3

十問嵌入式1-什麼是嵌入式,創業

十問嵌入式2-嵌入式實例iphone

十問嵌入式3-嵌入式前景

十問嵌入式4-嵌入式學習

十問嵌入式5-ARM概述

十問嵌入式6-ARM概述
開發板

十問嵌入式7-ARM與單片機

十問嵌入式8-匯編語言的作用

十問嵌入式9-操作系統的選擇

十問嵌入式10-編程語言選擇

2)嵌入式開發概述

嵌入式開發入門經典教程-1
嵌入式開發入門經典教程-2
嵌入式開發入門經典教程-3

嵌入式開發入門經典教程-4
嵌入式開發入門經典教程-5
嵌入式開發入門經典教程-6

嵌入式開發入門經典教程-7
嵌入式開發入門經典教程-8
嵌入式開發入門經典教程-9

嵌入式開發入門經典教程-10
嵌入式開發入門經典教程-11
嵌入式開發入門經典教程-12

嵌入式開發入門經典教程-13

3)ARM體系結構與Bootloader開發

1、ARM基礎概念介紹與開發板使用教程
2、編譯器高級應用與裸機代碼編寫教程
3、ARM指令與ARM匯編入門

4、ARM匯編高級教程與APCS規范詳解
5、ARM體系結構詳解與異常處理機制
6、ARM中斷機制詳解與Watchdog驅動開發實例

7-1、ARM外部中斷機制詳解與LED驅動開發實例
7-2、ARM嵌入式開發之ARM外部中斷機制詳解與實例
8、AMBA匯流排結構與ARM時鍾配置

9、時序圖詳解與NAND
FLASH驅動開發實例
10-1、內存控器與SDRAM原理詳解(上)
10-2、內存控器與SDRAM原理詳解(下)

11、UART串口詳解與通信開發實例
12、ARM協處理器CP15配置原理
13、從零開始寫Bootloader開發過程詳解

C)經典學習案例:
1. ARM模擬器開發 2. Watchdog控製程序 3.
RTC時鍾控製程序
4. Uart控製程序 5. LCD控製程序 6.
觸摸屏控製程序
7. DMA控製程序 8. 音頻控製程序 9. 網卡控製程序
10.
文件系統製作 11. ARM-Linux移植

嵌入式提升---Linux內核、驅動

眾所周知嵌入式開發包含至少兩個級別,一個是嵌入式內核驅動級別,另外一個是嵌入式應用層開發,而薪酬高的、最具價值的無疑是嵌入式內核驅動級別的開發者。真正的嵌入式高手或者企業中的核心開發人員,一定是嵌入式底層的內核驅動開發工程師,這些工程師成長比較緩慢,造成對內核驅動人才的大量需求,所以這些人才是真正企業需要的香餑餑。掌握驅動開發會讓自己的核心能力有極大的飛躍,真正實現嵌入式最有價值的就業。

由於Linux內核更新速度很快,書籍和視頻不可能及時更新,所以我們再看書和視頻後,要自己動手下載內核源碼包,去看內核中的代碼,在這里可以充分檢驗C語言、數據結構等基礎知識的掌握程度。而驅動的編寫還是要藉助外設硬體電路原理圖和晶元手冊。內核和驅動的知識是讓我們根據不同的硬體,編寫對應的驅動、合理剪裁內核、製作文件系統,並移植到硬體開發板上。如果手裡有ARM11
6410及以上的開發板,可以試試在裸板上編寫驅動並移植Android系統到開發板上吧。

B)經典學習案例:
1. GPIO驅動 2. RTC時鍾驅動 3.
WatchDog驅動 4. Udev移植 5. 觸摸屏輸入設備驅動
6. LCD顯示設備驅動 7. DMA驅動 8.
音頻設備驅動 9. Nand Flash塊設備驅動 10. 網路設備驅動

有不明白的可以到尚觀嵌入式研究室咨詢,或者聽聽免費的網路公開課,希望對你有幫助

3. 簡述嵌入式系統

1.1嵌入式Linux系統硬體環境

圖4.1開發環境硬體連接

通常基於嵌入式linux系統的開發環境一般由目標機、開發板、交叉編譯工具鏈、遠程調試工具和下載機制組成。本課題的工作是在裝有linux操作系統(RedHat9.0)的目標機和基於S3C2410a的目標板上進行的。

設置串列介面

串列介面主要是用來埋氏目標板發送命令並監測目標板在程序運行過程中的輸出信息。

要講開發板COM1口與PC機的COM口分別用串口線連接好,而在主機端,用minicom與armsys2410用串口線連接好後進行通訊。

首先,設置minicom。用鍵盤在命令行輸入minicom,輸入後選定Serialportsetup然後按設置健A健設置SerialDevice,接著輸入PC上接入的串列介面號,如果這個系統與串口1相接,相應寫入/dev/ttyS0。接著需要設置傳輸速率,我們需要設置的傳輸速率為11520,按下E鍵,設置波特率為11520,設置完成後,沒有奇偶校驗,沒有軟體控制流和硬體控制流。設置完成後,選擇為默認設置並保存退出。

設置完成後講開發板復位,這時系統就會顯示系統啟動列印的信息。

1.2嵌入式linux系統軟體環境

筆者的研究方向主要著重點在於嵌入式linux系統的軟體開發層面。嵌入式linux系統可以開發的上層軟體多種多樣,如果從從軟體分慧液段析的角度來看大致可以分為四個層次:

一、操作系統的引導。操作系統中要有引入載入程序,主要包括固件(firmware)和Bootloader(引導載入程序)兩部分。

二、系統的管控內核。為了更好的分配系統資源,必須要對特定的硬體平台和實際應用移植操作前譽系統linux,這是進程管理的一個重要的部分,這里主要包含了定製內核以及控制內核引導系統的參數。

三、系統文件的引導建立。文件的建立是指文件存在的物理空間,linxu系統中每一個分區都是一個文件系統,都包含自己的目錄層次結構,這其中也包括根文件系統(RamDisk)和建立於Flash之上的文件系統。一個系統的操作離不開文的操作,因此要有而且要維護自己的文件系統。

四、軟體上的程序用戶。經過多年的積累和開發,在自由軟體中不斷努力的人們為開放源碼領域貢獻了許多優秀的軟體。針對客戶的不同需求,為客戶量身打造,甚至可以加入圖形界面,可以更方便用戶的使用。但是嵌入式linux系統不管如何構建,都離不開以下幾點:

1)在嵌入的目標機裝上交叉編譯工具。

2)Bootloader是依賴於開發板硬體而實現編寫的。

3)根據客戶需求編譯嵌入式Linux內核和裁剪冗餘。

4)根據客戶需要和系統運行的需要來編寫設備驅動程序和嵌入式linux應用程序。

5)最後也是最重要的一個部分構建系統文件的目錄。

4. 嵌入式Samsungs3c2410linux驅動中有一段函數判斷是否有按鍵被按下代碼如下,求理解

S3C2410_GPFDAT口上接了8個按鍵,_GPGDAT中上接了8個按鍵,
一個bit位代表一個按鍵,一共16個按鍵。
當有按鍵按下時,通過輪詢或中斷方式知道了有按鍵信息,然後傳進了一個irq號的參數,這個參數數值是44+(0~15)=44~59,這個數據可能是根據的接的中斷號或者其它某些硬體的設計規則得到的(具體看你設備硬體的連接及配置),代表著哪一個按鍵按下了。

static int iskey_down(unsigned long irq)
{
int reg, gpio_no;

irq_no = (int irq); // 取得中斷號(按鍵標識)
irq_no = irq_no -44; //EINT4~29 , 20~23 //減掉偏移量44得到0~15的鍵碼,分別代表16個按鍵中的一個

if(irq_no<8) // 如果0~7,那就是按在GPFDAT口上的8個按鍵

{

reg = _raw_read(S3C2410_GPFDAT); //讀取GPFDATA口上的按鍵狀態,每bit代表一個按鍵

gpio_no = irq_no; // 具體按鍵數值在GPFDATA中的位置(0~7)和按鍵編號(0~7)對應(0:7~0:7),可以直接用於後面取出具體的bit位

}

else

{

reg = raw_readl(S3C2410_GPGDAT); //讀取GPGDATA口上的按鍵狀態,每bit代表一個按鍵

gpio_no = irq_no - 8; // 具體按鍵數值在GPGDATA中的位置(0~7)和按鍵編號(8~15)有一個偏移的映射關系,所以直接減8讓它位對應(0:7~0:7),以便於後面取出具體的bit位

}

if(reg&(1<gpio_no)) // 如果對應的按鍵bit位沒有按下(此時gpio_no就代表著相應的按鍵在對應鍵盤狀態數值中的bit位的位置第0~7位)

return 0; //按鍵沒有按下或者松開了噢

else

return 1; //按鍵被按下了噢~~~
}

5. linux和嵌入式linux

為什麼一說嵌入式Linux就老是想到「裁剪」、「閹割」這種修飾語呢?如果你這么理解的話,說明,你對嵌入式還是存在一定的誤區的,對自己知識結構的完善是不利的。。。

什麼叫做嵌入式呢?雖然目前沒有很標準的定義,但業界普遍認為:專門為某個應用場景而實現的計算機系統,都叫做嵌入式系統。家裡的四口路由器,手機,平板電腦,甚至是PC主板(注意,我說的是主板,不是整個PC)都是嵌入式系統。也可以說,除了你用的PC,工作站,伺服器以外,都可以歸納如嵌入式系統的領域。

在嵌入式系統中,有的是有操作系統的,有的是沒有操作系統的。雖然單片機在嵌入式應用中仍舊占據著很重要的角色和份額,但從軟體工程師的就業發展來說,帶有操作系統的嵌入式系統無疑有著更廣的發展空間。

嵌入式操作系統中,有各種RTOS(最有名的,莫過於VxWorks了),也有一些實時性能不錯的OS(較新的2.6版及向後版本的Linux可以規劃在這里),還有一些實時性能不怎麼樣的OS(2.4版本的Linux內核,Windows等可以劃歸在這里)。

所以,根據應用場景,操作系統是有可能非非非常復雜的。所以,嵌入式Linux未必是「不完整的」「閹割了重大功能的」「簡單化的」Linux。。。

糾正了概念,統一了你我的認識之後,你肯定就不會再問:究竟是學「純」Linux呢,還是學嵌入式Linux呢?這個問題是沒有意義的。其實,無論是內核,還是libc庫,還是各種應用程序,PC和嵌入式的知識是共同的,沒有嚴格界限的。嵌入式Linux跟PC上Linux的區別,更多的在於驅動程序的選擇,本地編譯還是交叉編譯,UI界面的選擇等方面。它們的本質技術,是沒有任何區別的。

你在嵌入式上可能需要做小量裁剪,你在PC上同樣會做裁剪。這並不意味著要閹割重要功能,因為,你在PC上做的工作,同樣會希望在手機、平板電腦等這些復雜的移動終端上得以實現的~~~
(如果你只是為了實現一個很簡單的功能,那我還是乾脆建議你不要學習、使用Linux了)~~

所以,最終的結論是:如果你能精通Linux,那無論是PC上的Linux,還是嵌入式Linux,那麼你都是很精通的。嵌入式和PC只是應用場景不同而已(更多的體現在用戶空間各種程序的區別)。

如果希望成為一個內核開發者:
如果你對內核感興趣的話,可以推薦兩本公認的經典書籍:《深入理解Linux內核》《LInux設備驅動程序》。這兩本,是所有內核開發工作者,讀1遍,10遍,100遍,仍舊會認真讀下去,並嘗試理解每一個字的經典中的經典。
另外,我個人推薦一本《深入Linux內核架構》。這本書是一個德國人寫的,對於基礎比較薄弱的,是一個很好的自學教材。
如果看起來感覺還是吃力,建議以《Linux內核設計與實現》作為起步。這本書里沒有講透徹的地方,都可以去參看上面的那三本書。這本書,如果讀起來也比較吃力的話,建議看看《Linux內核0.11完全注釋(趙炯)》。如果連這本書都比較吃力的話,我還真沒轍了,建議先看Linux的一些科普文章了。
補充一句:看任何書,永遠都無法替代自己讀內核源碼~~~

如果你要搞應用,那麼《UNIX環境高級編程》不可不讀。剩下的,就要看你搞什麼應用了。

6. 新手求助 嵌入式linux 基於S3C2410平台上的 視頻圖像採集及實時顯示在LCD上的大體步驟及編程問題

我現在是做dvs的 要是需要可以給你你參考一下

7. 嵌入式Linux設備驅動開發詳解的目錄

第1章嵌入式系統與驅動程序1
本章目標1
1.1嵌入式系統概述1
1.1.1嵌入式系統的概念1
1.1.2嵌入式系統的特點2
1.1.3嵌入式系統的體系結構2
1.2嵌入式處理器介紹4
1.2.1嵌入式處理器分類4
1.2.2ARM概述5
1.2.3ARM系列晶元簡介5
1.3嵌入式操作系統介紹7
1.3.1主流嵌入式操作系統7
1.3.2嵌入式系統的發展狀況8
1.3.3嵌入式Linux介紹8
1.3.4嵌入式系統開發環境的建立9
1.3.5嵌入式軟體開發10
1.4嵌入式Linux驅動程序12
1.4.1嵌入式Linux的內核空間和用戶空間12
1.4.2嵌入式Linux的文件系統12
1.4.3嵌入式Linux的設備管理14
1.4.4嵌入式Linux的驅動程序16
1.5知識索引20
1.6思考與練習21
第2章簡單的字元設備驅動程序23
本章目標23
2.1嵌入式Linux字元設備的驅動程序結構23
2.1.1嵌入式Linux驅動程序常用的頭文件24
2.1.2File_operations結構體24
2.1.3字元設備驅動程序的入口25
2.1.4驅動程序的設備注冊26
2.2設備驅動程序中的具體問題27
2.2.1I/O埠28
2.2.2內存操作29
2.2.3中斷處理29
2.3LED的驅動程序實例及測試30
2.3.1LED I/O埠設置30
2.3.2LED硬體電路設計32
2.3.3LED驅動程序設計33
2.3.4LED測試程序設計36
2.4嵌入式Linux中斷處理驅動程序及測試37
2.4.1中斷處理過程37
2.4.2中斷向量表39
2.4.3中斷的處理模式39
2.4.4中斷的優先順序40
2.4.5中斷的嵌套40
2.4.6中斷源的擴展40
2.4.7中斷控制寄存器的設置41
2.5按鍵中斷的驅動程序實例45
2.5.1按鍵中斷的電路設計45
2.5.2按鍵中斷的驅動程序設計45
2.6知識索引48
2.7思考與練習49
第3章數字顯示驅動程序50
本章目標50
3.1數字顯示器50
3.1.1數碼管簡介50
3.1.2數碼管的分類51
3.1.3數碼管顯示原理51
3.2數碼管顯示電路的硬體設計52
3.2.1解碼器的使用52
3.2.2數碼管的驅動方式53
3.2.3串/並變換的解碼設計55
3.3數碼管驅動程序實例56
3.3.1驅動程序的初始化和卸載模塊56
3.3.2文件操作結構模塊57
3.3.3數碼管的打開模塊57
3.3.4數碼管的讀寫模塊58
3.3.5數碼管的I/O控制模塊58
3.3.6數碼管的退出模塊58
3.3.7驅動程序的模塊載入和卸載59
3.4數碼管顯示電路測試程序設計60
3.4.1數碼管測試設計60
3.4.2數碼管測試程序60
3.4.3數碼管測試效果61
3.5知識索引61
3.6思考與練習62
第4章鍵盤驅動程序63
本章目標63
4.1鍵盤介面概述63
4.1.1鍵盤的分類63
4.1.2鍵盤的防抖65
4.1.3鍵盤的掃描65
4.1.4鍵盤的緩沖演算法67
4.2鍵盤的驅動設計實例67
4.2.1鎖存器和緩沖器擴展鍵盤67
4.2.2鎖存器和緩沖器的介面68
4.2.3鎖存器和緩沖器擴展鍵盤驅動程序設計69
4.2.4鎖存器和緩沖器擴展鍵盤測試程序設計71
4.3智能控制晶元HD7279擴展鍵盤72
4.3.1HD7279的電路設計72
4.3.2HD7279的指令介紹73
4.3.3HD7279的串列介面74
4.3.4HD7279的驅動程序設計75
4.3.5HD7279的測試程序設計84
4.4知識索引85
4.5思考與練習85
第5章A/D驅動程序86
本章目標86
5.1A/D轉換的過程86
5.1.1采樣和保持86
5.1.2量化和編碼88
5.1.3ADC的分類89
5.2A/D轉換器的基本原理89
5.2.1逐次逼近型A/D轉換器89
5.2.2雙積分型A/D轉換器90
5.2.3V/F和F/V型轉換器93
5.2.4其他A/D轉換器95
5.3A/D轉換器介面技術97
5.3.1ADC的主要參數及意義97
5.3.2ADC的電路選擇方法98
5.3.3ADC實際應用中的問題99
5.4S3C2410 A/D轉換驅動設計實例99
5.4.1S3C2410的A/D轉換電路99
5.4.2S3C2410X的A/D轉換控制寄存器100
5.4.3S3C2410X的A/D轉換數據寄存器101
5.4.4S3C2410X中A/D轉換驅動程序的設計102
5.4.5S3C2410X中A/D轉換測試程序的設計105
5.5知識索引106
5.6思考與練習107
第6章D/A驅動程序108
本章目標108
6.1D/A的原理介紹108
6.1.1D/A轉換的概念及基本原理108
6.1.2電子模擬開關109
6.1.3D/A轉換器的基本結構110
6.1.4D/A轉換的靜態參數114
6.1.5D/A轉換的動態參數115
6.2D/A轉換的硬體電路設計116
6.2.1D/A轉換的介面技術116
6.2.2D/A轉換晶元介紹117
6.2.3D/A轉換的電路設計118
6.3D/A轉換器的驅動程序實例118
6.3.1D/A驅動程序中的宏定義118
6.3.2D/A的模塊載入118
6.3.3D/A轉換器的文件操作模塊119
6.3.4D/A轉換器的讀寫控制模塊120
6.3.5D/A轉換器的打開、退出模塊120
6.4測試程序的設計120
6.4.1D/A測試程序中的宏定義121
6.4.2D/A測試程序的主函數121
6.4.3D/A測試程序中的功能函數122
6.4.4D/A測試程序中的功能列印函數123
6.4.5D/A測試程序中的波形生成函數123
6.4.6D/A測試程序的效果124
6.5知識索引125
6.6思考與練習125
第7章LCD驅動程序126
本章目標126
7.1LCD顯示器概述126
7.1.1液晶126
7.1.2LCD顯示屏的背光127
7.1.3LCD顯示器的分類127
7.1.4LCD的顯示原理127
7.1.5LCD的驅動方式130
7.1.6LCD的常用指標131
7.2LCD的顯示介面131
7.2.1灰度STN的時序132
7.2.2彩色STN的時序133
7.2.3TFT的時序134
7.3嵌入式處理器的LCD控制器136
7.3.1LCD控制器136
7.3.2LCD控制器的設置137
7.3.3LCD的字元顯示緩存139
7.4LCD的驅動程序設計140
7.4.1LCD驅動程序相關的宏定義140
7.4.2LCD驅動程序的底層操作函數142
7.4.3LCD驅動程序提供的API145
7.4.4LCD驅動程序的模塊化載入151
7.4.5LCD的測試程序152
7.5基於Framebuffer的LCD驅動程序實例155
7.5.1Framebuffer概述155
7.5.2LCD的電路連接155
7.5.3Framebuffer設備驅動程序的結構156
7.5.4Framebuffer設備驅動程序的設計159
7.5.5Framebuffer設備測試程序的設計164
7.5.6嵌入式Linux常用的GUI166
7.6知識索引166
7.7思考與練習167
第8章觸摸屏驅動程序168
本章目標168
8.1觸摸屏概述168
8.2觸摸屏的分類168
8.2.1電阻技術觸摸屏168
8.2.2表面聲波技術觸摸屏169
8.2.3電容電感技術觸摸屏170
8.2.4紅外線技術觸摸屏170
8.3觸摸屏的特性171
8.3.1透明度和色彩失真171
8.3.2反光性171
8.3.3清晰度171
8.3.4漂移172
8.3.5檢測和定位172
8.4觸摸屏的硬體電路設計172
8.4.1電阻式觸摸屏的電路原理172
8.4.2電阻式觸摸屏原點的定位173
8.4.3電阻式觸摸屏的電路連接174
8.5觸摸屏的驅動程序實例176
8.5.1觸摸屏介面的模式176
8.5.2A/D轉換和觸摸屏寄存器的設置177
8.5.3觸摸屏的坐標179
8.5.4觸摸屏的電路連接180
8.5.5觸摸屏的驅動程序介面181
8.6測試程序的設計182
8.6.1觸摸屏的數據定義183
8.6.2觸摸屏的數據處理183
8.6.3觸摸屏的運行測試185
8.7知識索引186
8.8思考與練習187
第9章CAN匯流排驅動程序188
本章目標188
9.1CAN匯流排介面設計188
9.1.1CAN匯流排概述188
9.1.2CAN的工作特點及主要優點189
9.1.3CAN匯流排的電氣特徵和MAC幀結構189
9.2嵌入式處理器上CAN匯流排介面的擴展190
9.2.1SJA1000簡介190
9.2.2SJA1000擴展191
9.3SJA1000擴展CAN匯流排介面的設計192
9.3.1CAN 控制器SJA1000的操作模式192
9.3.2CAN控制器SJA1000的特徵功能193
9.3.3CAN 控制器SJA1000的Basic CAN模式設置194
9.4SJA1000擴展CAN匯流排介面的通信196
9.4.1通過CAN匯流排建立通信的步驟196
9.4.2SJA1000的初始化196
9.4.3驅動程序的結構設計198
9.4.4驅動程序init、exit、open、close函數的實現200
9.4.5驅動程序read、write函數的實現201
9.4.6驅動程序interrupt、ioctl函數實現202
9.4.7測試程序的編寫202
9.5驅動程序的載入204
9.6知識索引204
9.7思考與練習205
第10章IIC匯流排驅動程序206
本章目標206
10.1IIC匯流排概述206
10.1.1IIC匯流排介紹206
10.1.2IIC匯流排引入的原因206
10.1.3IIC匯流排的特點206
10.1.4IIC匯流排的基本結構207
10.1.5IIC匯流排的術語207
10.1.6IIC匯流排的工作208
10.1.7IIC匯流排的競爭仲裁209
10.1.8IIC匯流排的工作流程210
10.2嵌入式處理器的IIC介面211
10.2.1IIC匯流排控制寄存器212
10.2.2IIC匯流排控制/狀態寄存器213
10.2.3IIC匯流排地址寄存器214
10.2.4IIC匯流排移位數據寄存器214
10.2.5S3C2410中與IIC對應的I/O埠215
10.3基於IIC的鍵盤晶元應用216
10.3.1ZLG7290的功能217
10.3.2ZLG7290的控制方式218
10.3.3ZLG7290的寄存器218
10.3.4ZLG7290的通信介面219
10.3.5ZLG7290的指令介紹219
10.4IIC匯流排驅動程序實例221
10.4.1ZLG7290的電路連接221
10.4.2ZLG7290的通信流程223
10.4.3ZLG7290驅動中變數的定義225
10.4.4ZLG7290驅動中實時時鍾的改變226
10.4.5ZLG7290和IIC寄存器的初始化227
10.4.6ZLG7290驅動程序的模塊化228
10.4.7ZLG7290的文件操作結構228
10.5IIC匯流排的測試程序230
10.6知識索引231
10.7思考與練習231
第11章音頻匯流排驅動程序232
本章目標232
11.1音頻匯流排介面概述232
11.1.1音頻的采樣精度233
11.1.2音頻編碼233
11.2IIS音頻匯流排介面233
11.2.1IIS匯流排的物理連接233
11.2.2IIS的匯流排協議234
11.2.3IIS匯流排的硬體設計235
11.2.4IIS匯流排的寄存器236
11.3AC97音頻匯流排介面239
11.4IIS匯流排的驅動程序設計240
11.4.1音頻設備基礎知識240
11.4.2音頻設備文件241
11.4.3WAV聲音文件243
11.4.4音頻設備和驅動程序的通信243
11.4.5設備的初始化和載入244
11.4.6DMA的操作和宏定義246
11.4.7audio設備文件的操作248
11.4.8mixer設備文件的操作260
11.5音頻驅動程序的測試262
11.6知識索引262
11.7思考與練習263
第12章IDE介面驅動程序264
本章目標264
12.1IDE介面概述264
12.1.1硬碟知識介紹264
12.1.2IDE介面標准267
12.1.3IDE介面的傳輸模式269
12.1.4IDE介面寄存器269
12.2IDE介面驅動程序的移植271
12.2.1嵌入式Linux下IDE驅動程序介面271
12.2.2嵌入式Linux下IDE驅動程序272
12.2.3IDE硬碟的讀/寫操作274
12.3IDE驅動程序測試282
12.3.1磁碟文件系統簡介283
12.3.2IDE分區測試283
12.4知識索引285
12.5思考與練習285
第13章快閃記憶體晶元的驅動程序286
本章目標286
13.1快閃記憶體晶元概述286
13.1.1快閃記憶體晶元的物理特性286
13.1.2嵌入式文件系統概述289
13.1.3MTD體系介紹289
13.1.4Flash專有名詞291
13.2NAND Flash291
13.2.1NAND Flash的結構291
13.2.2NAND Flash的操作292
13.2.3NAND Flash控制器294
13.2.4NAND Flash的時序296
13.2.5NAND Flash的驅動程序實例297
13.3NOR Flash301
13.3.1NOR Flash的結構301
13.3.2NOR Flash的操作302
13.3.3NOR Flash的驅動程序實例303
13.4基於快閃記憶體的文件系統307
13.5知識索引309
13.6思考與練習310
第14章USB 設備驅動程序311
本章目標311
14.1USB介面概述311
14.1.1USB系統311
14.1.2USB的電氣特性312
14.1.3USB匯流排的拓撲結構313
14.1.4USB的通信協議313
14.2嵌入式系統中USB的使用315
14.2.1OHCI概述315
14.2.2Host介面硬體設計316
14.3嵌入式系統中USB設備的驅動程序設計316
14.3.1

閱讀全文

與嵌入式s3c2410linux聊天程序相關的資料

熱點內容
怎麼他么怎麼又網路了 瀏覽:649
java會出現內存泄露么 瀏覽:617
蘋果4s鎖屏後怎麼還顯示歌曲 瀏覽:207
鴻蒙系統文件管理哪些可以刪除 瀏覽:550
ubuntuqt創建工程沒有配置文件 瀏覽:126
網站登錄變成其他網站怎麼處理 瀏覽:202
ug數控編程學校有哪些 瀏覽:203
java圖片上傳顯示 瀏覽:402
ppt的文件名後綴 瀏覽:902
ug編程軟體下載到哪個盤 瀏覽:359
炫酷字體APP下載的文件在哪裡 瀏覽:668
廊坊哪裡有少兒編程機構 瀏覽:312
cad新文件能找回來嗎 瀏覽:951
導出手機qq文件到u盤 瀏覽:456
電腦如何打開ppt文件怎麼打開方式 瀏覽:782
魅族鎖定區文件夾 瀏覽:357
刻字cnc怎麼編程 瀏覽:182
學校的網路拓撲結構圖 瀏覽:784
收集100個pdf文件里關鍵詞 瀏覽:594
蘋果關閉4g網路設置 瀏覽:289

友情鏈接