日本电影一区二区_日本va欧美va精品发布_日本黄h兄妹h动漫一区二区三区_日本欧美黄色

嵌入式開發(fā)怎么自學(xué)?有靠譜學(xué)習(xí)路線嗎?(嵌入式開發(fā)如何自學(xué))

嵌入式開發(fā)怎么自學(xué)?有靠譜學(xué)習(xí)路線嗎?(嵌入式開發(fā)如何自學(xué))

告訴你一個殘酷的現(xiàn)實(shí),即便告訴你學(xué)習(xí)方法和路徑,能堅(jiān)持下來的也寥寥無幾。

除此以外,還有學(xué)習(xí)過程中的突發(fā)情況,比如走彎路不知道,碰到問題沒人指導(dǎo)。

我覺得自學(xué)技術(shù)就是和人性弱點(diǎn)的博弈,枯燥、焦慮、迷茫、無助都是自學(xué)必經(jīng)的妖魔古怪。

能否取得西經(jīng),更多是對你魄力和毅力的考驗(yàn),哪怕你走過的彎路能繞地球一圈,最后還是能到達(dá)終點(diǎn)。

如果你明白這些,還想嘗試,請繼續(xù)往下看,否則不要輕易嘗試,半途而廢還不如不要開始。

以上,是我10年前自學(xué)轉(zhuǎn)行的感悟。

當(dāng)時(shí),從電氣專業(yè)轉(zhuǎn)行到嵌入式單片機(jī)軟件開發(fā),最終找到工作花了4個多月。

雖然現(xiàn)在門檻不一樣,但是方法可以通用。

說到嵌入式開發(fā),大多數(shù)人想到的是ARMLinux、STM32。

這都太廣泛,嵌入式開發(fā)涵蓋的知識體系太龐大了,做了10年,我依然覺得我只是嵌入式開發(fā)這個知識海洋里的一根針而已。

但這不代表你需要花費(fèi)1年,甚至幾年的時(shí)間才能學(xué)會。

只要定位清晰,學(xué)習(xí)路徑正確,再加點(diǎn)點(diǎn)堅(jiān)持,3-5個月完全能從零基礎(chǔ)達(dá)到就業(yè)的程度。

先以找工作成功入行為首要目的,是一個成年人該有的覺悟,入行后有工資支撐了,同時(shí)也能在工作中深造,才能形成良性循環(huán)。

千萬不要一上來就想學(xué)成專家,容易餓死。

一、定位

嵌入式開發(fā)分為很多方向,從大方向來看分為嵌入式硬件開發(fā)嵌入式軟件開發(fā)。

  1. 嵌入式硬件開發(fā)

主要負(fù)責(zé)設(shè)計(jì)產(chǎn)品電路、PCB layout、樣品焊接和調(diào)試、后期生產(chǎn)跟進(jìn)。

學(xué)習(xí)硬件,我個人感覺性價(jià)比是比較低的,主要有幾點(diǎn)原因。

①.硬件主要還是要通過實(shí)物不斷實(shí)踐學(xué)習(xí),不同的電路你要搭建不同的配套硬件測試你的理論是否正確。

這就導(dǎo)致需要付出的成本比較大,比如說要買示波器、萬用表、電烙鐵、焊錫、面包板、元器件等等。

還有就是不一定每個人都有這種學(xué)習(xí)環(huán)境,在自己睡覺的小房間焊接可不是一件好事。

②.目前具備實(shí)際產(chǎn)品參考意義的硬件教程很少,大多都是幾年甚至十幾年前的老教材,早都用不上了。

③.大多數(shù)普通硬件工程師崗位的工資都低于嵌入式軟件工程師。

④.現(xiàn)在電路集成度很高,動不動就是芯片方案解決,一般公司很難接觸到核心技術(shù),都是拿別人現(xiàn)成的電路用。

這種一般軟件開發(fā)個幾年都能自己設(shè)計(jì)電路了。

⑤.硬件抄板代價(jià)小,幾千塊能完完整整把你的硬件電路抄出來,軟件抄襲比較難,需要的成本高。

所以,我一直強(qiáng)調(diào)先把軟件學(xué)好,如果想走全棧再針對性去學(xué)硬件。

2.嵌入式軟件開發(fā)

嵌入式軟件開發(fā)又分為很多方向,比如說主流的有單片機(jī)開發(fā)、Linux驅(qū)動開發(fā)、Linux應(yīng)用開發(fā)、安卓應(yīng)用開發(fā)、FPGA/DSP開發(fā)等等。

嵌入式開發(fā)怎么自學(xué)?有靠譜學(xué)習(xí)路線嗎?(嵌入式開發(fā)如何自學(xué))

兩大方向,還細(xì)分很多小方向,每個方向都是一個職位,每個方向所需要的學(xué)習(xí)的內(nèi)容體系都不同。

如果這個定位你不搞清楚,你就會覺得嵌入式開發(fā)很難,又要學(xué)硬件、又要學(xué)STM32、又要學(xué)ARM、又要學(xué)Linux,猴年馬月才能學(xué)完。

