嵌入式Linux學習方法——給那些彷徨者(上)


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

1. 學什么?

2. 怎么學?

首先解決第一個問題。

嵌入式Linux的系統架構包括軟件和硬件兩個部分,如下圖:


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

  • 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. 串口驅動程序

 

 

參考資料:國嵌嵌入式Linux


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM