项目概述
本案例使用移远通信pico开发板和UniRTOS,实现了一个简单的多线程并发程序,创建两个线程,分别打印不同的内容,展示多任务“同时”执行的效果。适合新手和初学者了解如何使用UniRTOS实现多任务并发。
功能特性
基于多线程的并发任务执行
- 独立线程并发运行:创建两个独立的任务线程,实现不同内容的并行打印输出,互不干扰。
- 差异化任务处理:每个线程执行专属的打印逻辑,可输出自定义的、具有区分度的信息流。
开发准备
硬件要求

- USB数据线(USB-A转USB-C),点此购买。

软件要求
-
-
unirtos-toolchain.exe:编译工具链安装程序,
点此获取。
-
QFlash.exe:模块固件烧录程序,用于烧录UniRTOS编译生成的固件,
点此获取。
-
USB驱动:用于PC识别模块的USB枚举口,
点此获取。
-
EPAT工具:芯片厂商提供的日志捕获工具,用于查看模块运行日志以分析应用程序执行情况,
点此获取。
快速上手
下载项目
示例代码位于UniRTOS官方创客仓库,点此访问下载。
添加项目到UniRTOS SDK
SDK新增Demo,固件编译和烧录请参考UniRTOS板块的快速启动。
硬件连接
使用USB数据线连接开发板和电脑即可。
日志展示

代码概览
主要功能接口
unir_test_demo_init
- 功能:程序入口,创建两个线程。
- 关键操作:
- 创建任务:调用qosa_task_create创建task A和task B。
- 删除任务:调用qosa_task_delete删除task A和task B。

其他接口
如有其他需求,如挂起线程,终止线程等,参考如下:
- qosa_task_suspend:挂起线程任务。
- qosa_task_resume:恢复被挂起的线程任务。
- qosa_task_get_current_ref:获取当前线程的任务句柄。
- qosa_task_change_priority:改变线程的优先级。
- qosa_task_get_priority:获取线程的优先级。