嵌入式Linux學習之規(guī)劃篇_第1頁
嵌入式Linux學習之規(guī)劃篇_第2頁
嵌入式Linux學習之規(guī)劃篇_第3頁
嵌入式Linux學習之規(guī)劃篇_第4頁
嵌入式Linux學習之規(guī)劃篇_第5頁
已閱讀5頁,還剩4頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

精選優(yōu)質文檔-----傾情為你奉上精選優(yōu)質文檔-----傾情為你奉上專心---專注---專業(yè)專心---專注---專業(yè)精選優(yōu)質文檔-----傾情為你奉上專心---專注---專業(yè)嵌入式Linux學習之規(guī)劃篇嵌入式Linux課程目標是達到適應嵌入式應用軟件開發(fā)、嵌入式系統(tǒng)開發(fā)或嵌入式驅動開發(fā)的基本素質。采用了目前應用最廣泛的軟硬件開發(fā)平臺(Linux和Arm)。學習步驟如下:1、Linux

基礎安裝Linux操作系統(tǒng)Linux文件系統(tǒng)

(windows的文件共享)Linux的基本命令及使用Linux啟動過程詳解熟悉Linux服務能夠獨立安裝Linux操作系統(tǒng)能夠熟練使用Linux系統(tǒng)的基本命令認識Linux系統(tǒng)的常用服務安裝Linux操作系統(tǒng)Linux基本命令實踐設置Linux環(huán)境變量定制Linux的服務

Shell

編程基礎使用vi編輯文件使用Emacs編輯文件使用其他編輯器2、Shell

編程基礎Shell簡介認識后臺程序Bash編程熟悉Linux系統(tǒng)下的編輯環(huán)境熟悉Linux下的各種Shell熟練進行shell編程熟悉vi基本操作熟悉Emacs的基本操作比較不同shell的區(qū)別編寫一個測試服務器是否連通的shell腳本程序編寫一個查看進程是否存在的shell腳本程序編寫一個帶有循環(huán)語句的shell腳本程序3、Linux

下的

C

編程基礎linuxC語言環(huán)境概述Gcc使用方法Gdb調試技術AutoconfAutomakeMakefile代碼優(yōu)化

熟悉Linux系統(tǒng)下的開發(fā)環(huán)境熟悉Gcc編譯器熟悉Makefile規(guī)則編寫Hello,World程序使用

make命令編譯程序編寫帶有一個循環(huán)的程序調試一個有問題的程序4、嵌入式系統(tǒng)開發(fā)基礎嵌入式系統(tǒng)概述交叉編譯配置TFTP服務配置NFS服務下載Bootloader和內核嵌入式Linux應用軟件開發(fā)流程熟悉嵌入式系統(tǒng)概念以及開發(fā)流程建立嵌入式系統(tǒng)開發(fā)環(huán)境制作cross_gcc工具鏈編譯并下載U-boot編譯并下載Linux內核編譯并下載Linux應用程序嵌入式系統(tǒng)移植Linux內核代碼平臺相關代碼分析ARM平臺介紹平臺移植的關鍵技術移植Linux內核到

ARM平臺

了解移植的概念能夠移植Linux內核移植Linux2.6內核到

ARM9開發(fā)板【1

配置編譯Linux內核1.1Linux內核源代碼結構1.2Linux內核編譯選項解析1.3Linux內核編譯鏈接2.0Linux啟動過程源代碼分析3.0Linux內核移植平臺相關代碼分析】5、嵌入式

Linux

下串口通信串行I/O的基本概念嵌入式Linux應用軟件開發(fā)流程Linux系統(tǒng)的文件和設備與文件相關的系統(tǒng)調用配置超級終端和MiniCOM

能夠熟悉進行串口通信熟悉文件I/O

編寫串口通信程序編寫多串口通信程序6、嵌入式系統(tǒng)中多進程程序設計

Linux系統(tǒng)進程概述嵌入式系統(tǒng)的進程特點進程操作守護進程相關的系統(tǒng)調用了解Linux系統(tǒng)中進程的概念能夠編寫多進程程序編寫多進程程序編寫一個守護進程程序sleep系統(tǒng)調用任務管理、同步與通信

Linux任務概述任務調度管道信號共享內存任務管理

API