二、根據(jù)定位規(guī)劃學(xué)習(xí)路徑

當(dāng)初我處于對文憑、非本專業(yè)的自卑感,讓我選擇了比較好入門的單片機(jī)開發(fā)方向。

做的越久,我越發(fā)現(xiàn),單片機(jī)開發(fā)并不是和大家想象那樣比Linux方向簡單。

相反,Linux方向的開發(fā)很多都有現(xiàn)成的庫可以調(diào)用,而單片機(jī)開發(fā)大多數(shù)要從控制芯片引腳開始。

還有就是一些協(xié)議棧,比如說藍(lán)牙協(xié)議棧、Zigbee協(xié)議棧等等,也是非??简?yàn)?zāi)愕木幊坦Φ椎摹?/span>

這些協(xié)議棧有非常多值得學(xué)習(xí)借鑒的地方,你完全可以剪裁、移植、改編、優(yōu)化成自己的程序架構(gòu)為自己產(chǎn)品所用。

嵌入式開發(fā)怎么自學(xué)?有靠譜學(xué)習(xí)路線嗎?(嵌入式開發(fā)如何自學(xué))

現(xiàn)成的系統(tǒng),不管是實(shí)時(shí)操作系統(tǒng),還是Linux,既要做到通用性、又要做到移植性等苛刻條件,所以普遍比較占用微控制器和處理器資源。

而自己寫架構(gòu)就不同,你完全可以根據(jù)自己的產(chǎn)品定制,這樣既保證系統(tǒng)的優(yōu)點(diǎn),又能最大程度減少芯片資源浪費(fèi)。

這比你直接用所謂的RTOS和操作系統(tǒng)水平高多了。

下面,針對我最熟悉的單片機(jī)開發(fā)方向,根據(jù)當(dāng)下市場對這個職位的需求,系統(tǒng)講解下這個方向的學(xué)習(xí)路徑。

嵌入式開發(fā)怎么自學(xué)?有靠譜學(xué)習(xí)路線嗎?(嵌入式開發(fā)如何自學(xué))

  1. c語言基礎(chǔ)

單片機(jī)支持c語言和匯編語言來編寫程序,目前主流都用c語言,匯編主要做小家電消費(fèi)類產(chǎn)品,可能你10年都用不上,所以以學(xué)c語言為主。

這塊的教程也泛濫了,但是針對單片機(jī)的c語言不多,大多數(shù)以做純軟件為基礎(chǔ)講解的。

雖然都是c語言,實(shí)際還是有差別的,比如說寄存器配置這些。

無際單片機(jī)編程有一套針對單片機(jī)c語言編程的教程,結(jié)合了工作當(dāng)中最常用到的語法,節(jié)約大家學(xué)習(xí)時(shí)間。

教程也是完全開源的,可以到小坡站找無際單片機(jī)編程直接看。

嵌入式開發(fā)怎么自學(xué)?有靠譜學(xué)習(xí)路線嗎?(嵌入式開發(fā)如何自學(xué))

2. 電路基礎(chǔ)

這個環(huán)節(jié)進(jìn)坑最多的就是死磕模電,我也走過這種坑,學(xué)到三極管放大就開始各種數(shù)學(xué)公式,學(xué)不動了。

為此也差點(diǎn)放棄,工作久了才發(fā)現(xiàn),書本教程數(shù)學(xué)公式都用不上,三極管實(shí)際應(yīng)用最多的就是開關(guān)作用。

假如是NPN型的三極管,你只要記住B極電壓大于E極電壓0.7V以上,三極管就能導(dǎo)通就行了。

不同型號的三極管可能不一定是0.7V導(dǎo)通,也有更小的,但實(shí)際電路設(shè)計(jì)要讓三極管導(dǎo)通時(shí),E極一般接地,B極由單片機(jī)引腳控制,電壓都會遠(yuǎn)遠(yuǎn)大于0.7V。

就是這種細(xì)節(jié)的區(qū)別,如果你去死磕三極管截止、放大、飽和,學(xué)習(xí)效率會慢幾倍。

3. 51單片機(jī)

很多人說51單片機(jī)淘汰了,沒必要學(xué),純屬外行瞎扯。

越原始的單片機(jī),你越能接觸到底層開發(fā),51單片機(jī)能讓你理解單片機(jī)的底層原理,如何配置使用芯片資源。

STM32單片機(jī)雖然火,但是都是封裝好的庫,做應(yīng)用多一點(diǎn),一般不需要配置寄存器。

這樣,你永遠(yuǎn)無法知道單片機(jī)的原理。

這個階段必須要配備一個開發(fā)板或者通過項(xiàng)目去學(xué)習(xí)。

單片機(jī)是一門偏向硬件控制的技術(shù),不像純軟件一臺電腦就行。

建議新手從STC89C52RC單片機(jī)入手,目前市面上開發(fā)板很多也是用這個芯片做的,燒錄工具便宜、資料教程豐富。

4. 51單片機(jī)項(xiàng)目

這一個階段最重要,可以說比你后面學(xué)STM32還重要。

