色哟哟视频在线观看-色哟哟视频在线-色哟哟欧美15最新在线-色哟哟免费在线观看-国产l精品国产亚洲区在线观看-国产l精品国产亚洲区久久

電子發燒友App

硬聲App

0
  • 聊天消息
  • 系統消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發帖/加入社區
會員中心
創作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示
電子發燒友網>電子資料下載>電子資料>BabyOS為MCU項目開發提速的代碼框架

BabyOS為MCU項目開發提速的代碼框架

2022-04-18 | zip | 4.28 MB | 次下載 | 免費

資料介紹

授權協議 MIT
開發語言 C/C++
軟件類型 開源軟件

軟件簡介

BabyOS適用于MCU項目,她是一套管理功能模塊和外設驅動的框架。

對項目而言,縮短開發周期。項目開發時選擇適用的功能模塊及驅動。直接進入功能代碼編寫的階段。

工程師而言,減少重復工作。調試過的功能模塊和驅動代碼放入BabyOS中管理,以后項目可以直接使用,去掉重復調試的工作。

代碼結構

BabyOS代碼分為3部分:

BabyOS倉庫:功能模塊和驅動 ,一般情況下用戶不需要改動,可以將此倉庫作為子模塊。

BabyOS_Config:配置文件和設備注冊文件

BabyOS_Hal硬件抽象層, 不同分支對應不同硬件平臺,選擇對應平臺下載,沒有合適的則選擇master分支

pYYBAGJcLbOAImxGAAF-ccLUwpw815.png

適用項目

使用裸機開發的項目推薦基于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項

poYBAGJcLbWAXmdWAAEEchGXLO4153.png

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); 
}

更多使用介紹:

https://gitee.com/notrynohigh/BabyOS/wikis

https://github.com/notrynohigh/BabyOS/wiki

?

下載該資料的人也在下載 下載該資料的人還在閱讀
更多 >

評論

查看更多

下載排行

本周

  1. 1山景DSP芯片AP8248A2數據手冊
  2. 1.06 MB  |  532次下載  |  免費
  3. 2RK3399完整板原理圖(支持平板,盒子VR)
  4. 3.28 MB  |  339次下載  |  免費
  5. 3TC358743XBG評估板參考手冊
  6. 1.36 MB  |  330次下載  |  免費
  7. 4DFM軟件使用教程
  8. 0.84 MB  |  295次下載  |  免費
  9. 5元宇宙深度解析—未來的未來-風口還是泡沫
  10. 6.40 MB  |  227次下載  |  免費
  11. 6迪文DGUS開發指南
  12. 31.67 MB  |  194次下載  |  免費
  13. 7元宇宙底層硬件系列報告
  14. 13.42 MB  |  182次下載  |  免費
  15. 8FP5207XR-G1中文應用手冊
  16. 1.09 MB  |  178次下載  |  免費

本月

  1. 1OrCAD10.5下載OrCAD10.5中文版軟件
  2. 0.00 MB  |  234315次下載  |  免費
  3. 2555集成電路應用800例(新編版)
  4. 0.00 MB  |  33566次下載  |  免費
  5. 3接口電路圖大全
  6. 未知  |  30323次下載  |  免費
  7. 4開關電源設計實例指南
  8. 未知  |  21549次下載  |  免費
  9. 5電氣工程師手冊免費下載(新編第二版pdf電子書)
  10. 0.00 MB  |  15349次下載  |  免費
  11. 6數字電路基礎pdf(下載)
  12. 未知  |  13750次下載  |  免費
  13. 7電子制作實例集錦 下載
  14. 未知  |  8113次下載  |  免費
  15. 8《LED驅動電路設計》 溫德爾著
  16. 0.00 MB  |  6656次下載  |  免費

總榜

  1. 1matlab軟件下載入口
  2. 未知  |  935054次下載  |  免費
  3. 2protel99se軟件下載(可英文版轉中文版)
  4. 78.1 MB  |  537798次下載  |  免費
  5. 3MATLAB 7.1 下載 (含軟件介紹)
  6. 未知  |  420027次下載  |  免費
  7. 4OrCAD10.5下載OrCAD10.5中文版軟件
  8. 0.00 MB  |  234315次下載  |  免費
  9. 5Altium DXP2002下載入口
  10. 未知  |  233046次下載  |  免費
  11. 6電路仿真軟件multisim 10.0免費下載
  12. 340992  |  191187次下載  |  免費
  13. 7十天學會AVR單片機與C語言視頻教程 下載
  14. 158M  |  183279次下載  |  免費
  15. 8proe5.0野火版下載(中文版免費下載)
  16. 未知  |  138040次下載  |  免費
主站蜘蛛池模板: 亚洲色欲H网在线观看| 久久久无码精品无码国产人妻丝瓜| 少妇连续高潮抽搐痉挛昏厥| 成人女人A级毛片免费软件| 青娱乐在线一区| 第一次处破女完整版电影| 乳色吐息未增删樱花ED在线观看| 成人免费看片45分钟| 日日干日日操日日射| 国产国拍亚洲精品av麻豆| 少女开女包www| 国产精品美女久久久久浪潮AV| 忘忧草研究所 麻豆| 国产色婷婷精品人妻蜜桃成熟时| 亚洲国产精品无码中文字满| 精品午夜视频| 76人遣返航班上71人呈阳性| 欧美美女一区二区三区| 成人中文字幕在线观看| 天天久久影视色香综合网| 国产亚洲精品久久久无码狼牙套| 亚洲人成人77777在线播放| 久久AV国产麻豆HD真实乱| 2020精品极品国产色在线| 欧美午夜理伦三级在线观看| 俺也去最新地址| 四虎国产精品高清在线观看| 国产一区二区免费在线观看| 伊人久久丁香色婷婷啪啪| 男女生爽爽爽视频免费观看| 芭乐视频免费资源在线观看| 天天看高清影视在线18| 久久99国产精品一区二区| 91av影院| 软糯白嫩双性受h| 国产一区内射最近更新| 中文字幕成人| 日本高清无卡码一区二区久久| 国产乱码一区二区三区| 一级毛片皇帝 宫女| 暖暖 日本 视频 在线观看免费|