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