打印
[STM32F1]

[一]移植BabyOS及使用b_log

[复制链接]
612|2
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
liklon|  楼主 | 2020-3-8 20:04 | 只看该作者 |只看大图 回帖奖励 |倒序浏览 |阅读模式
本帖最后由 liklon 于 2020-3-8 20:07 编辑

移植BabyOS利用STM32CUBE新建工程
选择调试接口、选择外部时钟,使能UART1
生成代码,并使用git初始化
添加git子仓库,拉取BabyOS源码
添加源文件和头文件路径
​ BabyOS\bos\core\src 文件全部添加
​ BabyOS\bos\hal 文件全部添加
​ BabyOS\bos\drivers\src 使用到的文件添加,本次实验都没使用到因此为空
​ 添加头文件路径
配置b_config.h
​ 本次实验测试b_log功能,因此只需要打开debug功能
编辑b_device_list.h
​ 由于本次实验不需要注册任何设备,则取消B_DEVICE_REG(null, bNullDriver, "null")的注释
添加bHalIncSysTick()
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()
  //......
  /* USER CODE BEGIN WHILE */
  bInit();
  while (1)
  {
      bExec();
  /* USER CODE END WHILE */

  /* USER CODE BEGIN 3 */

  }
  /* USER CODE END 3 */


移植完成,开始测试b_log
实现void b**utput(void *p)函数
void b**utput(void *p)
{
    HAL_UART_Transmit(&huart1, p, strlen(p), 0xffff);   
}


测试b_log b_log_i b_log_w b_log_e
/* 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 */


实验效果:

子模块采用BabyOS master分支 https://gitee.com/notrynohigh/BabyOS


使用特权

评论回复
沙发
mmuuss586| | 2020-3-18 10:04 | 只看该作者
感谢分享

使用特权

评论回复
板凳
yueguang3048| | 2020-6-5 12:52 | 只看该作者
启蒙啊...

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

11

主题

50

帖子

1

粉丝