嵌入式系统开发 (陈卓)目录

目录

第1部分 嵌入式开发必备基础
第1章 软件开发基础 1
1.1 嵌入式环境下的C语言使用技巧 1
1.1.1 重要的位(bit)操作 1
1.1.2 正确使用数据指针 2
1.1.3 函数等价于指令的集合 3
1.1.4 操作有限的存储空间 4
1.1.5 理解栈空间(Stack)和堆空间(Heap) 5
1.1.6 关键词const的使用 6
1.1.7 关键词volatile 7
1.1.8 处理器字长与内存位宽不一致处理 7
1.1.9 struct{ }结构体的使用 8
1.2 ARM汇编语言 10
1.2.1 学习方法介绍 10
1.2.2 ARM微处理器的指令的分类与格式 11
1.2.3 指令的条件域 12
1.2.4 指令的寻址方式 12
1.2.5 ARM汇编的指令分类讲解及示例 14
1.2.6 GNU ARM汇编的格式 29
1.3 ARM汇编和C语言的混合编程的实例 30
1.3.1 在C语言程序中内嵌汇编实例 30
1.3.2 在汇编中使用C语言程序定义的全局变量实例 31
1.3.3 在C语言程序中调用汇编的函数实例 32
1.3.4 在汇编中调用C语言的函数实例 33
1.4 本章小结 33

第2章 嵌入式开发的软件结构 35
2.1 轮询方式的嵌入式软件结构及实例 35
2.2 带中断处理的软件结构及实例 37
2.2.1 中断 37
2.2.2 中断处理程序及中断向量 38
2.2.3 软件结构及实例 40
2.3 本章小结 42

第3章 嵌入式操作系统 43
3.1 嵌入式操作系统概述 43
3.1.1 嵌入式操作系统的发展 43
3.1.2 嵌入式操作系统选型 44
3.1.3 几种典型的嵌入式操作系统 45
3.2 嵌入式操作系统的重要概念 47

3.2.1 代码的临界区 47

   自旋锁spin lock

读写锁read lock/write  lock 

3.2.2 进程及进程结构体 48

进程结构体task_struct

http://www.cnblogs.com/wjj-xyd/archive/2012/05/28/2521141.html

http://oss.org.cn/kernel-book/ch04/4.3.htm

3.2.3 进程的状态 51
3.2.4 可剥夺的内核 51
3.3 进程调度程序实例解析 52
3.3.1 基于映射表(Mapping Table)的μC/OSⅡ进程调度程序实例解析 52

3.3.2 Linux 2.6.X的0(1)进程调度程序实例解析 54

run queue结构体

http://bbs.chinaunix.net/thread-2315503-1-1.html

整个调度程序的实现有两部分组成:第一部分为将进程加入就绪队列,第二部分为检索优先级最高的进程

3.4 嵌入式文件系统实例 57
3.4.1 yaffs 文件系统数据在NAND 上的存储方式 58
3.4.2 SuperBlock结构 59
3.4.3 文件在内存中的组织方式 59
3.4.4 yaffs2文件系统实例解析 60
3.5 板级支持包(BSP) 72
3.6 本章小结 74

第4章 嵌入式开发的硬件基础 75
4.1 常用的电子元器件 75
4.1.1 电阻 76
4.1.2 电容 77
4.1.3 二极管 77
4.1.4 电感 77
4.1.5 三极管 78
4.1.6 运算放大器 79
4.2 IC与硬件框图分析 80
4.2.1 IC及封装方式 80
4.2.2 电路框图及分析 81
4.3 嵌入式处理器 86
4.4 S3C2410/2440处理器介绍 90
4.5 ARM嵌入式微处理器的选型 91
4.6 本章小结 92

第2部分 μC/OSII嵌入式开发
第5章 μC/OSII开发基础 93
5.1 嵌入式实时操作系统 93
5.2 μC/OSII开发要点及程序框架 95
5.2.1 任务设计结构 95
5.2.2 重要的μC/OSII函数 96
5.2.3 μC/OSII的多任务机制 98
5.3 μC/OSII的启动初始化过程实例解析 99
5.4 本章小结 100

