Ⅰ 嵌入式開發如何入門
1、linux基礎
安裝Linux操作系統Linux文件系統Linux常用命令Linux啟動過程詳解熟悉Linux服務能夠獨立安裝Linux操作系統
能夠熟練使用Linux系統的基本命令認識Linux系統的常用服務安裝Linux操作系統Linux基本命令實踐設置Linux環境變數定製Linux的服務
Shell編程基礎使用vi編輯文件使用Emacs編輯文件使用其他編輯器
2、Shell編程基礎
Shell簡介認識後台程序Bash編程熟悉Linux系統下的編輯環境熟悉Linux下的各種Shell熟練進行shell編程熟悉vi基本操作
熟悉Emacs的基本操作比較不同shell的區別編寫一個測試伺服器是否連通的shell腳本程序編寫一個查看進程是否存在的shell腳本程序
編寫一個帶有循環語句的shell腳本程序
3、Linux下的C編慧蠢悄程基礎
linuxC語言環境概述G使用方法Gdb調試技術AutoconfAutomakeMakefile代碼優化
熟悉Linux系統下的開發環境熟悉G編譯器熟悉Makefile規則編寫Hello,World程序使用make命令編譯程序編寫帶有一個循環的程序
調試一個有問題的程序
4、嵌入式系統開發基礎
嵌入式系統概述交叉編譯配置TFTP服務配置NFS服務下載Bootloader和內核
嵌入式Linux應用軟體開發流程熟悉嵌入式系統概念以及開發流程建立嵌入式系統開發環境製作cross_g工具鏈編譯並下載U-boot
編譯並下載Linux內核編譯並下載Linux應用程序
5、嵌入式系統移植
Linux內核代碼平台相關代碼分析ARM平台介紹平台移植的關鍵技術移植Linux內核到ARM平台了解移植的概念
能夠移植Linux內核移植Linux2.6內核到ARM9開發板
6、嵌入式Linux下串口通信
串列I/O的基本概念嵌入式Linux應用軟體開發流程Linux系統的文件和設備與文件相關的系統調用配置超級終端和MiniCOM
能夠熟悉進行串口通信熟悉文件I/O編寫串口通信程序編寫多串口通信程序
7、嵌入式系統中多進程程序設計
Linux系統進程概述嵌入式系統的進程特點進程操作守護進檔鉛程相關的系統調用了解Linux系統中進程的概念能夠編寫多進程程序編寫多進程程序
編寫一個守護進程程序sleep系統調用任務管理、同步與通信Linux任務概述任務調度管道信號共享內存任務管理API了解Linux系統任務管理機制
熟悉進程間通信的幾種方式熟悉前渣嵌入式Linux中的任務間同步與通信編寫一個簡單的管道程序實現文件傳輸編寫一個使用共享內存的程序
8、嵌入式系統中多線程程序設計
線程的基礎知識多線程編程方法線程應用中的同步問題了解線程的概念能夠編寫簡單的多線程程序編寫一個多線程程序
9、嵌入式Linux網路編程
網路基礎知識嵌入式Linux中TCP/IP網路結構socket編程常用API函數分析Ping命令的實現基本UDP套介面編程許可證管理
PPP協議GPRS了解嵌入式Linux網路體系結構能夠進行嵌入式Linux環境下的socket編程熟悉UDP協議、PPP協議熟悉GPRS
使用socket編寫代理伺服器使用socket編寫路由器編寫許可證伺服器指出TCP和UDP的優缺點編寫一個web伺服器編寫一個運行在
ARM平台的網路播放器
10、GUI程序開發
GUI基礎嵌入式系統GUI類型編譯QT進行QT開發熟悉嵌入式系統常用的GUI能夠進行QT編程使用QT編寫「Hello,World」程序
調試一個加入信號/槽的實例通過重載QWidget類方法處理事件
11、Linux字元設備驅動程序
設備驅動程序基礎知識Linux系統的模塊字元設備驅動分析fs_operation結構載入驅動程序了解設備驅動程序的概念
了解Linux字元設備驅動程序結構能夠編寫字元設備驅動程序編寫Skull驅動編寫鍵盤驅動編寫I/O驅動分析一個看門狗驅動程序
對比Linux2.6內核與2.4內核中字元設備驅動的不同Linux塊設備驅動程序塊設備驅動程序工作原理典型的塊設備驅動程序分析
塊設備的讀寫請求隊列了解Linux塊設備驅動程序結構能夠編寫簡單的塊設備驅動程序比較字元設備與塊設備的異同編寫MMC卡驅動程序分析一個文件系統
對比Linux2.6內核與2.4內核中塊設備驅動的不同
12、文件系統
虛擬文件系統文件系統的建立ramfs內存文件系統proc文件系統devfs文件系統MTD技術簡介MTD塊設備初始化
MTD塊設備的讀寫操作了解Linux系統的文件系統了解嵌入式Linux的文件系統了解MTD技術能夠編寫簡單的文件系統為ARM9開發板添加MTD支持
移植JFFS2文件系統通過proc文件系統修改操作系統參數分析romfs文件系統源代碼創建一個cramfs文件系統
無論選擇哪一方向,基本的linux的知識是需要具備的,其他還需要掌握的知識有ARM(最常用的一款嵌入式處理器)和C語言編程,每一方面知識的掌握熟練程度都最終決定了個人進行嵌入式linux開發的綜合能力。