问:白老师您好!我是一名电子工程师,单片机软硬件都做,已经做了快十年了,我有必要学习linux开发吗?个人觉得,只有把单片机,该会的都会了,Linux这种重量级的系统开发就没必要折腾。如果对单片机已经做了很熟了,有必要往Linux开发上走吗?往Linux上走的意义是什么?
(1)像我们同学的这种情况非常具有代表性,也就是很多人软硬件都做,而且都还做的不错,就觉得自己遇到了瓶颈,就在想我要不要学习linux (2)针对于要不要学习Linux的问题我们要做具体情况具体分析,首先像我们同学这种情况,软硬件都做,而且都做的还不错,然后你在自己的行业做了快10年,那么其一你对自己的职业规划应该非常清晰了,其二你在这个行业应该已经积累了一些资源和人脉,其三你在公司应职位给方面应该已经不错了,甚至有可能在做技术管理相关的岗位,如果是这种情况我个人觉得完全没有必要再去学习Linux (3)如果是你对技术很痴迷,你的目的就是往技术专家的路线走,那么Linux很有必要去学习一下,但是linux得学习是一个漫长的过程,我们要有正确的的学习路线:针对于我们软硬件都做的同学,首先我们可以学习STM32的标准库,我们这里重点学习如何进行软件架构的设计-->然后进行HAL库的学习,进一步熟悉软件架构设计技巧,并且逐步开始熟悉操作系统其编程风格,因为在HAL库引入了句柄结构-->实时操作系统RTOS的学习,主要学习对多任务的调度机制,以及其他操作系统的关键技术-->然后才是Linux,但是Linux得学习又是一个漫长的过程,一般都是首先学习uboot,类似于我们stm32里面的bootloader,重点学习如何初始化各种底层硬件,uboot命令等,最重要的是学会其向载入os传递参数的机制,也就是我们著名的ATAG参数法以及设备树法等-->linux.内核的学习-->linux.驱动学习又是一大难关,对于各种驱动模式的学习是一个非常痛苦的过程,对于你的软件架构能力底层的C语言能力是一个非常大的考验,但是你完成了那绝对是一个质的飞跃-->基于linux的应用开发如Qt使用C++进行开发 (4)对于我们刚刚开始以及职场生涯的同学,那么我个人建议在有时间有精力的情况下还是要好好学习一下linux的,至于说具体的学习路线如上 (5)那我们为什么要学习Linux呢?其主要是大势所趋,未来我们很多的产品是基于AI智能,基于5g,基于智能制造,基于工业4.0……等等等等,其要求是边缘的计算能力等非常高,一般情况下我们满足这样性能需求的Mcu或者微处理器其大多都是基于Linux系统的,所以这就驱使我们必须哪怕没有掌握至少也是熟悉的;另外我们以后人生的选择也可以更多
|