求推荐学习ucos的不错的书籍或视频教程,最好是基于嵌入式经典书籍平台讲解的。

Ucos II 内存管理
     在mcu21的项目里,暂时还没用到内存管理。不过还是有必要学习一下的。
    为了消除内存碎片,ucos II 把连续的大块内存按分区来管理。每个分区中包含有整数个大小相同的内存块。
    类似每个任务对应一个任务控制块,每个事件对应一个事件控制块,ucos II里每个内存块也是对应一个内存控制块。内存控制块是一个数据结构,定义如下:
ucos II内核学习之三:ucos II初始化及启动
 以下是我项目中主函数的程序
现在解释下程序编写的依据和实现过程。
ucos II 里,在创建一个任务(或者调用其它系统服务之前),是需要先初始化系统的,初始化ucos II需要调用函数OSInit()。调用函数OSInit()的作用是什么?主要实现以下几个功能。
1.     建立空闲任务及统计任务。
2.       初始化uc...
ucos II 内核学习之二 :时钟节拍
ucos II 里,时钟节拍就好比是人的心脏一样重要,。它对于CPU能顺利在各任务间切换有着至关重要的作用。
Ucos II 需要用户提供时钟源,在muc21项目了,我使用了定时器0作为时钟源。使用时钟源有一个特别需要注意的地方:用户必须在多任务系统启动以后再开启时钟节拍器,也就是在调用OSStart()之后。
Ucos II中的时钟节拍服务是通过在...
Ucos II  任务延时函数
   编写过单片机程序的都知道,延时函数是经常被用到的。
   在ucos II 里,系统也提供了这样的延时函数。一个是大众版的OSTimeDly(),一个是精致版的OSTimeDlyHMSM()。 萝卜青菜,各有所爱,随你怎么选。
   这两者的区别是,OSTimeDly()的延时时间是以节拍数来衡量的,OSTimeDlyHMSM()的延时时间则是以具体时...
ucos II 内核学习之一 :任务调度
  学校的教学方式多是先让你学原理,再应用它。Muc21则不喜欢这种方式,依然记得在学校枯燥无味地学一大堆理论,更郁闷的是不知道是应用在什么地方。
  Mcu21喜欢先学会用它了,然后再去了解它的原理。对ucos II也一样,当我用过之后,再去看它的内核,或许理解起来会更容易。
  实现任务切换,需要调用函数OSSched()。
  程序代码如下...
ucos II 内核学习之二:任务控制块
前面的学习已经了解过任务控制块。知道任务在创建的时候,任务控制块会被初始化。任务控制块是一个数据结构,当任务的CPU使用权被剥夺时,ucos II用它来保存该任务的状态。当任务重新得到CPU使用权时,任务控制块能确保任务从当时被中断的那一点丝毫不差地继续执行。OS­­_TCBs全部驻留在RAM中。
任务控制块的定义程序如下所示:...
ucos II 内核学习之一:任务状态及任务控制块
一个任务被创建之后,可以处于以下五种状态之一。
这五种状态分别是:
1.       睡眠状态
2.       就绪状态
3.       等待状态
4.       中断服务状态
5.       执行状态
下面简单介绍下各状态的含义及各状态切换的方法。
    睡眠状态:睡眠态(DORMANT)指任务驻留在程序空间之中,还...
ucos II 任务间 通信之五:消息队列2
消息队列通常可以应用以下两个地方;
1.存储外部事件:外部事件由中断收集,然后存储到队列。
2.串口接收程序中的接收循环缓冲区,可理解为消息队列。
使用一个消息队列的步骤如下;
1、 建立一个指向消息数组的指针和数组的大小,该指针数组必须申明为void类型,如下:
        void    *MyArrayOfMsg[SIZE];...
ucos II 任务间 通信之五:消息队列
   如果把邮箱比作是信号量的升级版,那消息队列就是邮箱的升级版。邮箱可以实现从一个任务向另外一个任务发送一个指针变量,消息队列则可以实现从一个任务向另外一个任务发送很多个指针变量。而且每个指针指向的数据结构变量也可以有所不同。
   使用消息队列需要注意的地方是:一个任务或者中断服务子程序可以调用OSQPost(),OSQPostFront(),O...
ucos II 任务间 通信之四:邮箱
   学过信号量之后再来看邮箱,发现他们是非常相似的,甚至有时候邮箱可以当做信号量来使用,邮箱相对信号量而言,只是多传递了一个指针变量。
