北京大學軟件與微電子學院嵌入式系統工程系

關於嵌入式系統方向(集成電路方向也可參考)linux

嵌入式系統無疑是當前最熱門最有發展前途的IT應用領域之一。嵌入式系統用在一些特定專用設備上,一般這些設備的硬件資源(如處理器、存儲器等)很是有限,而且對成本很敏感,有時對實時響應要求很高等。特別是隨着消費家電的智能化,嵌入式更顯重要。像咱們日常常見到的手機、PDA、電子字典、可視電話、 VCD/DVD/MP3 Player、數字相機(DC)、數字攝像機(DV)、U-Disk、機頂盒(Set Top Box)、高清電視(HDTV)、遊戲機、智能玩具、交換機、路由器、數控設備或儀表、汽車電子、家電控制系統、醫療儀器、航天航空設備等等都是典型的嵌入式系統。嵌入式將會是咱們數字化生存的基礎,一臺PC裏其實就已經嵌入了10幾個單片機,一輛高檔轎車大約要用到六七十個單片機;嵌入式處理器無所不在,無處不在,全世界的年產量超過100億片,這是怎樣驚人的數字呀!web

嵌入式系統是軟硬結合的東西,搞嵌入式開發的人有兩類。算法

一類是學電子工程、通訊工程等偏硬件專業出身的人,他們主要是搞硬件設計,有時要開發一些與硬件關係最密切的最底層軟件,如BootLoader、 Board Support Package(像PC的BIOS同樣,往下驅動硬件,往上支持操做系統),最初級的硬件驅動程序等。他們的優點是對硬件原理很是清楚,不足是他們更擅長定義各類硬件接口,但對複雜軟件系統每每力不從心(例如嵌入式操做系統原理和複雜應用軟件等)。數據庫

另外一類是學軟件、計算機專業出身的人,主要從事嵌入式操做系統和應用軟件的開發。若是咱們學軟件的人對硬原理和接口有較好的掌握,咱們徹底也可寫BSP和硬件驅動程序。嵌入式硬件設計完後,各類功能就全靠軟件來實現了,嵌入式設備的增值很大程度上取決於嵌入式軟件,這佔了嵌入式系統的最主要工做(目前有不少公司將硬件設計包給了專門的硬件公司,稍複雜的硬件都交給臺灣或國外公司設計,國內的硬件設計力量很弱,不少嵌入式公司本身只負責開發軟件,由於公司都知道,嵌入式產品的差別很大程度在軟件上,在軟件方面是最有"花頭"可作的),因此咱們搞軟件的人徹底不用擔憂咱們在嵌入式市場上的用武之地,越是智能設備越是複雜系統,軟件越起關鍵做用,並且這是目前的趨勢。編程

從事嵌入式軟件開發的好處是:服務器

(1)目前國內外這方面的人都很稀缺。一方面,是由於這一領域入門門檻較高,不只要懂較底層軟件(例如操做系統級、驅動程序級軟件),對軟件專業水平要求較高(嵌入式系統對軟件設計的時間和空間效率要求較高),並且必須懂得硬件的工做原理,因此非專業IT人員很難切入這一領域;另外一方面,是由於這一領域較新,目前發展太快,不少軟硬件技術出現時間不長或正在出現(如ARM處理器、嵌入式操做系統、MPEG技術、無線通訊協議等),掌握這些新技術的人固然很找。嵌入式人才稀缺,身價天然就高,越有經驗價格就越高。其實嵌入式人才稀少,根本緣由多是大多數人無條件接觸,這須要相應的嵌入式開發板和軟件,另外須要有經驗的人進行指導開發流程。網絡

(2)與企業計算等應用軟件不一樣,嵌入式領域人才的工做強度一般低一些(但收入不低)。搞企業應用軟件的IT企業,這個用戶的系統搞完了,又得去搞下一個用戶的,並且每一個用戶的需求和完成時間都得按客戶要求改變,每每疲於奔命,重複勞動。相比而言,搞嵌入式系統的公司,都有本身的產品計劃,按本身的節奏行事。所開發的產品一般是通用的,不會因客戶的不一樣而修改。一個產品型號開發完了,每每有較長一段空閒時間(或只是對軟件進行一些小修補),有時間進行充電和休整。另外,從事嵌入式軟件的每一個人工做範圍相對狹窄,所涉及的專業技術範圍就是那些(ARM、RTOS、MPEG、802.11等),時間長了這些東西會越搞越有經驗,賣賣老本,幾句指導也夠讓那些初入道者琢磨半年的。若搞應用軟件,可能下一個客戶要換成一個徹底不一樣的軟件開發平臺,那就苦了。數據結構

