大家好,欢迎来到IT知识分享网。
简述
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 = ; 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); } }
输出结果
结束
W600技术交流群 :
W600 线上教程:http://docs.thingsturn.com
样品和开发板购买:https://shop.taobao.com
Github开源资料:https://github.com/w600
了解更多内容,可访问官网:http://www.thingsturn.com
免责声明:本站所有文章内容,图片,视频等均是来源于用户投稿和互联网及文摘转载整编而成,不代表本站观点,不承担相关法律责任。其著作权各归其原作者或其出版社所有。如发现本站有涉嫌抄袭侵权/违法违规的内容,侵犯到您的权益,请在线联系站长,一经查实,本站将立刻删除。 本文来自网络,若有侵权,请联系删除,如若转载,请注明出处:https://haidsoft.com/157326.html