了解Linux系統(tǒng)任務管理機制熟悉進程間通信的幾種方式熟悉嵌入式Linux中的任務間同步與通信編寫一個簡單的管道程序實現(xiàn)文件傳輸編寫一個使用共享內存的程序【主要包括系統(tǒng)編程(信號/系統(tǒng)調用/管道/FIFO/消息隊列/共享內存等),文件I/O編程(文件描述符/文件讀寫接口/原子操作/阻塞與非阻塞IO等,多任務和多線程編程(進程標識/

用戶標識/fork與vfork/多線程概念/線程同步等),網絡編程(網絡基本概念/套接口編程/網絡字節(jié)次序/Client/Server結構/UDP編程);掌握Linux下Socket編程的開發(fā)流程,熟悉網絡編程的調用接口函數(shù)和相關數(shù)據(jù)結構,內容包括文件I/O編程,多線程編程,網絡編程和項目文檔編寫】7、嵌入式系統(tǒng)中多線程程序設計線程的基礎知識多線程編程方法線程應用中的同步問題了解線程的概念能夠編寫簡單的多線程程序編寫一個多線程程序8、嵌入式

Linux

網絡編程網絡基礎知識嵌入式Linux中TCP/IP網絡結構socket

編程常用

API函數(shù)分析Ping命令的實現(xiàn)基本UDP套接口編程許可證管理PPP協(xié)議GPRS

了解嵌入式Linux網絡體系結構能夠進行嵌入式Linux環(huán)境下的socket

編程熟悉UDP協(xié)議、PPP協(xié)議熟悉GPRS

使用socket

編寫代理服務器使用socket

編寫路由器編寫許可證服務器指出TCP和UDP的優(yōu)缺點編寫一個web服務器編寫一個運行在

ARM平臺的網絡播放器9、GUI

程序開發(fā)GUI基礎嵌入式系統(tǒng)GUI類型編譯QT進行QT開發(fā)熟悉嵌入式系統(tǒng)常用的GUI能夠進行QT編程使用QT編寫“Hello,World”程序調試一個加入信號/槽的實例通過重載QWidget

類方法處理事件10、Linux

字符設備驅動程序設備驅動程序基礎知識Linux系統(tǒng)的模塊字符設備驅動分析fs_operation結構加載驅動程序了解設備驅動程序的概念了解Linux字符設備驅動程序結構能夠編寫字符設備驅動程序編寫Skull驅動編寫鍵盤驅動編寫I/O驅動分析一個看門狗驅動程序對比Linux2.6內核與2.4內核中字符設備驅動的不同Linux

塊設備驅動程序塊設備驅動程序工作原理典型的塊設備驅動程序分析塊設備的讀寫請求隊列了解Linux塊設備驅動程序結構能夠編寫簡單的塊設備驅動程序比較字符設備與塊設備的異同編寫MMC卡驅動程序分析一個文件系統(tǒng)對比Linux2.6內核與2.4內核中塊設備驅動的不同11、文件系統(tǒng)虛擬文件系統(tǒng)文件系統(tǒng)的建立ramfs內存文件系統(tǒng)proc文件系統(tǒng)devfs

文件系統(tǒng)MTD技術簡介MTD塊設備初始化MTD塊設備的讀寫操作了解Linux系統(tǒng)的文件系統(tǒng)了解嵌入式Linux的文件系統(tǒng)了解MTD技術能夠編寫簡單的文件系統(tǒng)為

ARM9開發(fā)板添加

MTD支持移植JFFS2文件系統(tǒng)通過proc文件系統(tǒng)修改操作系統(tǒng)參數(shù)分析romfs

文件系統(tǒng)源代碼創(chuàng)建一個cramfs

文件系統(tǒng)

嵌入式處理器體系結構及編程實踐

主要介紹ARM體系結構及其基本編程知識,包括指令分類,尋址方式、指令集、存儲系統(tǒng)、異常中斷處理、匯編語言以及C\C++和匯編語言的混合編程等知識。同時結合ARM嵌入式開發(fā)板硬件設計原理和基本硬件設計流程,分析各種外設的工作原理和驅動機制,并自己動手實踐完成一個ARM開發(fā)板上的編程大作業(yè)。嵌入式Linux開發(fā)基礎及高級應用

主要介紹嵌入式Linux開發(fā)應用程序的基本流程和知識,包括嵌入式Linux基本概念和開發(fā)流程、Bootloader工作原理、內核裁減配置和交叉編譯、根文件系統(tǒng)制作、網絡編程以及圖形界面和數(shù)據(jù)庫開發(fā)等知識。同時獨立完成一個基于嵌入式LinuxGUI的應用編程大作業(yè)。嵌入式

Linux驅動理論及驅動程序開發(fā)實踐

主要介紹嵌入式Linux上驅動程序開發(fā)規(guī)范,包括設備驅動程序概念、字符設備驅動程序、塊設備與網絡設備、網卡驅動以及常用嵌入式設備驅動開發(fā)等知識。同時獨立實現(xiàn)兩種嵌入式設備驅動程序的編寫,包括驅動模塊的調試和加載以及完整的項目開發(fā)文檔的編寫。嵌入式Linux項目團隊開發(fā)實踐鍛煉

主要包括設計并實現(xiàn)一個真實和完整的嵌入式項目的開發(fā)流程,涉及到數(shù)據(jù)采集、網絡通訊、圖形用戶界面顯示以及嵌入式數(shù)據(jù)庫存儲系統(tǒng)等多種嵌入式Linux編程技術。要求學員建立起團隊開發(fā)和協(xié)同工作的企業(yè)項目開發(fā)模式的概念和流程,強化學員對編寫項目概要設計文檔和詳細設計文檔的理解,為就業(yè)前的職業(yè)技能和素質訓練做好充分準備。???????????????????????????????????????最重要的是:手頭要有一塊嵌入式板子進行實踐。???????????????????????????????????????C語言《CPrimerPlus,5thEdition》【美】StephenPrata著TheCprogramminglanguage《C程序設計語言》PointersonC《C和指針》Ctrapsandpitfalls《C陷阱與缺陷》

ExpertCLanuage《專家C編程》

WritingCleanCode-----MicrosoftTechiniquesforDevelopingBug-freeCPrograms《編程精粹--Microsoft

編寫優(yōu)質無錯C程序秘訣》

ProgrammingEmbeddedSystemsinCandC++《嵌入式系統(tǒng)編程》《C語言嵌入式系統(tǒng)編程修煉》《高質量C++/C編程指南》林銳Linux基礎1、《Linux與UnixShell

編程指南》2、《鳥哥的

Linux

私房菜

基礎學習篇(第二版)》3、《Linux程序設計.第3版》3、《AdvancedProgrammingintheUNIXEnvironment,2ndEdition》(APUE)4、《嵌入式Linux應用程序開發(fā)詳解》Linux內核1、《深入理解Linux內核》(第三版)2、《Linux內核源代碼情景分析》毛德操

胡希明著研發(fā)方向1、《UNIXNetworkProgramming》(UNP)2、《TCP/IP詳解》3、《Linux內核編程》4、《Linux設備驅動開發(fā)》(LDD)硬件基礎計算機組成原理1、《ARM體系結構與編程》杜春雷著英語基礎1、《計算機與通信專業(yè)英語》系統(tǒng)教程1、《嵌入式系統(tǒng)――體系結構、編程與設計》2、《嵌入式系統(tǒng)――采用公開源代碼和StrongARM/Xscale處理器》毛德操

胡希明著3、《BuildingEmbeddedLinuxSystems》理論基礎1、《算法導論》2、《數(shù)據(jù)結構(C語言版)》3、《計算機組織與體系結構?性能分析》4、《深入理解計算機系統(tǒng)》【美】RandalE.BryantDavidO'Hallaron著5、《操作系統(tǒng):精髓與設計原理》6、《編譯原理》7、《數(shù)據(jù)通信與計算機網絡》8、《數(shù)據(jù)壓縮原理與應用》《unix環(huán)境高級編程》Stevens先生的《unix環(huán)境高級編程》如果對網絡編程有興趣的,可以學習一下Stevens先生的《UNIX網絡編程》兩卷可以再看看《TCP/IP詳解》三卷)?!队嬎銠C編程藝術》對算法有興趣得可以研究一下?!秎inux設備驅動程序》《深入理解Linux內核》Linux上的應用編程:《APUE》和《UNP》,前者鍛煉基本功,后者學習網絡編程。???????????????????????????????????????不管做什么,學什么,一要心態(tài)好,二要態(tài)度好。所謂心態(tài)好就是不要著急、不用擔心;所謂態(tài)度好是多分享、多討論、學出自己的心得。學習靠自己,不要期望別人教你什么,學習要主動;不管水平高低,不要看不起自己,也不能看不起別人,學習要心態(tài)好;不能不思進取,也不用讓自己為技術所累,給自己多一點技術之外的時間;耐心,刻苦,嘗試,失敗。學習的過程可能會是飽受挫折和孤獨的。要知道為什么學?要知道學的是什么?要知道怎么學?要知道學了如何用?最后還要知道用的時候出了問題該如何解決?What

How

Why???????????????????????????????????????2

LinuxC語言包括函數(shù)與程序結構、指針、數(shù)組、常用算法、庫函數(shù)的使用等知識重點講解數(shù)據(jù)結構的基礎內容,包括鏈表、隊列、棧、樹、哈希表、圖等內容。函數(shù)

函數(shù)為程序員提供了最基本的代碼復用能力,函數(shù)在調用返回時究竟發(fā)生了什么?局部變量如何分配空間?可變參數(shù)列表的機制如何?我們將在這個環(huán)節(jié)深入底層,去揭開函數(shù)調用的面紗。

函數(shù)的類型和返回值

函數(shù)的參數(shù)傳遞

函數(shù)調用過程中的棧幀結構

可變參數(shù)列表

遞歸函數(shù)調用3學時

指針

指針,它讓C語言與眾不同。如何判斷指針的類型?指針的速度真的快么?指針運算和整數(shù)運算有何不同?指針和數(shù)組一樣么,不一樣么?我們將在這個環(huán)節(jié)用簡單明了的技巧解決一系列含混的指針問題。

判斷指針的類型

指針的運算

數(shù)組和指針的同異

指向函數(shù)的指針

指針與抽象3學時

預編譯

如果說指針是C語言的靈魂,那么預編譯就是C語言的生命。預編譯使得C語言可以變化出多樣的外觀。預編譯如何提高編碼的效率?宏定義中有哪些陷阱?文件包含的時候發(fā)生了什么?我們將在這個環(huán)節(jié)用精確的語言來闡述完整的預編譯的技巧。

對象宏和函數(shù)宏

宏定義技巧和常見錯誤

#和##運算符

條件編譯

文件包含3學時

字符串

字符串處理,這大概是C語言最不擅長的事情。C語言的字符串處理有許多被遺忘的角落。在這一階段,我們帶領你重拾C語言的字符串處理函數(shù),以充實你的C語言武器庫。

C風格字符串

標準C字符串庫函數(shù)一覽

重點函數(shù)實現(xiàn)解析

C字符串處理范例3學時

鏈接

鏈接使得程序員可以復用二進制的編譯結果。不同種類的變量被放到了哪里?如何控制代碼在內存中的位置?PC程序員也許不是很關心的這些問題,但這卻是嵌入式程序員的必經之路。我們將在這個環(huán)節(jié)補上知識鏈條中缺失的一環(huán)。

鏈接和elf文件格式概述

程序的存儲映像

鏈接腳本和嵌入式程序的存儲3學時

文件IO

一切都是文件。在我們的整個課程體系中,我們將從不同的角度來審視這一句話。在這個階段,我們用C語言來審視UNIX世界中的這個基本價值觀。

流和IO重定向

文本文件與二進制文件

用標準C庫進行文件操作標準C和系統(tǒng)調用

主要介紹在嵌入式開發(fā)編程中C語言的重要概念和編程技巧中的重點難點,以復習串講和實例分析的形式,重點介紹包括函數(shù)與程序結構,指針、數(shù)組和鏈表,庫函數(shù)的使用等知識。主要包括整數(shù)算法訓練,遞歸和棧編程訓練,位操作訓練,指針訓練,字符串訓練和常用C庫函數(shù)編程接口實踐,強化對Linux下基本編程開發(fā)的理解和編碼調試的能力。???????????????????????????????????????

???????????????????????????????????????編程規(guī)范的問題:一般較為正規(guī)的軟件公司都會有自己的一套完成的編程規(guī)范,那么你遵守就好;如果你是自己學習的話,可以選擇一個較為通用的規(guī)范,最好的方法就是看別人是

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
  • 6. 下載文件中如有侵權或不適當內容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論