资料介绍
软件简介
BabyOS适用于MCU项目,她是一套管理功能模块和外设驱动的框架。
对项目而言,缩短开发周期。项目开发时选择适用的功能模块及驱动。直接进入功能代码编写的阶段。
对工程师而言,减少重复工作。调试过的功能模块和驱动代码放入BabyOS中管理,以后项目可以直接使用,去掉重复调试的工作。
代码结构
BabyOS代码分为3部分:
BabyOS仓库:功能模块和驱动 ,一般情况下用户不需要改动,可以将此仓库作为子模块。
BabyOS_Config:配置文件和设备注册文件
BabyOS_Hal:硬件抽象层, 不同分支对应不同硬件平台,选择对应平台下载,没有合适的则选择master分支
适用项目
使用裸机开发的项目推荐基于BabyOS进行。
使用操作系统开发的项目,BabyOS可作为功能库及驱动库使用。
使用方法
基于STM32F107上使用SPIFLASH及KV功能模块为例
1.添加文件
BabyOS //可作git子模块使用 ├── bos │ ├── algorithm //常用算法,无需添加其中文件 │ ├── core //核心文件,全部包含至工程 │ ├── drivers //驱动文件,选择spiflash驱动添加至工程 │ ├── modules //功能模块,全部添加至工程,由配置文件b_config.h配置 │ ├── thirdparty //第三方代码,选择SFUD第三方代码添加至工程 │ └── utils //实用代码,选择delay部分代码添加至工程 ├── doc //相关文档 ├── LICENSE //开源协议 └── README.md BabyOS_Config //克隆后放入工程目录,全部添加至工程 BabyOS_Hal //克隆后放入工程目录,添加hal、gpio、uart、spi部分
//进入用户工程目录执行 git submodule add https://gitee.com/notrynohigh/BabyOS.git git clone https://gitee.com/notrynohigh/BabyOS_Config.git //克隆配置文件及设备注册文件 git clone https://gitee.com/notrynohigh/BabyOS_Hal.git //克隆后切换到对应平台的分支,如果没有则采用master分支作为模板
2.增加系统定时器
//例如使用滴答定时器,中断服务函数调用:void bHalIncSysTick(void); //注:定时器的周期与b_config.h里_TICK_FRQ_HZ要匹配
3.选择功能模块
b_config.h进行配置,勾选其中的KV Enable/Disable项
4.注册设备
//b_device_list.h,在里面添加使用的外设。例如项目只需要使用SPIFlash,那么添加如下代码: // 设备 驱动 描述 B_DEVICE_REG(SPIFLASH, bSPIFLASH_Driver[0], "flash") //如果没有注册任何设备,取消B_DEVICE_REG(null, bNullDriver, "null")的注释 //B_DEVICE_REG(null, bNullDriver, "null")
5.修改硬件接口
b_hal.h中根据实际连接图修改GPIO和SPI号
#define HAL_SPIFLASH_QSPI_EN 0 #define HAL_SPIFLASH_TOTAL_NUMBER 1 #define HAL_SPIFLASH_IF {{B_HAL_QSPI_INVALID, B_HAL_SPI_1, {B_HAL_GPIOB, B_HAL_PIN12}},}
6.修改硬件抽象层SPI部分
(依赖硬件平台,使用STM32 HAL库为例)
//b_hal_spi.c int bHalSPI_Send(bHalSPINumber_t spi, uint8_t *pbuf, uint16_t len) { if(pbuf == NULL) { return -1; } switch(spi) { case B_HAL_SPI_1: HAL_SPI_Transmit(&hspi1, pbuf, len, 0xfff); break; default: break; } return 0; } int bHalSPI_Receive(bHalSPINumber_t spi, uint8_t *pbuf, uint16_t len) { if(pbuf == NULL) { return -1; } switch(spi) { case B_HAL_SPI_1: HAL_SPI_Receive(&hspi1, pbuf, len, 0xfff); break; default: break; } return 0; }
7.修改硬件抽象层GPIO部分
(依赖硬件平台,使用STM32 HAL库为例)
void bHalGPIO_WritePin(uint8_t port, uint8_t pin, uint8_t s) { GPIO_PinState sta = (s) ? GPIO_PIN_SET : GPIO_PIN_RESET; HAL_GPIO_WritePin(GPIO_PortTable[port], GPIO_PinTable[pin], sta); }
8.基于SPIFLASH使用KV功能
#include "b_os.h" //头文件 //b_config.h配置文件中使能KV存储 int main() { uint8_t buf[128]; bInit(); //初始化,外设的初始化会在此处调用 if(0 == bKV_Init(SPIFLASH, 0xA000, 4096 * 4, 4096)) //初始化KV存储,指定存储设备SPIFLASH { b_log("bKV_Init ok...\r\n"); } //存储键值对(可用于存储系统配置信息) bKV_Set("name", (uint8_t *)"BabyOS", 7); bKV_Get("name", buf); b_log("name:%s\r\n", buf); //...... while(1) { //..... bExec(); //循环调用此函数 //..... } }
如果不使用功能模块,单独对设备进行操作,使用如下方式进行:
//举例使用SPIFLASH读取数据,从0地址读取128个字节数据至buf { int fd = -1; fd = bOpen(SPIFLASH, BCORE_FLAG_RW); if(fd == -1) { return; } bLseek(fd, 0); bRead(fd, buf, 128); bClose(fd); }
更多使用介绍:
- 学习单片机和嵌入式开发?这个项目是你入坑的不二之选
- 将Swift语言应用到MCU开发中,项目实例演示!
- RISC-V MCU开发 (三):代码编辑
- 8051 MCU反编译开发方法记录[
- 参考Linux 单片机项目驱动开发
- 适用于MCU项目的代码框架BabyOS
- ThinkPHP 6.0完全开发手册资源下载 13次下载
- PSoC开发流程和一般MCU开发流程有什么区别?资料下载
- 嵌入式系统的应用框架详细资料分析
- Python单元测试框架是什么?及如何使用详细代码说明 2次下载
- ThinkPHP开发视频教程之使用ThinkPHP5.0开发微信小程序商场开发教程 25次下载
- 如何使用MPLAB C32语言开发工具为32位应用编写代码的详细资料概述
- MPASM汇编器MPLINK目标链接器和MPLIB目标库管理器为单片机开发代码
- AN1292与电机控制应用程序框架对比 2次下载
- 用Vivado-HLS为软件提速 8次下载
- 基于RT-Thread开发的BLE智能灯和门锁控制方案 763次阅读
- 如何使用IDEA编写项目代码 1197次阅读
- Python一键转化代码为流程图 3663次阅读
- 在单片机中使用的RTOS代码框架 992次阅读
- 聊聊PHP的web应用程序开发框架存在的漏洞有哪些 1561次阅读
- LINS算法的框架与代码分析 2928次阅读
- 使用IDEA编写项目代码的实用小技巧 2240次阅读
- HDF驱动框架中USB DDK的解析与开发指导 2000次阅读
- 使用鸿蒙JS框架写出来的JS代码长什么样 2170次阅读
- 基于鸿蒙的JS框架ace_lite_jsfwk开发 2738次阅读
- 现在流行的Web APP开发框架有哪些 1.1w次阅读
- 区块链应用开发框架Forge介绍 2226次阅读
- Python自动化测试框架有哪些? 4575次阅读
- arm的开发环境有哪些_使用Eclipse搭建ARM架构MCU开发环境 1.9w次阅读
- Activiti与Spring Boot的项目开发 6360次阅读
下载排行
本周
- 1山景DSP芯片AP8248A2数据手册
- 1.06 MB | 532次下载 | 免费
- 2RK3399完整板原理图(支持平板,盒子VR)
- 3.28 MB | 339次下载 | 免费
- 3TC358743XBG评估板参考手册
- 1.36 MB | 330次下载 | 免费
- 4DFM软件使用教程
- 0.84 MB | 295次下载 | 免费
- 5元宇宙深度解析—未来的未来-风口还是泡沫
- 6.40 MB | 227次下载 | 免费
- 6迪文DGUS开发指南
- 31.67 MB | 194次下载 | 免费
- 7元宇宙底层硬件系列报告
- 13.42 MB | 182次下载 | 免费
- 8FP5207XR-G1中文应用手册
- 1.09 MB | 178次下载 | 免费
本月
- 1OrCAD10.5下载OrCAD10.5中文版软件
- 0.00 MB | 234315次下载 | 免费
- 2555集成电路应用800例(新编版)
- 0.00 MB | 33566次下载 | 免费
- 3接口电路图大全
- 未知 | 30323次下载 | 免费
- 4开关电源设计实例指南
- 未知 | 21549次下载 | 免费
- 5电气工程师手册免费下载(新编第二版pdf电子书)
- 0.00 MB | 15349次下载 | 免费
- 6数字电路基础pdf(下载)
- 未知 | 13750次下载 | 免费
- 7电子制作实例集锦 下载
- 未知 | 8113次下载 | 免费
- 8《LED驱动电路设计》 温德尔著
- 0.00 MB | 6656次下载 | 免费
总榜
- 1matlab软件下载入口
- 未知 | 935054次下载 | 免费
- 2protel99se软件下载(可英文版转中文版)
- 78.1 MB | 537798次下载 | 免费
- 3MATLAB 7.1 下载 (含软件介绍)
- 未知 | 420027次下载 | 免费
- 4OrCAD10.5下载OrCAD10.5中文版软件
- 0.00 MB | 234315次下载 | 免费
- 5Altium DXP2002下载入口
- 未知 | 233046次下载 | 免费
- 6电路仿真软件multisim 10.0免费下载
- 340992 | 191187次下载 | 免费
- 7十天学会AVR单片机与C语言视频教程 下载
- 158M | 183279次下载 | 免费
- 8proe5.0野火版下载(中文版免费下载)
- 未知 | 138040次下载 | 免费
评论
查看更多