ucos源码读后总结

转载请注明原文出处,http://www.cnblogs.com/flyingcloude/p/6992351.html

花了将近一个星期的时间将ucos的源码大致的通读了一遍,在这里先进行总结一下,以便以后继续深入学习。

(1)ucos的源码结构:

与处理器类型无关的代码:OS_CORE.C

              OS_FLAG.C

              OS_MBOX.C

              OS_MEM.C

              OS_MUTEX.C

              OS_Q.C

              OS_SEM.C

              OS_TIME.C

              uC/OS-II.C

              uC/OS-II.H

uC/OS的配置文件(与应用程序有关)

              OS_CFG.H

              INCLUDES.H

与处理器类型有关的代码

              OS_CPU.H

              OS_CPU_A.ASM

              OS_CPU_C.C

(2)ucos的特点

多任务,最多可以支持64个任务,但是每个任务的优先级必须不一样,而且有两个任务已经被系统占用。

内核可剥夺,当就绪任务队列中有高优先级的任务到达时,当前运行的任务让出CPU使用权。

(3)ucos的程序架构

系统的启动以及运行过程:

        先进行系统初始化OSInit();

        然后进行创建任务等工作。

        最后运行OSStart(),在OSStart()运行时,系统运行任务优先级最高的任务。

在系统运行时,任务跟任务之间的通信可以使用“信号量”、“邮箱”、“消息队列”进行通信。

任务在运行的时候,当遇到阻塞时,会进行一次OS_Sched(),当所有的用户任务都不需要执行时,系统开始执行系统自带的空闲任务,当有任务就绪时再重新开始执行。然后外部定时器驱动OSTimeTick函数,进行对任务的状态进行管理。

转载请注明原文出处,http://www.cnblogs.com/flyingcloude/p/6992351.html

时间: 2024-11-08 18:14:17

ucos源码读后总结的相关文章

Jquery源码---读《uqery技术内幕,深入解析Jquery架构设计与实现原理》

前两个月项目组特别忙了,买了一本<Juqery技术内幕,深入解析Jquery架构设计与实现原理>一直放着睡大觉:进入八月份项目终于过了TR5点,算是可一个喘口气:这本书终于有时间拜读一下.下面的一两个月我将每天坚持看几页,并陆陆续续写几篇不伦不类的技术博客,谈谈自己的心得体会等等. 首先评价一下这本书吧,我本来想买<锋利的Jquery>,但是电子版翻了一下,感觉还是有点基础了:就在网上找找呀,终于看到了这本---<Juqery技术内幕,深入解析Jquery架构设计与实现原理&

OpenERP 源码变更后数据库升级

转自:http://vivianyw.blog.163.com/blog/static/13454742220142114422130/?latestBlog OpenERP代码升级后需要对数据进行升级,否则只是替换代买,会遇到很多意想不到的问题.这里记录一下升级操作的过程(这里是基于手动源码安装的换进进行说明: 1. 需要停止OpenERP的服务,视具体的安装时的启动脚本可能是: sudo /etc/init.d/openerp stop 或者 sudo /etc/init.d/openerp

关于mysql源码安装后备份没有mysqldump命令的错误解决

源码安装的mysql在经历了创建库,选定库,创建表,插入数据后,备份时出现了 -bash:mysqldump  command not found 的错误,这是环境变量配置的问题, 命令解决入下: vim  /etc/profile 在最后一行添加:export  PATH=/usr/local/mysql/bin :$PATH 执行命令:source /etc/profile 问题解决.

openfire源码编译后部署到linux

1.源码通过编号后,会生成target目录,直接把target目录拷贝到linux下即可: 2.启动openfire: ./openfire.sh start 3.退出直接ctr + c 问题:如果一直启动不了,有可能是之前配置信息冲突问题,如数据库连接不上等,需要重新配置,删除conf/openfire.xml下的  <setup>true</setup> 后,重新启动即可: 原文地址:https://www.cnblogs.com/code4app/p/8694650.html

[Android Pro] Android源码编译后,再重编译所需要做的清理工作

1.在源码目录的根目录下,make clean; 2.进到源码的\linux\kernel\目录下,执行make mrproper: 3.再退回到根目录,执行source  build/envsetup.sh,   lunch,    make.

微信小程序源码下载(200多个)

微信小程序源码下载汇总,点击标题进入对应的微信小程序下载页面. 最新 demo源码(点击标题进入帖子下载) 描述 1 微信小程序 会议室预定小程序 微信小程序 会议室预定小程序**** 本内容被作者隐藏 **** 2 微信小程序-双人五子棋小游戏 微信小程序-双人五子棋小游戏**** 本内容被作者隐藏 **** 3 打卡签到小程序 用微信小程序实现的一个简单的打卡签到的小程序拒绝 4 微信小程序---左滑删除 微信小程序---左滑删除**** 本内容被作者隐藏 **** 5 一个借钱的记事本的微

Webpack-源码三,从源码分析如何写一个plugin

经过上一篇博客分析webpack从命令行到打包完成的整体流程,我们知道了webpage的plugin是基于事件机制工作的,这样最大的好处是易于扩展.社区里很多webpack的plugin,但是具体到我们的项目并不一定适用,这篇博客告诉你如何入手写一个plugin,然后分析源码相关部分告诉你你的plugin是如何工作.知其然且知其所以然. 该系列博客的所有测试代码. 从黑盒角度学习写一个plugin 所谓黑盒,就是先不管webpack的plugin如何运作,只去看官网介绍. Compiler和Co

Windbg符号与源码 《第二篇》

符号文件是一种辅助数据,它包含了对应用程序代码的一些标注信息,这些信息在调试过程中非常有用.如果没有辅助数据,那么能获得的信息就只有应用程序的二进制文件.二进制文件很难调试,因为无法看到代码中的函数名.数据结构名等.这正是符号文件能显示的.符号文件的扩展名通常是pdb,调试器能够很好地解析这种文件格式. 编译器和链接器在创建二进制镜像文件(诸如exe.dll.sys)时,伴生的后缀名为.dbg..sym或.pdb的包含镜像文件编译.链接过程中生成的符号信息的文件称为符号文件.具体来说,符号信息包

HashSet源码解析&amp;Map迭代器

今天的主角是HashSet,Set是什么东东,当然也是一种java容器了. 那么今天的HashSet它又是怎么一回事的,他的存在又是为了解决什么问题呢? 先来看下Set的特点:Set元素无顺序,且元素不可以重复. .想到了什么?无顺序,由于散列的缘故:不可重复,HashMap的key就是不能重复的.是的,你有想对了.HashSet就是基于HashMap的key来实现的,整个HashSet中基本所有方法都是调用的HashMap的方法.利用HashMap可以实现两个卖点:1.不可重复,2.快速查找(