日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 运维知识 > linux >内容正文

linux

单片机6年想转嵌入式Linux ,不知如何下手?

發布時間:2023/12/19 linux 25 豆豆
生活随笔 收集整理的這篇文章主要介紹了 单片机6年想转嵌入式Linux ,不知如何下手? 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

關注、星標公眾號,直達精彩內容

來源:知乎

作者:snowdream

刷知乎看到下面這個提問。

單片機6年想轉嵌入式Linux ,不知如何下手?

現在挺尷尬,做的單片機產品總是感覺重復重復再重復,想學習點新東西,不知道如何轉。

說實話,這個問題自己關注了很久。

今天就借題主這個問題,回顧一下自己的 MCU->Linux 的技術道路。

期間有過技術突破時候的快樂,也有面對技術難題時候的苦惱和彷徨乃至想要放棄。

站在今天回頭看,自己對于技術的堅持才能支持自己一步一步走下來。

希望我的經歷和建議,能夠對題主和其他對嵌入式技術有興趣愛好的朋友,有所幫助。

我是本科階段就開始接觸51單片機,也經歷了電子大賽的考驗。

碩士階段也使用 MSP430 做出過一些產學研結合的嵌入式產品,也進行了小批量的實用。

雖然碩士階段也有接觸 Linux 嵌入式開發,但是回顧自己的碩士階段,PLC+組態和 MSP430 MCU 的確是我的優勢技術(畢業課題搞的 FPGA+Verilog 上不了臺面,當時不知天高地厚去面試 FPGA 崗位,結果可想而知)。

入職華為后,雖然是 Linux、VxWorks的操作系統,但是其實接觸最多的還是 MCU 以及 Linux 用戶態下的應用編程。在大一點公司有過經歷的人都知道,螺絲釘就是螺絲釘,你永遠只能看到樹木看不到森林。不過華為幾年,我的編碼能力的確有了大幅度質的提高。

當年離開華為,和題主的想法有些類似,每天都是面對基本相同的芯片,做的永遠是自己最熟悉的模塊,產品重復造輪子的現象也很嚴重。想去學習新的技能棧也沒有任何時間和精力。

終于等到了乙方通信芯片供應商給出的 Linux 嵌入式開發的 offer,想著自己也曾經搞過Linux嵌入式,有些基礎就欣然跳入了這個芯片巨頭500強做通信協議棧的開發。

理想很豐滿,現實很骨感。可以說嵌入式 Linux 和 MCU 的開發,有相同和相通,但是差別也是非常巨大的。但是,對于答主來說退無可退,而且答主也看好了 Linux 在技術壁壘上的優勢。怎么辦?只能拿出當年剛入職華為死啃C語言的勁頭,干就完了。

當年沒有知乎這樣的知識問答平臺,就找了新公司的老員工還有答主同屆畢業搞 Linux 嵌入式開發的同學咨詢經驗和學習路線。在收到他們熱心的回復和指導后,答主開始了又一輪的死啃 Linux 嵌入式技術旅程。

Linux 的嵌入式開發從大類來看,分為 BSP 和應用開發。

答主為了應付新工作的挑戰,先選擇了嵌入式 Linux 應用開發的復習及進階。后面等答主離開這家公司自主創業的時候,也因為成本問題也自己死啃了嵌入式Linux的BSP,這里咱先說應用。

1. Shell、VIM 及 Makefile

很多朋友可能說,這兩個工具有必要學習么?我的建議是,非常有必要。如果你連基本的 shell 都不懂,怎么去搗鼓 Linux 的文件系統。

如果 VIM 用的不好,雖然 windows的文件夾可以和Linux系統映射,但是 windows 下的字符編碼經常在 Linux 下引起莫名其妙的問題。你說VIM的文本編輯你要不要學習一下?

至于 Makefile,搞 MCU,DSP 的朋友可能都比較陌生。因為 MCU,DSP 的配套編碼下載軟件幫你搞定了 Makefile,你只需要在 UI 界面下配置一下就可以自動生成編譯文件鏈。比如 Keil中,你告訴 Keil 編譯文件在哪里,宏定義是啥就行了。可是當時答主編譯 Linux,只能自己手動在 Maikfile 中告訴嵌入式編譯器,編譯什么文件,生成什么文件等等:

