操作系统初始化函数OS_INIT是操作系统在开始运行的最初,对全局变量、任务控制块、就绪表、事件及消息队列等重要数据结构进行的初始化操作,并创建空闲任务、统计任务等系统任务。该函数必须在创建用户对象及调用OSStart()启动实时任务调度之前运行。

操作系统初始化函数见表2.15

OS_InitMisc实现对操作系统一些混杂的全局变量的初始化

OS_InitRdyList对就绪表进行初始化的工作

OS_InitTCBList 控制块链表初始化

OS_InitTaskIdle创建操作系统空闲任务

TCBList初始化

    μC/OS-II将任务控制块分成两个链表来管理,这就是空闲任务链表和就绪任务链表。其中,空闲任务链表包含了所有空闲的任务控制块。所谓空闲任务控制块,是指未分配给某个任务的任务控制块。创建一个新任务,前提条件就是系统里还有这样的空闲任务块。就绪链表则是将所有的就绪任务拴在一起,如果有新的任务就绪,就要将其任务控制块从空闲链表中取出,加入到就绪链表中。

注:

    创建任务之后,空闲链表和就绪链表修改的代码如下:

    位置在OSTaskCreate中调用OS_TCBInit函数。

具体代码:

最新文章

  1. TFS 2015 敏捷开发实践 – 在Kanban上运行一个Sprint
  2. JavaScript随笔8
  3. C# 对多个文件进行zip压缩
  4. 在centos7中安装Robot Framework
  5. 手把手教你在ubuntu上安装apache和mysql和php
  6. js中function参数默认值
  7. git 配置忽略文件(忽略UserInterfaceState.xcuserstate,Breakpoints_v2.xcbkptlist)
  8. ARM11 S3C6410 硬件浮点(VFP)实现
  9. C#自旋的艺术
  10. Spring AOP 5种通知与java动态代理
  11. window.open()&&window.showmodaldialog()
  12. Response响应请求操作
  13. google map 点击获取经纬度
  14. MySql数据库的导入_命令工具
  15. tyvj1185营业额统计
  16. Hibernate学习之注解学习
  17. LPC1768的SPI通讯
  18. Sql的分库分表,及优化
  19. Python_内置函数2_44
  20. Kernel Functions-Introduction to SVM Kernel & Examples - DataFlair

热门文章

  1. Quartz 第三课 More About Jobs & JobDetails(官方文档翻译)
  2. Bootstrap两端对齐的导航实例
  3. java比.net优美的一个小地方
  4. Contest1065 - 第四届“图灵杯”NEUQ-ACM程序设计竞赛(个人赛)A蔡老板的会议
  5. STL Traits编程技法
  6. HTML5之缓存
  7. linux 硬盘相关命令学习
  8. Linux下面对于VIM编辑器的代码折叠使用与screen
  9. 修改wamp的apache默认端口80以及www目录
  10. Centos7搭建集中式日志系统