学习方法需要改变
我是韦东山,从2005年开始学习嵌入式Linux,2005年~2007年在中兴通信从事嵌入式Linux研发。从嵌入式Linux在中国发展的元年,我就从事相关的开发工作,2011年创建百问网从事嵌入式Linux软件培训。 学习嵌入式Linux的方法,经历了三个时代。
1.2004~2019年:初始,啥都要做
我在2004年学习Linux,那时还有wince、vxwork,国内大厂也是这个时候使用嵌入式Linux。 在这个时期,大家对Linux都不熟悉,芯片厂家提供的软件包也不完善。需要我们从芯片上电的第一条指令也就是uboot开始搭建系统,需要:
① 移植uboot
② 移植内核
③ 编写驱动
④ 编写APP
为了能移植uboot,需要我们能编写各个模块的裸机驱动,比如Flash驱动。学习方法是:先学习各类裸机编程,然后综合起来学习uboot。 下一步需要移植内核、适配内核,基本上是编写驱动程序。那时 各位外设驱动不完善,很多需要我们自己编写。 最后是编写APP。
这个时代的学习顺序教学路线为:裸机→ARM架构→U-BO0T→内核→驱动→应用→项目。
经典开发板是S3C2440,百问网的JZ2440开发板、123期视频是经典!
2.2019~2025:厂家卷,底层软件完善
从2019年开始,IMX6ULL等工业板卡兴起,芯片厂家、核心板厂家一起发力:
① uboot:给你搞好
② 内核:给你搞好
③ 驱动:给你搞好
④ APP:你要自己写
很多厂家专注于APP开发,有不少公司连底层开发人员都没有,只做APP。在这个时期,再去从uboot移植、内核移植开始学习,性价比就不高了。 厂家提供了完善的uboot、内核,工作中很少去修改。即使要修改uboot、内核,你作为初学者,公司敢让你去修改吗? 在这个时代,需要我们掌握基础APP、基础驱动,然后做项目。 是的!即使重点在于做项目、写APP,也需要你掌握基础的驱动理论。嵌入式Linux开发离不开操作设备,基础的驱动知识是编写APP、与人沟通的必备基础。以2年工作经验为例:一个人做了2年APP开发,另一个人做了1年APP、1年驱动,也是后者更有发展前途。因为后者可以从系统层面编写APP。
于是我们就提出了新的嵌入式LINUX学习路线:
① 先学习应用基础:工作中从事应用开发最多。
② 然后学习驱动基础:即使从事嵌入式应用程序开发,也需要懂得基本的驱动知识。
③ 再做项目:把应用程序、驱动程序的知识融合起来,增加经验。
④ 最后按需学习其他专题:比如驱动大全、BOOTLOADER等。
经典产品是IMX6ULL,百问网的IMX6ULL,今天还在更新项目!又是一个经典!
3.2025~:AI时代
我们还在构思,2、3个月后发布,敬请期待。