(3)哪天若想創業,搞自已的產品,那麼嵌入式是一個不錯的主意,這可不像應用軟件那樣容易被盜版。咱們這屆有個同窗本身有點此類小生意,具體作什麼的沒細問, 他每個月要進貨幾千片8位單片機,如今本身已經有車有房了。還有如今開發的飯館用的點菜PDA(WinCE平臺,可無線連網和上網),聽說銷路不錯,飯館點點PDA讓客戶點菜,多顯派頭檔次。這些PDA的硬件設計通常都是請其它公司給訂作(這叫「貼牌」:OEM),都是通用的硬件,咱們只管設計軟件就變成本身的產品了。app

從事嵌入式軟件開發的缺點是:數據庫設計

(1) 入門起點較高,所用到的技術每每都有必定難度,若軟硬件基礎很差,特別是操做系統級軟件功底不深,則可能不適於此行。

(2)這方面的企業數量要遠少於企業計算類企業。特別是從事嵌入式的小企業數量較多(小企業要搞本身的產品創業),知名大公司較少(搞嵌入式的大公司主要有 Intel、Motorola、TI、Philip、Samsung、Sony、Futjtum、Bell-Alcatel、意法半導體、 Microtek、研華、華爲、中興通訊、上廣電等製造類企業)。這些企業的習慣思惟方式是到電子、通訊等偏硬專業找人。

(3)有少數公司常常要碩士以上的人搞嵌入式,主要是基於嵌入式的難度。但大多數公司也並沒有此要求,只要有經驗便可。

同窗們若學習嵌入式,顯然應偏重於嵌入式軟件,特別是嵌入式操做系統方面,應是咱們的強項。

對於搞嵌入式軟件的人,最重要的技術顯然是(實際上不少公司的招聘廣告上就是這樣寫的):

(1) 掌握主流嵌入式微處理器的結構與原理

(2) 必須掌握一個嵌入式操做系統

(3) 必須熟悉嵌入式軟件開發流程並至少作過一個嵌入式軟件項目。

在嵌入式軟件方面最重要的課程包括:

(1)嵌入式微處理器結構與應用:這是一門嵌入式硬件基礎課程,咱們說過,嵌入式是軟硬件結合的技術,搞嵌入式軟件的人應對ARM處理器工做原理和接口技術有充分了解,包括ARM的彙編指令系統。若不瞭解處理器原理,怎麼能控制硬件工做,怎麼能寫出節省內存又運行高速的最優代碼(嵌入式軟件設計特別講究時空效率),怎麼能寫出驅動程序(驅動程序都是與硬件打交道的)?不少公司招聘嵌入式軟件人員時都要求熟悉ARM處理器,未來若同窗到公司中從事嵌入式軟件開發,公司都會給你一本該設備的硬件規格說明書 (xxx Specification),你必須能看懂其中的內存分佈和端口使用等最基本的說明(就像x86彙編同樣),不然怎麼設計軟件。有些同窗以爲嵌入式處理器課程較枯燥,這主要是硬件課程都較抽象的緣由。還有同窗對ARM彙編不感興趣,覺得嵌入式開發用C語言就足夠了。其實不該僅是將彙編語言當成一個程序設計語言,學彙編主要是爲了掌握處理器工做原理的。一個不熟悉彙編語言的人,怎麼能在該處理器寫出最優的C語言代碼。在嵌入式開發的一些關鍵部分,有時還必須寫彙編,如Bootloader等(可能還包括BSP)。特別是在對速度有極高要求的場合(如DSP處理器的高速圖像採集和圖像解壓縮),目前還會用到彙編寫程序的,儘管用到的機會相對C要小得多。當你在一個嵌入式公司工做時,在查看描述原理的手冊時,可能不少都是用匯編描述的,這是由於不少硬件設計人員只會寫或者喜歡用匯編描述,此時你就必須看懂彙編程序,不然軟硬件人員可能就沒法交流。不少嵌入式職位招聘時都要求熟悉彙編。

