嵌入式軟件開(kāi)發(fā)技術教程(嵌入式軟件的開(kāi)發(fā)過(guò)程與架構)

軟件開(kāi)發(fā) 2413
今天給各位分享嵌入式軟件開(kāi)發(fā)技術教程的知識,其中也會(huì)對(duì)嵌入式軟件的開(kāi)發(fā)過(guò)程與架構進(jìn)行解釋,如果能(néng)碰巧解決你現在面(miàn)臨的問題,别忘了關注本站,現在開(kāi)始吧!本文目錄一覽: 1、嵌入式新手入門最佳視頻教程

今天給各位分享嵌入式軟件開(kāi)發(fā)技術教程的知識,其中也會(huì)對(duì)嵌入式軟件的開(kāi)發(fā)過(guò)程與架構進(jìn)行解釋,如果能(néng)碰巧解決你現在面(miàn)臨的問題,别忘了關注本站,現在開(kāi)始吧!

本文目錄一覽:

嵌入式新手入門最佳視頻教程

原文鏈接:網頁鏈接

我是1999年上的大學(xué),物理專業。在大一時,我們班裡(lǐ)普遍彌漫著(zhe)對(duì)未來的不安,不知道(dào)學(xué)習了物理後(hòu)出去能(néng)做什麼(me)。你當下的經(jīng)曆、當下的學(xué)習,在未來的一天肯定會(huì)影響到你。畢業後(hòu)我們也各自找到了自己的職業:出國(guó)深造轉行做金融、留校任教做科研、設計芯片、寫程序、創辦公司等等,這(zhè)一切都(dōu)離不開(kāi)在校時學(xué)到的基礎技能(néng)(數學(xué)、IT、電子電路)、受過(guò)煅煉的自學(xué)能(néng)力。

所以,各位正在迷茫的在校生,各位正在嘗試轉行的程序員,未來一定有你的位置,是好(hǎo)是壞取決于你當下的努力與積累。

我不能(néng)預言幾年後(hòu)什麼(me)行業會(huì)熱門,也不能(néng)保證你照著(zhe)本文學(xué)習可以發(fā)财。我隻是一個有十幾年經(jīng)驗的程序員,給對(duì)編程有興趣的你,提供一些建議。

1.程序員的三大方向(xiàng)

程序員的方向(xiàng),一般可以分爲3類:專業領域、業務領域、操作系統領域。你了解它們後(hòu),按興趣選擇吧。

對(duì)于專業領域,我提供不了建議。

業務,也就是應用程序,它跟操作系統并不是截然分開(kāi)的:

①開(kāi)發(fā)實體産品時,應用程序寫得好(hǎo)的人,有時候需要操作系統的知識,比如調度優先級的設置、知道(dào)某些函數可能(néng)會(huì)令進(jìn)程休眠。

②寫應用程序的人進(jìn)階爲系統工程師時,他需要從上到下都(dōu)了解,這(zhè)時候就需要有操作系統領域的知識了,否則,你怎麼(me)設計整個系統的方案呢?

③做應用程序的人,需要了解行業的需求,理解業務的邏輯。所以,當領導的人,多是做應用的。一旦鑽入了某個行業,很難換行業。

④而操作系統領域,做好(hǎo)了這(zhè)是通殺各行業:他隻負責底層系統,在上面(miàn)開(kāi)發(fā)什麼(me)業務跟他沒(méi)關系。這(zhè)行很多是技術宅,行業專家。

⑤操作系統和業務之間并沒(méi)有一個界線。有操作系統經(jīng)驗,再去做應用,你會(huì)對(duì)系統知根知底,碰到問題時都(dōu)有解決思路。有了業務經(jīng)驗,你再了解一下操作系統,很快就可以組成(chéng)一個團隊自立門戶,至少做個CTO沒(méi)問題。

1.1 專業領域

它又可以分爲下面(miàn)2類。

1.1.1 學(xué)術研究

比如語音、圖像處理、人工智能(néng),這(zhè)類工作需要你有比較強的理論知識,我傾向(xiàng)于認爲這(zhè)類人是“科學(xué)家”,他們鑽研多年,很多時候是在做學(xué)術研究。

在嵌入式領域,需要把他們的成(chéng)果用某種(zhǒng)算法表達出來,針對(duì)某種(zhǒng)芯片進(jìn)行優化,這(zhè)部分工作也許有專人來做。

1.1.2 工程實現

也有這(zhè)樣(yàng)一類人,他們懂得這(zhè)些專業領域的概念,但是沒(méi)有深入鑽研。可以使用各類開(kāi)源資料實現某個目标,做出産品。比如圖像處理,他懂得用opencv裡(lǐ)幾百個複雜函數來實現頭像識别。有時候還(hái)可以根據具體芯片來優化這(zhè)些函數。

“專業領域”不是我的菜,如果你要做這(zhè)一塊,我想最好(hǎo)的入門方法是在學(xué)校學(xué)習研究生、博士課程。

1.2 業務領域

換句話說,就是應用程序,這(zhè)又可以分爲下面(miàn)2類。

1.2.1 界面(miàn)顯示

做産品當然需要好(hǎo)的界面(miàn),但是,不是說它不重要,是沒(méi)什麼(me)發(fā)展後(hòu)勁。

現在的熱門詞是Android APP和IOS APP開(kāi)發(fā)。你不要被(bèi)Android、IOS兩(liǎng)個詞騙了,它們跟以前的VC、VB是同一路貨色,隻是、僅僅是一套GUI控件的實現。

希望沒(méi)有冒犯到你,我有理由。

一個程序需要有GUI界面(miàn),但是程序的内在邏輯才是核心。Android、IOS的開(kāi)發(fā)工具給我們簡化了GUI的開(kāi)發(fā),并提供了這(zhè)些控件的交互機制,封裝并提供了一些服務(比如網絡傳輸)。但是程序内部的業務邏輯、對(duì)視頻圖像聲音的處理等等,這(zhè)才是核心。另外别忘了服務器那邊的後(hòu)台程序:怎樣(yàng)更安全地保存數據、保護客戶的隐私,怎樣(yàng)處理成(chéng)千上萬上百萬的并發(fā)訪問,等等,這(zhè)也是核心。

但是,從Android、IOS APP入門入行,這(zhè)很快!如果你是大四,急于找到一份工作,那麼(me)花上1、2個月去學(xué)習Android或IOS,應該容易找到工作,畢竟APP的需求永遠是最大的,現在這(zhè)兩(liǎng)門技術還(hái)算熱門。在2011、2012年左右,Android程序員的起(qǐ)薪挺高,然後(hòu)開(kāi)始下滑。Android APP的入門基本隻要1個月,所以懂的人也越來越多。2013、2014年,IOS開(kāi)發(fā)的工資明顯比Android高了,于是各類IOS培訓也火曝起(qǐ)來。中華大地向(xiàng)來不缺速成(chéng)人才,估計再過(guò)一陣子IOS工程師也是白菜價了。

