完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
本帖最后由 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仓库 使用中如果有任何问题或者建议可以发帖进行讨论! 有兴趣的童鞋也可以直接私信偶,将您添加至开发成员中! |
|
相关推荐
|
|
只有小组成员才能发言,加入小组>>
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-12-24 21:09 , Processed in 0.563942 second(s), Total 51, Slave 40 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号