一天学完UCOS III(上)

这篇具有很好参考价值的文章主要介绍了一天学完UCOS III(上)。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

一、UCOS系统中的一些概念

1.UCOS任务状态

一天学完UCOS III(上)

 2.任务控制块(OS_TCB):保存任务信息结构体

3.任务堆栈(CPU_STK):创建任务时传把任务堆栈的参树传入

一天学完UCOS III(上)

 4.任务优先级:高优先级任务可以抢占低优先级任务

当任务都运行while循环,高优先级任务可以打断或终止低优先级任务

5.任务调度:讲解任务调度/切换的机制,不需要特别去了解

二、任务API函数(写程序需要用到)

1.一个完整的UCOS系统任务创建(in-init-out)(基本上都是结构体指针、函数指针)

一天学完UCOS III(上)一天学完UCOS III(上)

 需要初始化地方(优先级、堆栈大小、定义控制块ID、初始化任务堆栈)

一天学完UCOS III(上)

任务函数的编写

//task1
void task1_task(void *p_arg)
{
	u8 task1_num=0;
	OS_ERR err;
	CPU_SR_ALLOC();
	p_arg = p_arg;
	
	POINT_COLOR = BLACK;
	OS_CRITICAL_ENTER();
	LCD_DrawRectangle(5,110,115,314); 	//»­Ò»¸ö¾ØÐÎ	
	LCD_DrawLine(5,130,115,130);		//»­Ïß
	POINT_COLOR = BLUE;
	LCD_ShowString(6,111,110,16,16,"Task1 Run:000");
	OS_CRITICAL_EXIT();
	while(1)
	{
		task1_num++;	//ÈÎÎñÖ´1ÐдÎÊý¼Ó1 ×¢Òâtask1_num1¼Óµ½255µÄʱºò»áÇåÁ㣡£¡
		LED0= ~LED0;
		printf("ÈÎÎñ1ÒѾ­Ö´ÐУº%d´Î\r\n",task1_num);
		if(task1_num==5) 
		{
			OSTaskDel((OS_TCB*)&Task2_TaskTCB,&err);	//ÈÎÎñ1Ö´ÐÐ5´Ëºóɾ³ýµôÈÎÎñ2
			printf("ÈÎÎñ1ɾ³ýÁËÈÎÎñ2!\r\n");
		}
		LCD_Fill(6,131,114,313,lcd_discolor[task1_num%14]); //Ìî³äÇøÓò
		LCD_ShowxNum(86,111,task1_num,3,16,0x80);	//ÏÔʾÈÎÎñÖ´ÐдÎÊý
		OSTimeDlyHMSM(0,0,1,0,OS_OPT_TIME_HMSM_STRICT,&err); //ÑÓʱ1s
		
	}
}

 2.任务的挂起(两个函数,挂起低优先级任务)

 一天学完UCOS III(上)

 3.时间片轮转(同级任务调度,如何设置每个任务进行的时间)

修改宏定义,使能时间片功能

一天学完UCOS III(上)

 一天学完UCOS III(上)

 一天学完UCOS III(上)

 三、系统内部任务

统计任务的初始化方式和时间片调用很像

一天学完UCOS III(上)

 一天学完UCOS III(上)

 一天学完UCOS III(上)

 文章来源地址https://www.toymoban.com/news/detail-426934.html

