μC/OS-3源码分析笔记

μC/OS-3源码分析笔记
分享
扫描下方二维码分享到微信
打开微信,点击右上角”+“,
使用”扫一扫“即可将网页分享到朋友圈。
作者: ,
2016-01
版次: 1
ISBN: 9787111519676
定价: 79.00
装帧: 平装
开本: 16开
纸张: 胶版纸
页数: 317页
字数: 235千字
27人买过
  •   μC/OS-III是嵌入式工程师在掌握基础的MCU外设编程之后最容易掌握的一个操作系统之一。μC/OS-III不但有软件定时器、信号量、消息队列、内存管理等资源,更重要的是它能提供多个线程灵活的调度,这可以让初学者更加灵活、方便、高效地实现程序的功能。μC/OS-III早在2009年就已推出,但是直到现在市面上μC/OS-III的资料和书籍依然很少,介绍源码的资料更是少之又少,即使官方手册也没有将使用方法和原理介绍有机结合。本书详细地阐述了μC/OS-III的原理,辅以简单入门的例程,能为读者快速找到上手的法门。
      本书基于Cortex-M3内核,从源码分析和实际应用两个角度全面解析嵌入式实时操作系统μC/OS-III。为了让读者更好地理解,本书主要按照循环渐进的顺序对μC/OS-III中的函数逐一进行分析,采用通俗易懂的例子对书中内容进行解析。
      李悦城,资深STM32开发者,野火初学者社区最活跃的版主之一,在社区撰写了大量的教程,曾荣获多项电子设计大赛奖项。目前主要从事可穿戴设备的研发和STM32嵌入式系统开发工作,拥有非常丰富的嵌入式实时操作系统开发经验。
    前言
    第1章 实时操作系统及μC/OS-III简介 / 1
    1.1 单片机应用程序框架 / 1
    1.1.1 前后台系统 / 1
    1.1.2 嵌入式实时操作系统 / 4
    1.2 如何使用和学习μC/OS-III源码 / 5
    1.3 μC/OS-III文件结构简介 / 7
    1.4 μC/OS-III数据结构简介 / 8
    1.5 任务 / 10
    1.6 内核对象简介 / 11
    1.6.1 信号量 / 11
    1.6.2 事件标志组 / 12
    1.6.3 消息队列 / 12
    1.6.4 互斥信号量 / 12
    1.6.5 内存分区 / 13
    1.6.6 软件定时器 / 13
    1.7 μC/OS-III常见的程序段 / 13
    1.7.1 中断嵌套层数统计 / 13
    1.7.2 开中断和关中断 / 14
    1.7.3 使能中断延迟的锁住和开启调度器 / 14
    1.7.4 没有使能中断延迟的锁住和开启调度器 / 15
    1.7.5 中断嵌套检测 / 15
    1.7.6 调度器嵌套检测 / 16
    1.7.7 时间戳 / 16
    1.7.8 错误类型 / 17
    1.7.9 参数检测 / 17
    1.7.10 内核对象类型检测 / 17
    1.7.11 安全检测 / 18
    1.7.12 安全关键IEC61508 / 18
    1.8 总结 / 19
    第2章 时钟节拍 / 20
    2.1 系统节拍中断服务程序 / 20
    2.2 节拍任务处理时间相关事务 / 23
    2.2.1 节拍列表更新 / 24
    2.2.2 节拍列表 / 27
    2.2.3 哈希算法检测到期任务 / 29
    2.3 总结 / 30
    第3章 时间管理 / 31
    3.1 实例演示 / 31
    3.2 任务开始延时 / 34
    3.3 任务插入节拍列表 / 40
    3.4 任务取消延时 / 49
    3.5 任务脱离节拍列表 / 51
    3.6 获取和设置时钟节拍 / 55
    3.7 μC/OS-III全局变量的定义
    和声明 / 56
    3.8 总结 / 57
    第4章 软件定时器 / 58
    4.1 实例演示 / 58
    4.2 插入定时器列表 / 65
    4.3 删除定时器 / 68
    4.4 脱离定时器列表 / 70
    4.5 停止定时器 / 71
    4.6 定时器内部运行机制 / 74
    4.6.1 定时器初始化 / 74
    4.6.2 定时器任务 / 76
    4.6.3 回调函数 / 78
    4.7 定时器剩余定时时间获取 / 79
    4.8 定时器状态获取 / 81
    4.9 总结 / 82
    第5章 多值信号量 / 83
    5.1 实例演示 / 83
    5.2 信号量的创建 / 85
    5.3 信号量等待队列 / 86
    5.4 内核对象添加到调试双向链表 / 89
    5.5 内核对象从调试双向链表中
    删除 / 90
    5.6 部分内核对象数据结构的
    特点 / 93
    5.7 发布信号量 / 95
    5.7.1 开始发布信号量 / 95
    5.7.2 结构体指针强制类型转换 / 101
    5.7.3 无确切类型指针 / 101
    5.7.4 单一任务提交处理 / 102
    5.7.5 标记某一内核对象被提交 / 104
    5.7.6 将任务从多个等待列表中移除 / 106
    5.7.7 将任务从一个等待列表中删除 / 107
    5.7.8 信号量提交过程涉及的时间戳 / 108
    5.8 等待信号量 / 108
    5.9 等待信号量过程的解析 / 109
    5.9.1 函数解析 / 110
    5.9.2 阻塞准备等待内核对象的任务 / 114
    5.9.3 阻塞任务 / 115
    5.9.4 初始化OS_PEND_DATA类型变量 / 116
    5.9.5 根据任务优先级将OS_PEND_DATA变量插入双向链表 / 116
    5.10 强制解除等待状态 / 118
    5.10.1 强制解除内核对象上的一个任务 / 121
    5.10.2 标记某一内核对象上的任务被强制解除等待状态 / 122
    5.11 删除信号量 / 123
    5.12 设置信号量计数值 / 128
    5.13 总结 / 130
    第6章 互斥信号量mutex / 131
    6.1 mutex变量的数据结构 / 131
    6.2 创建mutex / 132
    6.3 提交mutex / 133
    6.4 等待/获取mutex / 136
    6.5 获取mutex过程解析 / 137
    6.5.1 开始获取mutex / 137
    6.5.2 优先级继承过程 / 141
    6.5.3 改变任务优先级并调整任务在各种列表中的位置 / 141
    6.6 删除mutex / 142
    6.7 强制解除等待mutex / 146
    6.8 总结 / 148
    第7章 消息队列 / 149
    7.1 实例演示 / 149
    7.2 消息的数据结构 / 150
    7.3 消息池 / 151
    7.4 消息队列解析 / 153
    7.5 创建消息队列 / 155
    7.6 提交消息 / 157
    7.7 提交消息过程解析 / 157
    7.8 等待消息过程解析 / 164
    7.9 总结 / 164
    第8章 事件标志 / 165
    8.1 实例演示 / 165
    8.2 事件标志组数据结构解析 / 167
    8.3 创建事件标志组 / 167
    8.4 等待事件标志组 / 169
    8.5 提交事件标志组 / 177
    8.6 总结 / 180
    第9章 等待多个内核对象 / 181
    9.1 实例演示 / 181
    9.2 等待多个内核对象过程解析 / 182
    9.2.1 检查多个内核对象是否被提交过 / 186
    9.2.2 任务等待多个内核对象 / 188
    9.3 总结 / 189
    第10章 任务消息队列和任务信号量 / 190
    10.1 实例演示 / 190
    10.2 任务消息队列 / 191
    10.2.1 任务消息队列相关数据结构解析 / 191
    10.2.2 等待任务消息队列 / 192
    10.2.3 任务消息队列的提交 / 196
    10.2.4 强制解除等待任务消息队列 / 200
    10.2.5 小结 / 201
    10.3 任务信号量 / 202
    10.3.1 任务信号量相关数据结构 / 202
    10.3.2 等待任务信号量 / 202
    10.3.3 提交任务信号量 / 205
    10.3.4 强制解除等待任务信号量 / 209
    10.3.5 小结 / 210
    第11章 内存管理 / 211
    11.1 内存碎片是怎么形成的 / 211
    11.2 实例说明 / 211
    11.3 内存分区控制块数据结构 / 212
    11.4 创建内存分区 / 212
    11.5 获取内存块 / 216
    11.6 将内存块放回内存分区 / 217
    11.7 总结 / 218
    第12章 就绪优先级位映像表 / 219
    12.1 就绪优先级位映像表数据结构 / 219
    12.2 初始化就绪优先级位映像表 / 220
    12.3 查找就绪优先级位映像表中最高的优先级 / 220
    12.4 置就绪优先级位映像表中某个优先级处于就绪状态 / 225
    12.5 将就绪优先级位映像表相应位清0 / 226
    12.6 总结 / 226
    第13章  就绪列表 / 227
    13.1 就绪列表数据结构解析 / 227
    13.2 初始化就绪列表 / 229
    13.3 使任务就绪 / 229
    13.4 将任务从就绪列表对应的双向链表的前面转移到后面 / 231
    13.5 总结 / 232
    第14章 任务切换 / 233
    14.1 堆栈的基本概念 / 233
    14.2 Cortex-M3堆栈 / 234
    14.3 任务切换 / 235
    14.4 PendSV服务程序解析 / 238
    14.5 首次任务调度 / 242
    14.6 任务堆栈初始化函数OSTaskStkInit解析 / 243
    14.7 验证初始化堆栈弹栈结果 / 246
    14.8 中断级任务切换的宏OSIntCtxSw()解析 / 248
    14.9 任务切换过程中出现中断的处理 / 249
    14.10 总结 / 249
    第15章 任务管理 / 250
    15.1 任务创建 / 250
    15.2 挂起任务 / 256
    15.3 恢复挂起任务 / 259
    15.4 时间片轮转调度 / 262
    15.4.1 时间片轮转调度初始化 / 262
    15.4.2 时间片轮转调度核心算法 / 264
    15.4.3 放弃时间片 / 266
    15.4.4 设置任务时间片个数 / 267
    15.5 任务寄存器 / 269
    15.5.1 设置寄存器的内容 / 269
    15.5.2 访问任务寄存器 / 271
    15.6 总结 / 272
    第16章 中断管理 / 273
    16.1 中断延迟提交 / 273
    16.1.1 延迟提交信息记录块 / 274
    16.1.2 初始化延迟提交 / 274
    16.1.3 中断延迟提交内核对象 / 276
    16.1.4 延迟提交任务OS_IntQTask / 279
    16.2 中断嵌套管理 / 282
    16.3 开中断和关中断解析 / 284
    16.4 进入和退出临界段代码解析 / 287
    16.4.1 OS_CRITICAL_ENTER解析 / 288
    16.4.2 OS_CRITICAL_ENTER_CPU_CRITICAL_EXIT解析 / 288
    16.4.3 OS_CRITICAL_EXIT_NO_SCHED解析 / 288
    16.4.4 OS_CRITICAL_EXIT解析 / 288
    16.5 测量关中断时间 / 289
    16.5.1 测量关中断的初始化 / 289
    16.5.2 测量最大关中断时间 / 290
    16.5.3 获取最大关中断的时间 / 292
    16.6 总结 / 293
    第17章 各类统计信息 / 295
    17.1 实例演示 / 295
    17.2 CPU使用率计算 / 296
    17.3 CPU使用率测量的初始化 / 296
    17.4 堆栈检测过程简介 / 298
    17.5 堆栈检测 / 299
    17.6 实例解读堆栈溢出 / 301
    17.7 统计任务OS_StatTask / 305
    17.8 总结 / 307
    第18章 μC/OS-III在不同CPU上的移植 / 308
    18.1 移植接口主要文件编写 / 308
    18.1.1 os_cpu_c.c文件 / 308
    18.1.2 os_cpu_a.asm文件 / 309
    18.1.3 os_cpu.h文件 / 310
    18.2 编写CPU相关文件 / 310
    18.2.1 cpu_c.c文件和cpu_a.asm文件 / 310
    18.2.2 cpu.h文件 / 310
    18.2.3 cpu_def.h文件 / 315
    18.2.4 cpu_core.c文件和cpu_core.h文件 / 316
    18.2.5 cpu_cfg.h文件 / 316
    18.3 编写配置文件 / 317
    18.3.1 os_app_app.h文件 / 317
    18.3.2 os_cfg.h文件 / 317
    18.4 总结 / 317
  • 内容简介:
      μC/OS-III是嵌入式工程师在掌握基础的MCU外设编程之后最容易掌握的一个操作系统之一。μC/OS-III不但有软件定时器、信号量、消息队列、内存管理等资源,更重要的是它能提供多个线程灵活的调度,这可以让初学者更加灵活、方便、高效地实现程序的功能。μC/OS-III早在2009年就已推出,但是直到现在市面上μC/OS-III的资料和书籍依然很少,介绍源码的资料更是少之又少,即使官方手册也没有将使用方法和原理介绍有机结合。本书详细地阐述了μC/OS-III的原理,辅以简单入门的例程,能为读者快速找到上手的法门。
      本书基于Cortex-M3内核,从源码分析和实际应用两个角度全面解析嵌入式实时操作系统μC/OS-III。为了让读者更好地理解,本书主要按照循环渐进的顺序对μC/OS-III中的函数逐一进行分析,采用通俗易懂的例子对书中内容进行解析。
  • 作者简介:
      李悦城,资深STM32开发者,野火初学者社区最活跃的版主之一,在社区撰写了大量的教程,曾荣获多项电子设计大赛奖项。目前主要从事可穿戴设备的研发和STM32嵌入式系统开发工作,拥有非常丰富的嵌入式实时操作系统开发经验。
  • 目录:
    前言
    第1章 实时操作系统及μC/OS-III简介 / 1
    1.1 单片机应用程序框架 / 1
    1.1.1 前后台系统 / 1
    1.1.2 嵌入式实时操作系统 / 4
    1.2 如何使用和学习μC/OS-III源码 / 5
    1.3 μC/OS-III文件结构简介 / 7
    1.4 μC/OS-III数据结构简介 / 8
    1.5 任务 / 10
    1.6 内核对象简介 / 11
    1.6.1 信号量 / 11
    1.6.2 事件标志组 / 12
    1.6.3 消息队列 / 12
    1.6.4 互斥信号量 / 12
    1.6.5 内存分区 / 13
    1.6.6 软件定时器 / 13
    1.7 μC/OS-III常见的程序段 / 13
    1.7.1 中断嵌套层数统计 / 13
    1.7.2 开中断和关中断 / 14
    1.7.3 使能中断延迟的锁住和开启调度器 / 14
    1.7.4 没有使能中断延迟的锁住和开启调度器 / 15
    1.7.5 中断嵌套检测 / 15
    1.7.6 调度器嵌套检测 / 16
    1.7.7 时间戳 / 16
    1.7.8 错误类型 / 17
    1.7.9 参数检测 / 17
    1.7.10 内核对象类型检测 / 17
    1.7.11 安全检测 / 18
    1.7.12 安全关键IEC61508 / 18
    1.8 总结 / 19
    第2章 时钟节拍 / 20
    2.1 系统节拍中断服务程序 / 20
    2.2 节拍任务处理时间相关事务 / 23
    2.2.1 节拍列表更新 / 24
    2.2.2 节拍列表 / 27
    2.2.3 哈希算法检测到期任务 / 29
    2.3 总结 / 30
    第3章 时间管理 / 31
    3.1 实例演示 / 31
    3.2 任务开始延时 / 34
    3.3 任务插入节拍列表 / 40
    3.4 任务取消延时 / 49
    3.5 任务脱离节拍列表 / 51
    3.6 获取和设置时钟节拍 / 55
    3.7 μC/OS-III全局变量的定义
    和声明 / 56
    3.8 总结 / 57
    第4章 软件定时器 / 58
    4.1 实例演示 / 58
    4.2 插入定时器列表 / 65
    4.3 删除定时器 / 68
    4.4 脱离定时器列表 / 70
    4.5 停止定时器 / 71
    4.6 定时器内部运行机制 / 74
    4.6.1 定时器初始化 / 74
    4.6.2 定时器任务 / 76
    4.6.3 回调函数 / 78
    4.7 定时器剩余定时时间获取 / 79
    4.8 定时器状态获取 / 81
    4.9 总结 / 82
    第5章 多值信号量 / 83
    5.1 实例演示 / 83
    5.2 信号量的创建 / 85
    5.3 信号量等待队列 / 86
    5.4 内核对象添加到调试双向链表 / 89
    5.5 内核对象从调试双向链表中
    删除 / 90
    5.6 部分内核对象数据结构的
    特点 / 93
    5.7 发布信号量 / 95
    5.7.1 开始发布信号量 / 95
    5.7.2 结构体指针强制类型转换 / 101
    5.7.3 无确切类型指针 / 101
    5.7.4 单一任务提交处理 / 102
    5.7.5 标记某一内核对象被提交 / 104
    5.7.6 将任务从多个等待列表中移除 / 106
    5.7.7 将任务从一个等待列表中删除 / 107
    5.7.8 信号量提交过程涉及的时间戳 / 108
    5.8 等待信号量 / 108
    5.9 等待信号量过程的解析 / 109
    5.9.1 函数解析 / 110
    5.9.2 阻塞准备等待内核对象的任务 / 114
    5.9.3 阻塞任务 / 115
    5.9.4 初始化OS_PEND_DATA类型变量 / 116
    5.9.5 根据任务优先级将OS_PEND_DATA变量插入双向链表 / 116
    5.10 强制解除等待状态 / 118
    5.10.1 强制解除内核对象上的一个任务 / 121
    5.10.2 标记某一内核对象上的任务被强制解除等待状态 / 122
    5.11 删除信号量 / 123
    5.12 设置信号量计数值 / 128
    5.13 总结 / 130
    第6章 互斥信号量mutex / 131
    6.1 mutex变量的数据结构 / 131
    6.2 创建mutex / 132
    6.3 提交mutex / 133
    6.4 等待/获取mutex / 136
    6.5 获取mutex过程解析 / 137
    6.5.1 开始获取mutex / 137
    6.5.2 优先级继承过程 / 141
    6.5.3 改变任务优先级并调整任务在各种列表中的位置 / 141
    6.6 删除mutex / 142
    6.7 强制解除等待mutex / 146
    6.8 总结 / 148
    第7章 消息队列 / 149
    7.1 实例演示 / 149
    7.2 消息的数据结构 / 150
    7.3 消息池 / 151
    7.4 消息队列解析 / 153
    7.5 创建消息队列 / 155
    7.6 提交消息 / 157
    7.7 提交消息过程解析 / 157
    7.8 等待消息过程解析 / 164
    7.9 总结 / 164
    第8章 事件标志 / 165
    8.1 实例演示 / 165
    8.2 事件标志组数据结构解析 / 167
    8.3 创建事件标志组 / 167
    8.4 等待事件标志组 / 169
    8.5 提交事件标志组 / 177
    8.6 总结 / 180
    第9章 等待多个内核对象 / 181
    9.1 实例演示 / 181
    9.2 等待多个内核对象过程解析 / 182
    9.2.1 检查多个内核对象是否被提交过 / 186
    9.2.2 任务等待多个内核对象 / 188
    9.3 总结 / 189
    第10章 任务消息队列和任务信号量 / 190
    10.1 实例演示 / 190
    10.2 任务消息队列 / 191
    10.2.1 任务消息队列相关数据结构解析 / 191
    10.2.2 等待任务消息队列 / 192
    10.2.3 任务消息队列的提交 / 196
    10.2.4 强制解除等待任务消息队列 / 200
    10.2.5 小结 / 201
    10.3 任务信号量 / 202
    10.3.1 任务信号量相关数据结构 / 202
    10.3.2 等待任务信号量 / 202
    10.3.3 提交任务信号量 / 205
    10.3.4 强制解除等待任务信号量 / 209
    10.3.5 小结 / 210
    第11章 内存管理 / 211
    11.1 内存碎片是怎么形成的 / 211
    11.2 实例说明 / 211
    11.3 内存分区控制块数据结构 / 212
    11.4 创建内存分区 / 212
    11.5 获取内存块 / 216
    11.6 将内存块放回内存分区 / 217
    11.7 总结 / 218
    第12章 就绪优先级位映像表 / 219
    12.1 就绪优先级位映像表数据结构 / 219
    12.2 初始化就绪优先级位映像表 / 220
    12.3 查找就绪优先级位映像表中最高的优先级 / 220
    12.4 置就绪优先级位映像表中某个优先级处于就绪状态 / 225
    12.5 将就绪优先级位映像表相应位清0 / 226
    12.6 总结 / 226
    第13章  就绪列表 / 227
    13.1 就绪列表数据结构解析 / 227
    13.2 初始化就绪列表 / 229
    13.3 使任务就绪 / 229
    13.4 将任务从就绪列表对应的双向链表的前面转移到后面 / 231
    13.5 总结 / 232
    第14章 任务切换 / 233
    14.1 堆栈的基本概念 / 233
    14.2 Cortex-M3堆栈 / 234
    14.3 任务切换 / 235
    14.4 PendSV服务程序解析 / 238
    14.5 首次任务调度 / 242
    14.6 任务堆栈初始化函数OSTaskStkInit解析 / 243
    14.7 验证初始化堆栈弹栈结果 / 246
    14.8 中断级任务切换的宏OSIntCtxSw()解析 / 248
    14.9 任务切换过程中出现中断的处理 / 249
    14.10 总结 / 249
    第15章 任务管理 / 250
    15.1 任务创建 / 250
    15.2 挂起任务 / 256
    15.3 恢复挂起任务 / 259
    15.4 时间片轮转调度 / 262
    15.4.1 时间片轮转调度初始化 / 262
    15.4.2 时间片轮转调度核心算法 / 264
    15.4.3 放弃时间片 / 266
    15.4.4 设置任务时间片个数 / 267
    15.5 任务寄存器 / 269
    15.5.1 设置寄存器的内容 / 269
    15.5.2 访问任务寄存器 / 271
    15.6 总结 / 272
    第16章 中断管理 / 273
    16.1 中断延迟提交 / 273
    16.1.1 延迟提交信息记录块 / 274
    16.1.2 初始化延迟提交 / 274
    16.1.3 中断延迟提交内核对象 / 276
    16.1.4 延迟提交任务OS_IntQTask / 279
    16.2 中断嵌套管理 / 282
    16.3 开中断和关中断解析 / 284
    16.4 进入和退出临界段代码解析 / 287
    16.4.1 OS_CRITICAL_ENTER解析 / 288
    16.4.2 OS_CRITICAL_ENTER_CPU_CRITICAL_EXIT解析 / 288
    16.4.3 OS_CRITICAL_EXIT_NO_SCHED解析 / 288
    16.4.4 OS_CRITICAL_EXIT解析 / 288
    16.5 测量关中断时间 / 289
    16.5.1 测量关中断的初始化 / 289
    16.5.2 测量最大关中断时间 / 290
    16.5.3 获取最大关中断的时间 / 292
    16.6 总结 / 293
    第17章 各类统计信息 / 295
    17.1 实例演示 / 295
    17.2 CPU使用率计算 / 296
    17.3 CPU使用率测量的初始化 / 296
    17.4 堆栈检测过程简介 / 298
    17.5 堆栈检测 / 299
    17.6 实例解读堆栈溢出 / 301
    17.7 统计任务OS_StatTask / 305
    17.8 总结 / 307
    第18章 μC/OS-III在不同CPU上的移植 / 308
    18.1 移植接口主要文件编写 / 308
    18.1.1 os_cpu_c.c文件 / 308
    18.1.2 os_cpu_a.asm文件 / 309
    18.1.3 os_cpu.h文件 / 310
    18.2 编写CPU相关文件 / 310
    18.2.1 cpu_c.c文件和cpu_a.asm文件 / 310
    18.2.2 cpu.h文件 / 310
    18.2.3 cpu_def.h文件 / 315
    18.2.4 cpu_core.c文件和cpu_core.h文件 / 316
    18.2.5 cpu_cfg.h文件 / 316
    18.3 编写配置文件 / 317
    18.3.1 os_app_app.h文件 / 317
    18.3.2 os_cfg.h文件 / 317
    18.4 总结 / 317
