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 天前
选择gpt-5还是claude-4-sonnect
人工智能·chatgpt·个人开发
YF云飞2 天前
Unity图片优化与比例控制全攻略
游戏·unity·游戏引擎·游戏程序·个人开发
AIGC包拥它12 天前
检索召回率优化探究二:基于 LangChain 0.3集成 Milvus 2.5向量数据库构建的智能问答系统
人工智能·python·langchain·软件工程·个人开发·milvus
超浪的晨15 天前
Maven 与单元测试:JavaWeb 项目质量保障的基石
java·开发语言·学习·单元测试·maven·个人开发
超浪的晨16 天前
JavaWeb 进阶:Vue.js 与 Spring Boot 全栈开发实战(Java 开发者视角)
java·开发语言·前端·javascript·vue.js·html·个人开发
超浪的晨17 天前
JavaWeb 入门:JavaScript 基础与实战详解(Java 开发者视角)
java·开发语言·前端·javascript·后端·学习·个人开发
Joker—H17 天前
【Java】JVM虚拟机(java内存模型、GC垃圾回收)
java·开发语言·jvm·经验分享·个人开发·gc
MarkGosling17 天前
【开源项目】轻量加速利器 HubProxy 自建 Docker、GitHub 下载加速服务
运维·git·docker·容器·开源·github·个人开发
超浪的晨18 天前
Java 代理机制详解:从静态代理到动态代理,彻底掌握代理模式的原理与实战
java·开发语言·后端·学习·代理模式·个人开发
超浪的晨18 天前
JavaWeb 入门:HTML 基础与实战详解(Java 开发者视角)
java·开发语言·前端·后端·html·个人开发