简书里面插入音频居然要我开通会员,先吐槽一下,本来想给自己的系列日记打上酷酷的电动音乐了的,要花钱还是算了吧。
做嵌入式开发的人,我想大部分都有一种情节,或者说埋藏许久的目标,也许从刚进入这个行业,从做第一份工作的时候起就已经有的梦想,那就是能够移植Linux操作系统到各种芯片和板子上,能够写各种驱动。至少在我的心里,技术栈到达这样的程度,才能算得上是一名真正的嵌入式底层开发工程师。奈何现实跟理想就是有很大的差距,在嵌入式领域里摸爬滚打了多年,都是在折腾单片机开发和Linux应用开发,没办法,人总是要找份工作,市场的需求往往决定了我们的技术栈,这导致大部分人没有机会能够深入底层开发。如果你是做底层开发的,那真的应该感到很庆幸了。但是,机会还是有的,我们依然可以在各种招聘平台上看到BSP开发的招聘信息,可是一看招聘需求,就不禁打起了退堂鼓,感觉心里很虚啊,人家可不是要你去学习的啊,是要你去了就能做事的,所以,想要得到这样的机会,还是得靠自己学习啊。
嵌入式底层开发涉及到的知识多而且杂而且难,目前来说这部分比较厉害的都是老外,半导体原厂已经把方案包搞好了,而且线上和线下都找不到系统的教程和培训,网上也只能找到一些零零散散的博客,只能遇到一些问题的时候参考。我之前在网上找了华清远见的课程,花了几千块钱,买了系统移植的课程,我还特地跟客服老师说了自己的需求的,结果一学啊,心都凉透了,讲了基本上相当于没讲,系统移植部分就讲了怎么menuconfig,改了一下设备树,编译内核启动了一下,基本就是拿着原厂改好的东西做了一遍演示。拜托,这些东西只要之前接触过驱动编程的都会啊。但是一想,培训机构也不是专门研究这块的,要在课上实际操作代码,还是很难的,这些培训,就相当于是让我们有个嵌入式Linux开发的一些概念和熟悉一些开发环境和流程吧,师傅领进门,修行靠个人,光靠看一些零散的博客,或者看别人怎么做的,只能有感性的认识,没有亲自动手移植一遍,是学不到任何东西的,所以,我决定从头开始,自己来移植一遍。既然没地方学,那就只能自己沉下心来钻研和学习了。
这个系列的日记用来记录自己学习嵌入式Linux底层开发的过程,目标是能够进行UBoot的移植,Linux系统的移植和裁剪,运行到嵌入式开发板上。日记的记录是按照时间来的,同一天做的内容和步骤会写到同一篇日记里面,做得多就写得多,做得少就写得少,所以不像一般的博客,可以按照内容来拆分成章节。因为我这也不是教程,再说,我在实际做之前,也不知道要做些什么东西(无法做到未卜先知)。但是,我会将当天内容的关键词体现在标题里面。先说下我目前已经具备的能力,会设计电路原理图,会画PCB,看得懂硬件,看得懂Makefile,会写Makefile,做过几年单片机开发,目前在做嵌入式Linux应用开发,会交叉编译,学过Linux驱动开发(工作上没涉及过,算不上熟悉)。
全靠对技术的热爱和初心吧,也不知道能不能成功,反正记录下来,万一成功了,也可以给像我一样的后来者有个参考吧。