另外:學會搭建交叉編譯環境,也是一個嵌入式 Linux 開發人員必須的技能。這個東西沒啥技術可言,理解大概原理半個小時搞定。

以上這些,不建議拿出大塊時間進行學習和操練。工作之余,安裝個虛擬機環境和Linux 系統,買本基本的 Shell 教程,搗鼓幾天基本 Shell 和 VIM 就差不多了。

至于Makefile,推薦網上自行尋找一下《跟我一起學Makefile》這篇古老的文檔。

2. Linux 常用 API

學習既然題主和當年答主一樣,都是從 MCU 過來的。C語言肯定沒有問題。如果題主接觸過 RTOS 那理解 Linux,也會快很多。

即使沒有 RTOS 的經驗,也沒有關系。從頭開始學,反而少受到以前知識和理解的影響。

其實常用的 Linux 應用態編碼,主要用到的就那么幾個庫和 API:多線程,多進程,阻塞非阻塞等理論互斥機制:讀寫鎖,自旋鎖等線程通信機制和信號網絡通信 Socket 其他你工作可能涉及到的。

跟著一本書,從頭看下來,邊看邊用工作實踐,邊用你上面裝好的虛擬機+Linux系統進行編碼驗證。有基礎的情況下,還是很容易入門和上手的。

如果沒有 RTOS 的概念和基礎,也真的不用擔心,你理解 MCU 的 RTOS 無非就是能讓學習 Linux 線程和進程更快一些,不理解那就學的慢點而已。這里推薦我用過的教材,不一定多高贊,但是個人感覺足夠用:

至于 UI 開發是否要學習,就看題主的工作情況。

3. Debug 技術

耐心復習完前面兩個階段的知識,并配合以工作和自己虛擬機環境的編碼練習。基本上一個項目邊學邊干下來,題主完全可以摸到嵌入式 Linux 的門道。

不過,但凡程序總會 有bug。以前 MCU 的 IDE 可以幫助我們提供一些Debug信息,斷點調試等手段。在 Linux 下,我們只能依靠 GDB 這個強大的工具,幫助我們在 Linux 的世界里,尋找 Bug 的蛛絲馬跡。

關于 GDB 的學習,網絡上有很多資料。策略依然是邊學,邊干,邊總結。積累多了,GDB 自然就會用了。這里就不再多說。答主經過了死啃階段,在項目過程中,慢慢實現了Linux應用開發的轉變。答主編寫的通信芯片底層協議的代碼,沒準都用在各位朋友的電腦和手機芯片上,哈哈。

這個過程雖然很艱辛,但是對于追求技術進階的人來說,學習新技術和新技能,永遠是快樂的。

其實,Linux Bsp 也是嵌入式 Linux 開發的另一個大頭。答主在后期合伙創業中,也是通過死啃的方式,掌握了基本的Linux Bsp 技能棧。過程和路線因為今天篇幅有點長了,寫的太多了。后續如果有朋友感興趣或者需要,答主再來繼續往下寫怎么從 Linux 的應用開發,擴展到Linux Bsp 開發的技能棧領域。

以上,僅代表個人經歷和觀點,僅供參考。另外,如果里面有技術說的不準確乃至錯誤的地方,還請各位批評指正。

作者:snowdream

來源:知乎

-END-

猜你喜歡(點擊下劃線閱讀)

用單片機控制導彈?

你眼中的嵌入式是什么樣?

為什么很多電器設備都要使用單片機?

??最 后??

?

若覺得文章不錯,轉發分享,也是我們繼續更新的動力。

5T資源大放送!包括但不限于:C/C++,Linux,Python,Java,PHP,人工智能,PCB、FPGA、DSP、labview、單片機、等等

點擊下方卡片,在公眾號內回復「更多資源」,即可免費獲取。

總結

以上是生活随笔為你收集整理的单片机6年想转嵌入式Linux ,不知如何下手?的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。