这篇来学习下,xr806开发板在freertos系统下创建两个任务测试,由于没有找到学习的文档,试着参考例程来测试。
一、复制工程
上篇测试了hello_demo的测试例程,直接复制这个工程文件,在此基础上修改
root@ubuntu:/home/xr806_sdk/project/demo# cp -r hello_demo/ task_demo/
复制完成后,文件如下:
修改 /demo/task_demo/gcc目录下的defconfig文件
root@ubuntu:/home/xr806_sdk/project/demo/task_demo/gcc# vi defconfig
二、代码
2.1、main.c
#include common/framework/platform_init.h#include #include kernel/os/os.h#include task.hint main(void){ platform_init(); task_init(); return 0;}2.2、task.c
#include #include #include #include kernel/os/os.h#define start_thread_stack_size (512)#define thread_stack1_size (512)#define thread_stack2_size (512)static os_thread_t start_task_thread;static os_thread_t task1_thread;static os_thread_t task2_thread;static void task1(void *arg){ while (1) { printf(task1 running....n); os_msleep(100); }}static void task2(void *arg){ while (1) { printf(task2 running....n); os_msleep(200); }}static void start_task(void *arg){ //create task1 if (os_threadcreate(&task1_thread, task1, task1, null, os_thread_prio_app, thread_stack1_size) != os_ok) { printf(thread create task1 errorn); } //create task2 if (os_threadcreate(&task2_thread, task2, task2, null, os_thread_prio_app, thread_stack2_size) != os_ok) { printf(thread create task2 errorn); } os_threaddelete(&start_task_thread);}int task_init(void){ if (os_threadcreate(&start_task_thread, start_task, start_task, null, os_thread_prio_app, start_thread_stack_size) != os_ok) { printf(thread create errorn); return -1; } return 0;}三、程序运行
编译完成后,下载镜像到开发板。
复位开发板运行后,串口输出:
WBx系列低功耗嵌入式Wi-Fi+BLE双协议模组简介
通过3个高级步进电机驱动器功能进一步提高性能
禁烟警示器电路设计
以太坊2.0怎样提高速度
Pink Taxi正在通过区块链技术来保护女性的乘车安全
【XR806开发板试用】FreeRTOS创建任务测试
华为首款全面屏手机荣耀Note9曝光:华为Mate10这个杀手锏可雪藏
激光电视为什么要配置抗光幕?白墙可以吗?
WS51F0030系列物联网MCU的简介和特点
内存兼容性对于内存而言十分重要,该如何进行选择
振兴传感器行业的关键:摆脱进口依赖
出售Agilent54751A电模块
涡街流量计在蒸汽、水和空气介质下的计量特性分析
两分钟速度了解 Altera最新28nm FPGA技术演示图片及资料
VR和AR将是体验式营销的终极媒介
一种基于去遮挡和移除的3D交互手姿态估计框架
使用DS2760或DS2761电池监视器多重电池应用-Usi
Wind River Simics提升物联网软件敏捷性
舜宇上半年手机镜头出货量破4亿颗,摄像头模组出货量超1.78亿颗
医用纺织品气流阻力测试仪的主要用途及技术参数