按道理来说有这几年经验,应该已经熟悉了几款单片机,像stm系列或者ti的,这样应该对soc的体系结构比较了解,一般单片机是在Windows下开发,熟悉一些总线,熟悉一系列业务算法,可以以此为基础。
1.首先需要补充os方面的知识,现代操作系统,看一看,线程,进程,内存管理,文件系统,网络。
2.开发系统逐步使用Ubuntu或者其他linux发行版,熟悉linux的基本操作,脚本,交叉编译
3.看深入理解linux内核,lld第三版,熟悉驱动和内核的基本知识,可以重点看自己熟悉外设的驱动,如spi。
4.可以在熟悉的单片机上移植一个os,不一定是linux,如果是stm32可以移植freertos,这个网上很多资料,然后结合资源可以移植linux。
5.可以买一个树莓派,移植linux也是很方便的,可自己添加驱动,写应用,linux环境高级编程,也可以看看。
这样就你就会理解了,也不会陷入一个os。
当然最简单有效的方式是直接找一份linux相关的工作,在工作中学习,这又是鸡和蛋的问题。