隨著*對(duì)集成電路、操作系統(tǒng)等基礎(chǔ)軟件的大力支持,在可以預(yù)見(jiàn)的將來(lái),越來(lái)越多的國(guó)產(chǎn)芯片、*芯將推向市場(chǎng),基于Linux的面向各個(gè)特定行業(yè)的操作系統(tǒng)將陸續(xù)推出。物聯(lián)網(wǎng)、智能硬件、VR這些方興未艾的領(lǐng)域,也將催生大量嵌入式開(kāi)發(fā)的需求。
作為一個(gè)在校學(xué)生或者想從事嵌入式Linux開(kāi)發(fā)的工程師來(lái)說(shuō),該如何去學(xué)習(xí)嵌入式呢?
平臺(tái)越來(lái)越多,平臺(tái)環(huán)境搭建困難,是嵌入式學(xué)習(xí)的一道坎。嵌入式真的難學(xué)嗎?其實(shí)跟Windows下學(xué)習(xí)編程沒(méi)有什么兩樣。難就難在嵌入式開(kāi)發(fā)環(huán)境的復(fù)雜上,調(diào)試方法也不如在Windows下開(kāi)發(fā)方便。
很多人買(mǎi)來(lái)開(kāi)發(fā)板,一陣子搗鼓,把時(shí)間都浪費(fèi)在了開(kāi)發(fā)板的升級(jí)、燒寫(xiě)上。而真正嵌入式Linux的精髓、核心知識(shí)、內(nèi)核的理解卻很少涉及。
而在公司實(shí)際的開(kāi)發(fā)中,不同的公司采用不同的平臺(tái),調(diào)試手段、升級(jí)方法也往往不盡相同,你花了很長(zhǎng)時(shí)間掌握的開(kāi)發(fā)板技能往往換個(gè)平臺(tái)可能就不管用,而你該掌握的嵌入式核心知識(shí)、Linux內(nèi)核基礎(chǔ)、系統(tǒng)的通用理解卻不完善,這也是當(dāng)前很多人學(xué)習(xí)嵌入式開(kāi)發(fā)容易遇到的一個(gè)情況。
我的建議是,學(xué)習(xí)嵌入式,應(yīng)該把主要精力放在核心通用的知識(shí)上,跟平臺(tái)無(wú)關(guān),比如對(duì)內(nèi)核的理解,這個(gè)不是一朝一夕就提高的,需要花大量的時(shí)間和精力去系統(tǒng)學(xué)習(xí)的,而在公司工作中一般很少有機(jī)會(huì)和大量的時(shí)間去學(xué)習(xí)這些。
而對(duì)開(kāi)發(fā)板和平臺(tái)的熟悉,你自己一個(gè)人在折騰,可能會(huì)浪費(fèi)很多時(shí)間,到了公司,別人稍微指導(dǎo)下,可能很快就掌握了。
不采用實(shí)體開(kāi)發(fā)板的原因,一是對(duì)于學(xué)員來(lái)說(shuō),實(shí)體開(kāi)發(fā)板往往環(huán)境搭建就會(huì)遇到各種各樣莫名其妙的問(wèn)題,比如電腦硬件、系統(tǒng)不兼容,任何一個(gè)小細(xì)節(jié)都會(huì)讓你系統(tǒng)跑不起來(lái),燒寫(xiě)不成功,時(shí)間長(zhǎng)了,容易受打擊,而真正嵌入式的核心知識(shí),需要我們花精力和時(shí)間該學(xué)的東西,卻沒(méi)有涉及。二,通過(guò)仿真平臺(tái),搭建理想化的學(xué)習(xí)平臺(tái),我們可以把精力完全放到嵌入式開(kāi)發(fā)軟件、Linux內(nèi)核、驅(qū)動(dòng)開(kāi)發(fā)上,節(jié)省時(shí)間和金錢(qián)成本。三是從學(xué)習(xí)效果上看,在只有開(kāi)發(fā)板,沒(méi)有配套的萬(wàn)用表、示波器等硬件工具,其實(shí)硬件遇到問(wèn)題往往也無(wú)能為力,對(duì)比下來(lái),使用仿真器去學(xué)習(xí)是一個(gè)不錯(cuò)的選擇。