會(huì)Android、IOS隻是基本要求,不信去51job搜搜Android或IOS,職位要求裡(lǐ)肯定其他要求。

1.2.2 業務邏輯

舉個簡單例子,做一個打卡軟件,你需要考慮這(zhè)些東西:

①正常流程是上班下班時都(dōu)要打卡

②有人忘記了怎麼(me)辦?作爲異常記錄在案,推送給管理員

③請假時怎麼(me)處理?

④加班怎麼(me)處理?

對(duì)于更複雜的例子,視頻會(huì)議系統裡(lǐ),各個模塊怎麼(me)對(duì)接,各類協議怎麼(me)兼容,你不深入這(zhè)個行業,你根本搞不清楚。

應用開(kāi)發(fā)的職位永遠是最多的,入門門檻也低。基本上隻要你會(huì)C語言,面(miàn)試時表現比較得體,一般公司都(dōu)會(huì)給你機會(huì)。因爲:

①你進(jìn)公司後(hòu),還(hái)需要重新培訓你:熟悉它們的業務邏輯。

②你要做的,基本也就是一個個模塊,框架都(dōu)有人給你定好(hǎo)了,你去填代碼就可以了。

說點讓你高興的事(shì):軟件公司裡(lǐ),做領導的基本都(dōu)是寫應用程序的(當然還(hái)有做市場的)。寫應用程序的人,對(duì)外可以研究市場接待客戶,對(duì)内可以管理程序員完成(chéng)開(kāi)發(fā),不讓他做領導讓誰做?

如果你的志向(xiàng)是寫應用程序,那麼(me)我建議你先練好(hǎo)基本功:數據結構、算法是必備,然後(hòu)憑興趣選擇數據庫、網絡編程等等進(jìn)行深入鑽研。

最後(hòu),選擇你看好(hǎo)的、感興趣的行業深耕個10年吧。做應用開(kāi)發(fā)的人選擇了某個行業,後(hòu)面(miàn)是很難換行業的,選行很重要!

1.3 操作系統領域

UCOS太簡單,VxWorks太貴太專業,Windows不玩嵌入式了,IOS不開(kāi)源,所以對(duì)于操作系統領域我們也隻能(néng)玩Linux了。

在嵌入式領域Linux一家獨大!

Android呢?Android跟QT一樣(yàng),都(dōu)是一套GUI系統。隻是Google的實力太強了,現在Android無處不在,所以很多時候Linux+Android成(chéng)了标配。注意,在這(zhè)裡(lǐ)我們關心的是Android的整個系統、裡(lǐ)面(miàn)的機制,而不是學(xué)習幾個API然後(hòu)開(kāi)發(fā)界面(miàn)程序。操作系統領域所包含的内容,簡單地說,就是制作出一台裝好(hǎo)系統的專用“電腦”,可以分爲:

①爲産品規劃硬件:

按需求、性能(néng)、成(chéng)本選擇主芯片,搭配周邊外設,交由硬件開(kāi)發(fā)人員設計。

②給單闆制作、安裝操作系統、編寫驅動

③定制維護、升級等系統方案

④還(hái)可能(néng)要配置、安裝Android等GUI系統:

⑤爲應用開(kāi)發(fā)人員配置開(kāi)發(fā)環境

⑥從系統角度解決疑難問題

這(zhè)個領域,通常被(bèi)稱爲“底層系統”或是“驅動開(kāi)發(fā)”。

先解決2個常見誤區:

①這(zhè)份工作是寫驅動程序嗎?

看看上面(miàn)羅列的6點,應該說,它包含驅動開(kāi)發(fā),但遠遠不隻有驅動開(kāi)發(fā)。

②我們還(hái)需要寫驅動嗎?不是有原廠嗎?或者隻需要改改就可以?

經(jīng)常有人說,芯片原廠都(dōu)做好(hǎo)驅動了,拿過(guò)來改改就可以了。如果,你的硬件跟原廠的公闆完全一樣(yàng),原廠源碼毫無BUG,不想優化性能(néng)、削減成(chéng)本,不想做一些有特色的産品,那這(zhè)話是正确的。

但是在這(zhè)個不創新就是找死的年代,可能(néng)嗎?!原因有二:

①即使隻是修改代碼,能(néng)修改的前提是能(néng)理解;能(néng)理解的最好(hǎo)煅煉方法是從零寫出若幹驅動程序。

②很多時候,需要你深度定制系統。

以前做聯發(fā)科手機隻需要改改界面(miàn)就可以出貨了,現在山寨廠一批批倒下。大家都(dōu)使用原廠的方案而不加修改時,最後(hòu)隻能(néng)拼成(chéng)本。

舉個例子,深圳有2家做交通攝像頭、監控攝像頭的廠家,他們曾經(jīng)找我做過(guò)4個項目:

①改進(jìn)廠家給的SD卡驅動性能(néng),使用DMA。

②換了Flash型号後(hòu),系統經(jīng)常出問題,需要修改驅動BUG。

③觸摸屏點擊不準,找原因,後(hòu)來發(fā)現是旁路電容導緻的。

④裁減成(chéng)本,把4片DDR換爲2片DDR,需要改bootloader對(duì)DDR的初始化。

這(zhè)些項目都(dōu)很急,搞不定就無法出貨,這(zhè)時候找原廠?除非你是中興華爲等大客戶,否則誰理你?

我在中興公司上班時,寫驅動的時間其實是很少的,大部分時間是調試:系統調優,上幫APP工程師、下幫硬件工程師查找問題。我們從廠家、網上得到的源碼,很多都(dōu)是标準的,當然可以直接用。但是在你的産品上也許優化一下更好(hǎo)。比如我們可以把攝像頭驅動和DMA驅動揉合起(qǐ)來,讓攝像頭的數據直接通過(guò)DMA發(fā)到DSP去。我們可以在軟件和硬件之間起(qǐ)橋梁作用,對(duì)于實體産品,有可能(néng)是軟件出問題也可能(néng)是硬件出問題,一般是底層系統工程師比較容易找出問題。

當硬件、軟件應用出現問題,他們解決不了時,從底層軟件角度給他們出主意,給他們提供工具。再比如方案選擇:芯片性能(néng)能(néng)否達标、可用的BSP是否完善等等,這(zhè)隻能(néng)由負責整個方案的人來考慮,他必須懂底層。

在操作系統領域,對(duì)知識的要求很多:

①懂硬件知識才能(néng)看懂電路圖

②英文好(hǎo)會(huì)看芯片手冊

