1. 程式人生 > >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語言要過關,剛開始學習的時候,可以模仿驅動的原始碼,儘管是很簡單的驅動。

相關推薦

Linux嵌入式學習方法

1. 學什麼? 2. 怎麼學? 先來看看一個成熟的嵌入式產品的開發流程是怎麼一個過程: 1.硬體開發責任人: 硬體工程師負責部分:基於EVM板, 新增、修改、刪除硬體2.Bootloader移植責任人:系統工程師或驅動工程師負責部分:將Bootloader移植到流程1所開發出來的硬體平臺3.

Linuxmakefile學習

文本文 新規 兩個 組成 https 當前 自動更新 mman n) [make是什麽?]   make是一個命令工具,是一個解釋makefile中指令的命令工具。它可以簡化編譯過程裏面所下達的指令,當執行 make 時,make 會在當前的目錄下搜尋 Makefile (

linuxgnuplot安裝方法

安裝 1.下載地址為http://sourceforge.net/projects/gnuplot/files/     解壓 tar zxvf gnuplot-5.2.5.tar.gz 2.配置安裝路徑     &nbs

LinuxGDB安裝方法

前言 gdb是Linux環境下的程式碼除錯工具,為了能在linux環境下更有好的程式設計體驗。其安裝可謂是勢在必行。 安裝過程 安裝gdb的過程很簡單,具體步驟如下: step1:首先檢查系統中有沒有安裝過,有的話用一下命令解除安裝gdb舊版本 step2:安裝

linux 安裝composer 方法

  //下載composer curl -sS https://getcomposer.org/installer | php //將composer.phar檔案移動到bin目錄以便全域性使用composer命令 mv composer.phar /usr/local/bin/

linuxMySQL使用方法

一、登入MySQL 登入MySQL的命令是mysql, mysql 的使用語法如下:  mysql [-u username] [-h host] [-p[password]] [dbname]   username 與 password 分別是 MySQL 的使用者名稱

磁碟裝置在 Linux 的表示方法

在 Linux 系統中磁碟裝置檔案的命名規則為: 主裝置號 + 次裝置號 + 磁碟分割槽號 對於目前常見的磁碟,一般表示為: sd[a-z]x 主裝置號代表裝置的型別,相同的主裝置號表示同類型的裝置。 當前常見磁碟的主裝置號為 sd。 次裝置號代表同類裝置中的序號,用 "a-z" 表示。 比如 /de

磁盤設備在 Linux 的表示方法

相同 技術 支持 設備 strong 磁盤分區 我們 作用 並且 在 Linux 系統中磁盤設備文件的命名規則為: 主設備號 + 次設備號 + 磁盤分區號 對於目前常見的磁盤,一般表示為: sd[a-z]x 主設備號代表設備的類型,相同的主設備號表示同類型的設備。 當前常

Linux IPMItool配置方法(MSI主機板)

一、IPMI-IP配置(本機登陸方式) 1,ipmitool -I open shell      //進入本地BMC shell [[email protected] ~]# ipmitool -I open shell ipmitool> 2,l

linux 程序學習(1)

fork() ----- #include <unistd.h> #include <stdio.h> int main() {      pid_t t;      printf("father pid %d\n",(int)getpid()

Sublime Text 3.0-3059 MAC 、windows、Linux的破解方法

Sublime Text 3.0-3059 MAC 、windows、Linux下的破解方法 已在mac下親測。 1、首先將下載的“Sublime Text crack”  改名為"Sublime Text"; 2、開啟終端,輸入下載的“Sublime Text crac

linux安裝vmtools方法

長期有關注網路安全部落格的朋友應該有發現,最近網路安全部落格裡涉及linux的文章多了。呵呵,向前一篇提升liunx安全的幾種方法文章就有介紹了關於linux下提升安全係數的方法。今天在虛擬機器中想上網,整了半天,竟然有人跟我說是沒有安裝VMTOOLS的原因。以前在Ubu

LINUX 安裝軟體方法命令方法

一般有三種常見的安裝方法: 1. 圖形介面安裝: synaptic software management  (好像都是deb包) 2. 終端命令列方式。安裝源程式包(tar, Z, gz, bz2, tar.gz, tar.bz2, tar.Z, rar,

linuxcurl get方法傳遞引數

例如  url 為 http://mywebsite.com/index.php?a=1&b=2&c=3 web形式下訪問url地址,使用$_GET是可以獲取到所有的引數 然而在linux下 curl http://mywebsite.com

linuxc++學習筆記——c++編譯器安裝(CLion)

c++編譯器安裝 參考部落格 https://blog.csdn.net/weixin_36926794/article/details/80291034 啟用 https://blog.csdn.net/krais_wk/article/details/80970355 wget

linuxc++學習筆記——c++編譯執行

c++編譯執行 預處理 合併多個單張圖片的txt檔案為一個訓練txt cat *.txt > train.txt 替換檔案中的特定字串(將’80 '替換為’1 ') // find "file"|xargs perl -pi -e 's|old|new|g' fi

linux檔案加密方法總結

為了安全考慮,通常會對一些重要檔案進行加密備份或加密儲存,下面對linux下的檔案加密方法做一簡單總結: 方法一:gzexe加密 這種加密方式不是非常保險的方法,但是能夠滿足一般的加密用途,可以隱蔽指令碼中的密碼等資訊。 它是使用系統自帶的gzexe程式,它不但加密

簡單解析linux程序通訊方法

linux下的程序通訊手段基本上是從Unix平臺上的程序通訊手段繼承而來的。而對Unix發展做出重大貢獻的兩大主力AT&T的貝爾實驗室及BSD(加州大學伯克利分校的伯克利軟體釋出中心)在程序間通訊方面的側重點有所不同。前者對Unix早期的程序間通訊手段進行了系統的改

linux mailx使用方法以及阿里雲無法使用mailx解決方法

 1 關閉掉預設安裝的郵件伺服器     centos 6版本:     /etc/init.d/sendmail stop     /etc/init.d/postfix  stop  centos 7版本:     systemctl stop postfix     systemctl stop sen

Linux嵌入式程式模擬除錯(GDB)(一)

目錄 前言 專案遇到一個問題,就是程式在Ubuntu下執行的時候是正常的,至少大部分時候執行是正常的,但是移到開發板上,就會出現段錯誤。這時候突然想到了GDB,從來都沒有接觸過除錯工具,以前的除錯都是使用printf直接列印的方式!!!效率極低!準