Linux開發(fā)學(xué)習(xí)如何入門教程
Linux目前代表成功開發(fā)的嵌入式系統(tǒng)的一半以上。 如何入門以及如何學(xué)習(xí)嵌入式Linux開發(fā)?
學(xué)習(xí)步驟如下:
1、Linux 基礎(chǔ)安裝Linux操作系統(tǒng)Linux文件系統(tǒng)Linux常用命令Linux啟動(dòng)過程詳解熟悉Linux服務(wù)能夠獨(dú)立安裝Linux操作系統(tǒng)能夠熟練使用Linux系統(tǒng)的基本命令認(rèn)識(shí)Linux系統(tǒng)的常用服務(wù)安裝Linux操作系統(tǒng)Linux基本命令實(shí)踐設(shè)置Linux環(huán)境變量定制Linux的服務(wù) Shell 編程基礎(chǔ)使用vi編輯文件使用Emacs編輯文件使用其他編輯器2、Shell 編程基礎(chǔ)Shell簡(jiǎn)介認(rèn)識(shí)后臺(tái)程序Bash編程熟悉Linux系統(tǒng)下的編輯環(huán)境熟悉Linux下的各種Shell熟練進(jìn)行shell編程熟悉vi基本操作熟悉Emacs的基本操作比較不同shell的區(qū)別編寫一個(gè)測(cè)試服務(wù)器是否連通的shell腳本程序編寫一個(gè)查看進(jìn)程是否存在的shell腳本程序編寫一個(gè)帶有循環(huán)語(yǔ)句的shell腳本程序3、Linux 下的 C 編程基礎(chǔ)linux C語(yǔ)言環(huán)境概述Gcc使用方法Gdb調(diào)試技術(shù)AutoconfAutomakeMakefile代碼優(yōu)化 熟悉Linux系統(tǒng)下的開發(fā)環(huán)境熟悉Gcc編譯器熟悉Makefile規(guī)則編寫Hello,World程序使用 make命令編譯程序編寫帶有一個(gè)循環(huán)的程序調(diào)試一個(gè)有問題的程序4、嵌入式系統(tǒng)開發(fā)基礎(chǔ)嵌入式系統(tǒng)概述交叉編譯配置TFTP服務(wù)配置NFS服務(wù)下載Bootloader和內(nèi)核嵌入式Linux應(yīng)用軟件開發(fā)流程熟悉嵌入式系統(tǒng)概念以及開發(fā)流程建立嵌入式系統(tǒng)開發(fā)環(huán)境制作cross_gcc工具鏈編譯并下載U-boot編譯并下載Linux內(nèi)核編譯并下載Linux應(yīng)用程序嵌入式系統(tǒng)移植Linux內(nèi)核代碼平臺(tái)相關(guān)代碼分析ARM平臺(tái)介紹平臺(tái)移植的關(guān)鍵技術(shù)移植Linux內(nèi)核到 ARM平臺(tái) 了解移植的概念能夠移植Linux內(nèi)核移植Linux2.6內(nèi)核到 ARM9開發(fā)板5、嵌入式 Linux 下串口通信串行I/O的基本概念嵌入式Linux應(yīng)用軟件開發(fā)流程Linux系統(tǒng)的文件和設(shè)備與文件相關(guān)的系統(tǒng)調(diào)用配置超級(jí)終端和MiniCOM 能夠熟悉進(jìn)行串口通信熟悉文件I/O 編寫串口通信程序編寫多串口通信程序6、嵌入式系統(tǒng)中多進(jìn)程程序設(shè)計(jì)Linux系統(tǒng)進(jìn)程概述嵌入式系統(tǒng)的進(jìn)程特點(diǎn)進(jìn)程操作守護(hù)進(jìn)程相關(guān)的系統(tǒng)調(diào)用了解Linux系統(tǒng)中進(jìn)程的概念能夠編寫多進(jìn)程程序編寫多進(jìn)程程序編寫一個(gè)守護(hù)進(jìn)程程序sleep系統(tǒng)調(diào)用任務(wù)管理、同步與通信 Linux任務(wù)概述任務(wù)調(diào)度管道信號(hào)共享內(nèi)存任務(wù)管理 API 了解Linux系統(tǒng)任務(wù)管理機(jī)制熟悉進(jìn)程間通信的幾種方式熟悉嵌入式Linux中的任務(wù)間同步與通信編寫一個(gè)簡(jiǎn)單的管道程序?qū)崿F(xiàn)文件傳輸編寫一個(gè)使用共享內(nèi)存的程序
7、嵌入式系統(tǒng)中多線程程序設(shè)計(jì)
線程的基礎(chǔ)知識(shí)多線程編程方法線程應(yīng)用中的同步問題了解線程的概念能夠編寫簡(jiǎn)單的多線程程序編寫一個(gè)多線程程序8、嵌入式 Linux 網(wǎng)絡(luò)編程網(wǎng)絡(luò)基礎(chǔ)知識(shí)嵌入式Linux中TCP/IP網(wǎng)絡(luò)結(jié)構(gòu)socket 編程常用 API函數(shù)分析Ping命令的實(shí)現(xiàn)基本UDP套接口編程許可證管理PPP協(xié)議GPRS 了解嵌入式Linux網(wǎng)絡(luò)體系結(jié)構(gòu)能夠進(jìn)行嵌入式Linux環(huán)境下的socket 編程熟悉UDP協(xié)議、PPP協(xié)議熟悉GPRS 使用socket 編寫代理服務(wù)器使用socket 編寫路由器編寫許可證服務(wù)器指出TCP和UDP的優(yōu)缺點(diǎn)編寫一個(gè)web服務(wù)器編寫一個(gè)運(yùn)行在 ARM平臺(tái)的網(wǎng)絡(luò)播放器9、GUI 程序開發(fā)GUI基礎(chǔ)嵌入式系統(tǒng)GUI類型編譯QT進(jìn)行QT開發(fā)熟悉嵌入式系統(tǒng)常用的GUI能夠進(jìn)行QT編程使用QT編寫“Hello,World”程序調(diào)試一個(gè)加入信號(hào)/槽的實(shí)例通過重載QWidget 類方法處理事件10、Linux 字符設(shè)備驅(qū)動(dòng)程序設(shè)備驅(qū)動(dòng)程序基礎(chǔ)知識(shí)Linux系統(tǒng)的模塊字符設(shè)備驅(qū)動(dòng)分析fs_operation結(jié)構(gòu)加載驅(qū)動(dòng)程序了解設(shè)備驅(qū)動(dòng)程序的概念了解Linux字符設(shè)備驅(qū)動(dòng)程序結(jié)構(gòu)能夠編寫字符設(shè)備驅(qū)動(dòng)程序編寫Skull驅(qū)動(dòng)編寫鍵盤驅(qū)動(dòng)編寫I/O驅(qū)動(dòng)分析一個(gè)看門狗驅(qū)動(dòng)程序?qū)Ρ萀inux2.6內(nèi)核與2.4內(nèi)核中字符設(shè)備驅(qū)動(dòng)的不同Linux 塊設(shè)備驅(qū)動(dòng)程序塊設(shè)備驅(qū)動(dòng)程序工作原理典型的塊設(shè)備驅(qū)動(dòng)程序分析塊設(shè)備的讀寫請(qǐng)求隊(duì)列了解Linux塊設(shè)備驅(qū)動(dòng)程序結(jié)構(gòu)能夠編寫簡(jiǎn)單的塊設(shè)備驅(qū)動(dòng)程序比較字符設(shè)備與塊設(shè)備的異同編寫MMC卡驅(qū)動(dòng)程序分析一個(gè)文件系統(tǒng)對(duì)比Linux2.6內(nèi)核與2.4內(nèi)核中塊設(shè)備驅(qū)動(dòng)的不同11、文件系統(tǒng)虛擬文件系統(tǒng)文件系統(tǒng)的建立ramfs內(nèi)存文件系統(tǒng)proc文件系統(tǒng)devfs 文件系統(tǒng)MTD技術(shù)簡(jiǎn)介MTD塊設(shè)備初始化MTD塊設(shè)備的讀寫操作了解Linux系統(tǒng)的文件系統(tǒng)了解嵌入式Linux的文件系統(tǒng)了解MTD技術(shù)能夠編寫簡(jiǎn)單的文件系統(tǒng)為 ARM9開發(fā)板添加 MTD支持移植JFFS2文件系統(tǒng)通過proc文件系統(tǒng)修改操作系統(tǒng)參數(shù)分析romfs 文件系統(tǒng)源代碼創(chuàng)建一個(gè)cramfs 文件系統(tǒng)