③有編寫、移植驅動程序的能(néng)力

④對(duì)操作系統本身有一定的理解,才能(néng)解決各類疑難問題

⑤理解Android内部機制

⑥懂彙編、C語言、C++、JAVA

它絕對(duì)是一個大坑,沒(méi)有興趣、沒(méi)有毅力的人慎選。

①這(zhè)行的入門,絕對(duì)需要半年以上,即使全天學(xué)習也要半年。

②它的職位,絕對(duì)比APP的職位少

③并且你沒(méi)有1、2年經(jīng)驗,招你到公司後(hòu)一開(kāi)始你做的還(hái)是APP。

優點就是:

①學(xué)好(hǎo)後(hòu),行業通殺,想換行就換行;想自己做産品就自己做産品。

②相比做應用程序的人,不會(huì)被(bèi)經(jīng)常變動的需求搞得天天加班。

③門檻高,當然薪水相對(duì)就高。

操作系統領域,我認爲适合于這(zhè)些人:

①硬件工程師想轉軟件工程師,從底層軟件入門會(huì)比較好(hǎo)

②單片機工程師,想升級一下。會(huì)Linux底層的人肯定會(huì)單片機,會(huì)單片機的人不一定會(huì)Linux。

③時間充足的學(xué)生:如果你正讀大二大三,那麼(me)花上半年學(xué)習嵌入式Linux底層多有益處。

④想掌握整個系統的人,比如你正在公司裡(lǐ)寫APP,但是想升爲系統工程師,那麼(me)底層不得不學(xué)。

⑤想自己創業做實體産品的工程師,你有錢的話什麼(me)技術都(dōu)不用學(xué),但是如果沒(méi)錢又想做産品,那麼(me)Linux底層不得不學(xué)。

⑥做Linux APP的人,沒(méi)錯,他們也要學(xué)習。

這(zhè)部分人不需要深入,了解個大概就可以:bootloader是用來啓動内核,Linux的文件系統(第1個程序是什麼(me)、做什麼(me)、各目錄幹嘛用)、APP跟驅動程序的調用關系、工具鏈,有這(zhè)些概念就可以了

本文中,就把操作系統默認爲Linux,講講怎麼(me)學(xué)習嵌入式Linux+Android系統。

1.4 嵌入式Linux+Android系統包含哪些内容

嵌入式Linux系統包含哪些東西?不要急,舉一個例子你就知道(dào)了。

①電腦一開(kāi)機,那些界面(miàn)是誰顯示的?

是BIOS,它做什麼(me)?一些自檢,然後(hòu)從硬盤上讀入windows,并啓動它。

類似的,這(zhè)個BIOS對(duì)應于嵌入式Linux裡(lǐ)的bootloader。這(zhè)個bootloader要去Flash上讀入Linux内核,并啓動它。

②啓動windows的目的是什麼(me)?

當然運行應用程序以便上網、聊天什麼(me)的了。

這(zhè)些上網程序、聊天程序在哪?

在C盤、D盤上。

所以,windows要先識别出C盤、D盤。在Linux下我們稱之爲根文件系統。

③windows能(néng)識别出C盤、D盤,那麼(me)肯定有讀寫硬盤的能(néng)力。

這(zhè)個能(néng)力我們稱之爲驅動程序。當然不僅僅是操作硬盤,還(hái)有網卡、USB等等其他硬件。嵌入式Linux能(néng)從Flash上讀出并執行應用程序,肯定也得有Flash的驅動程序啊,當然也不僅僅是Flash。

簡單地說,嵌入式LINUX系統裡(lǐ)含有bootloader、内核、驅動程序、根文件系統、應用程序這(zhè)5大塊。而應用程序,我們又可以分爲:C/C++、Android。

所以,嵌入式Linux+Android系統包含以下6部分内容:

①bootloader

②Linux内核

③驅動程序

④使用C/C++編寫的應用程序

⑤Android系統本身

⑥Android應用程序

Android跟Linux的聯系實在太大了,它的應用是如此廣泛,學(xué)習了Linux之後(hòu)沒(méi)有理由停下來不學(xué)習Android。在大多數智能(néng)設備中,運行的是Linux操作系統;它上面(miàn)要麼(me)安裝有Android,要麼(me)可以跟Android手機互聯。現在,Linux+Android已成(chéng)标配。

2. 怎麼(me)學(xué)習嵌入式Linux操作系統

本文假設您是零基礎,以實用爲主,用最快的時間讓你入門;後(hòu)面(miàn)也會(huì)附上想深入學(xué)習時可以參考的資料。

在實際工作中,我們從事(shì)的是“操作系統”周邊的開(kāi)發(fā),并不會(huì)太深入學(xué)習、修改操作系統本身。

①操作系統具有進(jìn)程管理、存儲管理、文件管理和設備管理等功能(néng),這(zhè)些核心功能(néng)非常穩定可靠,基本上不需要我們修改代碼。我們隻需要針對(duì)自己的硬件完善驅動程序

②學(xué)習驅動時必定會(huì)涉及其他知識,比如存儲管理、進(jìn)程調度。當你深入理解了驅動程序後(hòu),也會(huì)加深對(duì)操作系統其他部分的理解

③Linux内核中大部分代碼都(dōu)是設備驅動程序,可以認爲Linux内核由各類驅動構成(chéng)

但是,要成(chéng)爲該領域的高手,一定要深入理解Linux操作系統本身,要去研讀它的源代碼。

在忙完工作,閑暇之餘,可以看看這(zhè)些書:

①趙炯的《linux内核完全注釋》,這(zhè)本比較薄,推薦這(zhè)本。他後(hòu)來又出了《Linux 内核完全剖析》,太厚了,搞不好(hǎo)看了後(hòu)面(miàn)就忘記前面(miàn)了。

②毛德操、胡希明的《LINUX核心源代碼情景分析》,此書分上下冊,巨厚無比。當作字典看即可:想深入理解某方面(miàn)的知識,就去看某章節。

③其他好(hǎo)書還(hái)有很多,我沒(méi)怎麼(me)看,沒(méi)有更多建議

基于快速入門,上手工作的目的,您先不用看上面(miàn)的書,先按本文學(xué)習。

2.1 入門路線圖

假設您是零基礎,我們規劃了如下入門路線圖。前面(miàn)的知識,是後(hòu)面(miàn)知識的基礎,建議按順序學(xué)習。每一部分,不一定需要學(xué)得很深入透徹,下面(miàn)分章節描述。

2.2 學(xué)習驅動程序之前的基礎知識

2.2.1 C語言

隻要是理工科專業的,似乎都(dōu)會(huì)教C語言。我見過(guò)很多C語言考試90、100分的,一上機就傻了,我懷疑他們都(dōu)沒(méi)在電腦上寫過(guò)程序。

