本帖最后由 liklon 于 2020-3-9 15:59 编辑
前世今生
说一说编写BabyOS原由
................
目前使用MCU裸机开发的项目不会很庞大,大多有两个要求:开发时间和产品功耗。99.874%产品是电池供电,功耗是重点考虑对象。工程师开发的多个项目之间总会碰到相同的功能点,那么是否可以有套代码框架可以容纳已经做过的功能点,去掉重复的工作,加快产品或者demo的开发。
功耗的考量
出于功耗考虑,对外设的操作是:唤醒外设,操作,最后进入休眠。这样的操作形式和文件的操作很类似,文件的操作步骤是打开到编辑到关闭。
因此将外设的操作看作是对文件的操作进行。每个外设打开后返回一个描述符,后续代码中对外设的操作都是基于这个描述符进行。关闭外设后回收描述符。
所以外设的驱动中打开和关闭的操作执行对设备的唤醒和睡眠。利用描述符来操作外设还有一个好处是,当更换外设后,只需更换驱动接口,业务部分的代码不需要变动。
快速开发
小型项目的开发中,有较多使用率高的功能模块,例如:UTC、错误管理、电池电量、存储数据、上位机
通信、固件升级等等。将这些功能都做成不依赖于硬件的模块交给BabyOS管理。将调试好的外设驱动也交给BabyOS管理。再次启动项目时,通过配置文件,选择当前项目使用的功能模块。以搭积木的方式缩短开发时间。
主要针对小型的MCU项目,目的是缩短开发周期。
源码(gitee):https://gitee.com/notrynohigh/BabyOS
源码(github):https://github.com/notrynohigh/BabyOS
使用方法详情可以wiki页面:
wiki (gitee): https://gitee.com/notrynohigh/BabyOS/wikis/Home
wiki (github): https://github.com/notrynohigh/BabyOS/wiki
小组目的
如果功能模块及驱动能够得到丰富,对加快项目的开发会有显著的效果。
如果您觉得这一份代码有使用的价值,请加入!一起来喂养BabyOS。
饲料1: 通用的功能模块
饲料2: 能被BabyOS
消化的驱动代码
向源码中添加新的驱动及功能模块:
1、发帖提供代码和作者信息, 然后由偶来添加至源码
2、直接推送至源码git仓库
使用中如果有任何问题或者建议可以发帖进行讨论!
有兴趣的童鞋也可以直接私信偶,将您添加至开发成员中!
0