
linux
学习字符设备驱动仅仅是入门阶段,就像学习编程语言时刚开始能写出Hello World一样。刚起步就考虑未来的方向未免有些早。
linux开发有多种路径可选,而你现在学的是驱动开发,这实际上是板卡开发的一部分,属于硬件路线。在板卡开发这条路上,从代码角度看,你需要掌握编写Platform总线驱动、修改设备树(Device Tree)、PinCtrl配置以及GPIO子系统的能力。这些技能可以帮助你用内核来驱动硬件。接下来,你还得学习块设备的操作,例如如何从TF卡或eMMC中读写文件。不过,仅做到这些还远远不够,这只是完成了软件部分的学习。要知道,这是硬件开发的路径,重点在于硬件本身。为什么叫板卡开发?因为它的第一步是制作开发板。学完代码部分后,你需要进一步学习绘制电路原理图和PCB设计,同时还要学会裁剪
linux内核与根文件系统,并将它们烧录到TF卡或eMMC上。之后,在PCB板上焊接各种外设元件,通过编写PinCtrl实现设备树与寄存器之间的地址映射,最终通过驱动程序操作设备树,让开发板成功运行起来。完成这一系列步骤后,你就具备了自己制作开发板的能力。市面上那些常见的开发板,如
树莓派、香橙派、立创泰山派,还有正点原子、迅为、米尔等品牌的产品,都是按照这个流程做出来的。这是
linux领域中最艰难的一条路,因为它不仅需要学习软件知识,还需要掌握硬件技能。不过,这种能力的好处是非常灵活,既可以从事常规工作,也能进行个人创业。例如,有人设计自己的开发板并在
淘宝上销售获利。像韦东山这样的高手,他的
淘宝店铺里有几十种型号的开发板,价格从几百元到上千元不等,许多型号销量过千。如果只计算那些热门型号的收入,其总收益早已突破八位数,这靠普通打工是不可能达到的。当然,如果你选择走传统的就业路线,板卡开发在
汽车行业也有较大的发展空间。主要涉及
汽车中控电路的设计与开发。这一领域的门槛更高,除了板卡相关的知识外,还需要学习
汽车行业特有的技术,比如域控制(Dom
AIn Control)和AutoSar标准等。走硬件路线的工作并不容易,需要学习的内容非常广泛。再来说说软件方向。
linux应用开发也有很多细分领域。最常见的、相对简单的应用开发是用户界面(UI)设计,只需要学习QT框架即可。然而,这种工作的质量和技术含量通常较低,实在不是特别理想的选择。如果有其他更好的职业发展方向,建议优先考虑。相比之下,更高端一些的方向是从事ROS(Robot Operating System)开发或者SLAM(Simultaneous Localization and Mapping)研究。SLAM是一种算法类型,而ROS是一个用于实现SLAM算法的软件框架。SLAM的核心任务是解决两个问题:第一,确定自身位置;第二,识别周围环境中的物体。通过使用摄像头和激光雷达,它可以生成一张包含自身位置和周围障碍物的地图,并计算出避开障碍物的最佳路径。听到这里,你可能会立刻
联想到
汽车自动驾驶技术,确实如此。