今天分享一個知乎裡一個嵌入式相關熱門問題:學STM32需要學會哪些才建議去學Linux?
一個很不錯的回答:
「
#作者:snowdream
連結:https://www.zhihu.com/question/357775329/answer/2338874463
」
#身為一枚嵌入式軟體開發的老程式設計師,答主也是經歷STM32開發向Soc Linux開發的技術堆疊轉變過程。
總的來說,具備stm32嵌入式開發技能對於掌握Soc Linux的嵌入式開發有一定的促進作用
,但是如果題主誌在走向Linux應用開發道路,那麼stm32的開發技能不一定非要全部掌握
。
根據答主個人的技能堆疊轉變的經歷,以下技能通常是stm32和Linux嵌入式應用開發所共有的,換句話說是可以重複使用的技能
。
#做嵌入式開發,目前主流的程式語言依然是C語言。 stm32如此,Linux也是一樣。唯一不同的是,Linux的嵌入式開發中,會經常涉及一些Linux庫函數API,例如socket,例如鎖等。
這些等到用到的時候拿來用就可以。所以,如果stm32開發專案夠多,一般來說C的程式設計技能是可以直接繼承的。
做應用程式開發,關鍵在於理解需求,並根據需求設計合適的功能單元(為其他模組提供API介面)或設計合適的控制邏輯演算法。而這種領悟需求,設計模組和演算法的能力也是可以透過在stm32專案中得到歷練,並且可以為Linux應用開發提供基礎的。
如果說Linux應用程式開發與stm32最大的差別在哪裡?
那麼多執行緒和互斥保護的思維會是首選。在Linux的開發世界裡,離不開執行緒和進程,離不開共享資源的互斥保護。但在stm32的開發中,如果沒有涉及到RTOS的話,是需要學習一下RTOS的多任務思維的。
多任務與多執行緒有著很相似的邏輯,所以有了RTOS多任務思維的話,對於學習掌握Linux多執行緒多進程和互斥保護,可以起到極大的促進作用。
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中文網其他相關文章!