
ucos编程
bytxl
归零。
得意之时谨记,一半命运还掌握在上帝手里;失意之时须知,一半命运还掌握在自己手里。
不怕死,不找死。
展开
-
μCOS-II系统之时间管理函数OSTimeDlyHMSM()
上次学习了OSTimeDly()函数,了解了OSTimeDly()基本应用。。同时μCOS-II还提供了另一个系统延时函数OSTimeDlyHMSM()函数。下面来说说这个函数的基本应用。这个函数是以小时(H)、分(M)、秒(S)和毫秒(m)四个参数来定义延时时间的,函数在内部把这些参数转换为时钟节拍,再通过单次或多次调用OSTimeDly()进行延时和任务调度,所以延时原理和调用延时函数OSTi转载 2015-12-12 17:51:46 · 1345 阅读 · 0 评论 -
uCOS-II的任务介绍
从任务的存储结构来看,uCOS-II的任务由三个组成部分构成:任务程序代码,任务堆栈和任务控制块。其中,任务控制块用来保存任务属性;任务堆栈用来保存任务工作环境;任务程序代码是任务的执行部分。 uCOS-II的任务组成uCOS-II的任务有两种:用户任务和系统任务。由应用程序设计者编写的任务,叫做用户;由系统提供的任务叫做系统任务。用户任务是为解决应用问题而编写的;系统任务转载 2015-12-15 08:49:21 · 4328 阅读 · 0 评论 -
LwIP协议栈的学习与应用
LwIP协议栈的学习与应用 前言LWIP(Light Weight Internet Protoco1)是瑞士计算机科学院(Swedish Institute of Computer Science)AdamDunkels等人开发的一套用于嵌入式系统的开放源代码TCP/IP协议栈。LWIP的含义是Light Weight(轻型)IP转载 2015-12-15 18:08:56 · 15391 阅读 · 1 评论 -
ucos消息队列的使用
消息队列的使用 1、 需在以下文件中配置如下内容 OS_CFG.H OS_MAX_QS N 你需要的值 根据需要自己配置 #define OS_Q_EN 1 /* Enable (1) or Disable (0) code generation for QUEUES转载 2015-12-17 15:28:22 · 2906 阅读 · 0 评论 -
ucos II API参考手册
UCOS-II API 参考手册本章提供了μC/OS-Ⅱ的用户指南。每一个用户可以调用的内核函数都按字母顺序加以说明,包括:l 函数的功能描述l 函数原型l 函数名称及源代码l 函数使用到的常量l 函数参数l 函数返回值l 特殊说明和注意点OSInit( ) Void OSInit(void); 所属文件原创 2015-12-17 14:37:28 · 3015 阅读 · 0 评论 -
LWIP UDP 编程
一、udp.c实现的函数1、void udp_input(struct pbuf *p, struct netif *inp)说明:处理接收到的udp数据包。参数:p数据包缓存区;inp网络接口。 2、err_t udp_send(struct udp_pcb *pcb, struct pbuf *p)说明:发送udp包。这个函数直接调用ud转载 2015-12-15 18:57:20 · 9811 阅读 · 0 评论 -
lwip中pbuf_alloc()内存申请函数
1. PBUF_RAM一次性分配size大小的连续内存2. RBUF_ROM只需要分配小小的管理pbuf的控制管理内存3. PBUF_ROOL分配一个链表,链表上每个元素所管理的内存最大不超过PBUF_POOL_BUFSIZE,它更像linux 中的kmem_alloc内存高速缓存机制,所以它也更适合在网卡驱动irq中断中为刚刚到来的网络数据包申请存储空间/*---------转载 2015-12-15 18:58:33 · 3370 阅读 · 0 评论 -
NIOSII中的LWIP协议栈中的FD_ZERO,FD_SET,FD_ISSET
fd_set是一组文件描述字(fd)的集合,它用一位来表示一个fd(下面会仔细介绍),对于fd_set类型通过下面四个宏来操作: fd_set set; FD_ZERO(&set); /* 将set清零使集合中不含任何fd*/ FD_SET(fd, &set); /* 将fd加入set集合 */ FD_CLR(f转载 2015-12-29 14:57:19 · 1472 阅读 · 0 评论 -
μCOS-II系统之时间管理函数OSTimeGet()
在μCOS-II系统中,无论时钟节拍何时发生,μC/OS-Ⅱ都会将一个32位的计数器加1,这个计数器在用户调用OSStart()初始化多任务和4,294,967,295个节拍执行完一遍的时候从0开始计数。 用户可以通过调用OSTimeGet()来获得该计数器的当前值,OSTimeGet()的详细信息见下表。上图说明了如何通过OSTimeG转载 2015-12-28 18:27:30 · 1348 阅读 · 0 评论 -
ucos中对CPU使用率查看
首先设置:#define OS_TASK_STAT_EN 1 在OSInit();中就建立了统计任务 [cpp] view plaincopy#if OS_TASK_STAT_EN > 0 void OS_TaskStat (void *p_arg) {转载 2015-12-28 13:57:59 · 5424 阅读 · 0 评论 -
UCOS 的延时函数OSTimeDlyHMSM()实现精确延时
介绍UCOS的资料汗牛,但详细解说OSTimeDlyHMSM()函数的不多,经过本人仔细研究该函数代码并通过调试发现:要想实现精确延时的对代码进行相应的修正。 本人实现的是UCOS在2812上的移植,在其它DSP型号上移植情况是一样的,相差不大。 以下是OSTimeDlyHMSM()函数的代码片段: ticks = ((INT32U)hours * 360转载 2015-12-12 17:58:51 · 7635 阅读 · 0 评论 -
μCOS-II系统之时间管理函数OSTimeDlyResume()
μC/OS-Ⅱ允许用户结束正处于延时期的任务,延时的任务可以不等待延时期满,而是通过取消其它任务的延时来使自己处于就绪态,可以通过调用OSTimeDlyResume()和指定要恢复的任务的优先级来完成。OSTimeDlyResume()的具体信息见下表: 为了说明OSTimeDlyResume()函数的使用方法,我们设计一个系统,假设TaskLED的转载 2015-12-12 17:57:58 · 904 阅读 · 0 评论 -
μCOS-II系统之时间管理函数OSTimeDly()
因实际项目需要,近段时间花了一点时间学习了μCOS-II实时系统。该系统用于多媒体播放器,现在刚好通过结合实际产品系统的学习一下μCOS-II操作系统。很幸运有这个机会系统的学习下。下面说说μCOS-II系统中的时间管理部分的系统函数。μC/OS-II提供了若干个时间管理服务函数,可以满足任务在运行过程中对时间管理的需求。在使用时间管理服务函数时,必须十分清楚一个事实:时间管理服务函数是以转载 2015-12-12 17:54:26 · 1311 阅读 · 0 评论 -
uCOS-II信号量OSSemCreate(0)和OSSemCreate(1)详解
在ucos-II中,为了实现任务之间的同步,用到的同步机制有:信号量,邮箱和消息队列。其中这里我主要说下对信号量的使用经验。信号量在创建时,调用OSSemCreate(INT16U cnt)函数。cnt为信号量的初始值。对cnt赋予不同的值,所起到的作用不同。如果Semp = OSSemCreate(0), 该信号量表示等待一个事件或者多个事件的发生。如果我们想对一个公共资源进行互斥访转载 2015-12-12 17:30:02 · 7238 阅读 · 0 评论 -
ucos学习资料、论坛等
论坛:http://bbs.elecfans.com/forum.php?mod=forumdisplay&fid=301&typeid=505教程推荐:第一步.《嵌入式实时操作系统μCOS-II原理及应用》 任哲编著 首选任哲的这本书。我建议先把这本书看一遍,弄清楚ucos是怎么回事,至于操作系统里面的具体代码实现,大概了解就行,可以暂且不去细究。先会用,原创 2015-12-12 10:37:08 · 1717 阅读 · 0 评论 -
UCOS系统简介
uC/OS II(Micro Control Operation System Two)是一个可以基于ROM运行的、可裁减的、抢占式、实时多任务内核,具有高度可移植性,特别适合于微处理器和控制器,适合很多商业操作系统性能相当的实时操作系统(RTOS)。为了提供最好的移植性能,uC/OS II最大程度上使用ANSI C语言进行开发,并且已经移植到近40多种处理器体系上,涵盖了从8位到64位各种C转载 2015-12-01 18:30:43 · 5454 阅读 · 0 评论 -
建立任务,OSTaskCreate()源码解析
想让uC/OS-Ⅱ管理用户的任务,用户必须要先建立任务。用户可以通过传递任务地址和其它参数到以下两个函数之一来建立任务:OSTaskCreate() 或 OSTaskCreateExt()。OSTaskCreate()与uC/OS是向下兼容的,OSTaskCreateExt()是OSTaskCreate()的扩展版本,提供了一些附加的功能。用两个函数中的任何一个都可以建立任务。任务可以在多任务调度转载 2015-12-12 16:51:08 · 5518 阅读 · 0 评论