{eval=Array;=+count(Array);}
嵌入式系統的定義為:以應用為中心,以計算機技術為基礎、軟硬件可裁剪、適用于應用系統,對功能、可靠性、成本、體積、功耗嚴格要求的計算機系統。
了解Bootloader的結構和啟動過程,在大多數的嵌入式系統中,Bootloader是上電后執行的第一個程序。了解UBoot的配置、編譯、連接過程,了解常用命令如下載文件到內存,擦除、讀寫Flash、運行內存、NOR Flash、NAND Flash中的程序等等。
內核管理的核心代碼,了解內核的啟動過程,一般分為兩部分:架構/開發板相關的引導過程、后續的通用啟動過程。了解內核源碼結構及Makefile分析。編譯燒寫啟動內核。
根文件系統,了解根文件系統下各目錄的作用,掌握構建根文件系統的方法,移植Busy box,構造各個目錄文件等。掌握制作yaffs.jffs2文件系統映像文件的方法。
了解幾種嵌入式GUI得特點,學習C語言,C++語言,學習簡單開發自己的QT GUI程序的編寫方法,掌握x86主機上模擬、調試嵌入式GUI程序。
綜上所述,嵌入式入門很難,需要學會改造Bootloader,鉆研內核,為新硬件編寫驅動程序,看得懂電路原理圖,看的懂芯片數據手冊,上層應用會繪制GUI。
推薦韋東山老師的嵌入式Linux應用開發書,適合嵌入式Linux的初學者學習。
隨著互聯網的快速發展,嵌入式也越來越火熱,更多的人投入到嵌入式開發的行列中來,那么想要學習嵌入式,該從哪里入手學習,嵌入式學習路線圖怎么學?
想要學習好嵌入式,想成為嵌入式軟件工程師。那么當前企業需要哪些技術呢
1.嵌入式上層的軟件應用開發
需要:精通嵌入式Linux C語言編程、嵌入式Linux C語言數據結構、嵌入式Linux項目開發流程、嵌入式 Linux并發程序設計、嵌入式 Linux應用編程、嵌入式 Linux網絡編程、嵌入式數據庫開發;若是Android設備的應用開發,那就必須要了解java編程,Android應用編程。
2.嵌入式底層開發
當前底層90%的企業都采用ARM處理器,低功耗、成本低倍受關注。因此你必須要會:ARM處理器編程、ARM硬件接口開發、嵌入式Linux系統開發、嵌入式Linux內核開發、嵌入式Linux驅動開發。其次Android設備越來越多,同樣你得了解嵌入式Linux在移動開發的典型應用、ndroid底層系統開發。
學習嵌入式需要學的課程內容很多,如果你是零基礎學習的話,我建議還是選擇一家不錯的培訓機構學習會更靠譜一些,畢竟現沒有基礎自學的話,想要精通需要很長時間,還不一定能學會,所以培訓機構專業系統的學習會少走一些彎路,更快的學習好嵌入式開發。
大綱也先分享給大家參考吧,合不合適你自己說了算。
1、入式高級C語言
2、嵌入式設備及GUI開發
3、嵌入式Linux高級程序設計
4、Linux高級網絡程序設計
5、數據庫開發
6、C++面向對象高級語言程序設計
7、物聯網
8、CotexA53 Linux平臺驅動開發
9、企業實戰項目
為什么說適合在校大學生呢,因為在校大學生時間充裕。而參加工作的人,時間就是金錢,與其花費太長時間自學,還不如報個培訓班速成,但是培訓班的缺點可能就是基礎不牢(這個是個人見解,如有不同意見也可以看看我寫的自學經歷,根據自己的基礎跳過相應的步驟即可)。
我認為學習任何東西都是需要分模塊的。各個模塊熟悉了最后串起來(個人經驗)
提醒?。?/span>
提醒??!
提醒??!
玩嵌入式是有點費錢的。但是有舍有得,這個看你們自己把握了。
下面我說下我的方法
一、嵌入式分為幾個模塊(給自己學的勇氣)
二、起步學什么(打基礎)
三、進階學什么(給自己堅持下去的動力)
一、嵌入式分幾個模塊
嵌入式分為軟件、硬件(簡單吧)。軟件,其實可以分的更詳細,但是我們不需要分這么詳細,后面學習的過程中你就明白了。
二 、起步學什么
首先,你最好是計算機、電子、電氣、微電子、電子信息、通信、自動化、信息工程等相關專業。
可能有人會問為什么必須這些專業。因為這些專業要么編程能力強,要么硬件基礎很熟悉,學習嵌入式是天然的優勢。比如自動化專業,他們學習過電路,模電,數電,電力電子這些課能讓你們有牢固的硬件基礎;還有C++,51單片機,微機讓你們有一定的軟件基礎。特別是51單片機,一旦學會了,后面學習嵌入式會更容易。
接下來仔細說說如何起步(基礎不勞,地動山搖)
第一步,你要懂得硬件的基本知識,這些硬件知識能幫你更好的理解51單片機的內部原理,硬件的管腳配置,引腳功能,更重要的是幫你理解放大電路,濾波電路等。(第三步推薦一本我認為比價好的關于51的書,里面有51的內部原理)這些懂了,在用51C語言寫程序的時候就會發現so easy。至于為什么先學51呢,因為大學大部分還是開設51的課,再者51容易理解,教學視頻豐富。
第二步,你要懂C/C++,c語言是學習嵌入式的靈魂。因為大學都開設有C課程,所以大家從C開始學會相對方便和節約時間。
第三步,有了相關基礎后開始看51單片機系列的書(見下圖),網上各種各樣的視頻多的很,對著網絡上的視頻學習,效果會更好。但是不能只學不練,買個開發板(當初我們是自己焊的),自己對著視頻練習。理論和實際結合效果最好。
當然需要用到相應的燒錄軟件,和編程軟件。我在這里統一說一下。
燒錄軟件就用STC-ISP(好用),編程的用KEIL c51(keil3也能用),后面玩32了再用KEIL5。
三、進階學什么
第一步、51單片機玩差不多半個學期就行啦,半個學期夠你掌握了,太長浪費時間。我們已經玩過51了,已經是大孩子了,哈哈哈。但是我們沒有玩過32位的,直接上arm是不行的。
所以我們要開始學習32,其實32比51 簡單的多,因為他們有豐富的庫,各種庫。市面上的教學資源非常非常的豐富,產品也比較成熟,某寶上面各種開發板(價格300以內),自己選一個買就行了。
其實你也可以跳過51學32,畢竟51太老了,太陳舊了,但是我覺得你學習51會幫你牢固知識,幫你形成寫程序的習慣等。
學習32 的周期,根據自己情況安排,一般一個到一個半學期。
第二步、現在咱們對32比較了解了,輪到學習嵌入式系統了,對,沒錯就是系統,是不是很興奮。。
想學習嵌入式系統Linux/WIN等 ,首先你需要買個arm學習版,在淘寶上面買的話,不太貴S3C2440,500+元。資料非常多,建議買arm9,因為ram11的資料太少,不適于自學?;蛘吣銈冾A算非常充足,可以考慮Cortex-A8/A9的開發板。
我相信你們學到這里已經有了自己的想法和見解了。到這個過程的時候,知乎上的大佬回答的很詳細和網上的資源也非常豐富,多看看大家寫的共同學習。
最后,做下總結
看懂電路圖、看懂芯片手冊(更牛皮的要求是會自己繪制PCB板,會器件選型,會自己調試自己設計板子,直至可以量產)
有編寫,移植驅動的能力
懂內核的實現機制
懂C語言,C++等
下面列有詳細的要求,你們自己把握下。
等到找工作的時候,有嵌入式硬件,嵌入式軟件,嵌入式等,甚至可以觸類旁通,要看你們的學習水平了, 哈哈哈。
嵌入式硬件要求:
1、熟練使用Allegro Cadence等EDA工具進行硬件原理圖及PCB的設計,精通PCB布線流程、具備多層板布線經驗規范及信號完整性分析,熟悉至少一種高速通信接口,如PCIE、SRIO、10GBE等。
2、精通嵌入式處理器設計,具有大型CPU或者DSP的板級硬件設計調試經驗,例如P系列或者T系列PowerPC,C6678、C6655等DSP,以及FPGA設計經驗者等。
3、負責硬件產品的需求調研、方案設計,熟練使用各類電子儀器儀表進行測試。
。。。。。。
嵌入式軟件要求:
1、熟悉Linux操作系統內核,有Linux內核和驅動開發經驗。
2、精通C/C++開發語言,shell腳本。
3、精通C語言,能獨立編寫、調試硬件驅動程序和功能程序。
4、熟悉多線程的開發,精通ucosII嵌入式系統移植、驅動和應用開發。
。。。。。。
嵌入式硬件的工作:
嵌入式軟件的工作:
嵌入式的工作:
那你可以以“低端單片機-高端單片機-低端ARM-高端ARM”來學。我現在就是工作中用STM32,晚上回去自學ARM9。
學習嵌入式Linux一般有兩個方向一個是應用層,另一個是底層。
應用層是在嵌入式設備上實現一些功能(此時設備已經將系統跑起來),像網絡通信,人機交互界面,設備管理和監控等等。
底層要做的是將系統在設備上跑起來,我們需要移植bootloader、Linux內核、文件系統,編寫外設驅動等。
學習嵌入式Linux的話,以我個人經歷來說的話,我覺得你最好有單片機開發的經歷這樣你對于底層的知識有更容易理解。
首先選擇一款Linux系統的發行版作為平臺來學習基本的系統操作和一些應用層知識,進程間通信,時間編程,網絡編程等,平臺可以選擇redhat,Ubuntu,debian等。此時我們就可以做一些系統應用層的練習,玩一些開源項目。
之后就看你的意愿了,喜歡做應用層就繼續做應用層,學習一門高級語言,了解下內核機制就可以,可以不用更深入的了解底層。
如果要做底層,可以選擇一個一款arm板來學習底層,推薦經典的s3c2440,資料豐富,容易入門??梢韵葟腷ootloader、內核、文件系統的移植開始,然后再學習驅動的編寫。
自學嗎?有點難哦。需要學的知識比較多。
當年大學里的時候也折騰過。
首先要了解計算機底層硬件的工作原理、bootloader、操作系統及其裁剪和移植、匯編和c、交叉編譯。然后還要學習平臺相關的知識,比如arm、mips之類。挺多的知識點。
我當年也沒折騰出來,工作也沒走這條路。講不太多,希望能對你有幫助。
1)先選擇一個主流的平臺,比如NXP I.MX6UL,買一塊好的廠家(用戶多,資料多、技術支持好)的開發板。
2)對照著提供的實驗動手操作
建議
i) 初學者先做應用層,以完成某個應用功能為導向。不要過早的陷入到某個具體的不懂的知識點中,因為Linux太復雜深奧了,你想完全的搞明白一個知識點太難了。
ii) 隨著逐步的熟悉,可以慢慢的去了解和學習驅動、移植、裁剪等相關內容
簡要回答下學習嵌入式的方法與步驟。
1、學習STM32肯定需要理論結合實踐,只是紙上談兵肯定不行,因此需要擁有一塊STM32學習板和下載器,方便實踐,順便在淘寶上買就行,目前價格也挺便宜的,商家和網上都有很多學習資料,足夠大家入門,學習STM32可以說是嵌入式開發行業的入門,工作中低端項目使用到STM32芯片的機會還是挺多的,比較高端的項目使用ZYNQ系列芯片比較多;
2、安裝開發環境,如MDK5,下載驅動,Cubemx等;
3、推薦原子學習資料按照各個功能模塊逐個學習,推薦資料芯片手冊和中文參考手冊,建議使用HAL庫上手更快,比如學習串口、定時器、IIC、SPI、CAN、ADC、DAC、網口、輸入捕獲、PWM、FLASH等;
4、不斷終結所學內容,形成文檔,找機會將所學用于實際項目,多交流和實踐,理解工作原理,比如串口,學習查詢、中斷、DMA模式發送和接收數據,熟悉各個寄存器功能;
5、目標是硬件原理圖,PBC,軟件設計都可以獨立承擔。
物聯網越來越火熱,隨著人工智能的發展,物聯網行業將是接下來高薪就業的趨勢,物聯網技術培訓課程學哪些內容呢?接下來讓你全方面了解物聯網,學到時下新潮的技術。
一、嵌入式高級C語言
linux系統,恰如是C語言高級編程,數據結構及算法
二、嵌入式設備及GUI開發
嵌入式環境配置與開發工具學習,GUI圖形界面開發
三、嵌入式linux高級程序設計
嵌入式linux系統編程
四、linux高級網絡程序設計
linux高級網絡編程
五、數據庫開發
數據庫開發
六、C++面向對象高級語言程序設計
C++語言高級語言開發
七、物聯網
物聯網開發
八、CotexA53linux平臺驅動開發
物聯網開發
物聯網開發學科實戰項目內容包括:
1、智能家居項目
2、智能人臉識別項目
3、RFID智能門禁項目
4、多媒體播放項目
5、智能手機設計項目
6、智慧教室項目
0
回答0
回答0
回答0
回答0
回答0
回答0
回答0
回答0
回答0
回答