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

相关推荐
郝学胜-神的一滴2 天前
计算机图形中的法线矩阵:深入理解与应用
开发语言·程序人生·线性代数·算法·机器学习·矩阵·个人开发
workflower2 天前
FDD与其他方法的相似和区别
数据库·算法·需求分析·个人开发
竹等寒3 天前
Go红队开发—图形化界面
网络安全·golang·个人开发
SeaTunnel3 天前
Apache SeaTunnel 支持 Metalake 开发了!避免任务配置敏感信息暴露
大数据·开源·apache·个人开发·数据集成·seatunnel·看开源之夏
workflower3 天前
测试套件缩减方法
数据库·单元测试·需求分析·个人开发·极限编程
Hy行者勇哥3 天前
多源数据抽取与推送模块架构设计
人工智能·个人开发
workflower3 天前
FDD(Feature Driven Development)特征驱动开发
大数据·数据库·驱动开发·需求分析·个人开发
盼哥PyAI实验室6 天前
纯前端打造个人成长网站:零后端、零部署、零服务器的实践分享
运维·服务器·前端·javascript·echarts·个人开发
郝学胜-神的一滴8 天前
深入理解 Python 的 __init_subclass__ 方法:自定义类行为的新方式 (Effective Python 第48条)
开发语言·python·程序人生·个人开发
十八朵郁金香9 天前
【H5工具】一个简约高级感渐变海报H5设计工具
前端·javascript·产品运营·axure·个人开发