嵌入式开发工程师本身是一个以软件为主,结合硬件进行开发的一门工作。既要有过硬的编程能力,又要具备一定的硬件电路的分析能力。硬件出身对于后期学习驱动开发是比较有优势的。
以后工作想做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驱动会好一些,毕竟自己有一定的硬件基础,掌握软件编程是如何控制硬件的。