[小知識] 目前嵌入式處理器常見的有ARM、PowerPC、MIPS、Motorola 68K、ColdFire(冷火)等,但ARM佔據了絕對主流(有資料說手機中幾乎90%都是ARM處理器)。ARM是一個只賣知識產權的公司,目前得到購買了ARM CPU核受權許可的大公司不少,包括Intel、Samsung、Amstel、Motorola、Philip等,他們都在ARM CPU核的基礎上進行了一些外圍擴展,造成本身的處理器(如Samsung S<?xml:namespace prefix = st1 />2410,Motorola i.MXL9328等處理器都是採用ARM 9內核,指令一級是相同的)。而衆多中小公司又購買了這些處理器,設計了各類各樣的開發板,如華恆等國內不少著名嵌入式公司都生產基於Samsung S2410的開發板,供最終用戶使用或供教學實驗。在ARM這個食物鏈上,ARM公司是大魚,Intel、Samsung等公司是小魚,而華恆等則是蝦米,最終用戶(咱們這些要採購嵌入式開發板的)則是喂蝦米的。Intel早期生產的是低端ARM(Strong ARM,至關於ARM 7),如今轉向主要生產高端ARM(即Intel Xscale處理器,屬於ARMv5家族,主要用在高端PDA上,如HP和DELL生產的 PDA都採用Intel Xscale,價格較高)。目前應用最多的是ARM 7和ARM 9兩類處理器。 ARM 7較便宜,可跑uclinux(是一個不支持高級內存管理功能的嵌入式Linux系統)、Vxworks、uc/os II等實時操做系統,但因處理器不帶內存管理單元MMU(無內存分頁和地址映射機制,因此不能使用虛擬內存),因此不能跑Windows CE,另外通用Linux中的某些內存管理功能也不能用在ARM 7上。ARM 9大都是一個帶MMU功能的高端處理器,可跑WinCE或通用Linux的大多數功能。ARM7和ARM9的區別是在與體系結構上,前者是馮·諾伊曼結構,後者是哈佛結構——指令和數據總線是分開的。以上是個人一點了解,可能有不對的地方。咱們學院有十幾套ARM 7開發系統(採用Samsung S44b0x開發板,主要用於嵌入式處理器結構、實時操做系統等課程實驗用),ARM 9的系統好象也已經到了(採用的芯片我不知道也沒去問),還有之前的十幾套MPC860開發板(據說價格都很貴,很容易損壞),同窗應愛護使用和珍惜這樣的實驗機會。

(2) 嵌入式操做系統類課程

除了WinCE的實時性稍差外,大多數嵌入式操做系統的實時性都很強,因此也可稱爲實時操做系統Real TimeOperating System.從事嵌入式的人至少須掌握一個嵌入式操做系統(固然掌握兩個更好),這在嵌入式的全部技術中是最爲關鍵的了。目前最重要的RTOS主要包括:

第一類、傳統的經典RTOS:最主要的即是Vxworks操做系統,以及其Tornado開發平臺。Vxworks因出現稍早,實時性很強(聽說可在1ms內響應外部事件請求),而且內核可極微(聽說最小可8K),可靠性較高等,因此在北美,Vxworks佔據了嵌入式系統的多半疆山。特別是在通訊設備等實時性要求較高的系統中,幾乎非Vxworks莫屬。Vxworks的不少概念和技術都和Linux很相似,主要是C語言開發。像Bell- alcatel、Lucent、華爲等通訊企業在開發產品時,Vxworks用得不少。但Vxworks因價格很高,因此一些小公司或小產品中每每用不起。目前不少公司都在往嵌入式Linux轉(據說華爲目前正在這樣轉)。但不管如何,Vxworks在一段長時間內還是不可動搖的。與Vxworks相似的稍有名的實時操做系統還有pSOS、QNX、Nucleus等RTOS。

第二類、嵌入式Linux操做系統:Linux的前途除做爲服務器操做系統外,最成功的即是在嵌入式領域的應用,緣由固然是免費、開源、支持軟件多、呼擁者衆,這樣嵌入式產品成本會低。Linux自己不是一個爲嵌入式設計的操做系統,不是微內核的,而且實時性不強。

目前應用在嵌入式領域的Linux系統主要有兩類:

