国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

北大碩士7年嵌入式學(xué)習(xí)經(jīng)驗分享

這篇具有很好參考價值的文章主要介紹了北大碩士7年嵌入式學(xué)習(xí)經(jīng)驗分享。希望對大家有所幫助。如果存在錯誤或未考慮完全的地方,請大家不吝賜教,您也可以點擊"舉報違法"按鈕提交疑問。

北大碩士7年嵌入式學(xué)習(xí)經(jīng)驗分享,文筆,學(xué)習(xí),經(jīng)驗分享

階段 1

大一到大三這個階段我與大多數(shù)學(xué)生相同:

學(xué)習(xí)本專業(yè)知識(EE專業(yè)),學(xué)習(xí)嵌入式軟件開發(fā)需要的計算機課程(匯編原理,計算機組成原理,操作系統(tǒng),C語言等),學(xué)習(xí)嵌入式項目(來源于實驗室項目,自己想到的項目以及各種比賽)。

關(guān)于如何學(xué)習(xí)嵌入式軟件開發(fā):

① 學(xué)習(xí)51單片機。

這個階段你只需要跟著郭天翔的視頻去學(xué),只要求實現(xiàn)功能,不求甚解。

但建議能夠提出問題,比如“為什么往IO控制寄存器寫入特定值能點亮LED燈?”

“IO口的電路結(jié)構(gòu)是什么樣子的?”

“什么是上拉下拉,灌電流拉電流?”,

這一階段主要是熟悉單片機的使用,并且在使用中思考發(fā)現(xiàn)問題,還能熟悉一些基本概念。

② 開始查資料看書。

看模擬電路數(shù)字電路等等,開始去弄明白1中所提出的問題。這時候問題主要集中在電路方面。

③ 開始學(xué)習(xí)STM32。

隨便買個板子,看原子的書跟著一步步去做。

這時候你會遇到很多計算機方面的問題,這時候一邊學(xué)習(xí)教程,一邊學(xué)習(xí):微機原理,編譯原理,操作系統(tǒng)。

你要弄清楚 ARM 架構(gòu),弄明白 CPU 如何取指,譯碼,執(zhí)行,知道地址總線,控制總線,數(shù)據(jù)總線如何工作。

要弄明白你編譯各個階段產(chǎn)生的各個文件是什么,什么是分散加載,什么是重定位,什么是代碼段,什么是數(shù)據(jù)段,等等。

弄明白 CPU 如何啟動,程序鏡像在內(nèi)存中如何布局。

要知道中斷的原理,以及現(xiàn)場保護等等。最后你了解了各個知識點之后,轉(zhuǎn)向 GCC 開發(fā) STM32,這時候你如果知識掌握得不錯,你應(yīng)該可以很快地學(xué)會編寫鏈接器腳本并且明白每一條語句所代表的含義。

④ 開始增強 C 語言。

深入挖掘C語言的各個死角。

最好可以做到當(dāng)你寫下一條語句的時候知道編譯器會如何處理。

還需要數(shù)據(jù)結(jié)構(gòu)和軟件工程,建議最好還要學(xué)習(xí)一下設(shè)計模式。

開始學(xué)習(xí)養(yǎng)成良好的代碼風(fēng)格,開始思考代碼的結(jié)構(gòu)。

可以說設(shè)計模式如果能學(xué)好,在往后學(xué)習(xí) LINUX 內(nèi)核時大有裨益。

你會發(fā)現(xiàn) LINUX 的輸入子系統(tǒng)有點像職責(zé)鏈模式,會發(fā)現(xiàn) ASOC 音頻系統(tǒng)有點像模板方法模式。

私以為,如果能在兩個以上不同方面考察同一種編程思想,你會得到更加深刻的理解,更能領(lǐng)會其精華。

⑤ 認真研讀 OS 方面的書。

各個知識點都要弄明白,進程是什么,程序是什么,線程是什么,競爭死鎖優(yōu)先級反轉(zhuǎn),虛擬地址空間物理地址空間,用戶空間內(nèi)核空間等等。

開始學(xué)習(xí) ucos,這個沒什么可說的,如果在 2 中能熟練掌握各種知識點,知道 CPU 如何中斷如何保護恢復(fù)現(xiàn)場,那么讀ucos 的源碼時候,在原理上就不會有什么疑惑。

如果能在 4 中養(yǎng)成把握代碼整體結(jié)構(gòu)的能力并且學(xué)習(xí)好數(shù)據(jù)結(jié)構(gòu)和基本的算法,讀源碼就沒有什么障礙。

一旦原理弄通了,源碼也能讀懂,那么吃透 ucos 就是順理成章的事情。

⑥ 自己仿照 ucos 寫一個 stm32 上的實時 os 出來。

⑦ 進軍 LINUX。

