歡迎來到Linux教程網
Linux教程網
Linux教程網
Linux教程網
Linux教程網 >> Linux基礎 >> Linux教程 >> 對ARM和嵌入式Linux的認識

對ARM和嵌入式Linux的認識

日期:2017/2/28 16:06:30   编辑:Linux教程

嵌入式系統開發分為硬件部分和軟件部分:

硬件部分:

1、ARM介紹

嵌入式產品硬件,主要是一塊以(ARM、 DSP、 FPGA)為核心的開發板。根據不同的需求,配置不同的外設,因為嵌入式產品是為特定應用而生的,所以利用這些嵌入式芯片可以開發出很多產品;ARM是一款嵌入式芯片,往往說到ARM是指內核是ARM的,一般內核部分會加上cache ram rom等構成cpu,在此基礎上其余部分都叫外設,外設和cpu通過總線連接,常見外設有:usb,lcd,keyboard,uart,gpio,iic總線等控制器,類似的還有DSP、FPGA都是內核+外設構成一個硬件板子。簡單來講,嵌入式硬件就是內核+外設。

2、嵌入式硬件開發

硬件開發,主要流程是1需求分析:確定要做什麼系統,系統會涉及到那些模塊,相應模塊分別對應什麼設備;2選型:選擇合適的芯片和外設,先看有沒有類似的產品,選擇比較成熟的產品作為開發基礎,加快開發效率;3進入開發階段。

軟件部分:

1、Linux介紹

Linux最大特點就是開源,內核代碼全部開放,這就可以讓我們自己根據需求定制自己的操作系統,操作系統主要功能就是管理片上所有資源,任務調度,為應用程序運行服務的。

2、軟件開發

嵌入式軟件開發,包括基於操作系統之上的應用程序開發,和操作系統內核的驅動開發(驅動屬於內核的一部分)。嵌入式軟件部分編程,就是在pc機上編寫代碼,最後下載到板子上執行。

嵌入式技能描述:

1、開發環境搭建:嵌入式開發需要交叉開發環境,因為我們編碼工作都在pc上完成,運行在pc上的是基於x86體系的,在arm上運行需要編譯成特定代碼,運用交叉編譯器編譯。其中包括1u-boot/vivi(相當於BIOS)的移植,這種bootloader是嚴重依賴於硬件,所以不同板子有不同配置,一般都根據板子進行配置修改;2內核裁剪,內核是一個很龐大的體系,支持很多服務,而我們需求可能只有幾種,為了減小嵌入式產品資源開銷,內核都進行裁剪(驅動加入或者刪除);3根文件系統制作,應用程序是基於文件系統之上的,有了內核必須要有文件系統才能運行應用程序。

2、應用程序開發:主要是用C語言或者C++按需求開發代碼,最後交叉編譯,下載到板子運行。開發環境Qt,vim編輯器;交叉編譯器arm-Linux-gcc;

3、Makefile編寫:代碼編寫後,要寫一個Makefile來編譯源代碼,Makefile就是按照規則運行gcc命令,最終生成可執行文件,類似於批處理或者說是批編譯。

4、設備驅動開發:驅動是根據特定硬件的,要根據硬件廠商提供的datasheet進行編寫,基本上是編寫fileoperation裡面的函數(open、close、read、write、ioctrl等),最後將設備驅動加載進內核(通過建立設備節點讓操作系統知道這個設備)。

5、基於板子外設的軟件開發:嵌入式ARM最強大的功能是控制能力,類似於早期的單片機,但是比單片機要有強大的網絡通信能力,支持操作系統,更多外設;

這種軟件開發就是通過編程,根據硬件datasheet,讓ARM控制硬件的控制器完成各種硬件的協調工作。(比如板子上一個引腳接上lcd,讓這個引腳對應地址內容為1就可以點亮這個lcd

6、熟悉電子線路基本知識:模電,數電,高頻電子,信號處理。

7、熟悉基於Linux的socket網絡編程。

注:都是自己理解,可能有不對的地方,望批評指正,謝謝!

Copyright © Linux教程網 All Rights Reserved