Linux下嵌入式學習方法

Linux下嵌入式學習方法

學校這學期課程,準備重點學的一門課《嵌入式系統應用基礎》 找到了這篇文章:以下。

想學好嵌入式Linux,首先要解決兩個重要問題:

1. 學什麼?

2. 怎麼學?

先來看看一個成熟的嵌入式產品的開發流程是怎麼一個過程:

  • 1.硬體開發
  • 責任人: 硬體工程師
  • 負責部分:基於EVM板, 新增、修改、刪除硬體
  • 2.Bootloader移植
  • 責任人:系統工程師或驅動工程師
  • 負責部分:將Bootloader移植到流程1所開發出來的硬體平臺
  • 3. Linux核心
  • 責任人:系統工程師或驅動工程師
  • 負責部分:將Linux核心移植到流程1所開發出來的硬體平臺
  • 4.根檔案系統製作
  • 責任人:系統工程師
  • 負責部分:製作供核心啟動的根檔案系統
  • 5.1 業務相關的應用程式
  • 責任人:應用工程師
  • 負責部分:開發和產品密切相關的應用程式
  • 5.2 業務相關的驅動程式
  • 責任人:驅動工程師
  • 負責部分:開發和產品密切相關的驅動程式,如觸控式螢幕、無線網絡卡
  • 6. 功能測試,效能測試,系統整合測、實驗局(系統裝置)、釋出

看完上面這些,你應該對嵌入式Linux有一個大概的認識了。我們再來理清一下知識結構,再對其進行細分。先來看預覽一下“學什麼”知識結構:

  • 1.嵌入式處理器與裸機程式
  • 2.Linux系統管理
  • 3.Linux應用程式開發
  • 4.Linux驅動程式開發
  • 5.Linux核心開發與系統移植

再來對每一項要學習的東西進行彙集:

處理器:

1. ARM處理器工作模式 
2. ARM系統暫存器 
3. ARM定址方式 
4. ARM 彙編指令集 
5. ARM環境C語言程式設計 
6. ARM中斷與異常 
7. ADS整合開發環境 
8. 裸機程式開發(串列埠、LCD、時鐘、LED、按鍵……)

系統管理:

1. Linux定製安裝 
2. Linux命令詳解 
3. samba、nfs、tftp、wireshark使用 
4. Shell程式設計

應用程式開發:

1. GCC、GDB、Makefile 
2. 檔案、時間程式設計 
3. 多程序、多執行緒程式設計 
4. 程序間通訊 
5. 網路程式設計 
6. QT圖形化應用程式開發 
7. Android圖形化應用程式開發

核心開發:

1. Linux核心配置與裁剪 
2. Linux核心模組開發 
3. 根檔案系統製作 
4. 程序子系統 
5. 記憶體子系統 
6. Proc檔案系統 
7. 系統呼叫 
8. 核心定時器 
9. 核心異常分析

驅動程式開發:

1. 字元裝置驅動程式 
2. 匯流排、裝置、驅動模型 
3. 硬體訪問技術 
4. 中斷處理 
5. Input裝置驅動 
6. Platform驅動程式 
7. PCI、USB驅動程式 
8. 網絡卡驅動程式 
9. 觸控式螢幕驅動程式 
10. 串列埠驅動程式

學好C語言對於學習嵌入式來說,C語言就是基礎部分,它就像你的雙腳,你想要跑起來,你對C語言的掌握就一定要達到精通。C語言是可以跟彙編結合對硬體進行操作,嵌入式開發基本用的都是C語言。所以你必須努力將C語言學好。

學習嵌入式LINUX我們知道ARM嵌入式都是帶系統,也就是ARM WinCE、ARM LINUX或者ARM VXWORKS。從事嵌入式的工程師至少要掌握一個嵌入式作業系統,這是所以專案中的關鍵

學習arm體系結構即使大家覺得彙編設計較枯燥乏味,學彙編可以讓你掌握處理器的執行機制,讓你寫出最優秀、高效率的C語言程式碼。

深入學習核心驅動學習驅動呢,你就必須看得懂各個核心函式程式碼,所以你的C語言要過關,剛開始學習的時候,可以模仿驅動的原始碼,儘管是很簡單的驅動。