理論再好(hǎo),沒(méi)有實踐不能(néng)幹活的話,公司招你去幹嘛?

反過(guò)來,實踐出真知,學(xué)習C語言,必須練練練、寫寫寫!

當你掌握基本語法後(hòu),就可以在電腦上練習一些C語言習題了;

當你寫過(guò)幾個C程序後(hòu),就可以進(jìn)入下一階段的裸機開(kāi)發(fā)了。

①不需要太深入

作爲快速入門,隻要你會(huì)編寫“Hello, world!”,會(huì)寫冒泡排序,會(huì)一些基礎的語法操作,暫時就夠了。

指針操作是重點,多練習;

不需要去學(xué)習過(guò)多的數據結構知識,隻需要掌握鏈表操作,其他不用學(xué)習,比如:隊列、二叉樹等等都(dōu)不用學(xué);不需要去學(xué)習任何的函數使用,比如文件操作、多線程編程、網絡編程等等;這(zhè)些知識,在編寫Linux應用程序時會(huì)用,但是在操作系統特别是驅動學(xué)習時,用不著(zhe)!

永往直前吧,以後(hòu)碰到不懂的C語言問題,我們再回過(guò)頭來學(xué)習。

在後(hòu)續的“裸機開(kāi)發(fā)”中,會(huì)讓你繼續練習C語言,那會(huì)更實戰化。

C語言是在寫代碼中精進(jìn)的。

②可以在Visual Studio下學(xué)習,也可以在Linux下學(xué)習,後(hòu)者需要掌握一些編譯命令,我們暫時沒(méi)有提供C語言的教程,找一本C語言書,網上找找免費的C語言視頻(主要看怎麼(me)搭建環境),就可以自學(xué)了。

2.2.2 PC Linux基本操作:

對(duì)于PC Linux,我們推薦使用Ubuntu,在它上面(miàn)安裝軟件非常簡便。

我們的工作模式通常是這(zhè)樣(yàng):在Windows下閱讀、編寫代碼,然後(hòu)把代碼上傳到PC Linux去編譯。實際上,Ubuntu的桌面(miàn)系統已經(jīng)很好(hǎo)用了,我們拿到各種(zhǒng)智能(néng)機可以很快上手,相信Ubuntu的桌面(miàn)系統也可以讓你很快上手。爲了提高工作效率,我們通常使用命令行來操作Ubuntu。

不用擔心,你前期隻需要掌握這(zhè)幾條命令就可以了,它們是如此簡單,我幹脆列出它們:

①cd : Change Directory(改變目錄)

cd 目錄名          // 進(jìn)入某個目錄cd ..            // cd “兩(liǎng)個點”:返回上一級目錄cd -             // cd “短橫”:返回上一次所在目錄

②pwd : Print Work Directory(打印當前目錄 顯示出當前工作目錄的絕對(duì)路徑)

③mkdir : Make Directory(創建目錄)

mkdir abc         // 創建文件夾abc

mkdir -p a/b/c    // 創建文件夾a,再a下創建文件夾b,再在b下創建文件夾c

④rm : Remove(删除目錄或文件)

rm  file     // 删除名爲file的文件

rm -rf dir   // 删除名爲dir的目錄

⑤ls : List(列出目錄内容)

⑥mount : 挂載

mount -t nfs -o nolock,vers=2 192.168.1.123:/work/nfs_root /mnt

mount -t yaffs /dev/mtdblock3 /mnt

⑦chown : Change owner(改變文件的屬主,即擁有者)

chown book:book /work -R  //對(duì)/work目錄及其下所有内容,屬主改爲book用戶,組改爲book

⑧chmod : Change mode(改變權限),下面(miàn)的例子很簡單粗暴

chmod 777 /work -R  // 對(duì)/work目錄及其下所有内容,權限改爲可讀、可寫、可執行

⑨vi : Linux下最常用的編輯命令,使用稍微複雜,請自己搜索用法。

要練習這(zhè)些命令,你可以進(jìn)入Ubuntu桌面(miàn)系統後(hòu),打開(kāi)終端輸入那些命令;或是用SecureCRT、putty等工具遠程登錄Ubuntu後(hòu)練習。

2.2.3 硬件知識

我們學(xué)習硬件知識的目的在于能(néng)看懂原理圖,看懂通信協議,看懂芯片手冊;不求能(néng)設計原理圖,更不求能(néng)設計電路闆。

對(duì)于正統的方法,你應該這(zhè)樣(yàng)學(xué)習:

①學(xué)習《微機原理》,理解一個計算機的組成(chéng)及各個部件的交互原理。

②學(xué)習《數字電路》,理解各種(zhǒng)門電路的原理及使用,還(hái)可以掌握一些邏輯運算(與、或等)。

③《模拟電路》?好(hǎo)吧,這(zhè)個不用學(xué),至少我在工作中基本用不到它,現在全忘光了。

就我個人經(jīng)驗來說,這(zhè)些課程是有用的,但是:

①原理有用,實戰性不強。

比如《微機原理》是基于x86系統,跟ARM闆子有很大差别,當然原理相通。

我是在接觸嵌入式編程後(hòu),才理解了這(zhè)些課程。

②每本書都(dōu)那麼(me)厚,内容都(dōu)很多,學(xué)習時間過(guò)長(cháng),自學(xué)有難度。

針對(duì)這(zhè)些校園教材的不足,并結合實際開(kāi)發(fā)過(guò)程中要用到的知識點,我們推出了《學(xué)前班_怎麼(me)看原理圖》的系列視頻:

學(xué)前班第1課第1節___怎麼(me)看原理圖之GPIO和門電路.wmv

學(xué)前班第1課第2.1節_怎麼(me)看原理圖之協議類接口之UART.wmv

學(xué)前班第1課第2.2節_怎麼(me)看原理圖之協議類接口之I2C.wmv

學(xué)前班第1課第2.3節_怎麼(me)看原理圖之協議類接口之SPI.wmv

學(xué)前班第1課第2.4節_怎麼(me)看原理圖之協議類接口之NAND Flash.wmv

學(xué)前班第1課第2.5節_怎麼(me)看原理圖之協議類接口之LCD.wmv

學(xué)前班第1課第3節___怎麼(me)看原理圖之内存類接口.wmv

學(xué)前班第1課第4.1節_怎麼(me)看原理圖之分析S3C2410開(kāi)發(fā)闆.wmv

學(xué)前班第1課第4.2節_怎麼(me)看原理圖之分析S3C2440開(kāi)發(fā)闆.wmv

學(xué)前班第1課第4.3節_怎麼(me)看原理圖之分析S3C6410開(kāi)發(fā)闆.wmv

