# 背景
在一个不小的大厂里面拧螺丝,发现很多部门都在重复造轮子。没有引入好用的开源组件,自己造的轮子也没有复用,公司内部相同的轮子都有好几种。编译体系简陋,加个文件也要改编译脚本。也没有单元测试和其他的工具。

# 目标
我觉得这可能是很多嵌入式软件开发的普遍痛点吧。

于是业余时间参考`esp32`的`idf`框架[esp-idf]( https://github.com/espressif/esp-idf),搞了个 linux 应用开发框架[RibbonBuild]( https://github.com/RibbonDFTeam/RibbonBuild)和[RibbonDF]( https://github.com/RibbonDFTeam/RibbonDF),核心思想也是组件化,前者是组件化编译最小单元,后者是基于组件化编译搭建的工程,采用`cmake`+`kconfig`作为编译配置框架。目前已支持`Linux`交叉编译环境,`RibbonDF`已引入一部分嵌入式常用的开源组件,并在树莓派环境验证。

对比了一下 github 上的其他框架,`RibbonBuild`与[c_cpp_project_framework]( https://github.com/Neutree/c_cpp_project_framework)比较相似,但采用了更`camke`原生的编译方式。并且在`RibbonDF`实现了工程化的组件搭建,以及引入`gtest`,`gcov`等工具,在工程化上更友好一点。
[cmake-kconfig]( https://github.com/jameswalmsley/cmake-kconfig)比较简单,需要进行一定程度适配。

# end
有兴趣的朋友可以试试看。**人生苦短,希望能让大家的工作轻松一点、高效一点**。
第一次搞开源,很多地方不成熟,希望和大家友好交流,共同进步。
举报· 139 次点击
登录 注册 站外分享
13 条回复  
qiyilai 小成 2024-10-8 14:08:58
@FightPig 可以理解为更加古早时期的软件开发,硬件不统一,也没有一个大一统的框架和统一的库,要自己实现的东西比较多
chenxuuu 小成 2024-10-8 11:48:06
嵌入式开发的痛点主要是每家厂商提供的开发环境 sdk 都不一样,各种稀奇古怪的环境
如果再加上一些特殊架构,厂家闭源了一些库(比如蜂窝/蓝牙/wifi 芯片),那更复杂,编译器都不好换

总不可能自己手动把上千上万个文件的 sdk 手动改一遍格式,就算整理改好了,后续 sdk 升级还要再来一遍
afxcn 小成 2024-10-8 09:46:11
嵌入式开发的代码量好像都很少,很多人都直接透传到服务器处理了。
villivateur 小成 2024-10-8 09:10:22
支持一下,我现在的工作也遇到类似的问题
nooneanyone 小成 2024-10-8 01:24:52
老哥, 纯软 cpplinux 方向的, 转嵌入式难么, 感觉 linux 后端岗位比较少, 想看看嵌入式会不会好点.
FightPig 初学 2024-10-8 00:34:19
挺厉害的,我自己对嵌入式一直不是很懂
glcolof 小成 2024-10-7 21:52:51
其实 arduino 那种框架就可以满足大部分需求了。
Licsber 小成 2024-10-7 21:48:32
其实我也一直在思考 嵌入式框架到底是要做啥工作
ESP-IDF 干的 对我来说就是硬件的一层 API 抽象
开发者要做的也就是写一下 所谓的 main 逻辑
上电 -> Wi-Fi 联网 -> 外设交互 -> 序列化、服务器交互
这些我都封装好了各种功能函数 感觉称作框架不太适合 更像脚手架、工具包
框架听起来像是“模板” 使用的方式像是“克隆” 可谁会天天起新项目呢

况且 起一个新项目的成本可能远没这么高?只有 cpp 比较乱而已?
我现在用 micropython 要做的就是把写过的功能复制粘贴下
稍微改下逻辑 就又好了一个需求
感觉再进化下 我已经在研究拖拽式编程了(好多需求就是这么简单

最近就在学 esp-rs 体会到了传统 cpp 式的麻烦 make 来 make 去
也可能我一直路子比较野 没有过底层详细定制的经验 哈哈
NessajCN 小成 2024-10-7 19:54:27
确实有这样的痛点,不过我的解决方法是全迁移到 embedded rust 。cargo 把所有问题都解决了
muooOOO 小成 2024-10-7 17:27:50
点赞支持,感觉大部分的嵌入式开发人员的技能树都比较杂,有这样一个工具确实不错,希望越来越好
12下一页
返回顶部