一類是專爲嵌入式設計的已被裁減過的Linux系統,最經常使用的是uClinux(不帶MMU功能),目前佔較大應用份額,可在ARM7上跑;另外一類是跑在ARM 9上的,通常是將Linux 內核移植在其上,可以使用更多的Linux功能(固然uClinux更可跑在ARM 9上)。不少人預測,嵌入式Linux預計將佔嵌入式操做系統的50%以上份額,很是重要。缺點是熟悉Linux的人太少,開發難度稍大。另外,目前咱們能發現不少教材和不少大學都以ucOS/II爲教學用實時操做系統,這主要是因爲ucOS/II較簡單,且開源,很是適合入門者學習實時操做系統原理,但因爲ucOS/II功能有限,實用用得較少。何況熟悉了Linux開發,不只在嵌入式領域有用,對開發Linux應用軟件,對加深操做系統的認識也有幫助,可謂一舉多得。據我所知,目前Intel、Philip都在大搞ARM+LINUX的嵌入式開發,Fujitum則是在本身的處理器上大搞Linux 開發。目前在嵌入式Linux領域,如下幾個方面的人特別難找,一是能將Linux移植到某個新型號的開發版上;二是能寫Linux驅動程序的人;

三是熟悉Linux

內核裁減和優化的人。不過LINUX有一個硬傷,就是沒有WINDOWS那樣的友好方便美觀的交互界面,否則微軟帝國早就守不住了。

第三類、 Windows CE嵌入式操做系統:Microsoft也看準了嵌入式的巨大市場,MS永遠是最厲害的,WinCE出來只有幾年時間,但目前已佔據了很大市場份額,特別是在PDA、手機、顯示儀表等界面要求較高或者要求快速開發的場合,WinCE目前已很流行(聽說有一家賣工控機的公司板子賣得太好,以致來不及爲客戶裁減WinCE)。WinCE目前主要爲4.2版(.NET),開發平臺主要爲WinCE Platform Builder,有時也用EVC環境開發一些較上層的應用,因爲WinCE開發都是你們熟悉的VC++環境,因此我院學過Windows程序設計課程的同窗都不會有多大難度,這也是WinCE容易被人們接受的緣由,開發環境方便快速,微軟的強大技術支持,WinCE開發難度遠低於嵌入式Linux。對於急於完成,不想拿嵌入式Linux冒險的開發場合,WinCE是最合適了(找嵌入式Linux的人可沒那麼好找的),畢竟公司不能像學生學習那樣試試看,保證開發成功更重要。根據不一樣的側重點 ,WinCE還有兩個特殊版本,一個是MS PocketPC操做系統專用於PDA上(掌上電腦),另外一個是MS SmartPhone操做系統用於智能手機上(帶PDA功能的手機),二者也都屬於WinCE平臺。在PDA和手機市場上,除WinCE外,著名的PDA 嵌入式操做系統還有Palm OS(因出現很早,頗有名)、Symbian等,但在WinCE的強勁衝擊下,Palm和Symbian來日還能有多長?同窗學過VC++後再學 WinCE,很是方便天然,經過學習WinCE一樣也可瞭解嵌入式軟件的通常開發過程,對Linux有害怕心理的同窗也很合適。很顯然,嵌入式Linux 永遠不可能替代WinCE,並且未來誰佔份額大還很難講,畢竟不少人更願意接受MS的平臺,就像各國政府都在大力推LINUX已好長時間,但你能看到幾個在PC機上真正使用LINUX的用戶?據我觀察,目前在嵌入式平臺上,LINUX是叫得最響,但仍是WinCE實際用得更多.嵌入式LINUX可能更多地是一些有長遠產品計劃的公司,爲下降成本而進行長遠考慮.WinCE和多媒體(如MPEG技術)是微軟亞洲工程院目前作得較多的項目領域之一,如今社會很須要精通WinCE的人。如今有WINCE的智能手機,金山詞霸、WORD、EXCEL、REGEDIT等竟然都有smartphone版的, PC上的MP三、DOC等竟然在download時均可被自動轉換成smartphone格式,很爽的。徹底可用Windows CE本身開發一些須要的程序download到本身的手機上。如今市面銷售PDA智能手機火爆,MS老是財源滾滾。

總結關於嵌入式操做系統類課程,若你以爲本身功底較深且能鑽研下去,則可去學嵌入式Linux;若你以爲本身VC++功底較好且想短平快地學嵌入式開發,自學WINCE是很是好的選擇。

------------------------------

 

培養目標

  嵌入式系統工程系面向電子與信息產業培養嵌入式系統,尤爲是嵌入式軟件工程、技術開發和項目管理所需的高層次、實用型、複合交叉型國際化人才。經過課堂教學與實驗、綜合項目練習、工業實習以及前沿技術講座等多種形式,學生將掌握紮實的嵌入式系統尤爲是嵌入式軟件工程理論、技術及主流開發、調試和測試工具,並具有嵌入式系統軟件、中間件、應用軟件及硬件的研究開發能力,以及在移動通訊服務終端、家庭網絡和數字家電等領域的嵌入式系統開發能力。畢業學生有能力適應嵌入式系統各種產品的市場需求,成爲企業急需的掌握嵌入式系統,尤爲是嵌入式軟件工程技術的研發和管理複合型人才。根據須要,優秀學生可繼續攻讀本學科以及相關技術學科、交叉學科的博士學位。