即使你隻具備初中物理課的電路知識,我也希望能(néng)通過(guò)這(zhè)些視頻,讓你可以看懂原理圖,理解一些常見的通信協議;如果你想掌握更多的硬件知識,這(zhè)些視頻也可以起(qǐ)個索引作用,讓你知道(dào)缺乏什麼(me)知識。

這(zhè)些視頻所講到的硬件知識,將(jiāng)在《裸闆開(kāi)發(fā)》系列視頻中用到,到時可以相互對(duì)照著(zhe)看,加深理解。

2.2.4 要不要專門學(xué)習Windows下的單片機開(kāi)發(fā)

很多學(xué)校都(dōu)開(kāi)通了單片機的課程,很多人都(dōu)是從51單片機、AVR單片機,現在比較新的STM32單片機開(kāi)始接觸嵌入式領域,并且使用Windows下的開(kāi)發(fā)軟件,比如keil、MDK等。

問題來了,要不要專門學(xué)習Windows下的單片機開(kāi)發(fā)?

①如果這(zhè)是你們專業的必修課,那就學(xué)吧

②如果你的專業跟單片機密切相關,比如機械控制等,那就學(xué)吧

③如果你隻是想從單片機入門,然後(hòu)學(xué)習更廣闊的嵌入式Linux,那麼(me)放棄在Windows下學(xué)習單片機吧!

理由如下:

①Windows下的單片機學(xué)習,深度不夠

Windows下有很好(hǎo)的圖形界面(miàn)單片機開(kāi)發(fā)軟件,比如keil、MDK等。

它們封裝了很多技術細節,比如:

你隻會(huì)從main函數開(kāi)始編寫代碼,卻不知道(dào)上電後(hòu)第1條代碼是怎麼(me)執行的;

你可以編寫中斷處理函數,但是卻不知道(dào)它是怎麼(me)被(bèi)調用的;

你不知道(dào)程序怎麼(me)從Flash上被(bèi)讀入内存;

也不知道(dào)内存是怎麼(me)劃分使用的,不知道(dào)棧在哪、堆在哪;

當你想裁剪程序降低對(duì)Flash、内存的使用時,你無從下手;

當你新建一個文件時,它被(bèi)自動加入到工程裡(lǐ),但是其中的機理你完全不懂;

等等等。

②基于ARM+Linux裸機學(xué)習,可以學(xué)得更深,并且更貼合後(hòu)續的Linux學(xué)習。實際上它就是Linux下的單片機學(xué)習,隻是一切更加原始:所有的代碼需要你自己來編寫;哪些文件加入工程,需要你自己來管理。

在工作中,我們當然傾向(xiàng)于使用Windows下更便利的工具,但是在學(xué)習階段,我們更想學(xué)習到程序的本質。

一切從零編寫代碼、管理代碼,可以讓我們學(xué)習到更多知識:

你需要了解芯片的上電啓動過(guò)程,知道(dào)第1條代碼如何運行;

你需要掌握怎麼(me)把程序從Flash上讀入内存;

需要理解内存怎麼(me)規劃使用,比如棧在哪,堆在哪;

需要理解代碼重定位;

需要知道(dào)中斷發(fā)生後(hòu),軟硬件怎麼(me)保護現場、跳到中斷入口、調用中斷程序、恢複現場;

你會(huì)知道(dào),main函數不是我們編寫的第1個函數;

你會(huì)知道(dào),芯片從上電開(kāi)始,程序是怎麼(me)被(bèi)搬運執行的;

你會(huì)知道(dào),函數調用過(guò)程中,參數是如何傳遞的;

你會(huì)知道(dào),中斷發(fā)生時,每一個寄存器的值都(dōu)要小心對(duì)待;

等等等。

你掌握了ARM+Linux的裸機開(kāi)發(fā),再回去看Windows下的單片機開(kāi)發(fā),會(huì)驚呼:怎麼(me)那麼(me)簡單!并且你會(huì)完全明白這(zhè)些工具沒(méi)有向(xiàng)你展示的技術細節。

驅動程序=Linux驅動程序軟件框架+ARM開(kāi)發(fā)闆硬件操作,我們可以從簡單的裸機開(kāi)發(fā)入手,先掌握硬件操作,并且還(hái)可以:

①掌握如何在PC Linux下編譯程序、把程序燒錄到闆子上并運行它

②爲學(xué)習bootloader打基礎:掌握了各種(zhǒng)硬件操作後(hòu),後(hòu)面(miàn)一組合就是一個bootloader

2.2.5 爲什麼(me)選擇ARM9 S3C2440開(kāi)發(fā)闆,而不是其他性能(néng)更好(hǎo)的?

有一個錯誤的概念:S3C2440過(guò)時了、ARM9過(guò)時了。

這(zhè)是不對(duì)的,如果你是軟件工程師,無論是ARM9、ARM11、A8還(hái)是A9,對(duì)我們來說是沒(méi)有差别的。

一款芯片,上面(miàn)有CPU,還(hái)有衆多的片上設備(比如UART、USB、LCD控制器)。我們寫程序時,并不涉及CPU,隻是去操作那些片上設備。

所以:差别在于片上設備,不在于CPU核;差别在于寄存器操作不一樣(yàng)。

因爲我們寫驅動并不涉及CPU的核心,隻是操作CPU之外的設備,隻是讀寫這(zhè)些設備的寄存器。

之所以推薦S3C2440,是因爲它的Linux學(xué)習資料最豐富,并有配套的第1、2期視頻。

2.2.6 怎麼(me)學(xué)習ARM+Linux的裸機開(kāi)發(fā)

學(xué)習裸機開(kāi)發(fā)的目的有兩(liǎng)個:

①掌握裸機程序的結構,爲後(hòu)續的u-boot作準備

②練習硬件知識,即:怎麼(me)看原理圖、芯片手冊,怎麼(me)寫代碼來操作硬件

後(hòu)面(miàn)的u-boot可以認爲是裸機程序的集合,我們在裸機開(kāi)發(fā)中逐個掌握各個部件,再集合起(qǐ)來就可以得到一個u-boot了。

後(hòu)續的驅動開(kāi)發(fā),也涉及硬件操作,你可以在裸機開(kāi)發(fā)中學(xué)習硬件知識。

注意:如果你并不關心裸機的程序結構,不關心bootloader的實現,這(zhè)部分是可以先略過(guò)的。在後(hòu)面(miàn)的驅動視頻中,我們也會(huì)重新講解所涉及的硬件知識。

推薦兩(liǎng)本書:杜春蕾的《ARM體系結構與編程》,韋東山的《嵌入式Linux應用開(kāi)發(fā)完全手冊》。後(hòu)者也許是國(guó)内第1本涉及在PC Linux環境下開(kāi)發(fā)的ARM裸機程序的書,如果我說錯了,請原諒我書讀得少。