查看详情
系列丛书 / 更多
μC/OS-3源码分析笔记
STM32库开发实战指南(第2版):基于STM32F103
刘火良 杨森 著
μC/OS-3源码分析笔记
Linux设备驱动开发详解:基于最新的Linux 4.0内核
宋宝华 著
μC/OS-3源码分析笔记
嵌入式实时操作系统:RT-Thread设计与实现
邱祎、熊谱翔、朱天龙 著
μC/OS-3源码分析笔记
UVM实战(卷1)
张强 著
μC/OS-3源码分析笔记
μC/OS-III内核实现与应用开发实战指南:基于STM32
刘火良、杨森 著
μC/OS-3源码分析笔记
STM32库开发实战指南:基于STM32F4
刘火良、杨森 著
μC/OS-3源码分析笔记
ROS机器人程序设计
Aaron、Enrique Fernández 著;刘品杰 译
μC/OS-3源码分析笔记
Arduino开发实战指南:智能家居卷
赵志 著
μC/OS-3源码分析笔记
Processing开发实战
黄文恺、吴羽、伍冯洁 著
μC/OS-3源码分析笔记
Android嵌入式系统程序开发(基于Cortex-A8)第2版
胡文、金雪松、陈铭 著
μC/OS-3源码分析笔记
Arduino从入门到精通:创客必学的13个技巧
[美]约翰·白赫泰(John Baichtal) 著;翁恺 译
μC/OS-3源码分析笔记
CMOS集成电路后端设计与实战
刘峰 著
相关图书 / 更多
μC/OS-3源码分析笔记
μC/OS- II嵌入式系统设计
丁山 著;丁山 编
μC/OS-3源码分析笔记
μC\OS-2原理与ARM应用程序设计
张勇 著
μC/OS-3源码分析笔记
μC\OS-Ⅱ
[美]拉伯罗斯(Labrosse)、邵贝贝 著
μC/OS-3源码分析笔记
μClinux源代码中Make文件完全解析
田军营;韩建海
μC/OS-3源码分析笔记
μC/OS-III内核实现与应用开发实战指南:基于STM32
刘火良、杨森 著
μC/OS-3源码分析笔记
μC、OS-2标准教程
杨宗德、张兵 著
μC/OS-3源码分析笔记
μC/OS ARM移植要点详解
黄燕平 著