1. gzyueqian
      18529173453

      學(xué)習(xí)嵌入式開發(fā)難不難?我們該怎么學(xué)習(xí)嵌入式?

      更新時間: 2019-02-28 14:13:50來源: 嵌入式培訓(xùn)瀏覽量:4784

              拿現(xiàn)在的嵌入式來說可謂是越來越復(fù)雜,一個SOC芯片上集成的模塊越來越多。以手機(jī)為例,典型的嵌入式產(chǎn)品,我們看看上面集成了多少模塊:觸摸屏、LCD、USB、WiFi、4G等無線通信、音視頻編解碼IP、DDR、存儲控制器、3D/2D加速、GPS、指紋識別、NFC、DMA、G-sensor各種傳感器.......。可以說,現(xiàn)在一個手機(jī)的復(fù)雜度和硬件配置,已經(jīng)超過我們的桌面PC了。除了不斷增加的硬件,軟件方面,比如Linux內(nèi)核,光內(nèi)核代碼就有1000多萬行,每天更新的速度超過你學(xué)習(xí)的進(jìn)度,你能學(xué)得完嵌入式的所有知識和技能嗎?工業(yè)主板

              嵌入式系統(tǒng)開發(fā)

              早期PC時代,我們知道能做出X86 CPU量產(chǎn)的也沒有幾家,Intel、AMD。但是嵌入式時代不一樣了,ARM的IP授權(quán)模式導(dǎo)致不同的芯片廠商百家齊放,不同的SOC平臺和開發(fā)板眼花繚亂,針對不同行業(yè)需求定制的SOC平臺:手機(jī)芯片、平板芯片、視頻安防、物聯(lián)網(wǎng)、汽車電子、工業(yè)控制,甚至人工智能AI芯片....,你到Linux內(nèi)核的ARCH下面可以看看有多少種CPU架構(gòu),再到arch/arm下面看看有多少種開發(fā)平臺,這還只是加入到內(nèi)核mainline的平臺,算上沒有加入Linux內(nèi)核主線的各種平臺,其實(shí)數(shù)量更多。

              眾多的芯片架構(gòu)、不同的開發(fā)板平臺,我們該如何去學(xué)習(xí)?

              嵌入式和PC的概念也越來越模糊了,Intel已經(jīng)推出X86架構(gòu)的CPU和嵌入式產(chǎn)品了,比如平板。ARM也開始進(jìn)軍服務(wù)器和筆記本領(lǐng)域了。無論什么CPU架構(gòu),ARM、X86、MIPS、PowerPC,還有近火熱的物聯(lián)網(wǎng)芯片,無論是做嵌入式產(chǎn)品,還是PC、服務(wù)器,他們的底層本質(zhì)其實(shí)都沒有變,都是計算機(jī)原理和系統(tǒng)架構(gòu),都是馮諾依曼的計算機(jī)架構(gòu),圖靈原型機(jī)的各種實(shí)現(xiàn)。

              不斷復(fù)雜的軟硬件系統(tǒng),對嵌入式工程師或者學(xué)習(xí)者來說是一個挑戰(zhàn)。這對我們本身的知識和技能有一個更新的要求。早期51單片機(jī)時代,我們可以自己使用面包板或者自己畫PCB,做一個開發(fā)板,然后在上面開發(fā)軟件。軟件、硬件自己全搞。現(xiàn)在不斷復(fù)雜的SOC平臺,再想一個人全搞,軟硬通吃,基本不可能,這也導(dǎo)致我們需要分工協(xié)作來完成。首先軟硬件的分工,各司其職,各自精通自己的領(lǐng)域,然后進(jìn)行軟硬件整合,協(xié)作開發(fā)。再次,軟件方面,嵌入式軟件也越來越復(fù)雜,Linux內(nèi)核1000多萬行,android源碼下載下來就占幾個G的空間,自己想全搞,同樣不可能,同樣需要進(jìn)行分工。比如android,需要分為BSP工程師、Linux內(nèi)核工程師、驅(qū)動工程師、android中間層開發(fā)工程師、APP開發(fā)工程師。對于一個Linux內(nèi)核,也需要分工,各個模塊同樣進(jìn)行分工:Linux內(nèi)核的USB子系統(tǒng)、音頻子系統(tǒng)、視頻編解碼、文件系統(tǒng)......把其中一個模塊你搞精通了,工資不是問題。

              對于嵌入式學(xué)習(xí)者來說,我們該學(xué)習(xí)什么,或者說如何學(xué)習(xí)?才能提高自己的職場競爭力,或者說對于一個新手來說,如何通過自學(xué),達(dá)到公司的用人標(biāo)準(zhǔn)和技術(shù)要求,找到一份自己想要的工作?

              首先,你要學(xué)會做減法,從現(xiàn)實(shí)出發(fā),要有這樣一個意識:我不可能精通所有的嵌入式技術(shù),學(xué)會堅持,制定合理現(xiàn)實(shí)的小目標(biāo)。很多人喜歡那種不切實(shí)際的廣告轟炸營銷,擊中你心理上的某個軟肋,某個G點(diǎn),一下興奮起來。越熬越濃的心靈雞湯,并不能解決我們吃飯的生存現(xiàn)實(shí)問題。很多人,包括我,在學(xué)習(xí)的時候,都喜歡給自己樹立各種路線、計劃、日程表。制定計劃時激情滿滿,熱情高漲,激動得睡不著覺。計劃宏偉而飽滿,仿佛成功就在眼前。但是往往不切實(shí)際,往往在早期,遇到各種困難,各種坑,各種拖延導(dǎo)致沒有堅持下來,夭折。然后接著制定下一個宏偉的計劃,繼續(xù)夭折,生活周而復(fù)始,day after day。觀察我們生活周圍,真正做出成績的都是那些基于現(xiàn)實(shí)出發(fā),能一路堅持下來的人,day by day。有時候你會發(fā)現(xiàn),并不覺得他們有多聰明。

              其次,保持自己的興趣,說白了就是為了堅持下去。見過很多人想學(xué)習(xí)嵌入式,花了很多米買一塊開發(fā)板,激情滿滿,過一段是過去再看,已經(jīng)不折騰了。嵌入式開發(fā)難,難在哪里呢?主要在于開發(fā)環(huán)境的搭建,軟件調(diào)試上,不像在Windows上使用VC開發(fā)程序,集成開發(fā)環(huán)境都幫你弄好了,各種斷點(diǎn)、單步、查看堆棧、寄存器、內(nèi)存窗口。而嵌入式不一樣,硬件環(huán)境搭建會遇到各種各樣的問題,各種電腦的兼容問題,各種莫名其妙的問題,有時候著實(shí)讓人抓狂,時間久了,慢慢地學(xué)習(xí)的激情殆盡,也就不想學(xué)習(xí)了。這還不算什么,更嚴(yán)重的是,很多人學(xué)習(xí)嵌入式遇到挫折,往往會打擊人的自信,覺得自己能力不行,智商不夠,不適合干這行,在心理留下了陰影。對于個人學(xué)習(xí)者來說,買了開發(fā)板,你不買配套的萬用表、示波器等調(diào)試設(shè)備,遇到硬件問題也是一籌莫展,無法解決。其實(shí)我們可以完全使用其它的平臺去開展我們的研究和學(xué)習(xí),比如QEMU,一款可以仿真開發(fā)板的開源軟件,使用這款開源軟件,我們可以在電腦上虛擬一個世面上流行的開發(fā)板,然后再在這個仿真的開發(fā)板上跑u-boot、Linux內(nèi)核、掛載根文件系統(tǒng),使用和開發(fā)板一樣的源碼,運(yùn)行效果和真實(shí)的開發(fā)板是一樣的。而且,使用QEMU的好處就是,“硬件”永遠(yuǎn)不會出問題,可以讓我們避過硬件的各種坑,騰出更多的精力去研究嵌入式軟件的各種架構(gòu)、編程技能、內(nèi)核驅(qū)動....,這些才是嵌入式工程師的核心競爭力,需要花大量的時間不斷地去積累,去磨合,去提高的。把大量的時間耗在一個本該不屬于學(xué)習(xí)范疇的硬件bug上或者硬件環(huán)境不兼容上,不劃算,因為你以后進(jìn)公司后,遇到同樣的問題,找硬件工程師,半分鐘幫你搞定。所以說,選擇一個理想的嵌入式學(xué)習(xí)平臺,尤其對于初學(xué)者來說,很重要。

              ,要保持學(xué)習(xí)的深度,刻意練習(xí)。不要讓自己永遠(yuǎn)待在學(xué)習(xí)的舒適區(qū),要學(xué)會挑戰(zhàn)自己,不斷去擴(kuò)展自己知識的邊界,完善自己的知識體系和技能。很多人買了開飯,按照教程,“移植”了u-boot,Linux內(nèi)核,制作了根文件系統(tǒng),然后就陷入了迷茫:接著要干什么?要學(xué)習(xí)什么?想學(xué)習(xí)又感覺深入不下去,東一耙子,西一耙子,看看這,看看那,時間不知不覺就過去了。其實(shí),學(xué)習(xí)嵌入式,基本的嵌入式知識和理論學(xué)習(xí)還是必要的,很多人推崇邊做邊學(xué),到項目中學(xué)習(xí),實(shí)踐出真知。當(dāng)然這也是一個方法,但是也有弊端,那就是學(xué)習(xí)的不系統(tǒng),很多有心人到后來還是得回來補(bǔ)課,完善自己的知識體系和技能。很多人玩開發(fā)板,燒寫鏡像,玩得賊溜,但是你知道這里面的原理嗎?知道JTAG怎么下載的嗎?Jlink和JTAG有什么區(qū)別?為什么PC上要裝個JTAG軟件而Jlink不用?程序的編譯和鏈接是怎么樣的?為什么內(nèi)核鏡像要下載內(nèi)存的某個地址?換個地址行不行?為什么我們編寫的程序要在有OS的環(huán)境下運(yùn)行,在ARM開發(fā)板裸機(jī)環(huán)境下,你能寫一個跑起來的程序嗎?只有對這些問題深入思考,你才會對嵌入式有一個更深的認(rèn)識,超越了平臺,一通百通。

      免費(fèi)預(yù)約試聽課

      亚洲另类欧美综合久久图片区_亚洲中文字幕日产无码2020_欧美日本一区二区三区桃色视频_亚洲AⅤ天堂一区二区三区

      
      

      1. 在线观看国产二级 | 日韩欧洲亚洲美三区中文幕 | 亚洲日本中文字幕一区二区三区 | 在线免费看片a欧美 | 三级中文字幕在线视频 | 在线三级午夜理论 |