對(duì)于裸機開(kāi)發(fā),我們提供有2部分視頻:

①環境搭建

第0課第1節_剛接觸開(kāi)發(fā)闆之接口接線.wmv

第0課第2節_剛接觸開(kāi)發(fā)闆之燒寫裸闆程序.wmv

第0課第3節_剛接觸開(kāi)發(fā)闆之重燒整個系統.wmv

第0課第4節_剛接觸開(kāi)發(fā)闆之使用vmwae和預先做好(hǎo)的ubuntu.wmv

第0課第5節_剛接觸開(kāi)發(fā)闆之u-boot打補丁編譯使用及建sourceinsight工程.wmv

第0課第6節_剛接觸開(kāi)發(fā)闆之内核u-boot打補丁編譯使用及建sourceinsight工程.wmv

第0課第7節_剛接觸開(kāi)發(fā)闆之制作根文件系統及初試驅動.wmv

第0課第8節_在TQ2440,MINI2440上搭建視頻所用系統.wmv

第0課第9節_win7下不能(néng)使用dnw燒寫的替代方法.wmv

.................

原文鏈接:網頁鏈接

嵌入式開(kāi)發(fā)教程哪裡(lǐ)有比較全面(miàn)的資料?

推薦樓主看麥子學(xué)院視頻教程,相對(duì)于單個的學(xué)習帖子更系統全面(miàn),從底層開(kāi)始學(xué)起(qǐ),老師一步步的指導學(xué)習

什麼(me)教程适合嵌入式linux入門

嵌入式Linux操作系統學(xué)習規劃

ARM+LINUX路線,主攻嵌入式Linux操作系統及其上應用軟件開(kāi)發(fā)目标:

(1) 掌握主流嵌入式微處理器的結構與原理(初步定爲arm9)

(2) 必須掌握一個嵌入式操作系統 (初步定爲uclinux或linux,版本待定)

(3) 必須熟悉嵌入式軟件開(kāi)發(fā)流程并至少做一個嵌入式軟件項目。

從事(shì)嵌入式軟件開(kāi)發(fā)的好(hǎo)處是:

(1)目前國(guó)内外這(zhè)方面(miàn)的人都(dōu)很稀缺。這(zhè)一領域入門門檻較高,所以非專業IT人員很難切入這(zhè)一領域;另一方面(miàn),是因爲這(zhè)一領域較新,目前發(fā)展太快,大多數人無條件接觸。

(2)與企業計算等應用軟件不同,嵌入式領域人才的工作強度通常低一些(但收入不低)。

(3)哪天若想創業,搞自已的産品,嵌入式不像應用軟件那樣(yàng)容易被(bèi)盜版。硬件設計一般都(dōu)是請其它公司給訂做(這(zhè)叫(jiào)“貼牌”:OEM),都(dōu)是通用的硬件,我們隻管設計軟件就變成(chéng)自己的産品了。

(4)興趣所在,這(zhè)是最主要的。

從事(shì)嵌入式軟件開(kāi)發(fā)的缺點是:

(1)入門起(qǐ)點較高,所用到的技術往往都(dōu)有一定難度,若軟硬件基礎不好(hǎo),特别是操作系統級軟件功底不深,則可能(néng)不适于此行。

(2)這(zhè)方面(miàn)的企業數量要遠少于企業計算類企業。

(3)有少數公司經(jīng)常要碩士以上的人搞嵌入式,主要是基于嵌入式的難度。但大多數公司也并無此要求,隻要有經(jīng)驗即可。

(4)平台依托強,換平台比較辛苦。

興趣的由來:

1、成(chéng)功觀念不同,不虛度此生,就是我的成(chéng)功。

2、喜歡思考,挑戰邏輯思維。

3、喜歡C

C是一種(zhǒng)能(néng)發(fā)揮思維極限的語言。關于C的精神的一些方面(miàn)可以被(bèi)概述成(chéng)短句如下:

相信程序員。

不要阻止程序員做那些需要去做的。

保持語言短小精幹。

一種(zhǒng)方法做一個操作。

使得它運行的夠快,盡管它并不能(néng)保證將(jiāng)是可移植的。

4、喜歡底層開(kāi)發(fā),讨厭vb類開(kāi)發(fā)工具(并不是說vb不好(hǎo))。

5、發(fā)展前景好(hǎo),适合創業,不想自己要死了的時候還(hái)是一個工程師。

方法步驟:

1、基礎知識:

目的:能(néng)看懂硬件工作原理,但重點在嵌入式軟件,特别是操作系統級軟件,那將(jiāng)是我的優勢。

科目:數字電路、計算機組成(chéng)原理、嵌入式微處理器結構。

彙編語言、C/C++、編譯原理、離散數學(xué)。

數據結構和算法、操作系統、軟件工程、網絡、數據庫。

方法:雖科目衆多,但都(dōu)是較簡單的基礎,且大部分已掌握。不一定全學(xué),可根據需要選修。

主攻書籍:the c++ programming language(一直沒(méi)時間讀)、數據結構-C2。

2、學(xué)習linux:

目的:深入掌握linux系統。

方法:使用linux—〉linxu系統編程開(kāi)發(fā)—〉驅動開(kāi)發(fā)和分析linux内核。先看深,那主講原理。看幾遍後(hòu),看情景分析,對(duì)照深看,兩(liǎng)本交叉,深是綱,情是目。剖析則是0.11版,适合學(xué)習。最後(hòu)深入代碼。

主攻書籍:linux内核完全剖析、unix環境高級編程、深入理解linux内核、情景分析和源代。

3、學(xué)習嵌入式linux:

目的:掌握嵌入式處理器其及系統。

方法:(1)嵌入式微處理器結構與應用:直接arm原理及彙編即可,不要重複x86。

(2)嵌入式操作系統類:ucOS/II簡單,開(kāi)源,可供入門。而後(hòu)深入研究uClinux。

(3)必須有塊開(kāi)發(fā)闆(arm9以上),有條件可參加培訓(進(jìn)步快,能(néng)認識些朋友)。

主攻書籍:毛德操的《嵌入式系統》及其他arm9手冊與arm彙編指令等。

4、深入學(xué)習:

A、數字圖像壓縮技術:主要是應掌握MPEG、mp3等編解碼算法和技術。

B、通信協議及編程技術:TCP/IP協議、802.11,Bluetooth,GPRS、GSM、CDMA等。

2010-8-21 16:46 回複

122.90.173.* 2樓

C、網絡與信息安全技術:如加密技術,數字證書CA等。

D、DSP技術:Digital Signal Process,DSP處理器通過(guò)硬件實現數字信号處理算法。

