嵌入式系統(tǒng)軟件設計

出版時間:2011-1  出版社:北京郵電大學出版社  作者:謝榮生 編  頁數(shù):297  
Tag標簽:無  

內(nèi)容概要

  本書基于arm處理器和嵌入式linux開發(fā)環(huán)境,全面講述了嵌入式系統(tǒng)軟件開發(fā)流程及主要內(nèi)容?!肚度胧较到y(tǒng)軟件設計》分為五大部分,共10章。第一部分包括第1、2章,講述嵌入式linux開發(fā)環(huán)境的搭建和嵌入式linux軟件開發(fā)基礎;第二部分包括第3、4、5章,分別講述嵌人式bootloader、內(nèi)核和根文件系統(tǒng)的基礎理論及其移植;第三部分為第6章,講述嵌入式系統(tǒng)驅(qū)動程序設計;第四部分為嵌入式應用程序設計,包括第7、8、9章,主要講述基于qt的嵌入式gui設計和嵌入式數(shù)據(jù)庫程序設計;第五部分為第10章,通過兩個實際的嵌入式軟件開發(fā)項目,加深對前述內(nèi)容的理解,提高綜合應用能力?! ”緯勺鳛楦叩仍盒5挠嬎銠C、電子類相關專業(yè)嵌入式系統(tǒng)相關課程的教科書,也可作為基于arm核嵌人式系統(tǒng)軟件開發(fā)的工程技術人員的參考資料。

書籍目錄

第1章 嵌入式linux開發(fā)環(huán)境  1.1 嵌入式交叉開發(fā)環(huán)境  1.2 嵌入式軟件開發(fā)的過程   1.2.1 嵌入式軟件的生成   1.2.2 嵌入式軟件的調(diào)試   1.2.3 嵌入式軟件的固化  1.3 嵌入式linux軟件開發(fā)的主要內(nèi)容  1.4 構建嵌入式linux開發(fā)環(huán)境   1.4.1 開發(fā)平臺linux操作系統(tǒng)的安裝   1.4.2 嵌入式交叉編譯環(huán)境的搭建   1.4.3 宿主機和目標機的串口通信配置   1.4.4 windows與vmware linux的共享   1.4.5 宿主機與目標機文件的共享和傳輸  本章小結  習題 第2章 嵌入式linux開發(fā)基礎  2.1 linux程序的編譯和交叉編譯   2.1.1 gcc編譯器簡介   2.1.2 gcc的執(zhí)行過程    2.1.3 gcc的基本用法和選項   2.1.4 gcc的錯誤類型分析  2.2 嵌入式linux動態(tài)庫和靜態(tài)庫的制作與應用   2.2.1 linux靜態(tài)庫和動態(tài)庫   2.2.2 靜態(tài)庫的制作和應用   2.2.3 動態(tài)庫的制作和應用  2.3 makefile基礎和應用   2.3.1 makefile基本結構   2.3.2 makefile變量   2.3.3 makefile規(guī)則   2.3.4 make使用  2.4 嵌入式linux遠程調(diào)試   2.4.1 嵌入式linux遠程調(diào)試概述   2.4.2 gdb簡介   2.4.3 gdb遠程調(diào)試  2.5 嵌入式liunx多線程應用程序設計   2.5.1 linux線程概述   2.5.2 線程基本編程   2.5.3 線程的同步與互斥   2.5.4 線程屬性  2.6 嵌入式linux下c和匯編的混合編程   2.6.1 混合編程概述   2.6.2 c調(diào)用匯編   2.6.3 匯編調(diào)用c   2.6.4 c內(nèi)嵌匯編  2.7 嵌入式linuxsocket網(wǎng)絡編程基礎   2.7.1 socket簡介   2.7.2 socket編程基礎   2.7.3 socket api及編程流程  本章小結  習題 第3章 嵌入式bootloader原理及移植  3.1 嵌入式bootloader的基本概念  3.2 嵌入式bootloader的兩個階段   3.2.1 bootloader的stage1   3.2.2 bootloader的stage2  3.3 典型嵌入式bootloader(blob)的分析   3.3.1 blob目錄分析   3.3.2 blob的兩個階段代碼分析   3.3.3 stan—ld—scrlpt、rest—ld-script鏈接腳本分析  3.4 blob在博創(chuàng)pxa270—s的移植  本章小結  習題 第4章 基于arm的linux內(nèi)核分析與移植  4.1 內(nèi)核移植準備   4.1.1 內(nèi)核源碼的獲取   4.1.2 內(nèi)核源碼結構   4.1.3 內(nèi)核配置方法和內(nèi)容  4.2 linux內(nèi)核啟動過程分析   4.2.1 啟動的第一階段   4.2.2 啟動的第二階段  4.3 內(nèi)核源碼的移植   4.3.1 配置交叉編譯環(huán)境   4.3.2 建立內(nèi)核的基本配置文件   4.3.3 編譯內(nèi)核   4.3.4 增加必要的設備驅(qū)動   4.3.5 燒寫內(nèi)核到目標機  4.4 嵌入式linux內(nèi)核調(diào)試技術  本章小結  習題 第5章 嵌入式linux根文件系統(tǒng)及其制作 第6章 嵌入式系統(tǒng)驅(qū)動程序設計 第7章 基于qt的嵌入式gui程序設計基礎 第8章 qt程序設計核心技術 第9章 嵌入式數(shù)據(jù)庫程序設計 第10章 嵌入式軟件綜合項目實例 參考文獻 

