
ucosii
一米阳光john
这个作者很懒,什么都没留下…
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
ucos OS_ENTER_CRITICAL . .
http://blog.csdn.net/zhanglianpin 今天又看了一下ucos保护临界段代码,ucos是利用禁止中断来保护临界段的。ucos给我们提供了三种方法:一:直接关中断和直接开中断。即成对使用,保证临界段的安全。二:先把原来的中断状态压入栈中,然后再关闭中断。恢复时直接从栈中返回原来存储的中断状态。三:先保存原来的中断状态到一个变量中,然后再关闭中断。转载 2013-03-20 16:58:12 · 435 阅读 · 0 评论 -
μC/OS-Ⅱ学习笔记(3)
http://tiandongying.blog.163.com/blog/static/163612821201081623225765/读《uCOSⅡ中文教程.pdf》笔记1、建立任务。任务可以在多任务调度开始前建立,也可以在其它任务的执行过程中被建立。在开始多任务调度(即调用OSStart())前,用户必须建立至少一个任务。任务不能由中断服务程序(ISR)来建立。2、建立任务。I转载 2013-03-21 17:17:38 · 520 阅读 · 0 评论 -
ucos-ii的任务控制块 .
在操作系统初始化函数OSInit执行之后,用户可以调用OSTaskCreate或者OSTaskCreateExt函数来创建用户任务,因为这两个函数是内核用来创建任务的,不允许用户进行修改,因此被称为系统服务。用户任务的程序是以函数的形式游用户编写,称为用户函数,和操作系统提供的服务划分了界限,很明显,必须将用户函数的地址传递给创建任务的系统服务。在用户任务中,同样可以调用OSTaskCreate或转载 2013-03-23 09:23:10 · 591 阅读 · 0 评论 -
任务创建函数OSTaskCreate解析 .
任务是操作系统处理的首要对象,在多任务运行的环境中,任务的管理需要考虑多方面的因素,最基本的任务管理是任务的创建。任务创建函数有两种,一种是基本的创建函数OSTaskCreate,另一种是扩展的任务创建函数OSTaskCreateExt。两个函数都实现了任务的创建,但是OSTaskCreateExt的功能更强,带有很多附加的功能,如果不需要附加功能,OSTaskCreate是完全可以胜任的,没有哪转载 2013-03-23 09:24:08 · 599 阅读 · 0 评论 -
ucos中关于信号量的使用总结 .
在ucos-II中,为了实现任务之间的同步,用到的同步机制有:信号量,邮箱和消息队列。其中这里我主要说下对信号量的使用经验。信号量在创建时,调用OSSemCreate(INT16U cnt)函数。cnt为信号量的初始值。对cnt赋予不同的值,所起到的作用不同。如果Semp = OSSemCreate(0), 该信号量表示等待一个事件或者多个事件的发生。 例如:我们现在想实现这样一个功能:当有按键按转载 2013-03-23 10:47:58 · 569 阅读 · 0 评论 -
μC/OS-II学习之:任务,信号量、邮箱、队列及其区别 .
一:UCOS是一种抢占式的多任务操作系统,如果最高优先级的任务不主动放弃CPU的使用的话,其他任务是无法运行的,通常情况下,高优先级的任务在使用完CPU或其他资源后都要主动放弃,可以通过延时函数或者时等待一些信号量之类的让自己挂起。但是如果最高优先级任务一直使用CPU,那就跟单任务没有什么区别了。二:可以通过等待信号量,消息等是当前任务挂起,或者通过通过延时函数将任务挂起,从而让其他优先级的任转载 2013-03-23 10:53:27 · 583 阅读 · 0 评论 -
ucosii事件管理
在任务管理中任务控制块承载了任务的相关信息。在事件管理中,这个载体就变成了事件控制快(ECB)。它虽然没有任务控制块(TCB)的内容丰富,但是在事件处理中任然是核心的数据结构。事件等待组和事件等代表的关系与任务管理中的就绪组和就续表的关系是一样的,只不过事件等待组和事件等待表用于管理等待事件发生的任务,而且这两者都在事件控制块中,不像就绪组和就续表是独立的。 一个事件块标志着一个事件,原创 2013-03-25 13:40:18 · 342 阅读 · 0 评论 -
ucosii中的任务
ucosii的任务有两种:用户任务和系统任务。用户任务是为解决应用问题而编写的,系统任务是为应用程序来提供服务的。任务是程序的动态表现,在操作系统中体现为线程,是程序的一次执行过程。程序是静止的,存在于ROM、硬盘等外围设备中。任务是运动的,存在于内存中,有睡眠、就绪、运行、阻塞、挂起等多种状态。系统的程序多次执行是可以的,这样就形成了多个优先级不同的任务,每一个都是独立的。 在实原创 2013-03-25 13:34:14 · 658 阅读 · 0 评论 -
配置自己的UC/OS—II操作系统 .
每个具体的嵌入式应用系统对实时操作系统的要求是不完全相同的,在实际做项目中,一般我们不可能全部用到UC/OS-II操作系统给我们的所有资源。并且为了减少引入UC/OS操作系统而占用系统的宝贵资源。我们要根据具体情况来对UC/OS操作系统进行裁剪,得到一个即满足需要,又非常紧凑的应用软件系统。 在UC/OS的配置文件(OS_CFG.H)中,对相关的配置常量进行相关的设置。现对转载 2013-08-21 17:24:04 · 512 阅读 · 0 评论 -
UCOS2移植学习笔记(1)
http://tiandongying.blog.163.com/blog/static/16361282120108951837415/读《uCOSⅡ中文教程.pdf》笔记1、建立INCLUDES.H,可以统一头文件,虽然编译的时候多浪费了时间,但是增强的程序的移植性。2、定义可移植的数据类型。Typedef3、定义全局宏方法。 #ifdef OS_GLOBALS转载 2013-03-21 16:36:19 · 565 阅读 · 0 评论 -
ucosii在stm32上的移植详解
虽然目前网上已经有不少关于ucosii在stm32上的移植版本,包括micrium也有官方移植版本。但这些版本具体是怎么移植出来的,又该怎么基于移植好的ucosii开发应用软件,网上介绍的并不多。这里介绍一下我的移植经历,希望对大家有所帮助。 我的移植基本上是从零开始的。首先想要做好移植,有两方面的内容是必须要了解。1.目标芯片;2.ucosii内核原理。 虽然我们移植的目标芯转载 2013-03-21 20:49:44 · 1370 阅读 · 1 评论 -
uCOS-II函数解析 .
时间管理服务函数是以系统节拍为处理单位的,实际的时间与希望的时间是有误差的,最坏的情况下误差接近一个系统节拍。因此时间管理服务函数只能用在对时间精度要求不高的场合,或者时间间隔较长的场合。1. void OSSchedLock(void);void OSSchedLock (void){#if OS_CRITICAL_METHOD == 3转载 2013-03-21 20:29:56 · 528 阅读 · 0 评论 -
uC/OS-II学习笔记-定义全局变量 . .
全局变量应该是得到内存分配且可以被其他模块通过C语言中extern关键字调用的变量。因此,必须在 .C 和 .H 文件中定义。这种重复的定义很容易导致错误。以下讨论的方法只需用在头文件中定义一次。虽然有点不易懂,但用户一旦掌握,使用起来却很灵活。表1.2中的 定义出现在定义所有全局变量的.H头文件中。程序清单 L 1.2 定义全局宏。 #ifdef xxx_GLOBALS #def转载 2013-03-20 16:40:55 · 537 阅读 · 0 评论 -
ucos OS_ENTER_CRITICAL .
http://blog.csdn.net/zhanglianpin/article/details/6759595今天又看了一下ucos保护临界段代码,ucos是利用禁止中断来保护临界段的。ucos给我们提供了三种方法:一:直接关中断和直接开中断。即成对使用,保证临界段的安全。二:先把原来的中断状态压入栈中,然后再关闭中断。恢复时直接从栈中返回原来存储的中断状态。三:先保存原来转载 2013-03-21 15:28:14 · 788 阅读 · 0 评论 -
μC/OS-Ⅱ学习笔记(2)--内核结构
http://tiandongying.blog.163.com/blog/static/16361282120108155533351/μC/OS-Ⅱ学习笔记(2)--内核结构 2010-09-16 14:25:16| 分类:操作系统 | 标签:|字号大中小 订阅读《uCOSⅡ中文教程.pdf》笔记1、临界段。注意关中断的时间。微处理器一般都有关转载 2013-03-21 16:59:29 · 467 阅读 · 0 评论 -
查看Keil MDK-ARM各种数据类型占用的字节数
一、先定义几个变量,用于存放各数据类型的字节数。#includeunsigned char a,b,c,d,e,f,g;main(){ a=sizeof(char); b=sizeof(short int); c=sizeof(int); d=sizeof(long); e=sizeof(long int); f=sizeof(flo转载 2013-04-04 09:58:28 · 827 阅读 · 0 评论 -
关于STM32的systick定时器的详细说明
SysTick定时器被捆绑在NVIC中,用于产生SYSTICK异常(异常号:15)。在以前,大多操作系统需要一个硬件定时器来产生操作系统需要的滴答中断,作为整个系统的时基。例如,为多个任务许以不同数目的时间片,确保没有一个任务能霸占系统;或者把每个定时器周期的某个时间范围赐予特定的任务等,还有操作系统提供的各种定时功能,都与这个滴答定时器有关。因此,需要一个定时器来产生周期性的中断,而且最好还让用转载 2013-04-03 18:26:45 · 539 阅读 · 0 评论 -
UCOS2操作系统学习笔记(4)
http://tiandongying.blog.163.com/blog/static/16361282120101017102928777/读《嵌入式实时操作系统uC/OS-II》第二版1、与处理器类型无关的代码(P73)OS_CORE.C OS_FLAG.C OS_MBOX.C OS_MEM.C OS_MUTEX.C OS_Q.C OS_SEM.C OS_TA转载 2013-03-21 18:30:28 · 481 阅读 · 0 评论 -
UCOS2学习笔记(n)--某处理器的移植
http://tiandongying.blog.163.com/blog/static/163612821201081705741378/1、OS_CPU.H (1)根据所用处理器,定义数据类型; (2)定义OS_ENTER_CRITICAL() 和OS_EXIT_CRITICAL(); (3)定义OS_ISR_PROTO_EXT; OS_STK_GROWT转载 2013-03-21 18:32:26 · 455 阅读 · 0 评论 -
UCOS2操作系统调试步骤
http://tiandongying.blog.163.com/blog/static/1636128212010101833611564/1,实验一#include "includes.h"void main(void){ OSInit(); 关LED; OSStart();}void OSTaskIdleHook(void)转载 2013-03-21 19:18:22 · 586 阅读 · 0 评论 -
UCOSII信号量
标注:信号量主要用于任务见得互斥处理,或者对某个事件的独有控制1、 相关背景知识 信号量为操作系统处理临界区问题和进程间同步提供了一种有效的机制。信号量本身不具备数据传输的功能,它只是资源的外部标识,通过该标识可以判断该资源是否可用。信号量在此过程中负责数据操作的互斥、同步等功能。信号量的行为常用P操作和V操作来表示,简称PV操作。任务对资源进行P操作,即意味着申请占转载 2013-08-21 20:08:26 · 565 阅读 · 0 评论