首页 » 技术分享 » W600入门篇 ------ 一、任务创建

W600入门篇 ------ 一、任务创建

 

简述

w600 集成了cotrx-m3的内核,内置的操作系统为Free rtos系统。

当然了对于新入坑的小伙伴来讲 Free rtos的操作系统不太熟悉,而且官方的sdk 以及里面的历程和API手册都不太好看,所以本着学习记录分享的态度,记录一下自己学习历程。

值得注意的一点是: 很多厂家的soc芯片,对于操作系统都做了不同程度的封装,不少API看起来挺奇怪的,在API手册也很难理解的情况下,用起来就很难受了,希望大家自己多看看SDK中的例程多揣摩揣摩。

tls_os_task_create()函数说明

tls_os_task_create(
            tls_os_task_t * task,           任务句柄	
            const char * name,              命名的任务名
            void(*)(void *param) entry,     任务函数
            void * param,                   传递的参数
            u8 * stk_start,                 任务栈起始地址
            u32 stk_size,                   任务栈大小
            u32 prio,                       任务优先级
            u32 flag                        附加的任务行为信息 

参考实例

#define TASK_STK_SIZE      800					//设置任务栈的大小
static u32 TASK1_task_stk[TASK_STK_SIZE];		//设置任务栈的起始地址
tls_os_task_t Task1_HandHdle;				//创建任务句柄

static u32 TASK2_task_stk[TASK_STK_SIZE];		//设置任务栈的起始地址
tls_os_task_t Task2_HandHdle;				//创建任务句柄

void Task1_lvx_test(void * num)
{
	for(;;)
	{
		tls_os_time_delay(HZ);	//延时1S
		printf("\r\n Task1 : ---%s \r\n", (char *)num);
	}
}

void Task2_lvx_test(void * num)
{
	for(;;)
	{
		tls_os_time_delay(HZ);	//延时1S
		printf(" Task2 : ---The time was %d \r\n", (int *)num);
	}
}


void UserMain()
{
	//注意 User_main()函数是用户所在的初始化函数,系统的初始化在platform/sys/wm_main.c 的main()函数下;
	//WM_MAIN.C下的code,请谨慎修改
	char * param1 = "Things Turn welcome you!";
	int param2 = 20181102;
	tls_os_task_create(Task1_HandHdle,
	 	 	 	 "Task1_lvx_test",
			  	 Task1_lvx_test,
			  	 (void *)param1,
				 (void *)&TASK1_task_stk,
		 	 	 TASK_STK_SIZE,
		 	  	 4,
		 	  	 0);
	tls_os_task_create(Task1_HandHdle,
		 	 	 "Task2_lvx_test",
		 	  	 Task2_lvx_test,
		 	  	 (void *)param2,
				 (void *)&TASK2_task_stk,
		 	 	 TASK_STK_SIZE,
		 	 	 5,
		 	 	 0);

		for(;;)
		{
			tls_os_time_delay(HZ);
		}
}

输出结果

Task1 : —Things Turn welcome you!
Task2 : —The time was 20181102

Task1 : —Things Turn welcome you!
Task2 : —The time was 20181102

Task1 : —Things Turn welcome you!
Task2 : —The time was 20181102

结束

W600技术交流群 : 860320067
W600 线上教程:http://docs.thingsturn.com
样品和开发板购买:https://shop387867913.taobao.com
Github开源资料:https://github.com/w600
了解更多内容,可访问官网:http://www.thingsturn.com

转载自原文链接, 如需删除请联系管理员。

原文链接:W600入门篇 ------ 一、任务创建,转载请注明来源!

1