第6章 μC/OSII的移植及应用实例 101
6.1 ARM平台的μC/OSII移植实例 101
6.1.1 移植需要的文件 101
6.1.2 移植文件代码分析 102
6.2 基于μC/OSII的网络协议栈Lwip移植实例 109
6.2.1 Lwip简介 110
6.2.2 Lwip的进程模型(process model) 110
6.2.3 移植Lwip到μC/OSII实例 111
6.3 μC/OSII的系统优化 118
6.3.1 任务切换要保存的数据 119
6.3.2 C语言编译器中变量在堆栈中的位置 119
6.3.3 μC/OSII对任务栈的处理方法与缺陷 119
6.3.4 共用空间的堆栈处理方法 120
6.4 本章小结 122

第3部分 嵌入式Linux开发
第7章 嵌入式Linux开发基础 123
7.1 使用开发套件提供的编译环境 123
7.1.1 Linux的交叉编译器 123
7.1.2 使用开发套件提供的交叉编译环境 124
7.2 自建交叉编译环境 128
7.2.1 设置环境变量,准备源码及相关补丁 128
7.2.2 准备源码包 128
7.2.3 准备补丁 128
7.2.4 编译GNU binutils 129
7.2.5 准备内核头文件 129
7.2.6 译编glibc头文件 129
7.2.7 编译gcc第一阶段 130
7.2.8 编译完整的gcc 131
7.2.9 GNU交叉工具链的下载 131
7.3 GNU交叉工具链的介绍与使用 131
7.4 编译和配置BootLoader 132
7.4.1 什么是BootLoader 132
7.4.2 BootLoader启动方式 132
7.4.3 常见的BootLoader 134
7.4.4 vivi的编译与配置 134
7.4.5 U-Boot的编译与配置 137
7.5 Makefile文件及编写实例 139
7.5.1 什么是Makefile 139
7.5.2 程序的编译及链接 140
7.5.3 Makefile编写要点 141
7.5.4 Makefile的实例 145
7.5.5 Makefile的编写规则 147
7.5.6 Makefile中命令的编写实例 153
7.5.7 正确在Makefile中使用变量 156
7.5.8 使用条件判断 162
7.5.9 make命令的执行 165
7.6 本章小结 168

第8章 嵌入式Linux系统的驱动程序开发 169
8.1 Linux内核简介 169
8.2 Linux重要的内核机制 171
8.2.1 Linux的时钟机制 171
8.2.2 Linux的软中断机制 177
8.3 Linux的内核模块 181
8.3.1 什么是内核模块(Kernel Model) 181
8.3.2 内核模块编写方法 181
8.3.3 内核模块实例 183
8.3.4 内核模块常用的资源 184
8.4 Linux驱动程序开发概要及基本流程 186
8.5 字符设备驱动开发及实例 192
8.5.1 LED的驱动程序实例 192
8.5.2 键盘驱动程序实例 194
8.5.3 串口驱动程序实例 199
8.6 音频设备驱动开发及实例 202
8.6.1 数字音频介绍 202
8.6.2 音频信号的硬件接口 203
8.6.3 Linux音频的编程接口 204
8.6.4 Linux OSS音频设备驱动实例说明 207
8.7 网络设备驱动开发及实例 215
8.7.1 Linux核心数据结构sk_buff{ } 215
8.7.2 Linux核心数据结构net_device{ } 221
8.7.3 Linux网络驱动设计流程及开发实例 228
8.8 Nand Flash驱动程序的编写实例 235
8.8.1 Nand Flash原理介绍 235
8.8.2 Nand Flash的驱动程序编写 237
8.9 本章小结 244

第9章 嵌入式Linux的Qt开发 245
9.1 Qt/Embedded和Qtopia简介 245
9.2 建立Qt/Embedded的开发环境 246
9.2.1 安装与建立Qt 桌面运行环境 246
9.2.2 对Qt/Embedded 进行交叉编译 248
9.2.3 建立本机Qtopia 虚拟平台 250
9.3 Qt程序设计基础及简单实例 251
9.3.1 Qt程序的简单例子 251
9.3.2 连接信号和响应函数 252
9.3.3 排列控件 253
9.3.4 建立对话框 254
9.3.5 主窗口的创建 257
9.4 Qt的信号和槽机制及实例 260
9.4.1 信号和槽机制概述 260
9.4.2 信号(signals) 260
9.4.3 槽(slots) 261
9.4.4 连接信号和槽 261
9.4.5 元对象工具介绍 263
9.4.6 信号和槽实例解析 263
9.4.7 使用信号和槽之注意事项 265
9.5 Qt的显示机制分析 267
9.6 本章小结 272

