ucosIII
文章平均质量分 53
猎羽
My name is feather!
展开
-
RTOS 基础入门与UCOSIII移植
早期操作系统什么是RTOS常见的RTOSRTOS核心实时内核前后台与RTOS优缺点UCOS可裁剪可剥夺型内核特点优点多任务能力UCOS学习方法多写代码遇到难点可以先去学会使用API再回来看看代码早期操作系统早期没有操作系统概念,一般分为前台程序和后台程序。例如51单片机。将一直循环的作为后台任务,中断作为前台程序。什么是RTOS?实时操作系统,又分为硬实时和软实时,硬实时:必原创 2015-12-13 20:15:05 · 1256 阅读 · 0 评论 -
netconn_accept返回值为0,OSQCreate出错 lwip uocsii
我是在main中有创建信号量的函数 led_event = OSQCreate(&led_q[0] , MSGSIZE);这个因为配置中信号量上限较小 而在sys_arch.c中有一个创建消息邮箱的函数 err_t sys_mbox_new 其中调用了: (*mbox)->pQ=OSQCreate(&((*mbox)->pvQEntries[0])原创 2016-01-10 21:44:44 · 1589 阅读 · 0 评论 -
OSTaskCreate返回值为66、OS_ERR_TASK_NO_MORE_TCB ucosII
OSTaskCreate返回值为66,即为OS_ERR_TASK_NO_MORE_TCB原因在于控制块不够,也就是任务总数太少,需要修改os_cfg.h下面的宏定义,我将其改为了的20个,如下: define OS_MAX_TASKS 20u /* Max. number of tasks in your application, MUST be >= 2原创 2016-01-10 21:33:02 · 1393 阅读 · 0 评论 -
消息队列OSTaskCreate返回值为0 ucosIII
错误信息提示如下: Assertion “OSQCreate” failed at line 67 in ..\LWIP\arch\sys_arch.c Assertion “netconn_connect: invalid conn” failed at line 197 in ..\LWIP\lwip-1.4.1\src\api\api_lib.c这是因为消息队列达到了上限,需要在o原创 2016-01-07 15:23:43 · 1457 阅读 · 1 评论 -
NETCONN编程接口简介 LWIP(一)
LWIP简介LWIP是Light Weight (轻型)IP协议,有无操作系统的支持都可以运行。LwIP实现的重点是在保持TCP协议主要功能的基础上减少对RAM 的占用,它只需十几KB的RAM和40K左右的ROM就可以运行,这使LwIP协议栈适合在低端的嵌入式系统中使用。为了简化处理过程和内存要求,lwIP对API进行了裁减,可以不需要复制一些数据。 编程接口LWIP有三种编程接口: 1. RAW原创 2016-01-07 09:23:58 · 15436 阅读 · 2 评论 -
ucosIII 事件标志组、同时等待多个内核对象、存储管理
本文内容简介: 一共分为三部分: 第一部分:事件标志组,用于等待多个事件 第二部分:同时等待多个内核对象,比如同时等待多个信号量 第三部分:存储管理,ucosIII提供的存储管理很容易内存泄露,建议直接使用正点原子提供的内存管理。事件标志组 有时候一个任务需要与多个事件同步,这个时候就需要使用事件标志组。事件标志组与任务之间有两种同步机制:“或”同步和“与”同步。 “或”原创 2015-12-20 22:19:41 · 2681 阅读 · 0 评论 -
ucosIII 互斥信号量、内嵌信号量
本文内容简介: 一共分为三部分: 第一部分:互斥信号量,用于解决信号量优先级反转问题 第二部分:内嵌信号量信号量的优先级反转问题 信号量在一定情况下会造成高优先级的任务反而之后才执行 解决方法:可以将需要等待的任务L优先级上调到和任务H一样的高度,这样能预防优先级反转。ucosIII用这种思想,有了下面的互斥信号量。互斥信号量这是一种特殊的二进制信号量API需要定义OS_M原创 2015-12-20 20:59:09 · 3306 阅读 · 0 评论 -
ucosIII 信号量
本文内容简介:信号量信号量简介信号量像是一种上锁机制,代码必须获得对应的钥匙才能继续执行,一旦获得了钥匙,也就意味着该任务具有进入被锁部分代码的权限。一旦执行至被锁代码段,则任务一直等待,直到对应被锁部分代码的钥匙被再次释放才能继续执行。信号量用于控制对共享资源的保护,但是现在基本用来做任务同步用。要想获取资源的任务必须执行“等待”操作, 如果该资源对应的信号量有效值大于1,则任务可以获得原创 2015-12-20 20:32:44 · 3114 阅读 · 0 评论 -
ucosIII 软件定时器
本文内容简介: 一共分为三部分: 第一部分:任务调度,讲述了任务级和中断级的任务调度和调度点 第二部分:任务切换 第三部分:系统初始化部分。 重点在于第三部分代码讲解软件定时器定时器本质是递减计数器,当计数器减到零时可以触发某种动作的执行,这个动作通过回调函数来实现。当定时器计时完成时,定义的回调函数就会被立即调用,应用程序可以有任意数量的定时器,UCOSIII中定原创 2015-12-18 22:03:39 · 2993 阅读 · 0 评论 -
ucosIII 中断、临界区与时间管理
本文内容简介 一共分为三部分:>第一部分:任务调度,讲述了任务级和中断级的任务调度和调度点>第二部分:任务切换>第三部分:系统初始化部分。重点在于第三部分代码讲解ucosIII中断中断:应内部或外部异步事件的请求中止当前任务,而去处理异步事件所要求的任务的过程叫做中断。void USART1_IRQHandler(void){ OSIntEnter(); //中断原创 2015-12-18 12:29:19 · 6615 阅读 · 0 评论 -
ucosIII 系统任务
导读: 介绍了5个系统任务和钩子函数 系统任务包括:空闲任务,时钟节拍任务,统计任务,定时任务,中断服务管理任务 重点在于明白各个系统任务的作用系统任务空闲任务空闲任务特点: 1. 空闲任务是UCOSIII创建的第一个任务。 2. 空闲任务是UCOSIII必须创建的。 3. 空闲任务优先级总是为OS_CFG_PRIO_MAK-1。 4.原创 2015-12-18 09:18:34 · 2519 阅读 · 0 评论 -
UCOSIII 任务管理(中)
导读: 本文涉及三部分: 1. 第一部分:任务堆栈的创建和使用 2. 第二部分:任务控制块 3. 第三部分:优先级以及就绪表 希望能通过讲解对UCOSIII的任务管理有进一步的理解. 一、任务堆栈ucos中的堆栈是遵循“FIFO”原则,也就是先进先出。和一般系统都是一样的。任务堆栈的创建define START_STK_SIZE 512 //堆栈大小CP原创 2015-12-15 19:59:58 · 1030 阅读 · 0 评论 -
ucosIII 知识汇总与链接
导读: 概述所有ucos知识点大纲,并且带上各个部分本人原创的学习心得和知识点 一、任务 二、中断、临界区、时间管理 三、定时器 四、信号量 五、消息队列 六、事件标志组、存储管理原创 2016-01-03 10:58:13 · 636 阅读 · 0 评论 -
ucosIII 任务创建与删除,任务挂起与恢复,时间片轮转调度
本文导读: 一共分为三部分: 第一部分:任务创建与删除。重点在于理解任务创建的各个参数即可。 第二部分:任务挂起和恢复。函数比较简单,看看即可。 第三部分:时间片调度 重点在于第三部分代码讲解任务创建与删除创建步骤1:先调用OSTaskCreate创建任务 步骤2:使用OSStart(&err)开启任务切记:在没有使用时间片轮转的时候,任何任务的优先级不能相同任原创 2015-12-18 07:10:07 · 4727 阅读 · 1 评论 -
UCOSIII 任务管理(下)
本文内容简介: 一共分为三部分: 第一部分:任务调度,讲述了任务级和中断级的任务调度和调度点 第二部分:任务切换 第三部分:系统初始化部分。 重点在于第三部分代码讲解任务调度UCOSIII可剥夺型内核调度任务调度器一、任务级调度器 OS_Sched(),在OSTimeDlyHMSM中调用了该函数二、中断级调度器 OSInitExit(),在退出中断的时候原创 2015-12-16 16:56:17 · 2560 阅读 · 0 评论 -
ucosIII 消息传递
导读: 一共分为三部分:>第一部分:任务调度,讲述了任务级和中断级的任务调度和调度点>第二部分:任务切换>第三部分:系统初始化部分。重点在于第三部分代码讲解任务间通信一个任务或者中断服务程序有时候需要和另一个任务交流信息,这个就是消息传递的过程就叫做任务间通信,任务间的消息传递可以通过2种途径:一是通过全局变量,二是通过发布消息。 使用全局变量的时候每个任务或者中断服务程序都必须保证其对全原创 2015-12-20 21:43:16 · 4776 阅读 · 1 评论 -
ucosIII 系统任务占用的优先级
系统任务占用的优先级优先级0中断服务管理任务 OS_IntQTask()优先级1时钟节拍任务 OS_TickTask()优先级2定时任务 OS_TmrTask()优先级OS_CFG_PRIO_MAX-2统计任务 OS_StatTask()优先级OS_CFG_PRIO_MAX-1空闲任务 OS_IdleTask()原创 2015-12-30 10:03:57 · 3147 阅读 · 0 评论 -
UCOSIII-任务管理(上)
基于stm32代码讲解 本文 第一部分:涉及移植后stm32工程中delay.c,usart.c,sys.c 3个源文件中重要的函数说明 第二部分:讲解ucos任务管理的基本概念和相关代码帮助理解,包括-1.任务的组成部分 2.系统任务 3.任务状态 4.任务状态的切换第一部分1-delayc采用滴答定时器硬件定时器作为UCOS的基准时间2-usartc3-sys原创 2015-12-14 20:19:10 · 1273 阅读 · 1 评论 -
STM32端 UCOII+LWIP问题汇总
在进行DHCP分配的时候,一定要放入任务中执行。不然会一直获取不到。原创 2015-12-30 13:20:10 · 1015 阅读 · 1 评论