資料介紹
軟件簡(jiǎn)介
BabyOS適用于MCU項(xiàng)目,她是一套管理功能模塊和外設(shè)驅(qū)動(dòng)的框架。
對(duì)項(xiàng)目而言,縮短開(kāi)發(fā)周期。項(xiàng)目開(kāi)發(fā)時(shí)選擇適用的功能模塊及驅(qū)動(dòng)。直接進(jìn)入功能代碼編寫(xiě)的階段。
對(duì)工程師而言,減少重復(fù)工作。調(diào)試過(guò)的功能模塊和驅(qū)動(dòng)代碼放入BabyOS中管理,以后項(xiàng)目可以直接使用,去掉重復(fù)調(diào)試的工作。
代碼結(jié)構(gòu)
BabyOS代碼分為3部分:
BabyOS倉(cāng)庫(kù):功能模塊和驅(qū)動(dòng) ,一般情況下用戶不需要改動(dòng),可以將此倉(cāng)庫(kù)作為子模塊。
BabyOS_Config:配置文件和設(shè)備注冊(cè)文件
BabyOS_Hal:硬件抽象層, 不同分支對(duì)應(yīng)不同硬件平臺(tái),選擇對(duì)應(yīng)平臺(tái)下載,沒(méi)有合適的則選擇master分支
適用項(xiàng)目
使用裸機(jī)開(kāi)發(fā)的項(xiàng)目推薦基于BabyOS進(jìn)行。
使用操作系統(tǒng)開(kāi)發(fā)的項(xiàng)目,BabyOS可作為功能庫(kù)及驅(qū)動(dòng)庫(kù)使用。
使用方法
基于STM32F107上使用SPIFLASH及KV功能模塊為例
1.添加文件
BabyOS //可作git子模塊使用 ├── bos │?? ├── algorithm //常用算法,無(wú)需添加其中文件 │?? ├── core //核心文件,全部包含至工程 │?? ├── drivers //驅(qū)動(dòng)文件,選擇spiflash驅(qū)動(dòng)添加至工程 │?? ├── modules //功能模塊,全部添加至工程,由配置文件b_config.h配置 │?? ├── thirdparty //第三方代碼,選擇SFUD第三方代碼添加至工程 │?? └── utils //實(shí)用代碼,選擇delay部分代碼添加至工程 ├── doc //相關(guān)文檔 ├── LICENSE //開(kāi)源協(xié)議 └── README.md BabyOS_Config //克隆后放入工程目錄,全部添加至工程 BabyOS_Hal //克隆后放入工程目錄,添加hal、gpio、uart、spi部分
//進(jìn)入用戶工程目錄執(zhí)行 git submodule add https://gitee.com/notrynohigh/BabyOS.git git clone https://gitee.com/notrynohigh/BabyOS_Config.git //克隆配置文件及設(shè)備注冊(cè)文件 git clone https://gitee.com/notrynohigh/BabyOS_Hal.git //克隆后切換到對(duì)應(yīng)平臺(tái)的分支,如果沒(méi)有則采用master分支作為模板
2.增加系統(tǒng)定時(shí)器
//例如使用滴答定時(shí)器,中斷服務(wù)函數(shù)調(diào)用:void bHalIncSysTick(void); //注:定時(shí)器的周期與b_config.h里_TICK_FRQ_HZ要匹配
3.選擇功能模塊
b_config.h進(jìn)行配置,勾選其中的KV Enable/Disable項(xiàng)
4.注冊(cè)設(shè)備
//b_device_list.h,在里面添加使用的外設(shè)。例如項(xiàng)目只需要使用SPIFlash,那么添加如下代碼: // 設(shè)備 驅(qū)動(dòng) 描述 B_DEVICE_REG(SPIFLASH, bSPIFLASH_Driver[0], "flash") //如果沒(méi)有注冊(cè)任何設(shè)備,取消B_DEVICE_REG(null, bNullDriver, "null")的注釋 //B_DEVICE_REG(null, bNullDriver, "null")
5.修改硬件接口
b_hal.h中根據(jù)實(shí)際連接圖修改GPIO和SPI號(hào)
#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部分
(依賴硬件平臺(tái),使用STM32 HAL庫(kù)為例)
//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部分
(依賴硬件平臺(tái),使用STM32 HAL庫(kù)為例)
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存儲(chǔ) int main() { uint8_t buf[128]; bInit(); //初始化,外設(shè)的初始化會(huì)在此處調(diào)用 if(0 == bKV_Init(SPIFLASH, 0xA000, 4096 * 4, 4096)) //初始化KV存儲(chǔ),指定存儲(chǔ)設(shè)備SPIFLASH { b_log("bKV_Init ok...\r\n"); } //存儲(chǔ)鍵值對(duì)(可用于存儲(chǔ)系統(tǒng)配置信息) bKV_Set("name", (uint8_t *)"BabyOS", 7); bKV_Get("name", buf); b_log("name:%s\r\n", buf); //...... while(1) { //..... bExec(); //循環(huán)調(diào)用此函數(shù) //..... } }
如果不使用功能模塊,單獨(dú)對(duì)設(shè)備進(jìn)行操作,使用如下方式進(jìn)行:
//舉例使用SPIFLASH讀取數(shù)據(jù),從0地址讀取128個(gè)字節(jié)數(shù)據(jù)至buf { int fd = -1; fd = bOpen(SPIFLASH, BCORE_FLAG_RW); if(fd == -1) { return; } bLseek(fd, 0); bRead(fd, buf, 128); bClose(fd); }
更多使用介紹:
- 學(xué)習(xí)單片機(jī)和嵌入式開(kāi)發(fā)?這個(gè)項(xiàng)目是你入坑的不二之選
- 將Swift語(yǔ)言應(yīng)用到MCU開(kāi)發(fā)中,項(xiàng)目實(shí)例演示!
- RISC-V MCU開(kāi)發(fā) (三):代碼編輯
- 8051 MCU反編譯開(kāi)發(fā)方法記錄[
- 參考Linux 單片機(jī)項(xiàng)目驅(qū)動(dòng)開(kāi)發(fā)
- 適用于MCU項(xiàng)目的代碼框架BabyOS
- ThinkPHP 6.0完全開(kāi)發(fā)手冊(cè)資源下載 13次下載
- PSoC開(kāi)發(fā)流程和一般MCU開(kāi)發(fā)流程有什么區(qū)別?資料下載
- 嵌入式系統(tǒng)的應(yīng)用框架詳細(xì)資料分析
- Python單元測(cè)試框架是什么?及如何使用詳細(xì)代碼說(shuō)明 2次下載
- ThinkPHP開(kāi)發(fā)視頻教程之使用ThinkPHP5.0開(kāi)發(fā)微信小程序商場(chǎng)開(kāi)發(fā)教程 25次下載
- 如何使用MPLAB C32語(yǔ)言開(kāi)發(fā)工具為32位應(yīng)用編寫(xiě)代碼的詳細(xì)資料概述
- MPASM匯編器MPLINK目標(biāo)鏈接器和MPLIB目標(biāo)庫(kù)管理器為單片機(jī)開(kāi)發(fā)代碼
- AN1292與電機(jī)控制應(yīng)用程序框架對(duì)比 2次下載
- 用Vivado-HLS為軟件提速 8次下載
- 如何使用IDEA編寫(xiě)項(xiàng)目代碼 1315次閱讀
- 基于SSM框架的新聞管理系統(tǒng) 1385次閱讀
- Python一鍵轉(zhuǎn)化代碼為流程圖 4101次閱讀
- 在單片機(jī)中使用的RTOS代碼框架 1168次閱讀
- 聊聊PHP的web應(yīng)用程序開(kāi)發(fā)框架存在的漏洞有哪些 1834次閱讀
- LINS算法的框架與代碼分析 3271次閱讀
- 使用IDEA編寫(xiě)項(xiàng)目代碼的實(shí)用小技巧 2368次閱讀
- HDF驅(qū)動(dòng)框架中USB DDK的解析與開(kāi)發(fā)指導(dǎo) 2259次閱讀
- 使用鴻蒙JS框架寫(xiě)出來(lái)的JS代碼長(zhǎng)什么樣 2341次閱讀
- 基于鴻蒙的JS框架ace_lite_jsfwk開(kāi)發(fā) 2890次閱讀
- 現(xiàn)在流行的Web APP開(kāi)發(fā)框架有哪些 1.1w次閱讀
- 區(qū)塊鏈應(yīng)用開(kāi)發(fā)框架Forge介紹 2309次閱讀
- Python自動(dòng)化測(cè)試框架有哪些? 4687次閱讀
- arm的開(kāi)發(fā)環(huán)境有哪些_使用Eclipse搭建ARM架構(gòu)MCU開(kāi)發(fā)環(huán)境 1.9w次閱讀
- Activiti與Spring Boot的項(xiàng)目開(kāi)發(fā) 6430次閱讀
下載排行
本周
- 1山景DSP芯片AP8248A2數(shù)據(jù)手冊(cè)
- 1.06 MB | 532次下載 | 免費(fèi)
- 2RK3399完整板原理圖(支持平板,盒子VR)
- 3.28 MB | 339次下載 | 免費(fèi)
- 3TC358743XBG評(píng)估板參考手冊(cè)
- 1.36 MB | 330次下載 | 免費(fèi)
- 4DFM軟件使用教程
- 0.84 MB | 295次下載 | 免費(fèi)
- 5元宇宙深度解析—未來(lái)的未來(lái)-風(fēng)口還是泡沫
- 6.40 MB | 227次下載 | 免費(fèi)
- 6迪文DGUS開(kāi)發(fā)指南
- 31.67 MB | 194次下載 | 免費(fèi)
- 7元宇宙底層硬件系列報(bào)告
- 13.42 MB | 182次下載 | 免費(fèi)
- 8FP5207XR-G1中文應(yīng)用手冊(cè)
- 1.09 MB | 178次下載 | 免費(fèi)
本月
- 1OrCAD10.5下載OrCAD10.5中文版軟件
- 0.00 MB | 234315次下載 | 免費(fèi)
- 2555集成電路應(yīng)用800例(新編版)
- 0.00 MB | 33566次下載 | 免費(fèi)
- 3接口電路圖大全
- 未知 | 30323次下載 | 免費(fèi)
- 4開(kāi)關(guān)電源設(shè)計(jì)實(shí)例指南
- 未知 | 21549次下載 | 免費(fèi)
- 5電氣工程師手冊(cè)免費(fèi)下載(新編第二版pdf電子書(shū))
- 0.00 MB | 15349次下載 | 免費(fèi)
- 6數(shù)字電路基礎(chǔ)pdf(下載)
- 未知 | 13750次下載 | 免費(fèi)
- 7電子制作實(shí)例集錦 下載
- 未知 | 8113次下載 | 免費(fèi)
- 8《LED驅(qū)動(dòng)電路設(shè)計(jì)》 溫德?tīng)栔?/a>
- 0.00 MB | 6656次下載 | 免費(fèi)
總榜
- 1matlab軟件下載入口
- 未知 | 935054次下載 | 免費(fèi)
- 2protel99se軟件下載(可英文版轉(zhuǎn)中文版)
- 78.1 MB | 537798次下載 | 免費(fèi)
- 3MATLAB 7.1 下載 (含軟件介紹)
- 未知 | 420027次下載 | 免費(fèi)
- 4OrCAD10.5下載OrCAD10.5中文版軟件
- 0.00 MB | 234315次下載 | 免費(fèi)
- 5Altium DXP2002下載入口
- 未知 | 233046次下載 | 免費(fèi)
- 6電路仿真軟件multisim 10.0免費(fèi)下載
- 340992 | 191187次下載 | 免費(fèi)
- 7十天學(xué)會(huì)AVR單片機(jī)與C語(yǔ)言視頻教程 下載
- 158M | 183279次下載 | 免費(fèi)
- 8proe5.0野火版下載(中文版免費(fèi)下載)
- 未知 | 138040次下載 | 免費(fèi)
評(píng)論