專業方向

      嵌入式系共分三個專業方向:嵌入式系統工程、移動通訊服務終端、數字家庭技術。

      嵌入式系統工程:經過課堂教學與實踐、畢業實習以及前沿技術講座等多種形式,學生將掌握紮實的嵌入式系統尤爲是嵌入式軟件工程理論及各類開發技術、調試和測試工具,並具有嵌入式系統軟件、中間件和應用軟件及硬件研究開發能力。畢業後學生有能力適應嵌入式系統產品市場需求,成爲企業急需的掌握嵌入式系統尤爲是嵌入式軟件工程技術的高級開發、研發與管理的複合型人才。

      移動通訊服務終端:經過課堂教學與實踐、畢業實習以及前沿技術講座等多種式學生將掌握紮實的嵌入式系統尤爲是嵌入式軟件工程理論及各類技術及各類開發調試和測試工具,並具有移動通訊服務終端系統軟件、中間件和應用軟件研究開發能力、深刻的嵌入式通訊終端產品開發能力。畢業後學生有能力適應移動通訊產品市場需求,成爲移動通訊企業所急需的移動通訊服務終端的高級開發、研究與管理的複合型人才。

      數字家庭技術:經過課堂教學與實踐、畢業實習以及前沿技術講座等多種形式,學生將掌握紮實的嵌入式系統尤爲是嵌入式軟件工程理論、寬帶通訊技術及相關開發、調試和測試工具,並具有數字家庭產品系統軟件、中間件和應用軟件的研究開發能力。畢業後學生有能力適應數字家庭產品市場需求,成爲數字家庭產品企業所急需的數字家庭產品的高級開發、研究與管理的複合型人才。

嵌入式系統系各學期開課計劃 基礎課程(共 1門,  3學分)

序號

課程編號

課程名稱

開課學期

學分

任課教師

適用系

1

0A701

嵌入式系統概論

1

3

柳翔

本系

專業核心課程(共3門, 9學分)

序號

課程編號

課程名稱

開課學期

學分

任課教師

適用系

1

0B701

嵌入式微處理器系統

1

3

林金龍

本系 集成系

2

0B702

嵌入式操做系統

2

3

陳向羣、方躍堅

本系

3

0B703

嵌入式軟件開發技術與工具

2

3

柳翔、張齊勳

本系

專業選修課程(共4門,10 學分)

序號

課程編號

課程名稱

開課學期

學分

任課教師

適用系

1

0C702

DSP軟件開發技術與工具

1

3

周可風、方躍堅

本系

2

0C703

嵌入式系統設計

2

3

林金龍

本系

3

0C704

傳感器網絡技術

2

2

孫利民、李長明

本系

4

0C705

WinCE應用系統開發

2

2

段曉輝、張齊勳

本系

領域專業課程(共 4門,9 學分)

序號

課程編號

課程名稱

開課學期

學分

任課教師

適用系

1

0D700

嵌入式系統綜合實踐

3

3

導師小組

本系

2

0D701

移動通訊服務終端

3

2

柳翔、張齊勳

本系

3

0D702

數字家庭技術

3

2

段曉輝、方躍堅

本系 通訊系

4

0D703

嵌入式系統專題

3

2

林金龍

本系

 

 

考研 北大軟件與微電子學院嵌入式系統開發系相關信息

2010-05-08 11:01慌雨橋 | 分類:院校信息 | 瀏覽1296次
我如今學的是嵌入式開發 但願進入這個系科 求教 最近一年 的複試內容(學校的出卷內容) 有離散數學嗎 有模電數電嗎 有英語聽力嗎 都有些什麼 指定哪些書  請說具體點 複製的口述的都行
 
2010-05-13 16:14提問者採納
 
嵌入式C/C++編程,數據結構、算法和代碼優化,MySQL/SQLite數據庫設計,嵌入式Linux體系結構接口技術,ARM體系結構,Android應用編程,嵌入式Linux系統和內核編程,Android內核實例和驅動編程,WinCE和.Net Micro FrameWork,嵌入式Linux項目實訓—編碼溝通.基本就這些吧
相關文章
相關標籤/搜索