成功加入购物车

去购物车结算 X
果然是好书店
  • ΜC/OS-Ⅲ内核分析与应用开发 9787302488064

ΜC/OS-Ⅲ内核分析与应用开发 9787302488064

举报

可开发票,支持7天无理由

  • 出版时间: 
  • 装帧:    平装
  • 开本:    16开
  • ISBN:  9787302488064
  • 出版时间: 
  • 装帧:  平装
  • 开本:  16开

售价 27.15 4.6折

定价 ¥59.00 

品相 全新

优惠 满包邮

优惠 满减券
    运费
    本店暂时无法向该地区发货

    延迟发货说明

    时间:
    说明:

    上书时间2024-04-28

    数量
    仅1件在售,欲购从速
    微信扫描下方二维码
    微信扫描打开成功后,点击右上角”...“进行转发

    卖家超过10天未登录

    • 商品详情
    • 店铺评价
    手机购买
    微信扫码访问
    • 货号:
      9787302488064
      商品描述:
      前言



      μC/OSⅢ实时操作系统(Micro C/OS Three)是一个可升级、可固化、基于优先级的实时内核。它是源码公开的商用性实时操作系统内核,由μC/OSⅡ发展而来。μC/OSⅢ是一个第3代系统内核,它对任务的个数无限制,支持现代的实时内核所期待的大部分功能,例如资源管理、同步、任务间的通信等。同时,μC/OSⅢ提供的特色功能在其他的实时内核中是找不到的,例如完备的运行时间测量功能,直接发送信号或者消息到任务,任务可以同时等待多个内核对象等。
      *代μC/OS系列产生于1992年。经过了多年的使用和上千人的反馈,已经产生了很多进化版本。μC/OSⅢ是这些反馈和经验的总结。在μC/OSⅡ中很少使用的功能已经被删除或者被更新,增加了更高效的功能和服务。其中*有用的功能是时间片轮转法(round robin),这是μC/OSⅡ中不支持的。μC/OSⅢ提供了新的功能以更好地适应新出现的处理器。特别地,μC/OSⅢ被设计用于32位处理器,并且它也能在16位或8位处理器中很好地工作。
      μC/OSⅢ*主要的目标是提供一流的实时内核以适应快速更新的嵌入式产品。使用像μC/OSⅢ这样具有雄厚基础和稳定框架的商业实时内核,能够帮助设计师们处理日益复杂的嵌入式设计。μC/OSⅢ实时操作系统具有高度的可移植性,能够移植到ARM、Intel等众多CPU上运行。因此,了解和学习μC/OSⅢ的运行原理是非常重要的。
      本书面向的读者既包括需要使用μC/OSⅢ作底层操作系统,在其上进行应用开发的嵌入式应用开发人员,也包括想要了解μC/OSⅢ运行机制的学生或者开发人员。本书按照μC/OSⅢ的功能模块进行划分,对μC/OSⅢ的源码进行了详细介绍,同时在每一章的末尾,给出了具体的应用案例,读者可以选择先查看应用案例,了解μC/OSⅢ基本的应用程序调用接口(API),再在源码中查看API的相应实现。也可以先了解应用程序调用接口的实现机制,再去应用案例中借助API进行应用编程。
      在本书撰写过程中,林驰和任健康编写第1、3、5、6、8章,李照鑫编写第2、4、7章,同时负责实验的设计和实现,吴国伟编写第9、10章。编写过程中研究生王志远、秦钰根和本科生游文华等做了大量的书稿校对和画图等工作。
      希望各位读者在阅读本书时,能够思考μC/OSⅢ实时操作系统的机制与思想,这对于自身提高有非常大的帮助。同时也希望各位读者,不要局限于书中内容,可以到μC/OSⅢ的官方网站,下载μC/OSⅢ源码的官方文档,同步学习。本书参考了很多书籍和网络资源,限于篇幅参考文献未一一列出,在此向作者表示感谢。如果发现书中有任何问题,请及时与我们联系,进行批评指正,我们也会及时地进行改正。
      吴国伟
      2018年7月






      【书摘与插画】
      第3章μC/OSⅢ内核调度

      3.1μC/OSⅢ内核调度机制
      μC/OSⅢ内核调度主要是协调任务之间对CPU的使用权。具体而言,μC/OSⅢ任务调度分为抢占式调度和时间片轮转调度。其中抢占式调度根据发生的时间又分为任务级任务调度OSSched()和中断级任务调度OSIntExit(),由于调度的时机不同,这两种任务调度对应的上下文切换也有所不同,后面的章节会详细介绍。
      时间片轮转调度,本身可以通过编译开关的配置选择启用或者不启用。启用状态下,当用于提供系统时钟的定时器发生中断(一个时钟节拍过去)时,该中断服务函数会调用OSTimeTick()函数,在该函数内部系统会更新时基的相关数据结构,同时调用时间片轮转调度函数OS_SchedRoundRobin()。
      在优先级调度的过程中离不开数据结构: 任务就绪表OSPrioTbl。μC/OSⅢ对优先级的数量无限制,由宏定义OS_CFG_PRIO_MAX确定。然而,配置μC/OSⅢ的优先级在32~256之间已经能满足大多数的应用。OSPrioTbl结构如图3.1所示,*优先级0处于OSPrioTbl[0]中,*优先级OS_CFG_PRIO_MAX-1处于OSPrioTbl[OS_PROI_SIZE-1]中。


      图3.1任务优先级表结构


      3.2μC/OSⅢ内核抢占优先级调度分析
      μC/OSⅢ中比较常用的两个抢占式任务调度函数是OSSched()和OSIntExit(),这两个函数的抢占时机分别是正常运行状态和退出中断时。二者的函数主体比较相似,都是先判断是否满足调度条件,之后通过调用函数OS_PrioGetHighest()来获取当前就绪队列中*优先级任务所持有的优先级,然后根据任务TCB进行上下文切换。
      一个简单的抢占过程如图3.2所示。


      图3.2抢占过程



      其中,获取*优先级函数OS_PrioGetHighest()源码如下: 



      OS_PRIOOS_PrioGetHighest (void)

      {

      CPU_DATA*p_tbl;

      OS_PRIOprio;



      prio= (OS_PRIO)0;

      p_tbl = &OSPrioTbl[0];

      //通过位映像表查找*优先级

      while (*p_tbl == (CPU_DATA)0) {

      //计算 CPU_DATA入口

      prio = DEF_INT_CPU_NBR_BITS;

      p_tbl ;

      }

      //找到入口处*个位组

      prio = (OS_PRIO)CPU_CntLeadZeros(*p_tbl);

      return (prio);

      }





      当*优先级的任务被确定后,执行上下文切换,OSSched()调用的是宏OS_TASK_SW(),这里实际上调用的是汇编函数OSCtexSw(),而OSIntExit()调用的是汇编函数OSIntCtxSw()。
      OSSched()源代码如下: 


       
       
       
       

      商品简介

      μC/OSⅢ是一个基于优先级的可固化实时嵌入式操作系统内核,在各类嵌入式系统中有广泛的应用。本书对μC/OSⅢ内核结构和各种机制进行了详细分析,并设置了应用场景,给出了基于μC/OSⅢ的开发应用实例。全书共分10章,第1章介绍了μC/OSⅢ的架构、组成及内核源码的关键数据结构和相互关系; 第2章到第9章分别分析μC/OSⅢ的任务管理机制、内核调度机制、任务间同步机制、中断管理、定时器管理、时钟管理、内存管理和文件系统,并给出每种机制的应用实例; 第10章介绍了μC/OSⅢ的移植方法。在对μC/OSⅢ的每一部分机制的源码分析过程中,先介绍工作机制,然后提炼关键数据结构和相互关系,再结合关键数据结构和算法分析源码,*后给出应用实例,让读者明白原理及实际应用,达到理论和实战技能同步提升的效果。为方便教学和自学,所有章节配有思考题与习题,以方便慕课、微课、微视频、翻转课堂等现代教学资源的制作。 本书可作为软件工程、电子信息科学与技术、计算机科学与技术、电子信息工程、电气工程及自动化、测控技术与仪器等专业的教材和有关工程技术人员的参考用书。


      作者简介
      吴国伟,大连理工大学软件学院教授,博士生导师。长期讲授“操作系统”、“嵌入式操作系统”方面的课程,著有畅销图书《嵌入式操作系统应用开发》、《Linux内核分析与不错编程》和《嵌入式系统原理与设计》。

      目录
      章 μC/OS Ⅲ操作系统概述

      1.1 μC/OS Ⅲ概览

      1.1.1 os.h和os_type.h功能

      1.1.2 os_core.c概况

      1.1.3 os_task.c、os_prio.c和os_pend_multi.c概况

      1.1.4 os_flag.c概况

      1.1.5 os_sem.c和os_mutex.c概况

      1.1.6 os_q.c和os_msg.c概况

      1.1.7 os_tick.c、os_time.c和os_tmr.c概况

      1.1.8 os_int.c概况

      1.1.9 os_mem.c概况

      1.1.10 os_dbg.c、os_cfg_app.c和os_stat.c概况

      1.1.11 os_cfg.h概况

      1.2 μC/OS-Ⅲ概览

      1.2.1 任务管理

      1.2.2 任务调度

      1.2.3 任务同步

      1.2.4 任务间通信

      1.2.5 中断

      1.2.6 时间管理

      1.2.7 内存管理

      1.2.8 错误检测

      1.2.9 性能测量

      1.3 总体数据结构关系及描述

      1.3.1 就绪任务管理

      1.3.2 事件标志和请求管理

      1.3.3 消息队列管理

      1.3.4 互斥信号量管理

      1.3.5 内存分区管理

      1.4 各关键数据结构描述

      1.4.1 os_mem成员定义

      1.4.2 os_flag_grp成员定义

      1.4.3 OSPrioTbl结构

      1.4.4 os_mutex成员定义

      1.4.5 os_tcb成员定义

      1.5 内核函数

      1.5.1 内核函数介绍

      1.5.2 关键代码分析

      习题

      第2章 μC/OS-Ⅲ任务管理

      2.1 μC/OS-Ⅲ任务管理机制

      2.2 μC/OS-Ⅲ内核任务管理分析

      2.3 μC/OS-Ⅲ任务管理函数

      2.3.1 任务创建OSTaskCreate(),OSTaskCreateExt()

      2.3.2 任务删除OSTaskDel(),OSTaskDelReq()

      2.3.3 任务挂起OSTaskSuspend()

      2.3.4 任务恢复OSTaskResume()

      2.4 μC/OS-Ⅲ任务管理应用开发

      2.4.1 场景描述

      2.4.2 设计总体架构和数据结构

      2.4.3 代码实现

      习题

      第3章 μC/OS-Ⅲ内核调度

      3.1 μC/OS-Ⅲ内核调度机制

      3.2 μC/OS-Ⅲ内核抢占优先级调度分析

      3.3 μC/OS-Ⅲ内核时间片轮转调度分析

      3.4 μC/OS-Ⅲ内核调度管理函数

      习题

      第4章 μC/OS-Ⅲ任务间同步机制

      4.1 μC/OS-Ⅲ任务同步机制

      4.2 μC/OS-Ⅲ信号量机制分析

      4.2.1 μC/OS-Ⅲ信号量数据结构

      4.2.2 μC/OS-Ⅲ信号量管理函数

      4.2.3 μC/OS-Ⅲ信号量应用开发

      4.3 μC/OS-Ⅲ互斥体机制分析

      4.3.1 μC/OS-Ⅲ互斥体管理函数

      4.3.2 μC/OS-Ⅲ互斥体应用开发

      4.4 μC/OS-Ⅲ事件标志组机制分析

      4.4.1 μC/OS-Ⅲ事件标志组关键数据结构

      4.4.2 μC/OS-Ⅲ事件标志组管理函数

      4.4.3 μC/OS-Ⅲ事件标志组应用开发

      4.5 μC/OS-Ⅲ消息队列

      4.5.1 μC/OS-Ⅲ消息队列数据结构

      4.5.2 μC/OS-Ⅲ消息队列操作函数

      4.5.3 μC/OS-Ⅲ消息队列应用举例

      习题

      第5章 中断管理

      5.1 μC/OS-Ⅲ中断机制

      5.2 CPU中断处理

      5.3 中断服务程序

      5.4 直接发布和延迟发布

      5.4.1 直接发布

      5.4.2 延迟发布

      5.4.3 延迟提交信息记录块

      5.5 中断管理内部函数

      5.5.1 中断进入函数

      5.5.2 中断退出函数

      5.5.3 中断级任务切换函数

      5.5.4 临界区进入和退出宏

      5.5.5 中断延迟队列初始化函数

      5.5.6 中断延迟队列提交函数

      5.5.7 中断延迟队列真正提交函数

      5.5.8 中断队列管理任务

      习题

      第6章 时钟管理

      6.1 总体描述

      6.2 时钟机制分析

      6.2.1 结构体os_tick_spoke

      6.2.2 时钟任务管理

      6.2.3 延时任务TCB

      6.3 时钟管理内核函数

      6.3.1 时钟节拍中断函数

      6.3.2 时钟节拍任务

      6.3.3 节拍链表任务插入函数

      6.3.4 节拍链表任务删除函数

      6.4 时钟管理函数

      6.4.1 延迟时钟节拍的延时函数

      6.4.2 延迟具体时间的延时函数

      6.4.3 延时取消函数

      6.4.4 时钟节拍设置函数

      6.4.5 时钟节拍设置函数

      6.5 时钟管理应用

      6.5.1 场景描述

      6.5.2 运行环境

      6.5.3 具体实现

      6.5.4 实验结果

      习题

      第7章 定时器管理

      7.1 定时器机制

      7.2 定时器内部机制

      7.2.1 定时器状态

      7.2.2 定时器结构体os_tmr

      7.2.3 定时器分类

      7.2.4 定时器管理时序

      7.2.5 软件定时器的实现原理

      7.2.6 主要的数据结构分析

      7.3 定时器函数

      7.3.1 定时器创建函数

      7.3.2 定时器删除函数

      7.3.3 获取定时器的剩余时间

      7.3.4 定时器启动

      7.3.5 定时器状态获取函数

      7.3.6 定时器停止函数

      7.4 应用实例

      7.4.1 场景描述

      7.4.2 设计过程

      7.4.3 具体实现

      习题

      第8章 内存管理

      8.1 内存管理机制

      8.2 内存管理机制分析

      8.2.1 内存控制块os_mem

      8.2.2 内存分区调试链表指针OSMemDbgListPtr

      8.3 内存管理函数

      8.3.1 内存初始化函数

      8.3.2 添加内存分区到调试列表

      8.3.3 内存分区创建函数

      8.3.4 内存块获取函数

      8.3.5 内存块释放函数

      8.4 内存管理应用开发

      8.4.1 场景描述

      8.4.2 设计环境

      8.4.3 具体实现

      8.4.4 实验结果

      习题

      第9章 文件系统μC/FS

      9.1 文件系统概述

      9.2 机制方法

      9.3 关键数据结构

      9.3.1 文件及文件操作的数据结构

      9.3.2 文件夹数据结构

      9.3.3 其他的一些变量及数据结构

      9.4 内核函数

      9.4.1 _FS_fat_find_file()

      9.4.2 _FS_fat_create_file()

      9.5 应用函数介绍

      9.5.1 FS_Fopen()文件打开函数

      9.5.2 FS_FWrite()文件写入函数

      9.5.3 FS_FClose()文件关闭函数

      9.6 应用示例

      9.6.1 场景描述

      9.6.2 设计过程

      9.6.3 测试

      习题

      0章 μC/OS-Ⅲ移植

      10.1 移植机制

      10.2 μC/OS-Ⅲ与CPU相关的文件

      10.2.1 cpu.c文件

      10.2.2 cpu_a.asm文件

      10.2.3 cpu_cfg.h文件

      10.2.4 cpu_def.h文件

      10.2.5 cpu.h文件

      10.2.6 cpu_core.h文件

      10.2.7 cpu_core.c文件

      10.3 μC/OS-Ⅲ系统与CPU接口文件

      10.3.1 os_cpu.h文件

      10.3.2 os_cpu_c.c文件

      10.3.3 os_cpu_a.asm文件

      习题

      参考文献


      内容摘要
      μC/OS-Ⅲ是一个基于优先级的可固化实时嵌入式操作系统内核,在各类嵌入式系统中有广泛的应用。本书对μC/OS-Ⅲ内核结构和各种机制进行了详细分析,并设置了应用场景,给出了基于μC/OS-Ⅲ的开发应用实例。全书共分10章,章介绍了μC/OS-Ⅲ的架构、组成及内核源码的关键数据结构和相互关系; 第2章到第9章分别分析μC/OS-Ⅲ的任务管理机制、内核调度机制、任务间同步机制、中断管理、定时器管理、时钟管理、内存管理和文件系统,并给出每种机制的应用实例; 0章介绍了μC/OS-Ⅲ的移植方法。在对μC/OS-Ⅲ的每一部分机制的源码分析过程中,先介绍工作机制,然后提炼关键数据结构和相互关系,再结合关键数据结构和算法分析源码,很后给出应用实例,让读者明白原理及实际应用,达到理论和实战技能同步提升的效果。为方便教学和自学,所有章节配有思考题与习题,以方便慕课、微课、微视频、翻转课堂等现代教学资源的制作。

      本书可作为软件工程、电子信息科学与技术、计算机科学与技术、电子信息工程、电气工程及自动化、测控技术与仪器等专业的教材和有关工程技术人员的参考用书。


      主编推荐

      本书由大连理工大学软件学院教授吴国伟执笔撰写。本书获得了中国开源软件推进联盟、英特尔公司、ARM公司联袂推荐用书!清华大学、大连理工大学、兰州大学、北京工业大学联合推荐用书!本书涉及的主题
      ? μC/OS-III整体结构和关键数据结构
      ? μC/OS-III任务管理机制源码分析与应用
      ? μC/OS-III内核调度机制源码分析与应用
      ? μC/OS-III任务同步机制源码分析与应用
      ? μC/OS-III中断机制源码分析与应用
      ? μC/OS-III时钟管理机制源码分析与应用
      ? μC/OS-III定时器管理机制源码分析与应用
      ? μC/OS-III内存管理机制源码分析与应用技术
      ? μC/OS-III文件系统机制源码分析与应用
      ? μC/OS-III应用开发方法
      ? μC/OS-III移植方法



      【内容简介】

      配送说明

      ...

      相似商品

      为你推荐

    孔网啦啦啦啦啦纺织女工火锅店第三课

    开播时间:09月02日 10:30

    即将开播,去预约
    直播中,去观看