學(xué)習(xí) LINUX 的基本使用,看趙炯那本內(nèi)核剖析,啃 LINUX 內(nèi)核設(shè)計與實現(xiàn),把握總體的內(nèi)核架構(gòu)。

之后可以學(xué)習(xí)驅(qū)動,看建議陳學(xué)松老師的書,弄明白基本的驅(qū)動架構(gòu)和如何編寫簡單的驅(qū)動,認真對待,這里強調(diào)一下設(shè)備驅(qū)動模型。

最后啃 LINUX 內(nèi)核源碼情景分析,上下兩冊用心讀,這里著重強調(diào)一下內(nèi)核中的 VFS 部分。

之后就是看宋寶華老師的書,進一步學(xué)習(xí)驅(qū)動開發(fā)。

最后,看內(nèi)核源碼看內(nèi)核源碼看內(nèi)核源碼。

⑧ 其它的什么 SPI,IIC,什么 DMA,都只是技能問題,只要知識學(xué)的好,技能想咋點就咋點。

階段 2

大三到研究生入學(xué)前這個階段我在工作與考研之間無比糾結(jié),并在此期間無數(shù)次常思考嵌入式開發(fā)到底是什么,如何把嵌入式開發(fā)做好,以后該選擇怎樣的一條職業(yè)道路。

為此,像很多人一樣,在知乎上像做嵌入式開發(fā)的前輩們咨詢過多次。

在這個階段,我學(xué)習(xí)了 Linux 驅(qū)動開發(fā),并漸漸認識到,嵌入式開發(fā)是一個比較偏軟件的崗位(我認為大多數(shù)學(xué)生做的工作都是嵌入式軟件開發(fā),而不是硬件開發(fā)),

應(yīng)該深入學(xué)習(xí)計算機體系結(jié)構(gòu)的知識,而不是把那些無聊的嵌入式相關(guān)項目翻來覆去的做(尤其少參加亂七八糟的比賽)。

最終,我選擇了讀研,想站的再高一點看這件事。

階段 3

研一進入研究生階段(2018),當(dāng)大家都火急火燎的加入 AI 的陣營時,我依然對嵌入式愛的深沉。

選課時,我選擇了嵌入式實時操作系統(tǒng),計算體系結(jié)構(gòu)相關(guān)的課程,還看了很多相關(guān)的書籍,依然每周保持嵌入式 Linux 的學(xué)習(xí)。

時不與我,明明選擇了做底層的導(dǎo)師,結(jié)果導(dǎo)師轉(zhuǎn)做深度學(xué)習(xí)了,還好是做終端+AI相關(guān)的方向,也不算完全偏離嵌入式,這讓人多少有點欣慰(畢竟我還是放不下嵌入式的)。

在這個階段,由于接觸了不少的人和事,我越來越認識到,嵌入式只是一個平臺,切勿把嵌入式看作一個具體的崗位,無論硬件還是軟件。

因此,我對這個崗位以及行業(yè)就業(yè)現(xiàn)狀有了更進一步的認識。

階段 4

研二到研三在這個階段,我對狹義嵌入式(驅(qū)動,應(yīng)用開發(fā))完全釋懷,

我認為許多人喜歡的嵌入式并不是驅(qū)動或者應(yīng)用等開發(fā),而是對底層系統(tǒng)的一種好奇心與掌控時的快感。

與其說喜歡嵌入式,還不如說喜歡的是計算機體系結(jié)構(gòu)。

因此,只要是涉及到硬件的軟件開發(fā),我都喜歡,我也將其均定義為嵌入式。

因為嵌入式軟件開發(fā)就是建立在底層語言,計算機組成原理,操作系統(tǒng)等知識上的一種軟件開發(fā),

如果你想將嵌入式開發(fā)做好,你就得學(xué)好這幾門課程 ,如果你學(xué)好了這幾門課程,底層軟件開發(fā)工作的崗位你應(yīng)該都能勝任。

因此,又何必將嵌入式開發(fā)狹義的劃到驅(qū)動開發(fā),XX協(xié)議開發(fā)之類的呢?

最終,這個階段我毅然放棄了 Linux 驅(qū)動的學(xué)習(xí),投入了 Python 深度學(xué)習(xí)的懷抱中。

我不再關(guān)注我到底做的是不是嵌入式開發(fā),只關(guān)注和嵌入式平臺有沒有關(guān)系。

我研究的是如何把一個深度學(xué)習(xí)模型部署到嵌入式平臺上去。

有人可能會疑問,這和嵌入式開發(fā)有什么關(guān)系?為什么沒有關(guān)系呢?在嵌入式平臺上用 C 語言編寫神經(jīng)網(wǎng)絡(luò)模型的前向推理,這不是把我們的C語言和組成原理的知識發(fā)揮出來了嗎?