說明:太多細節未說明,可根據實際情況調整。重點在于1、3,不必完全按照順序作。對(duì)于學(xué)習c++,理由是c++不隻是一種(zhǒng)語言,一種(zhǒng)工具,她還(hái)是一種(zhǒng)藝術,一種(zhǒng)文化,一種(zhǒng)哲學(xué)理念、但不是拿來炫耀得東西。對(duì)于linux内核,學(xué)習編程,讀一些優秀代碼也是有必要的。

注意: 要學(xué)會(huì)舉一反多,有強大的基礎,很多東西簡單看看就能(néng)會(huì)。想成(chéng)爲合格的程序員,前提是必須熟練至少一種(zhǒng)編程語言,并具有良好(hǎo)的邏輯思維。一定要理論結合實踐。

不要一味鑽研技術,雖然擠出時間是很難做到的,但還(hái)是要留點餘地去完善其他的愛好(hǎo),比如宇宙,素描、機械、管理,心理學(xué)、遊戲、科幻電影。還(hái)有一些不願意做但必須要做的!

技術是通過(guò)編程編程在編程編出來的。永遠不要夢想一步登天,不要做浮躁的人,不要覺得路途漫上。而是要編程編程在編程,完了在編程,在編程!等機會(huì)來了在創業(不要相信有奇迹發(fā)生,盲目創業很難成(chéng)功,即便成(chéng)功了發(fā)展空間也不一定很大)。

嵌入式書籍推薦

Linux基礎

1、《Linux與Unix Shell 編程指南》

C語言基礎

1、《C Primer Plus,5th Edition》【美】Stephen Prata著(zhe)

2、《The C Programming Language, 2nd Edition》【美】Brian W. Kernighan David M. Rithie(K R)著(zhe)

3、《Advanced Programming in the UNIX Environment,2nd Edition》(APUE)

4、《嵌入式Linux應用程序開(kāi)發(fā)詳解》

Linux内核

1、《深入理解Linux内核》(第三版)

2、《Linux内核源代碼情景分析》毛德操 胡希明著

研發(fā)方向(xiàng)

1、《UNIX Network Programming》(UNP)

2、《TCP/IP詳解》

3、《Linux内核編程》

4、《Linux設備驅動開(kāi)發(fā)》(LDD)

5、《Linux高級程序設計》 楊宗德著

硬件基礎

1、《ARM體系結構與編程》杜春雷著(zhe)

2、S3C2410 Datasheet

英語基礎

1、《計算機與通信專業英語》

系統教程

1、《嵌入式系統――體系結構、編程與設計》

2、《嵌入式系統――采用公開(kāi)源代碼和StrongARM/Xscale處理器》毛德操 胡希明著(zhe)

3、《Building Embedded Linux Systems》

4、《嵌入式ARM系統原理與實例開(kāi)發(fā)》 楊宗德著

理論基礎

1、《算法導論》

2、《數據結構(C語言版)》

3、《計算機組織與體系結構?性能(néng)分析》

4、《深入理解計算機系統》【美】Randal E. Bryant David O''Hallaron著(zhe)

5、《操作系統:精髓與設計原理》

6、《編譯原理》

7、《數據通信與計算機網絡》

8、《數據壓縮原理與應用》

C語言書籍推薦

1. The C programming language 《C程序設計語言》

2. Pointers on C 《C和指針》

3. C traps and pitfalls 《C陷阱與缺陷》

4. Expert C Lanuage 《專家C編程》

5. Writing Clean Code -----Microsoft Techiniques for Developing Bug-free C Programs

《編程精粹--Microsoft 編寫優質無錯C程序秘訣》

6. Programming Embedded Systems in C and C++ 《嵌入式系統編程》

7.《C語言嵌入式系統編程修煉》

8.《高質量C++/C編程指南》林銳

盡可能(néng)多的編碼,要學(xué)好(hǎo)C,不能(néng)隻注重C本身。算法,架構方式等都(dōu)很重要。

這(zhè)裡(lǐ)很多書其實是推薦而已,不必太在意,關鍵還(hái)是基礎,才是重中之重!!!

急尋嵌入式linux新手教程

由華清遠見出版的一系列嵌入式專業圖書:《Linux設備驅動開(kāi)發(fā)詳解》、《嵌入式Linux應用程序開(kāi)發(fā)标準教程》、《嵌入式Linux應用開(kāi)發(fā)教程》、《嵌入式系統技術與設計》、《嵌入式Linux基礎教程》等,各大書店和圖書館都(dōu)有,LZ去看一下,可以先到華清遠見的網站上詳細了解一下,希望對(duì)你有幫助~

嵌入式軟件開(kāi)發(fā)視頻教程

要學(xué)會(huì)真正到嵌入式就要一套完整到嵌入式視頻教程。完整的嵌入式教程可以看看IT學(xué)習聯盟的零基礎嵌入式就業班。零基礎嵌入式就業班包括嵌入式基礎 進(jìn)階 高級 項目。是一套完整的嵌入式視頻教程。這(zhè)套教程從零基礎開(kāi)始教起(qǐ),零基礎到就業水平。就算沒(méi)基礎也可以學(xué)習的。

……………………………………………………

看你問的問題,應該是對(duì)嵌入式很感興趣,其實你可以自學(xué)嵌入式。關于如何學(xué)習嵌入式,我剛才看到一篇很不錯的文章,是一個專科生介紹自己如何自學(xué)嵌入式,并找到嵌入式的工作,裡(lǐ)面(miàn)介紹了他的學(xué)習方法和學(xué)習過(guò)程,希望對(duì)你有幫助。

先做個自我介紹,我07年考上一所很爛專科民辦的學(xué)校,學(xué)的是生物專業,具體的學(xué)校名稱我就不說出來獻醜了。09年我就辍學(xué)了,我在那樣(yàng)的學(xué)校,一年學(xué)費要1萬多,但是根本沒(méi)有人學(xué)習,我實在看不到希望,我就退學(xué)了。

退學(xué)後(hòu)我也迷茫,大專都(dōu)沒(méi)有畢業,我真的不知道(dào)我能(néng)幹什麼(me),我在糾結著(zhe)我能(néng)做什麼(me)。所以辍學(xué)後(hòu)我一段時間,我想去找工作,因爲我比較沉默寡言,不是很會(huì)說話,我不适合去應聘做業務。我想應聘做技術的,可是處處碰壁。

一次偶然的機會(huì),我才聽到嵌入式這(zhè)個行業。那天我去新華書店,在計算機分類那邊想找本書學(xué)習。後(hòu)來有個女孩子走過(guò)來,問我是不是讀計算機的,有沒(méi)有興趣學(xué)習嵌入式,然後(hòu)給我介紹了一下嵌入式現在的火熱情況,告訴我學(xué)嵌入式多麼(me)的有前景,給我了一份傳單,嵌入式培訓的廣告。聽了她的介紹,我心裡(lǐ)癢癢的,确實我很想去學(xué)會(huì)一門自己的技術,靠自己的雙手吃飯。

