學STM32需要學會哪些才建議去學Linux?
今天分享一個知乎裡一個嵌入式相關熱門問題:學STM32需要學會哪些才建議去學Linux?

一個很不錯的回答:
「
#作者:snowdream
連結:https://www.zhihu.com/question/357775329/answer/2338874463
」
#身為一枚嵌入式軟體開發的老程式設計師,答主也是經歷STM32開發向Soc Linux開發的技術堆疊轉變過程。
總的來說,具備stm32嵌入式開發技能對於掌握Soc Linux的嵌入式開發有一定的促進作用
,但是如果題主誌在走向Linux應用開發道路,那麼stm32的開發技能不一定非要全部掌握
。
根據答主個人的技能堆疊轉變的經歷,以下技能通常是stm32和Linux嵌入式應用開發所共有的,換句話說是可以重複使用的技能
。
1.C編碼能力
#做嵌入式開發,目前主流的程式語言依然是C語言。 stm32如此,Linux也是一樣。唯一不同的是,Linux的嵌入式開發中,會經常涉及一些Linux庫函數API,例如socket,例如鎖等。
這些等到用到的時候拿來用就可以。所以,如果stm32開發專案夠多,一般來說C的程式設計技能是可以直接繼承的。
2.功能模組與演算法設計能力
做應用程式開發,關鍵在於理解需求,並根據需求設計合適的功能單元(為其他模組提供API介面)或設計合適的控制邏輯演算法。而這種領悟需求,設計模組和演算法的能力也是可以透過在stm32專案中得到歷練,並且可以為Linux應用開發提供基礎的。
3.多執行緒與互斥保護思維
如果說Linux應用程式開發與stm32最大的差別在哪裡?
那麼多執行緒和互斥保護的思維會是首選。在Linux的開發世界裡,離不開執行緒和進程,離不開共享資源的互斥保護。但在stm32的開發中,如果沒有涉及到RTOS的話,是需要學習一下RTOS的多任務思維的。
多任務與多執行緒有著很相似的邏輯,所以有了RTOS多任務思維的話,對於學習掌握Linux多執行緒多進程和互斥保護,可以起到極大的促進作用。
4. Basic capabilities of commonly used protocol stacks
stm32 This MCU can be said to have very strong peripheral and internal library support, which is very helpful for learning some communication protocol stacks. ** Some friends may say that since I don’t make Linux drivers, there is no need to learn UART, IIC, SPI, DMA, TCP/IP, RapidIO and other hardware communication protocols. This kind of thinking is wrong
**.
Having this kind of protocol stack foundation will always be useful in future application development.
In many Linux application development, the respondent has involved the development of functional units that communicate with other embedded systems and the design of its own communication protocols. For example, if you don’t understand the UART protocol, you have no way to design it. The text of your agreement. If you don't understand the RapidIO protocol, how can you communicate with the CPUs of other single boards? Although the driver colleagues will help you with the driver, understanding the upper-layer logic or problem location will always help you if you understand the protocol stack.
So, in summary, it is not necessary to become proficient in stm32 before learning embedded Linux development. If you have accumulated stm32 in the above four points, you can consider trying embedded Linux application development.
以上是學STM32需要學會哪些才建議去學Linux?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

熱AI工具

Undresser.AI Undress
人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover
用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool
免費脫衣圖片

Clothoff.io
AI脫衣器

Video Face Swap
使用我們完全免費的人工智慧換臉工具,輕鬆在任何影片中換臉!

熱門文章

熱工具

記事本++7.3.1
好用且免費的程式碼編輯器

SublimeText3漢化版
中文版,非常好用

禪工作室 13.0.1
強大的PHP整合開發環境

Dreamweaver CS6
視覺化網頁開發工具

SublimeText3 Mac版
神級程式碼編輯軟體(SublimeText3)

VS Code 系統要求:操作系統:Windows 10 及以上、macOS 10.12 及以上、Linux 發行版處理器:最低 1.6 GHz,推薦 2.0 GHz 及以上內存:最低 512 MB,推薦 4 GB 及以上存儲空間:最低 250 MB,推薦 1 GB 及以上其他要求:穩定網絡連接,Xorg/Wayland(Linux)

Linux系統的五個基本組件是:1.內核,2.系統庫,3.系統實用程序,4.圖形用戶界面,5.應用程序。內核管理硬件資源,系統庫提供預編譯函數,系統實用程序用於系統管理,GUI提供可視化交互,應用程序利用這些組件實現功能。

vscode 內置終端是一個開發工具,允許在編輯器內運行命令和腳本,以簡化開發流程。如何使用 vscode 終端:通過快捷鍵 (Ctrl/Cmd ) 打開終端。輸入命令或運行腳本。使用熱鍵 (如 Ctrl L 清除終端)。更改工作目錄 (如 cd 命令)。高級功能包括調試模式、代碼片段自動補全和交互式命令歷史。

要查看 Git 倉庫地址,請執行以下步驟:1. 打開命令行並導航到倉庫目錄;2. 運行 "git remote -v" 命令;3. 查看輸出中的倉庫名稱及其相應的地址。

雖然 Notepad 無法直接運行 Java 代碼,但可以通過借助其他工具實現:使用命令行編譯器 (javac) 編譯代碼,生成字節碼文件 (filename.class)。使用 Java 解釋器 (java) 解釋字節碼,執行代碼並輸出結果。

在 Visual Studio Code(VSCode)中編寫代碼簡單易行,只需安裝 VSCode、創建項目、選擇語言、創建文件、編寫代碼、保存並運行即可。 VSCode 的優點包括跨平台、免費開源、強大功能、擴展豐富,以及輕量快速。

Linux的主要用途包括:1.服務器操作系統,2.嵌入式系統,3.桌面操作系統,4.開發和測試環境。 Linux在這些領域表現出色,提供了穩定性、安全性和高效的開發工具。

VS Code 終端命令無法使用的原因及解決辦法:未安裝必要的工具(Windows:WSL;macOS:Xcode 命令行工具)路徑配置錯誤(添加可執行文件到 PATH 環境變量中)權限問題(以管理員身份運行 VS Code)防火牆或代理限制(檢查設置,解除限制)終端設置不正確(啟用使用外部終端)VS Code 安裝損壞(重新安裝或更新)終端配置不兼容(嘗試不同的終端類型或命令)特定環境變量缺失(設置必要的環境變量)
