嵌入式軟件開(kāi)發(fā)技術教程(嵌入式軟件的開(kāi)發(fā)過(guò)程與架構)
今天給各位分享嵌入式軟件開(kāi)發(fā)技術教程的知識,其中也會(huì)對(duì)嵌入式軟件的開(kāi)發(fā)過(guò)程與架構進(jìn)行解釋,如果能(néng)碰巧解決你現在面(miàn)臨的問題,别忘了關注本站,現在開(kāi)始吧!
本文目錄一覽:
- 1、嵌入式新手入門最佳視頻教程
- 2、嵌入式開(kāi)發(fā)教程哪裡(lǐ)有比較全面(miàn)的資料?
- 3、什麼(me)教程适合嵌入式linux入門
- 4、急尋嵌入式linux新手教程
- 5、嵌入式軟件開(kāi)發(fā)視頻教程
嵌入式新手入門最佳視頻教程
原文鏈接:網頁鏈接
我是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)行查找喔。