# BabyOS_Example **Repository Path**: penglijiang/BabyOS_Example ## Basic Information - **Project Name**: BabyOS_Example - **Description**: 为BabyOS增加使用例子,每一个分支对应一篇教程,请根据需要切换至对应分支 - **Primary Language**: Unknown - **License**: MIT - **Default Branch**: master - **Homepage**: https://gitee.com/notrynohigh/BabyOS - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 47 - **Created**: 2020-03-13 - **Last Updated**: 2021-06-21 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # BabyOS_Example # 移植BabyOS ## 利用STM32CUBE新建工程 选择调试接口、选择外部时钟,使能UART1 ![](https://gitee.com/notrynohigh/BabyOS_Example/raw/master/doc/stm32cube.png) ## 生成代码,并使用git初始化 ![](https://gitee.com/notrynohigh/BabyOS_Example/raw/master/doc/git.png) ## 添加git子仓库,拉取BabyOS源码 ![](https://gitee.com/notrynohigh/BabyOS_Example/raw/master/doc/clone.png) ## 添加源文件和头文件路径 ​ BabyOS\bos\core\src 文件全部添加 ​ BabyOS\bos\hal 文件全部添加 ​ BabyOS\bos\drivers\src 使用到的文件添加,本次实验都没使用到因此为空 ​ 添加头文件路径 ​ ![](https://gitee.com/notrynohigh/BabyOS_Example/raw/master/doc/hfile.png) ## 配置b_config.h ​ 本次实验测试b_log功能,因此只需要打开debug功能 ![](https://gitee.com/notrynohigh/BabyOS_Example/raw/master/doc/config.png) ## 编辑b_device_list.h ​ 由于本次实验不需要注册任何设备,则取消B_DEVICE_REG(null, bNullDriver, "null")的注释 ![](https://gitee.com/notrynohigh/BabyOS_Example/raw/master/doc/device.png) ## 添加bHalIncSysTick() ```C void SysTick_Handler(void) { /* USER CODE BEGIN SysTick_IRQn 0 */ bHalIncSysTick(); /* USER CODE END SysTick_IRQn 0 */ HAL_IncTick(); HAL_SYSTICK_IRQHandler(); /* USER CODE BEGIN SysTick_IRQn 1 */ /* USER CODE END SysTick_IRQn 1 */ } ``` ## 包含头文件b_os.h ## 添加bInit()和bExec() ```C //...... /* USER CODE BEGIN WHILE */ bInit(); while (1) { bExec(); /* USER CODE END WHILE */ /* USER CODE BEGIN 3 */ } /* USER CODE END 3 */ ``` ## 移植完成,开始测试b_log 实现void bLogOutput(void *p)函数 ```C void bLogOutput(void *p) { HAL_UART_Transmit(&huart1, p, strlen(p), 0xffff); } ``` 测试b_log b_log_i b_log_w b_log_e ```C /* USER CODE BEGIN WHILE */ bInit(); b_log("b_log\r\n"); b_log_i("b_log_i\r\n"); b_log_w("b_log_w\r\n"); b_log_e("b_log_e\r\n"); while (1) { bExec(); /* USER CODE END WHILE */ /* USER CODE BEGIN 3 */ } /* USER CODE END 3 */ ``` 实验效果: ![](https://gitee.com/notrynohigh/BabyOS_Example/raw/master/doc/result.png) ------ 子模块采用BabyOS master分支 BabyOS教程更新会在公众号推送: ![](https://gitee.com/notrynohigh/BabyOS_Example/raw/master/doc/QRcode.jpg)