你熟練使用STM32,不一定有用51單片機(jī)做過2-3個項(xiàng)目的人牛逼。

單片機(jī)只是一個工具,怎么把這個工具通過自己天馬行空的想象做成落地產(chǎn)品才是我們最終目標(biāo)。

這個階段就是檢驗(yàn)?zāi)闱懊鎸W(xué)習(xí)成果最好的時(shí)候,開頭會比較煎熬,因?yàn)槟X子里沒有思路,有思路有不知道怎么用代碼去實(shí)現(xiàn)。

最好的方法就是先學(xué)習(xí)別人做的項(xiàng)目,看下別人功能實(shí)現(xiàn)思路是什么,代碼是怎么寫的。

最后自己再根據(jù)自己想法寫一遍,寫完分析一下自己的代碼和別人的代碼各有什么優(yōu)缺點(diǎn)。

就是這煎熬的過程,別去想捷徑了。

5. C語言進(jìn)階

大多數(shù)51單片機(jī)程序還是比較簡單的,不用c語言的高級語法指針、結(jié)構(gòu)體也照樣能實(shí)現(xiàn)功能。

但是后面這些c語言高級語法的用法就顯得尤為重要了,可以說不懂指針、結(jié)構(gòu)體這些基礎(chǔ)知識,你永遠(yuǎn)只能停留在初級水平。

STM32單片機(jī)的固件庫也大量使用了指針、結(jié)構(gòu)體。

這塊我們無際單片機(jī)編程也有配套比較完善的系統(tǒng)教程,其中包括枚舉、指針、結(jié)構(gòu)體、回調(diào)函數(shù)、隊(duì)列算法、任務(wù)管理等非常使用的知識。

嵌入式開發(fā)怎么自學(xué)?有靠譜學(xué)習(xí)路線嗎?(嵌入式開發(fā)如何自學(xué))

為你后續(xù)學(xué)習(xí)STM32,RTOS打下扎實(shí)基礎(chǔ),教程也是完全開源的,在小破站直接找到。

當(dāng)然如果只是單純學(xué)習(xí)STM32,只需要學(xué)指針、結(jié)構(gòu)體就足夠了,如果你沒一定的項(xiàng)目經(jīng)驗(yàn),里面很多知識點(diǎn)可能聽不懂。

6. STM32單片機(jī)

我學(xué)STM32單片機(jī)是通過項(xiàng)目學(xué)會的,當(dāng)時(shí)公司有新產(chǎn)品,要把原來NXP的替換掉,價(jià)格太貴了。

有實(shí)際項(xiàng)目驅(qū)動,你學(xué)習(xí)會更有針對性一點(diǎn),效率也更高。

當(dāng)然通過開發(fā)板學(xué)習(xí)也是可以的,不用把所有外設(shè)資源學(xué)完,只需要學(xué)習(xí)最常用的就可以了,后續(xù)工作需要了再針對性學(xué)習(xí)也很簡單。

具體要學(xué)哪些外設(shè),可以參考我上面那個思維導(dǎo)圖。

7. STM32項(xiàng)目

到這里,已經(jīng)是入門了,剩下的重點(diǎn)就是提高你的編程思維水平。

雖然我們最理想的自學(xué),省錢嘛..

但我建議最快的方法就是找一個大神帶項(xiàng)目,一個項(xiàng)目頂你自學(xué)幾年。

我并沒夸張的意思,因?yàn)樽约鹤隽?0年,其實(shí)真正進(jìn)步最大的也就那2,3年接觸到大神代碼的時(shí)候。

不過當(dāng)時(shí)他已經(jīng)離職了,完全靠自己死磕,磕了幾年才完全吃透。

如果實(shí)在不舍得花大錢,可以到某寶買一些項(xiàng)目套件自己DIY,比如說無人機(jī)、尋跡小車之類的項(xiàng)目。

不過這種項(xiàng)目只能讓你熟練編程,不能提升你的認(rèn)知水平,大多數(shù)都是以實(shí)現(xiàn)功能為主。

實(shí)際產(chǎn)品開發(fā)的時(shí)候需要考慮到程序可擴(kuò)展性、可移植性、執(zhí)行效率這些東西。

不知不覺肝了3000多字,純手打原創(chuàng),如果對你有幫助,麻煩給我安排個三連鼓勵。

最后祝大家學(xué)有所成!

相關(guān)新聞

聯(lián)系我們
聯(lián)系我們
公眾號
公眾號
在線咨詢
分享本頁
返回頂部
长春市| 屏东县| 卫辉市| 铜川市| 兰州市| 满洲里市| 共和县| 林甸县| 谢通门县| 姜堰市| 顺昌县| 淮北市| 寿宁县| 五河县| 丹东市| 舟曲县| 禹州市| 汕头市| 寻乌县| 鄂温| 沙坪坝区| 漳州市| 昆山市| 富蕴县| 潍坊市| 屏东县| 宣汉县| 错那县| 舒城县| 石阡县| 满洲里市| 盖州市| 郑州市| 兴海县| 双江| 峡江县| 吉木萨尔县| 伊宁市| 故城县| 扬州市| 文成县|