LVGL应用和部署(个人开发嵌入式linux产品)

【 声明:版权所有,欢迎转载,请勿用于商业用途。 联系信箱:feixiaoxing @163.com】

随着经济越来越走向常态化发展,将来的公司基本是两个趋势,一个是公司越做越大,越来越趋向于垄断;另外一方面,公司越做越小,可能2-3个人就能开公司、做产品、搞营销。就拿linux来说,从前的linux soc开发可能很复杂,将来不管是芯片公司,还是硬件设计,其实一个人,多一点,1-2个人肯定是可以开发产品的。

1、选择集成化程度高的soc

大部分soc都是运行linux,在这个基础之上跑ubuntu,或者是android。不过如果人数不多,可以选择集成化程度高的、可以定制image的、价格合适的soc,比如内置ddr的soc。一方面门槛低,另外一方面比较好上手,能做的东西多。

相比较mcu,soc生态丰富,cpu频率高,特别是音视频和网络,优势明显。

2、购买板子

本着先软件,后硬件的原则,一开始的时候不要自己做板子。买市场上相同soc的板子,如果没有,买类似的板子即可。起初一定要降低难度,先迈出第一步再说。

3、安装好交叉编译环境

我们自己的电脑一般是跑windows系统的,开发的时候通常需要交叉编译环境。这个时候要学会用virtualbox安装交叉编译环境。编译uboot、编译kernel、编译rootfs,生成image之后,再用厂家提供的上位机软件烧录进去,这就算完成第一步了。

4、编写第一个程序

第一个程序可以是hello world,可以是qt,根据自己的实际情况来。用交叉编译完成之后,再用tf卡拷贝到板子上,如果跑起来,代表应用层没问题,下面就可以正式进行开发了。

5、驱动用到哪个做哪个

常用的linux驱动其实不复杂,一般就是key、uart、gpadc、pwm、tf、屏幕、网口这些。很多的soc厂家,默认都带了这些驱动。就算屏幕这样的驱动,也是可以根据厂家的demo进行修改的。当然,屏幕本身特殊一点,不仅需要soc厂家的帮助,还需要屏厂的支持。

现在的驱动开发不复杂,主要就是看menuconfig、dts和dmesg,如果实在不行,就去看一下驱动代码即可。厂家有芯片手册提供还好,没有的话,只能自己去慢慢扒了。

6、第三方库添加

常用的第三方库,最好自己会编译,比如boost、opencv、qt、lvgl、xmlrpc、lua等等。不会编译,厂家如果已经提供了对应的sdk,那也是可以的,这样我们就可以直接借助于厂家的sdk进行软件开发,不需要从0到1做起。

7、芯片特殊的sdk内容

很多soc有特殊的sdk,特别是硬件加速部分,这部分一般都是不开源的。不管是底层的ko驱动,还是上层的so、.a库,我们可以参考它们提供的文档和代码,一点一点去坑,最终才能把soc的特色功能挖掘出来,而不是简单的linux编程,这就没意思了。

8、重点放在核心应用上

不管是硬件也好,软件也好,本身都是为产品服务的。硬件是平台,软件是实施手段,产品才是最终目的。多去看看市场上什么产品卖的好,自己能不能做。如果能做,应该怎么做,怎么推广。一开始不用想那么多,一步一步去实现,就会慢慢发现自己其实路走了很远。

以应用为出发点,硬件、驱动、第三方库都是随时可以修改的。

9、先实现再优化

开发的时候,用git把代码管起来。很多功能,先实现,再优化和测试。**完成比完美更重要,特别是一些常年销量比较高的嵌入式产品,肯定有一些槽点是一直没有解决的,这部分就是个人开发的机会。**技术本身,只是手段,不是目的。

相关推荐
Ypuyu2 天前
【工作总结】3. 环境配置
个人开发
狮智先生2 天前
【编程实践】Windows + PySide6 + Matplotlib 绘图时 WinError 32 的完整排查与解决方案
windows·ui·个人开发·matplotlib·交通物流
NocoBase4 天前
如何快速搭建一个替换 Excel 的系统?(完整指南)
数据库·低代码·开源·excel·个人开发·零代码·无代码
wangjialelele5 天前
git工作原理、个人使用到多人协作开发与git FLOW模型
c语言·c++·git·团队开发·个人开发
极市平台6 天前
骁龙大赛-技术分享第5期(上)
人工智能·经验分享·笔记·后端·个人开发
阿豪学编程7 天前
动静态库制作与原理
linux·个人开发
2501_918126917 天前
nes游戏语言是6502,有没有一种方法可以实现,开发另一种更高效的汇编语言,替代6052,并本土化,弯道超过nes的底层语言?
汇编·硬件工程·个人开发
请为小H留灯9 天前
Java实际开发@常用注解(附实战场景)
java·后端·个人开发
workflower11 天前
软件工程练习题
团队开发·需求分析·个人开发·敏捷流程·规格说明书·极限编程·结对编程
workflower11 天前
软件工程练习题COMET
性能优化·团队开发·需求分析·个人开发·scrum·敏捷流程·结对编程