1.嵌入式系统的简介
1.嵌入式系統的簡介
1.1 課程規劃與學習方法
嵌入式系統無疑是當前最熱門最有發展前途的IT應用領域之一,但同時也是最難以掌
握的學科之一,很多躊躇滿志的同學最終沒能成為一名合格的嵌入式工程師,很大原因是
沒有掌握科學,有效的學習方法,所以本章主要將從學習人群、待學知識點、學習順序等
幾個方面來闡述一套科學的嵌入式系統學習方法。
1.1.1 學習人群
從事嵌入式開發的工程師主要有兩類。
l 電子工程、通信工程等偏硬件專業出身的人,他們主要從事硬件設計,也開發一些與
硬件關系密切的底層軟件,如BootLoader、Board Support Package(像PC的BIOS
一樣,往下驅動硬件,往上支持操作系統),硬件驅動程序等。他們的優勢是對硬件
原理非常清楚,不足是他們更擅長定義各種硬件接口,但對復雜軟件系統往往力不從
心(例如嵌入式操作系統原理和復雜應用軟件等)。
l 另一類是學軟件、計算機專業出身的人,主要從事嵌入式操作系統和應用軟件的開發。
如果這部分人對硬件原理有較好的掌握,也可以從事BSP 和硬件驅動程序開發工作
1.1.2 待學知識點
嵌入式系統具有知識點多,要求的知識點廣等特點,因此在開始學習之前,首先應該
明確應該學一些什么知識點,本小節將以嵌入式Linux為例,闡述其知識點。嵌入式Linux
的知識可以分為5大板塊,如圖1-1 所示。
以上5 大知識板塊的知識點又可以具體細化為:
1.嵌入式處理器(以ARM 為例)
??ARM 處理器工作模式
??ARM 系統寄存器
??ARM 尋址方式
??ARM 匯編指令集
??ARM 環境C 語言編程
??ARM 中斷與異常
??ADS 集成開發環境
??裸機程序開發(串口、LCD、時鐘、LED、按鍵……)
2.Linux系統管理
??Linux定制安裝
??Linux基本命令
??samba、nfs、tftp、wireshark等工具使用
??Shell編程
3.Linux系統管理
??GCC、GDB、Makefile
??文件、時間編程
??多進程、多線程程序設計
??進程間通訊
??網絡編程
??QT圖形化應用程序開發
??Android 圖形化應用程序開發
4.Linux系統管理
??Linux內核配置與裁剪
??Linux內核模塊開發
??根文件系統制作
??進程子系統
??內存子系統
??Proc 文件系統
??系統調用
??內核定時器
??內核異常分析
5.Linux系統管理
??字符設備驅動程序
??總線、設備、驅動模型
??硬件訪問技術
??中斷處理
??Input 設備驅動
??Platform驅動程序
??PCI、USB 驅動程序
??網卡驅動程序
??觸摸屏驅動程序
??串口驅動程序
1.1.3 學習順序
面對上一節所列出的眾多知識點,采用什么樣的順序來學習至關重要,學習順序得當,
事半功倍,學習順序不當,則有可能導致學習者半途放棄,正確的學習順序如圖1-4 所示。
圖1-2 嵌入式 Linux學習順序
1.1.4 理論與實踐
嵌入式屬于應用型學科,強調理論與實踐相結合,強調通過大量的實驗與項目來加深
對知識的理解與掌握。因此在嵌入式學習的過程中,除了需要一套系統的理論知識學習大
綱外,更需要一套與之配套的實驗大綱。
1.1.5 學習誤區
很多同學在嵌入式學習的道路上最終放棄,很多時候是因為步入了嵌入式學習的誤區,這
里我們列出了幾項常見的誤區:
誤區 1:今天學學這,明天學學那,學習跟著感覺走。
正解:學習一定要按計劃,由簡入深,系統進行。
誤區 2. 資料買了一大堆,自己都不知道看那本。
正解:初學階段,資料做到少而精,堅持看。
誤區 3. 只看資料與視頻,就是不動手做。
正解:多做實驗多思考,必修實驗必須做。
1.1.6 學習方法總結
圖1-3 嵌入式 Linux學習方法總結
對于初學的同學,如果不能自己制定知識點大綱和實驗大綱,可以參考國嵌的嵌入式
課程大綱與實驗大綱,制定完這兩個大綱后,嚴格按照這兩個大綱系統性學習。
1.2 嵌入式系統概述
1.2.1 什么是嵌入式系統
嵌入式系統是以應用為中心、以計算機技術為基礎、軟件硬件可裁剪、對功能、可靠
性、成本、體積、功耗有嚴格要求的專用計算機系統。
它一般由以下幾部分組成,如圖1-4 所示:
1. 嵌入式微處理器
2. 外圍硬件設備
3. 嵌入式操作系統
4. 特定的應用程序
圖1-4 嵌入式系統構成
1.嵌入式微處理器:Omap 雙核ARM 處理器
2.外圍硬件設備:LCD、鍵盤、Wifi 無線網卡等
3.嵌入式操作系統:嵌入式Linux系統
4.特定的應用程序:Google earth 等
1.2.2 嵌入式系統特點
嵌入式系統與通用PC 系統相比,具有如下特點:
●專用性強。由于嵌入式系統通常是面向某個特定應用的,所以嵌入式系統的硬件和軟
件,尤其是軟件,都是為特定用戶群來設計的,它通常都具有某種專用性的特點。
●實時性好。目前,嵌入式系統廣泛應用于生產過程控制、數據采集、傳輸通信等場合,
主要用來對宿主對象進行控制,所以都對嵌入式系統有或多或少的實時性要求。例如,對
嵌入在武器裝各中的嵌入式系統、在火箭中的嵌入式系統、一些工業控制裝置中的控制系
統等應用中的實時性要求就極高。也正因為這種要求,在硬件上嵌人式系統極少使用存取
速度慢的磁盤等存儲器,在軟件上更是加以精心設計,從而可使嵌入式系統快速地響應外
部事件。當然,隨著嵌入式系統應用的擴展,有些系統對實時性要求也并不是很高,例如
近年來發展速度比較快的手持式計算機、掌上電腦等。但總體來說,實時性是對嵌入式系統的普遍要求,是設計者和用戶重點考慮的一個重要指標。
●可裁剪性好。從嵌人式系統專用性的特點來看,作為嵌入式系統的供應者,理應提供
各式各樣的硬件和軟件以各選用。但是,這樣做勢必會提高產品的成本。為了既不提高成
本,又滿足專用性的需要,嵌入式系統的供應者必須采取相應措施使產品在通用和專用之
間進行某種平衡。目前的做法是,把嵌人式系統硬件和操作系統設計成可裁剪的,以便使
嵌入式系統開發入員根據實際應用需要來量體裁衣,去除冗余,從而使系統在滿足應用要
求的前提下達到最精簡的配置。
●可靠性高。由于有些嵌入式系統所承擔的計算任務涉及產品質量、人身設各安全、國
家機密等重大事務,加之有些嵌入式系統的宿主對象要工作在無人值守的場合,例如危險
性高的工業環境中、內嵌有嵌入式系統的儀器儀表中、在人際罕至的氣象檢測系統中以及
為偵察敵方行動的小型智能裝置中等。所以與普通系統相比較,對嵌入式系統可靠性的要
求極高。
●功耗低。有很多嵌入式系統的宿主對象都是一些小型應用系統,例如移動電話、PDA、
MP3、飛機、艦船、數碼相機等,這些設各不可能配各容量較大的電源,因此低功耗一直
是嵌入式系統最求的目標。當然也是為了降低系統的功耗,嵌入式系統中的軟件一般不存
儲于磁盤等載體中,而都固化在存儲器芯片或單片系統的存儲器之中。
1.3 嵌入式系統工程師角色描述
圖 1-6 顯示的是采用嵌入式Linux 作為操作系統的嵌入式產品,針對這樣的產品,其
開發流程如圖1-7。
1.3.1 嵌入式應用工程師工作內容與所需知識點
從圖1-7 可以知道,嵌入式應用工程師主要從事與產品相關的嵌入式Linux 應用程序
開發,需要具備的技能主要有:
??C/C++語言
??嵌入式 Linux環境搭建
??嵌入式 Linux調試技術
??Linux文件編程技術
??Linux多線程編程技術
??Linux多進程編程技術
??Linux進程間通訊技術
??Linux網絡編程技術
對于從事圖形化應用程序的嵌入式工程師來說,還需具備下面兩項的一項:
??QT編程技術
??Android 應用程序開發技術
1.3.2 嵌入式系統工程師工作內容與所需知識點
從圖1-7 可以知道,嵌入式系統工程師主要嵌入式系統的移植,驅動程序開發等偏底層的
工作,需要具備的技能主要有:
??至少精通一種嵌入式CPU,如ARM
??至少精通一種Bootloader,如U-Boot
??Linux字符設備驅動程序開發技術
??Linux網卡驅動程序開發技能
??串口驅動程序開發技術
??USB 驅動程序開發技術
??LCD 驅動程序開發技術
??了解Linux進程管理子系統
??了解Linux內存管理子系統
??了解Linux內核啟動流程
?
轉載于:https://www.cnblogs.com/FORFISH/p/5188569.html
總結
以上是生活随笔為你收集整理的1.嵌入式系统的简介的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 用Jquery控制文本框只能输入数字和字
- 下一篇: XML总结