回家後(hòu),我就上網查了下嵌入式,确實是當今比較熱門的行業,也是比較好(hǎo)找工作的,工資也是相對(duì)比較高。我就下決心想學(xué)嵌入式了。于是我去找嵌入式培訓的相關信息,說真的,我也很迷茫,我不知道(dào)培訓是否真的能(néng)像他們宣傳的那樣(yàng)好(hǎo),所以我就想了解一段時間再做打算。

後(hòu)來,我在百度知道(dào)看到一篇讓我很鼓舞的文章,是一個嵌入式高手介紹沒(méi)有基礎的朋友怎麼(me)自學(xué)入門學(xué)嵌入式,文章寫的很好(hǎo),包含了如何學(xué)習,該怎麼(me)學(xué)習。他提到一個方法就是看視頻,因爲看書實在太枯燥和費解的,很多我們也看不懂。這(zhè)點我真的很認同,我自己看書往往看不了幾頁。

我在想,爲什麼(me)别人都(dōu)能(néng)自學(xué)成(chéng)才,我也可以的!我要相信自己,所以我就想自學(xué),如果實在學(xué)不會(huì)我再去培訓。

主意一定,我就去搜索嵌入式的視頻,雖然零星找到一些嵌入式的視頻,但是都(dōu)不系統,我是想找一個能(néng)夠告訴我該怎麼(me)學(xué)的視頻,一套從入門到精通的視頻,一個比較完整的資料,最好(hǎo)能(néng)有老師教,不懂可以請教的。

後(hòu)來我又找到一份很好(hǎo)的視頻,是在IT學(xué)習聯盟網站推出的一份視頻《零基礎嵌入式就業班》(喜歡《零基礎嵌入式就業班》的可以複制 sina.lt/qKh 粘貼浏覽器地址欄按回車鍵即打開(kāi))。裡(lǐ)面(miàn)的教程還(hái)不錯,很完整,可以讓我從基礎的開(kāi)始學(xué)起(qǐ)。視頻比較便宜。

下面(miàn)介紹下我的學(xué)習流程,希望對(duì)和我一樣(yàng)完全沒(méi)有基礎的朋友有所幫助。

收到他們寄過(guò)來的光盤後(hòu),我就開(kāi)始學(xué)習了,由于我沒(méi)有什麼(me)基礎,我就從最簡單的C語言視頻教程學(xué)起(qǐ),話說簡單,其實我還(hái)是很多不懂的,我隻好(hǎo)請教他們,他們還(hái)是很熱心的,都(dōu)幫我解決了。C語言我差不多學(xué)了一個禮拜,接下來我就學(xué)了linux的基本命令,我在他們提供linux虛拟機上都(dōu)有做練習,敲linux的基本命令,寫簡單的C語言代碼,差不多也就三個禮拜。我每天都(dōu)在不停的寫一些簡單的代碼,這(zhè)樣(yàng)一月後(hòu)我基本掌握了C和linux的基本操作。

接下來我就去學(xué)習了人家的視頻的培訓教程,是整套的,和去參加培訓沒(méi)有多大的區别,這(zhè)一看就是兩(liǎng)個月,學(xué)習了ARM的基本原理,學(xué)習嵌入式系統的概念,也掌握了嵌入式的環境的一些搭建,對(duì)linux也有更深層次的理解了,明白了嵌入式應用到底是怎麼(me)做的,但是驅動我隻是有一點點的了解,這(zhè)個相對(duì)難一點,我想以後(hòu)再慢慢啃。

這(zhè)兩(liǎng)個月,除了吃飯睡覺,我幾乎都(dōu)在學(xué)習。因爲我知道(dào)幾乎沒(méi)有基礎,比别人差勁,我隻能(néng)堅持努力著(zhe),我不能(néng)放棄,我必要要靠自己來養活自己,必須學(xué)好(hǎo)這(zhè)門技術,然後(hòu)我就把不懂的問題總結記下來,這(zhè)樣(yàng)慢慢積累了一段時間,我發(fā)現自己真的有點入門了。

最後(hòu)的一個月,我就去看關于實踐部分的内容,了解嵌入式項目具體的開(kāi)發(fā)流程,需要什麼(me)樣(yàng)的知識,我就開(kāi)始準備這(zhè)方面(miàn)的知識,也就是學(xué)習這(zhè)方面(miàn)的視頻,同時他們建議我去找了找一些嵌入式面(miàn)試的題目,爲自己以後(hòu)找工作做準備。我就到網上找了很多嵌入式的題目,把他們理解的記下來,這(zhè)樣(yàng)差不多準備了20天左右

我覺得自己差不多入門了,會(huì)做一些簡單的東西了。我就想去找工作看看,于是我就到51job瘋狂的投簡曆,因爲我學(xué)曆的問題,專科沒(méi)有畢業,說真的,大公司沒(méi)有人會(huì)要我,所以我投的都(dōu)是民營的小公司,我希望自己的努力有所回報。沒(méi)有想過(guò)幾天過(guò)後(hòu),就有面(miàn)試了,但是第一次面(miàn)試我失敗了,雖然我自認爲筆試很好(hǎo),因爲我之前做了準備,但是他們的要求比較嚴格,需要有一年的項目經(jīng)驗,所以我沒(méi)有被(bèi)選中。

後(hòu)來陸續面(miàn)試了幾家公司,終于功夫不負有心人。我終于面(miàn)試上的,是在闵行的一家民營的企業,公司規模比較小,我的職務是嵌入式linux應用開(kāi)發(fā),做安防産品的應用的。我想我也比較幸運,經(jīng)理很看重我的努力,就決定錄用我,開(kāi)的工資是3500一個月,雖然我知道(dào)在上海3500隻能(néng)過(guò)溫飽的生活,但是我想我足夠了。我至少不用每天都(dōu)要靠父母養,我自己也能(néng)養活自己的。我想隻要我繼續努力,我工資一定會(huì)翻倍的。

把本文寫出來,希望能(néng)讓和我一樣(yàng)的沒(méi)有基礎的朋友有信心,其實我們沒(méi)有必要自卑,我們不比别人笨,隻要我們肯努力,我們一樣(yàng)會(huì)成(chéng)功。

………………………………

嵌入式軟件開(kāi)發(fā)技術教程的介紹就聊到這(zhè)裡(lǐ)吧,感謝你花時間閱讀本站内容,更多關于嵌入式軟件的開(kāi)發(fā)過(guò)程與架構、嵌入式軟件開(kāi)發(fā)技術教程的信息别忘了在本站進(jìn)行查找喔。

掃碼二維碼