當(dāng)圖像處理程序性能不足時,查看生成的匯編程序,當(dāng)匯編效率不高時,將 C 語言替換為我們自己寫的匯編代碼,這還不夠嵌入式嗎?

其實,當(dāng)我們把思路放寬后,嵌入式就不再是某一個具體的崗位了,

它有可能是 AI 算子工程師,AI編譯器開發(fā)工程師,F(xiàn)PGA加速工程師,高性能工程師等等。

這些崗位需要的技能與嵌入式工程師極為相似,年薪卻最低 30W 起。

為什么?很簡單,供需關(guān)系決定價格!嵌入式早已江河日下,但嵌入式+某一風(fēng)口就能邁向高薪之路,這個道理在任何技術(shù)領(lǐng)域都是通用的。

2018年-2021年,嵌入式+AI=高薪,未來嵌入式+XX也可以。

至于未來的風(fēng)口是什么,就要靠我們自己去探索了。只要保證我們自己有核心的知識儲備,再學(xué)習(xí)一下風(fēng)口相關(guān)的技術(shù),立馬就能咸魚翻身。

在視野拓寬后,我去了 2 家大公司實習(xí),后續(xù)我陸續(xù)收到了很多公司的offer。

里面既有純算法(計算機視覺)的崗位(50-60W),也有異構(gòu)計算的崗位(45-55W),也有AI芯片工具鏈相關(guān)的崗位(45W-50W)。

回頭看,我好像已經(jīng)荒廢技術(shù)好久了,但是好像依舊在嵌入式學(xué)習(xí)的路上。文章來源地址http://www.zghlxwxcb.cn/news/detail-726782.html

到了這里,關(guān)于北大碩士7年嵌入式學(xué)習(xí)經(jīng)驗分享的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來自互聯(lián)網(wǎng)用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務(wù),不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。如若轉(zhuǎn)載,請注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實不符,請點擊違法舉報進行投訴反饋,一經(jīng)查實,立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費用

