本帖最后由 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
|