-
内容大纲
这本由凌明编著的《嵌入式系统高级C语言编程(十二五高等院校规划教材)》主要介绍针对嵌入式系统基于C语言的软件项目开发流程、较为复杂的C语言编程知识与技巧、编程风格及调试习惯,并通过对一个具体的软件模块(ASIX Window GUI)的分析,介绍分析代码的方法以及设计软件系统需要考虑的各要素。本书以实际项目中的代码为例来进行介绍,详细分析在嵌入式系统开发中程序员应该注意的方法、技巧和存在的陷阱。
《嵌入式系统高级C语言编程(十二五高等院校规划教材)》适合用作学习嵌入式系统的高年级本科生或硕士研究生的教学用书,也可作为从事嵌入式系统编程的软、硬件工程师的技术参考用书。 -
作者介绍
-
目录
第1章 概述
1.1 C语言的历史和特点
1.2 一个小测验
1.3 如何学好嵌入式系统中的c语言编程
1.3.1 真正深刻地认识存储器
1.3.2 认识和理解嵌入式C编程环境
1.3.3 认识和掌握C语言中的常见陷阱
1.3.4 掌握c语言程序设计过程中的调试方法
1.4 推荐的参考书目
1.4.1 C语言的初级教材
1.4.2 C语言进阶书籍
1.5 思考题
第2章 C语言的关键字与运算符
2.1 C语言的关键字
2.1.1 数据类型关键字
2.1.2 控制语句关键字与相关语句
2.1.3 存储类型关键字
2.1.4 其他类型关键字
2.2 C语言的运算符
2.2.1 运算符中需要注意的问题
2.2.2 运算符的优先级
2.2.3 表达式求值
2.2.4 运算符的词法分析
2.3 C语言的指针
2.3.1 指针的3个要素
2.3.2 指针的类型
2.3.3 指针的初始化
2.3.4 指针的运算
2.3.5 指针与字符串
2.4 思考题
第3章 C语言的函数
3.1 C语言的函数
3.1.1 函数的声明、原型与返回值
3.1.2 函数的参数
3.1.3 可变参数的函数
3.1.4 递归函数
3.2 标准库函数
3.2.1 输入与输出:
3.2.2 字符类别测试:
3.2.3 字符串函数:
3.2.4 数学函数:
3.2.5 实用函数:
3.2.6 断言:
3.2.7 可变参数表:
3.2.8 非局部跳转:
3.2.9标准库函数与系统调用
3.3 声明
3.4 作用域与链接属性
3.4.1 代码块作用域
3.4.2 文件作用域
3.4.3 函数作用域
3.4.4 原型作用域
3.4.5 链接属性
3.5 C的预编译处理
3.6 思考题
第4章 编译、汇编与调试
4.1 嵌入式软件开发流程与工具
4.1.1 嵌入式软件开发的一般流程
4.1.2 编译器简介
4.1.3 链接器简介
4.1.4 嵌入式软件开发的调试环境
4.1.5 ARM处理器的开发工具
4.2 基于C语言软件项-目中的文件关系
4.2.1 C语言项目中的文件依赖关系
4.2.2 Make文件
4.3 C代码与汇编
4.3.1 ATPCS
4.3.2 C与汇编的混合编程
4.3.3 ARM编译器对局部变量和入口参数的处理
4.4 思考题
第5章 存储器与指针
5.1 再论C语言中的指针
5.1.1 指针与数组
5.1.2 函数指针
5.2 C语言中的内存陷阱
5.2.1 局部变量
5.2.2 动态存储区
5.2.3 函数的指针参数
5.3 堆栈
5.3.1 堆栈的作用
5.3.2 函数调用栈帧与中断栈帧
5.3.3 堆栈的跟踪与调试
5.4 动态内存分配
5.4.1 算法
5.4.2 malloc()函数
5.4.3 free()函数
5.5 利用链表构建复杂数据结构
5.5.l ASIX Window的数据结构
5.5.2 ASIX Window的窗口创建函数
5.5.3 ASIX Window的窗口删除函数
5.6 思考题
第6章 中断与设备驱动
6.1 设备驱动简介
6.1.1 设备驱动、BootLoader与BSP
6.1.2 设备驱动程序的结构
6.2 中断与中断处理
6.2.1 中断的重要性
6.2.2 中断的分类与处理过程
6.2.3 C语言中的中断处理
6.2.4 断处理程序的编写
6.3.函数的可重人问题
6.3.1 什么是函数的重入
6.3.2 函数可重入的条件
6.3.3 不可重入函数的互斥保护
6.3.4 重入函数的伪问题
6.4 设备驱动案例——键盘驱动
6.4.1 5×5键盘的硬件原理
6.4.2 键盘设备驱动实例
6.5 启动代码——UBOOT分析
6.5.1 系统启动与BootLoader
6.5.2 UBOOT技术实现分析
6.6 思考题
第7章 编码风格
7.1 简介及说明
7.2 语言规则
7.2.1 基础
7.2.2 数据
7.2.3 说明与表达式
7.2.4 函数
7.2.5 源文件
7.3 风格指导
7.3.1 程序的书写
7.3.2 命名
7.4 思考题
第8章 代码的调试
8.1.Bug与Debug
8.1.1 初学者的困惑
8.1.2 Debug的手段和工具
8.2 Bug的定位与修正
8.2.1 关注代码的层次与接口
8.2.2 关注内存的访问越界
8.2.3 关注边界情况
8.2.4 Bug的修正
8.3 其他的方法和工具
8.3.1 利用断言
8.3.2 代码检查(CodeReview)
8.3.3 编译器的警告与Lint工具
8.3.4 好的代码风格
8.4 思考题
第9章 ASIX Window GUI设计详解
9.1 ASIX Window概述
9.2 ASIX Windows底层软件平台的实现
9.2.1 ASIX OS对ASIX WIN在系统调用上的支持
9.2.2 ASIX GPC图形库的设计
9.2.3 ActiveArea和笔中断的设计
9.3 ASIX WIN系统任务管理模块的设计
9.4 ASIX WIN消息处理模块的设计
9.4.1 ASIX WIN消息机制的设计
9.4.2 ASIX WIN消息机制的应用流程
9.5 ASIX WIN窗口类管理模块的设计
9.6 ASIX WIN窗口及控件的实现
9.6.1 ASIX WIN窗口的实现
9.6.2 ASIX WIN控件的实现
9.7 思考题
附录A C++/C代码审查表(C语言部分)
附录B 部分课后思考题解答
附录C 嵌入式C语言测试样卷与参考答案
附录D UB4020MBT开发板简介
参考文献
同类热销排行榜
- C语言与程序设计教程(高等学校计算机类十二五规划教材)16
- 电机与拖动基础(教育部高等学校自动化专业教学指导分委员会规划工程应用型自动化专业系列教材)13.48
- 传感器与检测技术(第2版高职高专电子信息类系列教材)13.6
- ASP.NET项目开发实战(高职高专计算机项目任务驱动模式教材)15.2
- Access数据库实用教程(第2版十二五职业教育国家规划教材)14.72
- 信号与系统(第3版下普通高等教育九五国家级重点教材)15.08
- 电气控制与PLC(普通高等教育十二五电气信息类规划教材)17.2
- 数字电子技术基础(第2版)17.36
- VB程序设计及应用(第3版十二五职业教育国家规划教材)14.32
- Java Web从入门到精通(附光盘)/软件开发视频大讲堂27.92
推荐书目
-
孩子你慢慢来/人生三书 华人世界率性犀利的一枝笔,龙应台独家授权《孩子你慢慢来》20周年经典新版。她的《...
-
时间简史(插图版) 相对论、黑洞、弯曲空间……这些词给我们的感觉是艰深、晦涩、难以理解而且与我们的...
-
本质(精) 改革开放40年,恰如一部四部曲的年代大戏。技术突变、产品迭代、产业升级、资本对接...