嵌入式系统高级C语言编程
内容简介
《嵌入式系统高级C语言编程》将主要介绍针对嵌入式系统的基于C语言的软件项目开发的流程,较为复杂的c语言编程知识和技巧,编程风格和调试习惯,并通过对一个具体的软件模块(ASIX Window GUI)的分析,介绍分析代码的方法以及设计软件系统需要考虑的各要素。《嵌入式系统高级C语言编程》将以实际项目中的代码作实例来进行介绍,详细分析在嵌入式系统开发中程序员应该注意的方法,技巧和陷阱。
《嵌入式系统高级C语言编程》的读者可以是学习嵌入式系统的高校学生(高年级本科生或硕士研究生),或者是从事嵌入式系统编程的软硬件工程师。
作者简介
凌明,1972年5月出生,副教授。现任东南大学电子科学与工程学院副院长,东南大学集成电路学院副院长。先后参加了十一五“核、高、基”国家科技重大专项“个人移动信息终端SOC芯片研发与应用”项目:国家十五、十一五“863”、“可重构媒体处理器”、“空间信息接收手持终端原型机开发”、“手持信息终端SOC设计”等项目:江苏省十五科技招标项目和省成果转化专项“基于目标产品的SOC设计与产业化”、“GPS导航芯片及目标产品产业化”。获江苏省2003年度科技进步三等奖一项,江苏省2004年度科技进步一等奖一项,教育部2009科技进步二等奖一项:多次获东南大学奖教金、青年教师授课竞赛奖励。主要研究方向:SOC设计方法学、SOC存储子系统设计、嵌入式系统设计等。
目录
第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 思考题[next]
第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.1 ASIX Window的数据结构
5.5.2 ASIX Window的窗口创建函数
5.5.3.ASIXWindow的窗口删除函数
5.6 思考题
第6章 中断与设备驱动
6.1 设备驱动简介
6.1.1 设备驱动、Boot Loader与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 系统启动与:Boot Loader
6.5.2 UBOOT、技术实现分析
6.6 思考题
第7章 编码风格
7.1 简介及说明
7.2 语言规则
7.2.1 基础
7.2.2 数据
7.2.3 说明与表达式
7.2.4 函数
……
第8章 代码的调试
第9章 ASIX Window Gui设计详解
- Linux嵌入式系统开发平台选型探讨(11-09)
- 嵌入式系统中文输入法的设计(03-02)
- 基于MPC755的嵌入式计算机系统设计(05-10)
- WinCE下光电编码器的驱动程序设计(04-12)
- 为什么嵌入式开发人员要使用FPGA(05-13)
- VxWorks几种常用的延时方法介绍(05-16)