该系列前面的20篇文章,主要以开发环境的搭建、常见外设模块的简单使用为主,从这篇开始计划写一下关于应用编程的话题,之所以要写这一块内容,是因为只要你做产品,就离不开应用程序,自然就需要应用编程相关的技术。有小伙伴咨询过我做Linux应用开发需要会哪些知识,先给大家看看猎聘网上最近两个关于嵌入式Linux工程师的招聘需求:
从我的实际工作经验来看,如果你掌握上述大部分要求并且实际动手做过项目,基本上就可以胜任Linux应用开发的工作岗位了。对于没有接触过这块内容、又想学习的小伙伴咋办呢?
我觉得最好的方式就是去完成一个实际的项目,你可能会说,我不知道要做什么项目啊,没有需求啊…的确是这么回事,为此,我用了大半天的时间给零基础的童靴们想了一个小项目,该项目要实现的功能如下:
1) 串口1实时读取GPS数据,同时转发到串口2输出
2) 将获取到的经纬度信息,通过网口UDP方式发送到电脑端,电脑端通过上位机软件实时显示设备的位置信息。
3) 安卓手机可以通过WIFI连接到板子,手机APP也可以显示设备的位置信息。
4) 设备通过4G将位置信息传输到云平台,在任何一个可以上网的电脑上通过浏览器可以实时显示设备的位置信息。
上述红色字体标注的部分,通常不是嵌入式Linux工程师分内之事,很多公司里有专门做PC端上位机软件的,有专门做安卓开发的,有后端工程师和前端工程师,有UI工程师。
但是,但是,在接下来的时间里,我会给大家展示如何完成上述要求的所有功能。
之所以要这么做,一方面原因是一套完整的系统通常就包含硬件产品、手机APP、云平台等方方面面。另外一方面,就算你只打算做嵌入式开发,多会点东西终究没坏处,技不压身嘛。
大约8年前,我在一家公司实习时,就见到过一个高手,他不仅会嵌入式C编程,还会用C#写上位机软件,服务器端软件也能写,同时还懂硬件,会用Candence画原理图和PCB,另外还指导别人设计产品外壳,那时我叫一个真心佩服啊,就感觉技术上没有他不会的。
去年过年期间和他见了一面,听说他自己出来开了一个公司,所有技术他一个人搞定,第一年销售额就有200w,我暗暗在想,我什么时候才能达到他这水平啊。革命尚未成功,要努力!
大家有什么想法,欢迎多交流啊~