
UCOS
文章平均质量分 88
天道起
这个作者很懒,什么都没留下…
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
uCOS学习----UCOSIII任务管理
一、启动和初始化ucosiii 1、调用OSInit()初始化ucos 2、创建任务,一般只在main()中创建一个start_task()任务,其他任务都在start_task()中创建。 调用OSTaskCreate()创建任务时一定要调用OS_CRITICAL_ENABLE()进入临界区,任务创建完成后调用OS_CRITICAL_EXIT()推出临界区。 3、OSSta...原创 2018-08-04 14:30:41 · 891 阅读 · 0 评论 -
任务控制块os_tcb
typedrf struct os_tcb { 通常,操作系统会将当前所有任务控制块组成一个双向的链表OSTCBList,这个链表将在函数OSTimeTick中被用到。 OSTimeTick函数是系统的时钟处理函数,他负责系统各任务的延时工作,一般情况下,OSTimeTick会被周期性的调用,其本质是操作上面所说的OSTCBList,它遍历链表中的每一个任务控制块的OSTCBDly字段,并将需...原创 2018-08-10 09:43:16 · 2878 阅读 · 0 评论 -
UCOSII学习---一、OSInit()
第一步: OSInit();//初始化uCOS_II.该函数位于OS_CORE.C,主要工作如下: 函数原型位于OS_CORE.C OS_InitMisc(); /* 基础参数初始化 Initialize miscellaneous(混杂的,各种各样的) variables */ OS_InitRdyList(); /* 初始化任务就绪表 Initialize the Read...原创 2018-08-16 14:09:41 · 667 阅读 · 0 评论 -
UCOSII学习---二、任务管理
任务管理基础知识 uC/OS-II 中最多可以支持64 个任务,分别对应优先级0~63,其中0 为最高优先级。63为最低级,系统保留了4个最高优先级的任务和4个最低优先级的任务,所有用户可以使用的任务数有56个。 uC/OS-II提供了任务管理的各种函数调用,包括创建任务,删除任务,改变任务的优先级,任务挂起和恢复等。 系统初始化时会自动产生两个任务:一个是空闲任务,它的优先级最低,...原创 2018-08-16 15:12:27 · 1311 阅读 · 0 评论 -
UCOSII学习---三、时间管理
基础点: uC/OS-II的时间管理是通过定时中断来实现的,该定时中断一般为10毫秒或100毫秒发生一次(这个时间片段是OS的作者推荐的,大家可以参考邵贝贝翻译的《嵌入式实时操作系统ucos-II》这本书),时间频率取决于用户对硬件系统的定时器编程来实现。中断发生的时间间隔是固定不变的,该中断也成为一个时钟节拍。这里隐含的意思就是你选择的芯片如果想使用UCOS系统,前提条件一定要有一个Tim...原创 2018-08-16 15:15:10 · 923 阅读 · 0 评论 -
UCOSII学习---四、内存管理
一、基础知识: 在ANSI C中是使用malloc和free两个函数来动态分配和释放内存。例如在Linux系统中就是这样。但在嵌入式实时系统中,多次这样的操作会导致内存碎片,因为嵌入式系统尤其是uCOS是实地址模式,这种模式在分配任务堆栈时需要整块连续的空间,否则任务无法正确运行。且由于内存管理算法的原因,malloc和free的执行时间也是不确定。这点是实时内核最大的矛盾。 基于...原创 2018-08-16 16:27:09 · 854 阅读 · 0 评论 -
UCOSII学习---五、任务通信之信号量
一:信号量的理解: 信号量的本质是数据操作锁,它本身不具有数据交换的功能,而是通过控制其他的通信资源(文件,外部设备)来实现进程间通信,它本身只是一种外部资源的标识。信号量在此过程中负责数据操作的互斥、同步等功能。 (1)信号量可以分为两种:一种是二值信号量(0和1),一种是N值信号量(计数式信号量)。 二值信号量的意思是可以有多少任务同时享用这个信号量。比如二值信号,就是只有1个任务可以...原创 2018-08-16 16:57:10 · 732 阅读 · 0 评论 -
UCOSII学习---五、任务通信之邮箱
一、邮箱基本概念 邮箱是µC/OS-II中另一种通讯机制,它可以使一个任务或者中断服务子程序向另一个任务发送一个指针型的变量。该指针指向一个包含了特定“消息”的数据结构。为了在µC/OS-II中使用邮箱,必须将OS_CFG.H中的OS_MBOX_EN常数置为1。 使用邮箱之前,必须先建立该邮箱。该操作可以通过调用OSMboxCreate()函数来完成(见下节),并且要指定指针的初始值。...原创 2018-08-20 16:53:04 · 986 阅读 · 0 评论