到了这里,关于一天学完UCOS III(上)的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 挑战30天学完Python:Day12 模块

    🎉 本系列为Python基础学习,原稿来源于 30-Days-Of-Python 英文项目,大奇主要是对其本地化翻译、逐条验证和补充,想通过30天完成正儿八经的系统化实践。此系列适合零基础同学,或仅了解Python一点知识,但又没有系统学习的使用者。总之如果你想提升自己的Python技能,欢迎

    2023年04月27日
    浏览(36)
  • STM32学习——半天学完正点原子入门篇例程,STM32:学会了吗?我:学废了✨

    本文代码均来正点原子标准例程 声明:本文不是教学文章,可能也不适合初学者阅读 不知为什么,最近总蹦出有很多想法(可能是工作太闲了)一会想学这,一会想学那,这不,突然想复习一下 STM32 了。 我好久以前就学过正点原子的课程,还买过一些开发板,但现在手上只

    2024年02月04日
    浏览(41)
  • Python第一天学习之Python数据类型

    1.数据类型介绍 2.数据转换 Python会进行自动的转换,但是,运算就错误,在赋值时可以直接转换,但是在计算时无法直接转换。 数据类型转换 返回的值改变了类型,原数据没修改 3.命名规则 Python不允许$ 开头只能字母或者下划线 大小写敏感的 4.运算符 与其他不同的是, 取整

    2024年02月13日
    浏览(33)
  • 控制中的一些概念

    一些琐碎概念,, 向量场流形是一种数学概念,指的是一个空间中的每个点都有一个向量场,这个空间可以被视为一个流形。简单来说,流形是一个可以通过拓扑和微积分方法进行研究的对象,而向量场是一个描述空间中每个点的方向和大小的对象。 具体来说,向量场流形

    2024年02月08日
    浏览(37)
  • 网络中的一些基本概念

    组建网络的重要设备 集线器 , 交换机 (组建局域网,不能跨局域网组建网络), 路由器 (wifi本质上是无线路由器,路由器的本质的把俩个局域网给连起来) 网络通信的一些基础概念 IP地址 标识了网络设备所在的位置 端口号 标识了一个具体的应用程序 协议 协议是网络通信的概念

    2023年04月17日
    浏览(32)
  • 计算机网络中的一些基本概念

    IP地址: 址用于定位主机的网络地址。是一个32位的二进制数,通常被分割为4个“8位二进制数”(也就是4个字节). 端口号: 在网络通信中,IP地址用于标识主机网络地址,端口号可以标识主机中发送数据、接收数据的进程。简单说:端口号用于定位主机中的进程. 协议: 网络协

    2024年02月13日
    浏览(46)
  • 【JavaEE】网络原理:网络中的一些基本概念

    目录 1. 网络通信基础 1.1 IP地址 1.2 端口号 1.3 认识协议 1.4 五元组 1.5 协议分层 什么是协议分层 分层的作用 OSI七层模型 TCP/IP五层(或四层)模型 网络设备所在分层 网络分层对应 封装和分用 概念: IP地址主要用于标识网络主机、其他网络设备(如路由器)的网络地址。简

    2024年01月24日
    浏览(38)
  • 每天40min,我们一起用70天稳扎稳打学完《JavaEE初阶》——1/70 第一天【进程和线程】【虚拟地址空间】

    专注 效率 记忆 预习 笔记 复习 做题 欢迎观看我的博客,如有问题交流,欢迎评论区留言,一定尽快回复!(大家可以去看我的专栏,是所有文章的目录) 文章字体风格: 红色文字表示:重难点★✔ 蓝色文字表示:思路以及想法★✔ 如果大家觉得有帮助的话,感谢大家帮

    2024年02月15日
    浏览(39)
  • JavaEE之网络初识(网络中的一些基本概念)详解

    😽博主CSDN主页: 小源_😽 🖋️个人专栏: JavaEE 😀努力追逐大佬们的步伐~ 目录 1. 前言 2. 网络中的一些基本概念 2.1 IP地址 2.2 端口号 2.3 网络协议 2.4 协议分层 2.5 封装 2.6 分用 (封装的逆向过程) 2.7 客户端 vs 服务器 2.8 请求, 响应 2.9 两台主机之间的网络通信流程 计算机进行

    2024年04月15日
    浏览(42)
  • 【小黑嵌入式系统第十课】μC/OS-III概况——实时操作系统的特点、基本概念(内核&任务&中断)、与硬件的关系&实现

    上一课: 【小黑嵌入式系统第九课】PSoC 5LP第一个实验——LED、字符型LCD显示实验 下一课: 【小黑嵌入式系统第十一课】μC/OS-III程序设计基础(一)——任务设计、任务管理(创建基本状态内部任务)、任务调度、系统函数 一. 凡从事嵌入式系统开发工作的人,必须对嵌入

    2024年02月05日
    浏览(51)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包