在ucos常使用共享资源来作为任务之间的通信方式,其中有:消息队列,信号量,邮箱,事件.信号量中又分二值信号,多值信号,互斥信号.这次主要讲二值信号与互斥信号之间区别和使用. 首先了解一下ucos的任务要得到运行需要满足什么条件:进入就绪状态.优先级最高且得到信号量(需要信号量的任务). 二值信号量作用:任务通过OSSemPend() 函数获得一个信号量,如果信号量有效(不为0),则任务继续运行,否则进入等待状态(挂起). 互斥信号量作用:任务通过OSMutexPend()函数获得互斥信号量,如…
分析的内核版本号截止到2014-04-15,基于1.05正式版,blogs会及时跟进最新版本号的内核开发进度,若源代码凝视出现"???"字样,则是未深究理解部分. Raw-OS官方站点:http://www.raw-os.org/ Raw-OS托管地址:https://github.com/jorya/raw-os/ 1.同优先级任务轮转 比如,系统中创建有两个同样优先级任务Task A和Task B,而且已经增加到就绪队列. 当Task A时间片用完时,由于同优先级,会被系统调度至就…
转自:http://www.cnblogs.com/huangyu/archive/2004/08/02/29622.html 从宏观的角度来看,对象是类的实例.比如: //定义一个名为Someone的类,代表这么一些人(通过指定年龄,性别,性格等基本信息)class Someone {  public int age;  public string sex;  public string name;  //other...}//......//创建一个Someone类的对象,代表昵称为nemo…
*在写<程序猿的思维修炼>随笔中,我们大概猜想到了,OOP的思想更趋于模块化,更独立,因此称为一个个对象,本次随笔将对OOP和一般编程的区别有更详细的解释 面向对象编程的含义: 面向对象编程是创建计算机应用程序的一种相当新的方法,它解决了传统编程技巧带来的许多问题.一般的的编程方法称为函数(或过程)化编程,常常会导致所谓的单一应用程序,即所有的功能都包含在几个代码模块中(常常是一个代码模块).而使用OOP技术,常常要使用许多代码模块,每个模块都提供特定的功能,每个模块都是孤立的,甚至与其他模块…
之前在ucos多任务切换中漏掉了一个变量, OSCtxSwCtr标识系统任务切换次数 主要应该还是用在调试功能中 Ucos系统初始化函数为OSInit(),主要完成以下功能 全局变量初始化 就绪任务表初始化 空任务控制块初始化 事件控制块链表初始化 信号量集初始化 存储器管理初始化 Qs队列控制初始化 系统空闲任务初始化 系统统计任务初始化 部分功能需要依靠宏定义打开另外要注意一个变量OSTaskCtr标识系统全部任务数,在初始化完成之后就可以创建任务了,创建任务完成之后启动系统使用OSStar…
指定堆栈数据类型(宽度) typedef unsigned int OS_STK; 指定Ucos移植方法3中保存cpu状态寄存器的变量的宽度 typedef unsigned int OS_CPU_SR; 指定堆栈的生长方向,cortex-m3的生长方向是高地址到低地址 #define OS_STK_GROWTH 1 选择cpu进入中断时候(临界段)的切换方式,有三种选择,第一是直接利用cpu的开关中断指令来实现,第二是通过堆栈保存和恢复cpu的状态,第三是通过编译器扩展功能 获取程序状态字,保…
前段时间做了一个关于ARM9 2440资料的汇总帖,很高兴看到21ic和CSDN等论坛朋友们的支持和鼓励.当年学单片机的时候datasheet和学习资料基本都是在论坛上找到的,也遇到很多好心的高手朋友,耐心的回答我提出的问题.感激.图报,很简单的想法.希望这次整理的资料帖能对更多的嵌入式爱好者朋友带来帮助! PS:在此特别感谢 古道热肠 版主把我的帖子加精,给小弟极大鼓舞! 嵌入式入门篇: 什么是嵌入式系统 http://www.helloarm.com/Embedded-Learn/58.ht…
这种问题就要和ucos结合起来嘛. 程序和进程: 程序:存放在磁盘上的一些列代码和数据的可执行映像,是一个静止的实体. 进程:是一个执行中的程序,它是动态的实体. linux进程的四要素: 1. 有一段程序供其执行.这段程序不一定是某个进程所专有,可以与其他进程共用. 2. 有进程专用的内核空间堆栈. 3. 在内核中有一个task_struct数据结构,即通常所说的"进程控制块".有了这个数据结构,进程才能成为内核调度的一个基本单位接受内核的调度. 4. 有独立的用户空间. 注:下图是…
   你的位置: Home ‣ Dive Into Python 3 ‣ 难度等级: ♦♦♦♦♦   使用2to3将代码移植到Python 3 ❝ Life is pleasant. Death is peaceful. It’s the transition that’s troublesome. ❞— Isaac Asimov (attributed) ‣ 显示目录 概述# 几乎所有的Python 2程序都需要一些修改才能正常地运行在Python 3的环境下.为了简化这个转换过程,Pytho…
http://m.blog.csdn.net/blog/merryken/9104199# ❝ Life is pleasant. Death is peaceful. It’s the transition that’s troublesome. ❞ — Isaac Asimov (attributed) 概述# 几乎所有的Python 2程序都需要一些修改才能正常地运行在Python 3的环境下.为了简化这个转换过程,Python 3自带了一个叫做2to3的实用脚本(Utility Scri…