第10章 嵌入式Linux系统的网络协议栈 273
10.1 TCP/IP协议及Linux协议栈概述 273
10.1.1 TCP/IP协议概述 273
10.1.2 Linux的网络协议栈 274
10.2 ARP协议的实例 276
10.3 IP协议及路由机制的实例 283
10.3.1 数据结构分类 283
10.3.2 邻接表(Neighbor Table) 283
10.3.3 对路由缓存的分析 285
10.3.4 网络层的重要函数 285
10.3.5 IP层的辅助函数讨论 307
10.4 Linux网络的QoS的支持 308
10.4.1 Linux对QoS支持概述 308
10.4.2 QoS重要数据结构 309
10.4.3 QoS队列策略FIFO的分析 310
10.4.4 复杂的QoS队列策略Token-Bucket Filter的分析 313
10.4.5 注册一个QoS_ops 319
10.4.6 创建一个Qdisc结构 319
10.5 ICMP协议的实例分析 323
10.5.1 重要的数据结构 323
10.5.2 发送一个ICMP报文 324
10.5.3 接收一个ICMP报文 327
10.5.4 回应一个ICMP报文 329
10.5.5 处理ICMP重定向数据包 330
10.5.6 处理ICMP请求回应数据包 330
10.5.7 处理ICMP时间请求数据包 331
10.5.8 处理ICMP不可达数据包 332
10.6 TCP协议的实例分析 335
10.6.1 Linux中TCP的初始化 335
10.6.2 TCP路径MTU的发现机制 336
10.6.3 Linux的重传机制实现 340
10.6.4 TCP的滑动窗口协议实现 344
10.6.5 接受一个TCP连接 346
10.6.6 TCP定时器机制实现 348
10.7 本章小结 350

第11章 嵌入式Linux系统的移植 351
11.1 引导系统BootLoader的移植实例 351
11.1.1 U-Boot的实现 351
11.1.2 移植U-Boot 356
11.2 uCLinux的移植实例 360
11.2.1 BootLoader及内核解压 360
11.2.2 几种内核启动方式介绍 360
11.2.3 内核启动地址的确定 360
11.2.4 系统入口分析 361
11.2.5 内核引导过程分析 362
11.3 Linux 2.6内核的移植实例 373
11.3.1 准备Linux2.6.X内核 373
11.3.2 修改Makefile文件 374
11.3.3 设置Flash分区结构 374
11.3.4 配置嵌入式Linux2.6内核 377
11.4 Linux中网络驱动程序的移植实例 382
11.4.1 移植步骤 382
11.4.2 移植过程中的问题及解决方法 385

11.5 本章小结

  

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
提供的源码资源涵盖了小程序应用等多个领域,每个领域都包含了丰富的实例和项目。这些源码都是基于各自平台的最新技术和标准编写,确保了在对应环境下能够无缝运行。同时,源码中配备了详细的注释和文档,帮助用户快速理解代码结构和实现逻辑。 适用人群: 适合毕业设计、课程设计作业。这些源码资源特别适合大学生群体。无论你是计算机相关专业的学生,还是对其他领域编程感兴趣的学生,这些资源都能为你提供宝贵的学习和实践机会。通过学习和运行这些源码,你可以掌握各平台开发的基础知识,提升编程能力和项目实战经验。 使用场景及目标: 在学习阶段,你可以利用这些源码资源进行课程实践、课外项目或毕业设计。通过分析和运行源码,你将深入了解各平台开发的技术细节和最佳实践,逐步培养起自己的项目开发和问题解决能力。此外,在求职或创业过程中,具备跨平台开发能力的大学生将更具竞争力。 其他说明: 为了确保源码资源的可运行性和易用性,特别注意了以下几点:首先,每份源码都提供了详细的运行环境和依赖说明,确保用户能够轻松搭建起开发环境;其次,源码中的注释和文档都非常完善,方便用户快速上手和理解代码;最后,我会定期更新这些源码资源,以适应各平台技术的最新发展和市场需求。 所有源码均经过严格测试,可以直接运行,可以放心下载使用。有任何使用问题欢迎随时与博主沟通,第一时间进行解答!

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值