相關(guān)文章

  • 嵌入式Linux 開發(fā)經(jīng)驗:platform_driver_register 的使用方法

    嵌入式Linux 開發(fā)經(jīng)驗:platform_driver_register 的使用方法

    嵌入式Linux 設(shè)備驅(qū)動開發(fā)時,經(jīng)常遇到平臺驅(qū)動 platform_driver_register 的注冊,最近深入了看了驅(qū)動開發(fā)為何使用平臺驅(qū)動 開發(fā)一個設(shè)備驅(qū)動時,為了實現(xiàn) 設(shè)備的 打開、關(guān)閉、控制等操作,可以注冊為 Linux misc 設(shè)備,不過在這之前,可以先使用 platform_driver_register 注冊平臺驅(qū)動

    2024年01月15日
    瀏覽(21)
  • 三本光電從頹廢到武漢年薪30w的本科經(jīng)歷經(jīng)驗與淺談(畢業(yè)工作一年的嵌入式軟件工程師經(jīng)驗分享)

    三本光電從頹廢到武漢年薪30w的本科經(jīng)歷經(jīng)驗與淺談(畢業(yè)工作一年的嵌入式軟件工程師經(jīng)驗分享)

    三本光電從頹廢到武漢年薪30w的本科經(jīng)歷經(jīng)驗與淺談(畢業(yè)工作一年的嵌入式軟件工程師經(jīng)驗分享) 我目前工作崗位為嵌入式軟件工程師(雷達射頻方向)。 我選擇了武漢的一家做雷達的小企業(yè),算上項目獎,年薪能拿到30。 我之前被坑的經(jīng)歷可以看我上一次發(fā)的文章。 我

    2024年02月04日
    瀏覽(29)
  • 嵌入式操作系統(tǒng)(嵌入式學(xué)習(xí))

    嵌入式操作系統(tǒng)(嵌入式學(xué)習(xí))

    嵌入式操作系統(tǒng)是一種專門設(shè)計和優(yōu)化用于嵌入式系統(tǒng)的操作系統(tǒng)。它是在資源受限的嵌入式設(shè)備上運行的操作系統(tǒng),如微控制器、嵌入式處理器和系統(tǒng)芯片等。 嵌入式操作系統(tǒng)的主要目標是提供對硬件資源的有效管理和對應(yīng)用程序的調(diào)度,以實現(xiàn)系統(tǒng)的可靠性、實時性和效

    2024年02月10日
    瀏覽(23)
  • 適合嵌入式開發(fā)的GUI(嵌入式學(xué)習(xí))

    適合嵌入式開發(fā)的GUI(嵌入式學(xué)習(xí))

    嵌入式開發(fā)中的GUI(圖形用戶界面)是指在嵌入式系統(tǒng)中實現(xiàn)圖形化的用戶界面,以便用戶可以通過觸摸屏、按鈕、鼠標或其他輸入設(shè)備與系統(tǒng)進行交互。 以下是一些常見的嵌入式GUI開發(fā)方法: 輕量級GUI庫:一些輕量級的GUI庫適用于嵌入式系統(tǒng),例如uGFX、LittlevGL、Nanogui等。

    2024年02月09日
    瀏覽(22)
  • 【嵌入式學(xué)習(xí)筆記】嵌入式入門2——中斷(外部中斷)

    【嵌入式學(xué)習(xí)筆記】嵌入式入門2——中斷(外部中斷)

    打斷CPU執(zhí)行正常的程序,轉(zhuǎn)而處理緊急程序,然后返回原暫停的程序繼續(xù)運行,就叫中斷 作用1: 實時控制在確定時間內(nèi)對相應(yīng)事件作出響應(yīng) ——定時器中斷 作用2: 故障處理檢測到故障,需要第一時間處理 ——外部中斷 作用3: 數(shù)據(jù)傳輸不確定數(shù)據(jù)何時會來 ——串口中斷

    2024年02月08日
    瀏覽(66)
  • 嵌入式開發(fā):單片機嵌入式Linux學(xué)習(xí)路徑

    嵌入式開發(fā):單片機嵌入式Linux學(xué)習(xí)路徑

    SOC(System on a Chip)的本質(zhì)區(qū)別在于架構(gòu)和功能。低端SOC如基于Cortex-M架構(gòu)的芯片,如STM32和NXP LPC1xxx系列,不具備MMU(Memory Management Unit),適用于輕量級實時操作系統(tǒng)如uCOS和FreeRTOS。高端SOC如基于Cortex-A架構(gòu)的芯片,如三星、高通、飛卡、全志和瑞芯微等,具備MMU,支持虛擬內(nèi)

    2024年02月15日
    瀏覽(38)
  • 【嵌入式學(xué)習(xí)筆記】嵌入式基礎(chǔ)9——STM32啟動過程

    【嵌入式學(xué)習(xí)筆記】嵌入式基礎(chǔ)9——STM32啟動過程

    程序段交叉引用關(guān)系(Section Cross References):描述各文件之間函數(shù)調(diào)用關(guān)系 刪除映像未使用的程序段(Removing Unused input sections from the image):描述工程中未用到被刪除的冗余程序段(函數(shù)/數(shù)據(jù)) 映像符號表(Image Symbol Table):描述各符號(程序段/數(shù)據(jù))在存儲器中的地址、類

    2024年02月15日
    瀏覽(64)
  • 嵌入式學(xué)習(xí)筆記匯總

    嵌入式學(xué)習(xí)筆記匯總

    本文整理STM32、STM8和uCOS-III的所有文章鏈接。 源碼:mySTM32-learn STM32學(xué)習(xí)筆記(1)——LED和蜂鳴器 STM32學(xué)習(xí)筆記(2)——按鍵輸入實驗 STM32學(xué)習(xí)筆記(3)——時鐘系統(tǒng) STM32學(xué)習(xí)筆記(4)——NVIC中斷優(yōu)先級管理和外部中斷EXTI STM32學(xué)習(xí)筆記(5)——系統(tǒng)定時器SysTick STM32學(xué)習(xí)筆

    2023年04月20日
    瀏覽(91)
  • GPIO(嵌入式學(xué)習(xí))

    GPIO(嵌入式學(xué)習(xí))

    GPIO是英文General Purpose Input/Output的縮寫,中文翻譯為通用輸入/輸出。它是一種在數(shù)字電子系統(tǒng)中常見的接口類型,用于與外部設(shè)備進行通信和控制。 GPIO接口可以作為輸入或輸出引腳使用。作為輸入引腳時,GPIO可以接收來自外部設(shè)備的電信號,并將其轉(zhuǎn)換為數(shù)字信號,供系統(tǒng)

    2024年02月09日
    瀏覽(17)
  • 嵌入式學(xué)習(xí)路線

    嵌入式開發(fā)學(xué)習(xí)路線份三個階段: 第一階段、 C語言 基礎(chǔ) 進階 高級 經(jīng)典案例 閱讀開源代碼 第二階段、基礎(chǔ)四大件 數(shù)據(jù)結(jié)構(gòu)/算法 操作系統(tǒng) 計算機網(wǎng)絡(luò) 設(shè)計模式 第三階段、嵌入式 基礎(chǔ) 進階 視頻 高級 嵌入式應(yīng)用開發(fā) 經(jīng)典案例: 嵌入式低層開發(fā)(內(nèi)核、驅(qū)動) 內(nèi)核 驅(qū)動

    2024年02月12日
    瀏覽(19)

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包