嵌入式開發工程師本身是一個以軟件為主,結合硬件進行開發的一門工作。既要有過硬的編程能力,又要具備一定的硬件電路的分析能力。硬件出身對于后期學習驅動開發是比較有優勢的。
以后工作想做linux驅動開發,建議依然還是建議優先學習ARM9,ARM11,但是ARM9和ARM11的處理器目前很多SOC都已經停產了,現在更多的SOC采用的是Cortex-A系列的內核,學習嵌入式驅動可以選擇cortex-A7,Cortex-A9內核的處理器,常見的開發板主要有Exynos4412,IMX6,IMX7,STM32MP157都是目前比較主流學習linux驅動開發的開發板。
只要你學透了arm架構的任何一款處理器的驅動開發,上手其他arm架構的處理器都相對是比較容易的,因為驅動開發很多地方時相通的。驅動開發對硬件架構先不說,難度在于linux系統,尤其是內核。
學習ARM高端的內核能夠更容易的掌握u-boot的移植,linux內核的移植,根文件系統的移植,以及linux驅動的開發,設備樹的使用。
而學習STM32開發,主要是針對于一些物聯網終端設備的開發,主要運行的是裸機程序,或者是實時操作系統比如FreeRTOS。學習完STM32的開發板,在轉到linux驅動開發可能需要很長時間的適應階段,但是相對于純小白學習linux驅動會好一些,畢竟自己有一定的硬件基礎,掌握軟件編程是如何控制硬件的。