没有合适的资源?快使用搜索试试~ 我知道了~
首页RT-Thread实时操作系统编程指南
• 实时系统概念:实时系统是一个什么样的系统,它的特点是什么; • RT-Thread快速入门,在无硬件平台的情况下,如何迅速地了解RT-Thread实时操作系统, 如何使用RT-Thread实时操作系统最基本的一些元素; • RT-Thread作为一个完整的实时操作系统,它能够满足各种实时系统的需求,所以接下来详 细地介绍了各个模块的结构,以及编程时的注意事项。 • RT-Thread外围组件的编程说明,RT-Thread不仅包括了一个强实时的内核,也包括外围的 一些组件,例如shell,文件系统,协议栈,图形用户界面等。这部分对外围组件编程进行了 描述。 • RT-Thread中一些其他部分说明,包含了如何使用GNUGCC工具搭建RT-Thread的开发环 境及RT-Thread在Cortex-M3系统上的说明。
资源详情
资源评论
资源推荐

RT-Thread实时操作系统编程指南
版本 0.3.0
RT-Thread工作室
March 18, 2010


CONTENTS
1 序 3
1.1 RT-Thread诞生 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3
1.2 艰难的发展期 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3
1.3 一年增加0.0.1 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4
1.4 Cortex-M3的变革 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4
1.5 面向对象设计方法 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4
1.6 文档结构 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5
2 实时系统 7
2.1 嵌入式系统 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7
2.2 实时系统 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8
2.3 软实时与硬实时 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8
3 快速入门 11
3.1 准备环境 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11
3.2 初识RT-Thread . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14
3.3 系统启动代码 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18
3.4 用户入口代码 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 20
3.5 跑马灯的例子 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21
3.6 生产者消费者问题 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 22
4 RT-Thread简介 25
4.1 实时内核 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 26
4.2 虚拟文件系统 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 27
4.3 轻型IP协议栈 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 27
4.4 shell系统 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 27
4.5 图形用户界面 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 27
4.6 支持的平台 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 28
5 内核对象模型 29
5.1 C语言的对象化模型 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 29
5.2 内核对象模型 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 32
6 线程调度与管理 39
6.1 实时系统的需求 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 39
i

6.2 线程调度器 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 39
6.3 线程控制块 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 41
6.4 线程状态 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 42
6.5 空闲线程 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 43
6.6 调度器相关接口 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 43
6.7 线程相关接口 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 44
7 线程间同步与通信 63
7.1 关闭中断 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 63
7.2 调度器上锁 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 64
7.3 信号量 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 65
7.4 互斥量 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 77
7.5 事件 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 83
7.6 邮箱 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 88
7.7 消息队列 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 94
8 内存管理 101
8.1 静态内存池管理 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 102
8.2 动态内存管理 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 106
9 异常与中断 111
9.1 中断处理过程 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 111
9.2 中断的底半处理 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 113
9.3 中断相关接口 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 114
10 定时器与系统时钟 117
10.1 定时器管理 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 117
10.2 定时器管理控制块 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 118
10.3 定时器管理接口 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 118
11 I/O设备管理 127
11.1 I/O设备管理控制块 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 127
11.2 I/O设备管理接口 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 128
11.3 设备驱动 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 131
12 FinSH Shell系统 145
12.1 基本数据类型 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 145
12.2 工作模式 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 146
12.3 RT-Thread内置命令 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 146
12.4 应用程序接口 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 148
12.5 移植 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 149
12.6 选项 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 149
13 文件系统 151
13.1 文件系统接口 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 151
13.2 目录操作接口 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 156
13.3 下层驱动接口 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 159
13.4 文件系统初始化 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 159
ii

14 TCP/IP协议栈 161
14.1 协议初始化 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 161
14.2 缓冲区函数 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 163
14.3 网络连接函数 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 166
14.4 BSD Socket库 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 173
15 图形用户界面 185
15.1 简介 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 185
15.2 构架 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 186
15.3 文件目录 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 187
15.4 服务端 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 187
15.5 客户端 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 191
15.6 设备上下文 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 194
15.7 图像引擎 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 203
15.8 控件树结构及事件派发 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 205
15.9 系统配置与图形驱动 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 207
15.10 编程说明 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 219
16 内核配置 257
16.1 rtconfig.h配置头文件 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 257
17 ARM基本知识 261
17.1 ARM的工作状态 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 261
17.2 ARM处理器模式 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 261
17.3 ARM的寄存器组织 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 262
17.4 ARM的异常 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 263
17.5 ARM的IRQ中断处理 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 264
17.6 AT91SAM7S64概述 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 265
18 GNU GCC移植 267
18.1 CPU相关移植 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 267
18.2 板级相关移植 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 279
19 RealView MDK移植 289
19.1 建立RealView MDK工程 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 289
19.2 添加RT-Thread的源文件 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 292
19.3 线程上下文切换 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 294
19.4 启动汇编文件 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 296
19.5 中断处理 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 306
19.6 开发板初始化 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 306
20 RT-Thread/STM32说明 307
20.1 ARM Cortex M3概况 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 307
20.2 ARM Cortex M3移植要点 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 308
20.3 RT-Thread/STM32说明 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 312
20.4 RT-Thread/STM32移植默认配置参数 . . . . . . . . . . . . . . . . . . . . . . . . . . 312
21 例程说明 315
21.1 例程的基本结构 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 315
iii
剩余329页未读,继续阅读


















安全验证
文档复制为VIP权益,开通VIP直接复制

评论20