章節(jié)摘錄

  4.數(shù)據(jù)包的發(fā)送  數(shù)據(jù)包的發(fā)送和接收是實現(xiàn)Linux網(wǎng)絡驅(qū)動程序中兩個最關鍵的過程,對這兩個過程處理的好壞將直接影響到驅(qū)動程序的整體運行質(zhì)量。圖6.7中也很明確地說明了網(wǎng)絡數(shù)據(jù)包的傳輸過程。首先在網(wǎng)絡設備驅(qū)動加載時,通過device域中的init函數(shù)指針調(diào)用網(wǎng)絡設備的初始化函數(shù)對設備進行初始化,如果操作成功就可以通過device域中的open函數(shù)指針調(diào)用網(wǎng)絡設備的打開函數(shù)打開設備,再通過device域中的建立硬件包頭函數(shù)指針hard_header來建立硬件包頭信息。最后通過協(xié)議接口層函數(shù)dev_queue_xmit來調(diào)用device域中的hard_start_xmit函數(shù)指針來完成數(shù)據(jù)包的發(fā)送。該函數(shù)將把存放在套接字緩沖區(qū)中的數(shù)據(jù)發(fā)送到物理設備,該緩沖區(qū)是由數(shù)據(jù)結構sk_buff來表示的?! ?.數(shù)據(jù)包的接收  數(shù)據(jù)包的接收是通過中斷機制來完成的,當有數(shù)據(jù)到達時,就產(chǎn)生中斷信號,網(wǎng)絡設備驅(qū)動功能層就調(diào)用中斷處理程序,即數(shù)據(jù)包接收程序來處理數(shù)據(jù)包的接收,然后網(wǎng)絡協(xié)議接口層調(diào)用netif rx函數(shù)把接收到的數(shù)據(jù)包傳輸?shù)骄W(wǎng)絡協(xié)議的上層進行處理?! ?.4.5網(wǎng)絡設備驅(qū)動的實現(xiàn)模式  實現(xiàn)Linux網(wǎng)絡設備驅(qū)動功能主要有兩種形式,一是通過內(nèi)核來進行加載,當內(nèi)核啟動的時候,就開始加載網(wǎng)絡設備驅(qū)動程序,內(nèi)核啟動完成之后,網(wǎng)絡驅(qū)動功能也隨即實現(xiàn)了;二是通過模塊加載的形式。比較兩者,第二種形式更加靈活,在此著重對模塊加載形式進行討論?! ∧K設計是Linux中特有的技術,它使Linux內(nèi)核功能更容易擴展。采用模塊來設計Linux網(wǎng)絡設備驅(qū)動程序會很輕松,并且能夠形成固定的模式,任何人只要依照這個模式去設計,都能設計出優(yōu)良的網(wǎng)絡驅(qū)動程序。先簡要概述一下基于模塊加載的網(wǎng)絡驅(qū)動程序的設計步驟,后面結合具體實例來講解。首先通過模塊加載命令insmod來把網(wǎng)絡設備驅(qū)動程序插入到內(nèi)核之中。然后insmod將調(diào)用init_module()函數(shù)首先對網(wǎng)絡設備的init函數(shù)指針初始化,再通過調(diào)用register_netdev()函數(shù)在Linux系統(tǒng)中注冊該網(wǎng)絡設備,如果成功,再調(diào)用init函數(shù)指針所指的網(wǎng)絡設備初始化函數(shù)來對設備初始化,將設備的device數(shù)據(jù)結構插入到dev_base鏈表的末尾。最后可以通過執(zhí)行模塊卸載命令rmmod來調(diào)用網(wǎng)絡驅(qū)動程序中的clean_up_module()函數(shù)來對網(wǎng)絡驅(qū)動程序模塊卸載。具體實現(xiàn)過程如圖6.8所示。

圖書封面

圖書標簽Tags

評論、評分、閱讀與下載


    嵌入式系統(tǒng)軟件設計 PDF格式下載


用戶評論 (總計0條)

 
 

 

250萬本中文圖書簡介、評論、評分,PDF格式免費下載。 第一圖書網(wǎng) 手機版

京ICP備13047387號-7