和信号量很相似,ucos II提供了5个对邮箱进行操作的函数。它们是:
1. 建立一个邮箱,OSMboxCreate()
2. 等待一个邮箱中的消息,OSMboxPend()
3. 发送一个消息到邮箱中,OSMb...
ucos II 任务间 通信之三:信号量2
当我们创建好了信号量之后,就可以使用信号量了。使用信号量需要调用OSSemPost()和OSSemPend()。关于具体怎么使用信号量,就得先看看这两个系统函数的代码。
先看等待信号量OSSemPend()的代码:
void OSSemPend (OS_EVENT *pevent, INT16U timeout, INT8U...
ucos II 任务间 通信之三:信号量
信号量是什么?信号量有什么用?
   信号量一是可以用来表示一个或多个事件的发生,二是用来对共享资源的访问。
ucos II提供了5个对信号量进行操作的函数。它们是:
1. 建立一个信号量, OSSemCreate()
2. 等待一个信号量, OSSemPend()
3. 发送一个信号量, OSSemPost()
4. 无等待地请求一个信号量...
ucos II 任务间 通信之二:事件控制块
信号,邮箱,消息队列都是需要先创建才能使用的,创建以上三者需要用到事件控制块这一东西。
什么是事件控制块呢?
可以这样理解,前面学习我们已经知道,创建一个任务需要给这个任务分配一个任务控制块,这个任务控制块存储着关于这个任务的重要信息。那么,事件控制块就好比任务里的任务控制块。它存储着这个事件的重要信息,我们说创建一个事件(信号,邮箱,消息队列)...
ucos II 任务间通信之一 :全局变量
任务创建好了之后,只是完成了系统编程的一小步,更为重要的是任务间的通信。比如在mcu21的项目里,有通信任务,有液晶显示任务,有控制任务。控制任务需要用到通信任务接受到的数据,液晶显示任务也显示控制任务的数据。这就需要用到任务间的通信了。
 Mcu21总结了一下,在ucos II 里任务间通信可以采用以下几种方式。
ucos II任务管理之四:改变任务的优先级
在ucos II 里,任务的优先级是可以改变的。可以修改任务优先级的一个好处就是可以解决优先级翻转的问题。
什么是优先级翻转问题?偷偷地百度一下
所谓优先级翻转问题(priority inversion)即当一个高优先级任务通过信号量机制访问共享资源时,该信号量已被一低优先级任务占有,而这个低优先级任务在访问共享资源时可能又被其它一些中等优先级任...
ucos II任务管理之三:删除任务
有了前面的经历之后,mcu21决定全面地学习了任务的管理。这样在项目编程中才能做到“信手拈来”。
在ucos II 里,创建一个任务之后,可以对任务执行以下几种操作
1.    删除任务  OSTaskDel()
2.    挂起任务  OSTaskSuspend()
3.    恢复任务  OSTaskResume()
4.    改变任务的优先...
ucos II任务管理之二:恢复任务
  一个任务被挂起之后,想要再次被执行,是需要恢复的,恢复任务需要调用
OSTaskResume()函数实现。想OSTaskSuspend()一样,调用OSTaskResume()只需一个参数,就是优先级。如OSTaskResume(5)就是恢复优先级为5的任务。
INT8U OSTaskResume (INT8U prio)...
Ucos II 任务管理之一
创建好了任务之后,就已经初步跨进了ucos II 的编程了。随着进一步的编程,发现学会创建了任务还是不够的。
在我的项目里,需要实现485通信功能,我创建了任务1用于串口1发送数据,任务2用于串口1接受数据。程序本身的意图是发送完数据后,接着就串口1接受反馈回来的信息。
但当把程序下载到电路板上后就出现问题,不能正常通信,原因就是当任务1在发送数据过程中,cpu...
Ucos II 创建第一个任务之二
下面具体讲解下任务创建的过程
下图就是创建任务函数的实现程序。
INT8U OSTaskCreate (void (*task)(void *pd), void *pdata, OS_STK *ptos, INT8U prio)
    void   *
    INT8U...
Ucos II创建第一个任务
  我们已经从远处欣赏过ucos II 的身材,现在可以近距离地欣赏Ucos II性感的局部了。
  任务是什么?
有一句话:CPU不同的时刻段总是在执行着优先级最高的任务。所以CPU总是在不同的任务间切换。任务好比linux中的进程。
有c写过单片机程序的人是知道函数的.。
在ucos II 世界里,任务就是一个大箩筐,框着一个或者好多好多的函数。CPU呢...
访问:175620次
积分:2490
积分:2490
排名:第7433名
原创:65篇
转载:29篇
评论:39条
阅读:11654
(1)(1)(1)(4)(14)(9)(15)(3)(3)(2)(4)(4)(2)(3)(20)(2)(2)(4)刚刚开始学习ucos嵌入式,大神们给点儿建议呗_嵌入式吧_百度贴吧
&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&签到排名:今日本吧第个签到,本吧因你更精彩,明天继续来努力!
本吧签到人数:0成为超级会员,使用一键签到本月漏签0次!成为超级会员,赠送8张补签卡连续签到:天&&累计签到:天超级会员单次开通12个月以上,赠送连续签到卡3张
关注:27,058贴子:
刚刚开始学习ucos嵌入式,大神们给点儿建议呗收藏
之前c51写过一点儿东西,现在准备学习stm32,用到ucos系统。本菜鸟有一点儿c语言基础(二级优秀)。想知道从哪一方面入手。求推荐书籍。如果能把下载地址给我就更好了
要搞明白哪儿需要你自己写,哪儿不需要你改动,这是移植的第一步…
这是我手里的一本书,我觉得讲得还行。
登录百度帐号推荐应用
为兴趣而生,贴吧更懂你。或}

我要回帖

更多关于 邵贝贝 ucosii 书籍 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信