嵌入式系统高级C语言编程.pdf

上传人:西安人 文档编号:5037271 上传时间:2020-01-29 格式:PDF 页数:68 大小:1.38MB
返回 下载 相关 举报
嵌入式系统高级C语言编程.pdf_第1页
第1页 / 共68页
嵌入式系统高级C语言编程.pdf_第2页
第2页 / 共68页
嵌入式系统高级C语言编程.pdf_第3页
第3页 / 共68页
嵌入式系统高级C语言编程.pdf_第4页
第4页 / 共68页
嵌入式系统高级C语言编程.pdf_第5页
第5页 / 共68页
点击查看更多>>
资源描述

《嵌入式系统高级C语言编程.pdf》由会员分享,可在线阅读,更多相关《嵌入式系统高级C语言编程.pdf(68页珍藏版)》请在三一文库上搜索。

1、北京航空航天大学出版社 “ 十二五” 高等院校规划教材 嵌嵌入式系统高级C语言编程 凌 明 编著 北京航空航天大学出版社 内 容 简 介 本书主要介绍针对嵌入式系统基于C语言的软件项目开发流程、 较为复杂的C语言编程知识与技巧、 编 程风格及调试习惯, 并通过对一个具体的软件模块(A S I X W i n d o wGU I) 的分析, 介绍分析代码的方法以及设 计软件系统需要考虑的各要素。本书以实际项目中的代码为例来进行介绍, 详细分析在嵌入式系统开发中 程序员应该注意的方法、 技巧和存在的陷阱。 本书适合用作学习嵌入式系统的高年级本科生或硕士研究生的教学用书, 也可作为从事嵌入式系统编

2、程的软、 硬件工程师的技术参考用书。 图书在版编目(C I P) 数据 嵌入式系统高级C语言编程/凌明编著. - -北京: 北京航空航天大学出版社,2 0 1 1. 1 I S B N9 7 8 7 5 1 2 4 0 3 0 8 6 .嵌.凌.微型计算机 C语言程序设计.T P 3 6 0. 2 1T P 3 1 2 中国版本图书馆C I P数据核字(2 0 1 1) 第0 0 4 0 3 7号 版权所有, 侵权必究。 嵌入式系统高级C语言编程 凌 明 编著 责任编辑 冯 颖 * 北京航空航天大学出版社出版发行 北京市海淀区学院路3 7号( 邮编1 0 0 1 9 1) h t t p: /

3、 /w w w. b u a a p r e s s . c o m. c n 发行部电话: (0 1 0)8 2 3 1 7 0 2 4 传真: ( 0 1 0)8 2 3 2 8 0 2 6 读者信箱:e m s b o o k g m a i l . c o m 邮购电话: ( 0 1 0)8 2 3 1 6 9 3 6 印刷有限公司印装 各地书店经销 * 开本:7 8 79 6 0 1/1 6 印张: 2 1 字数:4 7 0千字 2 0 1 1年1月第1版 2 0 1 1年1月第1次印刷 印数:40 0 0册 I S B N9 7 8 7 5 1 2 4 0 3 0 8 6 定价:3

4、 9. 0 0元 北京航空航天大学出版社 序序 嵌入式系统是将先进的计算机技术、 半导体技术、 电子技术和各行各业的具体应用相结合 的产物, 这就决定了它必然是一个技术密集、 资金密集、 高度分散、 不断创新的知识集成系统。 然而, 嵌入式系统是一个非常综合的技术, 在学科上涉及电子科学与技术、 计算机科学与技术、 微电子学等众多领域, 在系统的架构上涉及数字电路、 模拟电路、 嵌入式微处理器、 嵌入式操作 系统、 底层驱动等技术。因此, 虽然为了满足业界对人才培养的要求, 越来越多的高校相关专 业开始在专科、 本科、 硕士培养计划中开设嵌入式系统方面的课程, 但是作为一个新兴的课程 体系,

5、关于嵌入式系统教学过程中相关先修课程与基础知识的准备、 教学内容( 包括硬件平台 与软件平台) 的选择、 实验教学与实践环节组织等问题依然处于争论和探索阶段。 通过对相关院校的嵌入式系统教学的调研以及在东南大学电子科学与工程学院、 集成电 路学院嵌入式系统教学实践的基础上, 我们发现现有电子类本科专业教学计划中存在与嵌入 式系统教学要求相脱节的因素, 其中一个比较突出的问题就是电子类学生软件基础比较弱。 虽然电子类专业的学生都先修过“ C编程语言” 、 “ 计算机原理” 等课程, 但是缺乏大型软件项目 的开发经验, 尤其缺乏操作系统方面的相关知识。这些都为嵌入式系统课程的教学带来了一 定的困难

6、, 因此在嵌入式系统课程体系中增加一些用于弥补学生软件知识的课程就非常有必 要了。凌明副教授2 0 0 5年开始在集成电路学院开设的“ 高级嵌入式系统C编程” 硕士选修课 无疑是为解决这个问题而进行的有益尝试, 而通过5届学生课程的讲解也取得了非常好的教 学效果。虽然关于嵌入式系统方面的专业书籍出版了很多, 但是适合教学的教材可谓凤毛麟 角, 因此在我的建议下凌明老师开始将课程讲义的主要内容进行了系统地整理, 编写成为面向 本科高年级和硕士阶段教学的这本教材。 全书分为9章。第1章简要回顾了C语言的发展历史并给出了作者对于学习C语言的 一些建议和参考书目。第2章和第3章将C语言的主要语言要素作

7、了提纲挈领式的总结和复 习, 虽然不是一本C语言的入门教科书, 但是出于对全书的系统性以及教学的考虑, 作者用了 一定的篇幅将C语言中的主要内容进行了总结, 其中第2章重点介绍了C语言的关键字与运 算符, 第3章则重点介绍了C语言的函数、 标准C库以及相关内容。第4章详细介绍了嵌入 北京航空航天大学出版社 序 2 式系统软件开发的基本流程和原理, 并针对A RM处理器作了比较详细的介绍。第5章是全 书的重点和难点之一, 详细介绍了C语言中指针使用的高级技巧以及程序员需要规避的内存 “ 陷阱” , 本章的后半部分还以实际的案例讲解了动态内存的分配与释放, 然后以A S I X W i n - d

8、 o w的实际案例进行了构建复杂数据结构的讲解。第6章则详细介绍了嵌入式系统中底层驱 动的编写技巧以及相关中断处理程序的编写技巧, 尤其是针对函数重入的问题进行了细致的 分析与讨论, 本章的后半部分还以一个实际的键盘驱动以及U B O O T为例进行了案例讲解。 在第7章中, 作者介绍了嵌入式C语言编程需要遵循的编程规范和编码风格, 本章的内容几 乎在其他所有教科书中都没有涉及, 但实际上对于工程项目的开发而言, 本章的内容又是非常 重要和实用的。只要是软件就离不开调试, 初学者往往在调试代码的过程中不知所措, 因此在 第8章中, 作者介绍了嵌入式软件调试的基本技巧和常用工具。本章的主要内容也

9、是本书的 特色之一, 作者从工程的角度比较系统地介绍了嵌入式软件开发调试过程中常用的方法, 这对 于初学者是非常有帮助的。第9章则以东南大学国家专用集成电路系统工程技术研究中心自 主研发的A S I X W i n d o w嵌入式图形用户界面(GU I) 作为一个综合案例, 详细讲解了一个复 杂软件系统的总体设计架构。 本书的特色之处是强调实际嵌入式软件项目中常用的技巧和方法, 并融合了作者在所从 事的科研项目中总结出来的经验和心得。本书适合电子类专业本科高年级和相关专业硕士的 教学, 可以作为相关选修课程的教材或主要参考用书, 另外由于本书内容的实战性很强, 因此 也非常适合作为广大嵌入式

10、系统工程师的参考用书。 时龙兴 2 0 1 0年8月于东南大学逸夫科技馆 北京航空航天大学出版社 前 言 最早接触编程语言是1 9 9 0年我在东南大学电子工程系( 现在已经改名为东南大学电子科 学与工程学院) 读本科一年级时学习的F O R T R AN编程语言。当时我对计算机的基本组成原 理以及计算机是如何工作的基本上是一无所知, 我和同学们稀里糊涂地在计算中心的UN I X 主机上编写自己的F O R T R AN代码, 最后稀里糊涂地通过考试、 拿到学分, 但确实没有留下什 么深刻的印象( 老师听到要生气了, 呵呵) 。大二的时候系里面组建了自己的P C机房, 我疯狂 地迷上了在P C

11、上的编程。当时的主要编程工具是微软的Q u i c kB A S I C和B o r l a n d公司的 T u r b oC, 当然这些都是作为自娱自乐和自我陶醉的小把戏, 没有真正做出什么有用的东西。 1 9 9 8年我考入东南大学国家专用集成电路系统工程技术研究中心( 以下简称A S I C工程 中心) 攻读硕士学位。那时中心有一个基于M o t o r o l a公司6 8 0 0 0内核( 现在该公司的半导体 部门已经独立成为F r e e s c a l e公司)6 8 E Z 3 2 8龙珠处理器的P D A研发项目(2 0 0 0年的时候这 个项目的研发成果实现了产业化, 深

12、圳的一家公司后来推出了“ 蓝火” 随身E无线金融掌上电 脑) , 我和师兄郑凯东的研发任务是为这个P D A项目开发T C P/I P协议栈。当时国内做这方 面研发的人还比较少, 可以参考的资料更是有限, 郑凯东从互联网上下载了开源的O S K a r n 写的一个KA 9 Q。KA 9 Q是非常精致的基于D O S的网络操作系统, 它在D O S之上模拟了一 个协作式多任务内核, 并基于这个内核实现了非常完整的T C P/I P协议栈。我们的任务就是 将这个由上百个C文件构成的系统移植到6 8 0 0 0内核上。我们几乎没有任何文档,KA 9 Q中 的注释也非常精练, 唯一的办法就是苦读这些

13、源文件, 然后一点一点将这些文件移植到 6 8 E Z 3 2 8自带的P P S M操作系统上。在协议完整地移植后, 我们还为这个P D A编写了自己 的P O P 3协议、S MT P协议以及与之相关的电子邮件收发应用程序。现在看起来, 花了大半年 的时间阅读高手编写的代码对于后来自己的成长是非常有帮助的, 这个经历让我真正理解了 编写大型软件的思维方式, 同时也对C语言的博大精深有了深刻的体会。 在完成了P D A项目的T C P/I P协议移植后, 我的主要精力转移到了为P D A应用程序编 写统一软键盘模块。在当时的软件负责人胡晨老师的指导下, 我将这个键盘模块设计成为采 用消息过滤

14、和回调机制的软件架构, 这为后来编写A S I C工程中心自主的嵌入式图形用户界 面A S I X W i n d o w打下了基础。后来我们又将A S I X W i n d o w移植到E P S ON公司的C 3 3 2 0 9 北京航空航天大学出版社 前 言 2 处理器上, 并且和自己编写的抢占式多任务内核A S I XO SK e r n e l融合到了一起, 构成了一个 比较完整的嵌入式软件开发平台。在2 0 0 1年与北京大学微处理器研究中心合作的众志8 0 5 微处理器项目中, 我们为这个处理器开发了集成开发环境( I D E) , 并且也成功地将我们的A S - I XO S

15、移植到了该处理器。2 0 0 3年A S I C工程中心成为国内第一家A RM大学计划的授权用 户, 成功研发了基于A RM 7 T DM I的S E P 3 2 0 3嵌入式微处理器, 我们又将A S I XO S移植到了 A RM平台。2 0 0 5年S E P 3 2 0 3处理器进入量产阶段。作为芯片的设计单位,A S I C中心为 S E P 3 2 0 3处理器开发了大量的底层软件平台和相关的应用方案, 这些方案包括无线数据传输 终端(D TU) 、 E P O S( 电子支付终端) 解决方案、 继电保护终端、 电机保护器等。就在本书快要 成稿时, S E P 3 2 0 3处理器

16、的升级版本S E P 4 0 2 0嵌入式微处理器也进入了量产阶段, 为移动导 航终端(P N D) 、 手 持 多 媒 体 播 放 器 ( PMP) 等 应 用 设 计 的 基 于A RM 1 1 3 6处 理 器 内 核 的 S E P 0 7 1 8处理器也正式立项, 并推出了第一个版本的测试芯片。我们为这两款处理器移植了 嵌入式L i n u x和W i n d o w sC E操作系统, 并开发了基于这些操作系统的底层软件包和相关 驱动。 在上面所介绍的研发过程中, 大量的研究生参与了其中的工作。由于考入A S I C工程中 心的研究生多是电子类专业背景, 因此他们的编程经验大多和我

17、刚读硕士时一样的贫乏。C 语言本质上( 至少从它诞生之初起) 不是一门面向初学者的编程语言, 其灵活多变、 语法检查不 严格、 对底层存储器的直接操作( 主要是通过各种形式的指针) 等特征使得C编程成为一次布 满陷阱的冒险, 我的这些师弟师妹们也和我当初一样成为这些陷阱的受害者。如何帮助他们 尽量避免或者少走当初我自己所遇到的弯路, 使他们尽快地成为合格的程序员? 事实上, 他们 作为初学者在比较大型的嵌入式软件系统开发过程中所遇到的这些问题具有一定的普遍性, 至少我在刚刚接触的时候所遇到的挫折与麻烦与他们现在所遇到的问题是惊人的相似。这个 想法最终在2 0 0 5年底的时候变成了积极的行动,

18、 东南大学集成电路学院院长时龙兴教授( 时 老师同时也是国家专用集成电路系统工程技术研究中心的主任和我攻读硕士、 博士期间的指 导老师) 建议我在学院开设关于嵌入式系统高级C语言编程的硕士选修课程, 以帮助硕士研 究生弥补他们所学习的C语言知识与实际工程研发过程中所需要的能力之间的差距。在本 书成稿的时候, “ 嵌入式系统高级C语言编程” 这门选修课已成功开设了5届, 本书也是在该 课程讲义的基础上做了进一步的完善和补充。 关于本书 首先, 本书不是C语言的入门教材。在本书写作之初, 我假设读者已经具备了初步的C 语法知识, 并且至少有过使用C编写程序的经验。但从教材的完整性和系统性上考虑,

19、本书 在第2章和第3章给出了关于C语法提纲式的复习与总结。现在市面上有关C语言的基础 教材比比皆是, 如果你对C还不是非常熟悉可以参阅第1章中给出的C语言基础教材。读者 也可以利用附录C所提供的一份测试样卷测试一下自己对C语言的掌握程度, 以便有针对性 地阅读本书的相关章节。 北京航空航天大学出版社 前 言 3 其次, 本书也不是专门介绍C编程技巧的。本书将主要介绍针对嵌入式系统基于C语言 的软件项目的开发流程, 以及较为复杂的C语言编程知识与技巧、 编程风格和调试习惯, 并通 过对一个具体软件模块(A S I X W i n d o wGU I) 的分析, 介绍分析代码的方法以及设计软件系统

20、 需要考虑的各要素。本书将以实际项目中的代码作为实例来进行介绍, 详细分析在嵌入式系 统开发中程序员应该注意的方法、 技巧和陷阱。我试图将本书编写成为一本适合作为高校相 关专业高年级本科生和硕士研究生教学使用的教材, 而不仅仅是一本参考书( 虽然, 显而易见 地, 我希望本书同样也能适合工程师的需要) 。因此, 在本书的写作过程中我尽可能地保证相 关知识的系统性, 同时我也注意适合教学的范例代码和课后习题的编写。 最后, 虽然嵌入式系统的C语言编程在很大程度上与P C编程甚至UN I X或者L i n u x服 务器编程没有太本质的区别, 它们都需要遵循基本的软件编程思想和编程规范, 但是嵌入

21、式系 统还是有其自身特点的, 比如嵌入式软件的开发环境一般而言都比P C编程的开发环境要复 杂得多, 初学者在刚刚接触交叉编译的开发环境、 仿真器、 目标系统的时候往往会不知所措并 充满挫折感, 其实这些都是因为没有真正理解嵌入式软件开发环境的基本原理而造成的。因 此, 第4章专门介绍了嵌入式软件开发的基本流程和工具链, 以及这些流程工具所起到的作 用。另外, 虽然嵌入式系统开发的概念远不仅局限于基于A RM处理器的嵌入式软件开发, 但 是由于A RM在消费类电子领域取得的巨大成功以及3 2位处理器在传统嵌入式系统的广泛 采用, 本书在涉及具体C P U或者具体系统设计的时候往往以东南大学国家

22、专用集成电路系 统工程技术研究中心研发的S E P 3 2 0 3和S E P 4 0 2 0嵌入式微处理器( 以A RM 7 T DM I为内核) 为例进行介绍。 基于本书的课程安排 正如我在前面所介绍的, 本书的主要内容来自于东南大学集成电路学院“ 嵌入式系统高级 C语言编程” 这门硕士选修课程。作为S O C与嵌入式系统专业方向课程体系的一部分, “ 嵌入 式系统高级C语言编程” 这门课程旨在帮助学生掌握针对嵌入式系统的基于C语言的软件项 目开发流程, 掌握较为复杂的C语言编程知识和技巧, 培养良好的编程风格和调试习惯, 并通 过对一个具体的软件模块(A S I X W i n d o

23、wGU I) 的分析, 使学生掌握分析代码的方法以及设计 软件系统需要考虑的各要素。本课程一共3 6学时, 其中课堂授课部分为3 3学时, 学生实验和 课外作业与讨论折合为3学时( 实际我希望学生在课外所花的时间远多于这个数量) 。下面是 我们在东南大学集成电路学院的课程安排( 未与本书各章节内容严格对应, 仅供参考) : 第1讲 概论 3学时 第2讲 C语言基本语法复习 6学时 第3讲 编译、 汇编、 链接与调试 3学时 第4讲 存储器与指针 6学时 第5讲 中断与设备驱动 6学时 第6讲 编码风格 3学时 北京航空航天大学出版社 前 言 4 第7讲 代码的调试 3学时 第8讲 A S I

24、X W i nGU I设计详解一 3学时 ( 可选) 第9讲 A S I X W i nGU I设计详解二 3学时 ( 可选) 课程项目:A S I X W i n d o w s的控件开发 未定( 可选) 关于实验与第8、 9讲的设计案例分析以及最后的课程项目, 教师可以根据所从事科研项 目的具体情况和学生的接受能力, 选择适合本校的教学内容。本课程的多媒体课件和课程中 使用的部分教学代码, 读者可以到 h t t p : / /w w w. a r m f a n s . n e t论坛下载。为了大家讨论的方 便, 我们在这个网站还将专门开设关于嵌入式C的讨论区。 致 谢 这本书能够诞生,

25、 首先要感谢东南大学国家专用集成电路系统工程技术研究中心主任时 龙兴教授和副主任胡晨教授。如果没有时老师的鼓励和鞭策, 我很难在东南大学集成电路学 院开设“ 嵌入式系统高级C语言编程” 这门课程, 当然也就不会有这本书。胡晨老师是我进入 嵌入式系统C编程的启蒙老师, 在我攻读硕士学位以及以后的工作过程中, 胡老师对我的指 导使我受益匪浅, 是胡老师使我真正认识到软件作为一个系统的概念, 以及软件中的架构分 层、 封装与接口设计的重要性。 另外, 我要感谢曾经在东南大学国家专用集成电路系统工程技术研究中心与我共事的研 究生同学, 在与他们的项目合作中使我逐步积累了本书中所写的心得与体会。他们是郑

26、凯东、 浦汉来、 张宇、 戚隆宁、 金晶等。 北京航空航天大学出版社的胡晓柏老师的鼓励和支持使得本书最终得以出版, 在此表示 由衷的感谢。 东南大学集成电路学院的研究生张阳、 徐继新以及南京邮电大学的冯海东同学参与了文 字的校稿和相关材料收集与整理工作; 东南大学国家A S I C工程中心的张黎明同学和史先强 同学分别编写了本书6. 4节和6. 5节的内容。在本书的写作过程中, 这些同学还给出了很多 中肯的意见, 在此表示特别的感谢! 书中引用了部分来自互联网的文章, 博客的内容, 在此对这些文章和博客的作者表示 感谢。 最后感谢我的妻子与儿子, 是他们给了我本书写作过程中的鼓励与支持! 限于

27、作者的水平, 书中错误和不妥之处敬请各位读者批评指正, 并提出宝贵意见。读者也 可以通过E - m a i l与我联系交流: t r i o s e u . e d u . c n。 作 者 2 0 1 0年9月 北京航空航天大学出版社 目 录 第1章 概 述 1 1. 1 C语言的历史和特点1 1. 2 一个小测验5 1. 3 如何学好嵌入式系统中的C语言编程8 1. 3. 1 真正深刻地认识存储器8 1. 3. 2 认识和理解嵌入式C编程环境9 1. 3. 3 认识和掌握C语言中的常见陷阱9 1. 3. 4 掌握C语言程序设计过程中的调试方法9 1. 4 推荐的参考书目1 0 1. 4.

28、1 C语言的初级教材1 0 1. 4. 2 C语言进阶书籍1 0 1. 5 思考题1 1 第2章 C语言的关键字与运算符 1 2 2. 1 C语言的关键字1 2 2. 1. 1 数据类型关键字1 3 2. 1. 2 控制语句关键字与相关语句1 6 2. 1. 3 存储类型关键字2 3 2. 1. 4 其他类型关键字3 1 2. 2 C语言的运算符3 5 2. 2. 1 运算符中需要注意的问题3 6 2. 2. 2 运算符的优先级3 9 2. 2. 3 表达式求值4 1 北京航空航天大学出版社 目 录 2 2. 2. 4 运算符的词法分析4 2 2. 3 C语言的指针4 3 2. 3. 1 指针

29、的3个要素4 4 2. 3. 2 指针的类型4 5 2. 3. 3 指针的初始化4 7 2. 3. 4 指针的运算4 7 2. 3. 5 指针与字符串4 8 2. 4 思考题5 0 第3章 C语言的函数 5 2 3. 1 C语言的函数5 2 3. 1. 1 函数的声明、 原型与返回值5 2 3. 1. 2 函数的参数5 4 3. 1. 3 可变参数的函数5 5 3. 1. 4 递归函数5 6 3. 2 标准库函数5 8 3. 2. 1 输入与输出:5 9 3. 2. 2 字符类别测试:6 6 3. 2. 3 字符串函数:6 7 3. 2. 4 数学函数:6 8 3. 2. 5 实用函数:7 0

30、 3. 2. 6 断言:7 2 3. 2. 7 可变参数表:7 2 3. 2. 8 非局部跳转:7 3 3. 2. 9 标准库函数与系统调用7 3 3. 3 声 明7 6 3. 4 作用域与链接属性7 7 3. 4. 1 代码块作用域7 7 3. 4. 2 文件作用域7 8 3. 4. 3 函数作用域7 9 3. 4. 4 原型作用域7 9 3. 4. 5 链接属性8 0 3. 5 C的预编译处理8 1 3. 6 思考题8 2 北京航空航天大学出版社 目 录 3 第4章 编译、 汇编与调试 8 3 4. 1嵌入式软件开发流程与工具8 3 4. 1. 1 嵌入式软件开发的一般流程8 3 4. 1

31、. 2 编译器简介8 6 4. 1. 3 链接器简介8 7 4. 1. 4 嵌入式软件开发的调试环境8 9 4. 1. 5 A RM处理器的开发工具9 8 4. 2 基于C语言软件项目中的文件关系1 0 0 4. 2. 1 C语言项目中的文件依赖关系1 0 0 4. 2. 2 M a k e文件1 0 1 4. 3 C代码与汇编1 0 5 4. 3. 1 AT P C S1 0 5 4. 3. 2 C与汇编的混合编程1 0 9 4. 3. 3 A RM编译器对局部变量和入口参数的处理1 1 1 4. 4 思考题1 1 4 第5章 存储器与指针 1 1 6 5. 1 再论C语言中的指针1 1 6

32、 5. 1. 1 指针与数组1 1 6 5. 1. 2 函数指针1 2 0 5. 2 C语言中的内存陷阱1 2 7 5. 2. 1 局部变量1 2 8 5. 2. 2 动态存储区1 3 0 5. 2. 3 函数的指针参数1 3 7 5. 3 堆 栈1 4 1 5. 3. 1 堆栈的作用1 4 2 5. 3. 2 函数调用栈帧与中断栈帧1 4 4 5. 3. 3 堆栈的跟踪与调试1 4 6 5. 4 动态内存分配1 4 8 5. 4. 1 算 法1 4 8 5. 4. 2 m a l l o c( ) 函数1 5 2 5. 4. 3 f r e e( ) 函数1 5 7 5. 5 利用链表构建复

33、杂数据结构1 6 2 北京航空航天大学出版社 目 录 4 5. 5. 1 A S I X W i n d o w的数据结构1 6 2 5. 5. 2 A S I X W i n d o w的窗口创建函数1 6 4 5. 5. 3 A S I X W i n d o w的窗口删除函数1 6 9 5. 6 思考题1 7 4 第6章 中断与设备驱动 1 7 8 6. 1 设备驱动简介1 7 8 6. 1. 1 设备驱动、B o o tL o a d e r与B S P1 7 8 6. 1. 2 设备驱动程序的结构1 8 0 6. 2 中断与中断处理1 8 5 6. 2. 1 中断的重要性1 8 5

34、6. 2. 2 中断的分类与处理过程1 8 5 6. 2. 3 C语言中的中断处理1 8 6 6. 2. 4 中断处理程序的编写1 8 7 6. 3 函数的可重入问题1 9 7 6. 3. 1 什么是函数的重入1 9 7 6. 3. 2 函数可重入的条件1 9 9 6. 3. 3 不可重入函数的互斥保护2 0 0 6. 3. 4 重入函数的伪问题2 0 2 6. 4 设备驱动案例 键盘驱动2 0 3 6. 4. 1 55键盘的硬件原理2 0 3 6. 4. 2 键盘设备驱动实例2 0 4 6. 5 启动代码 U B O O T分析2 1 1 6. 5. 1 系统启动与B o o t L o a

35、 d e r2 1 1 6. 5. 2 U B O O T技术实现分析2 1 4 6. 6 思考题2 1 8 第7章 编码风格 2 2 0 7. 1 简介及说明2 2 0 7. 2 语言规则2 2 4 7. 2. 1 基 础2 2 4 7. 2. 2 数 据2 2 8 7. 2. 3 说明与表达式2 3 0 7. 2. 4 函 数2 3 1 北京航空航天大学出版社 目 录 5 7. 2. 5 源文件2 3 5 7. 3 风格指导2 3 7 7. 3. 1 程序的书写2 3 7 7. 3. 2 命 名2 4 0 7. 4 思考题2 4 3 第8章 代码的调试 2 4 4 8. 1 B u g与D

36、 e b u g 2 4 4 8. 1. 1 初学者的困惑2 4 5 8. 1. 2 D e b u g的手段和工具 2 4 6 8. 2 B u g的定位与修正 2 4 8 8. 2. 1 关注代码的层次与接口2 4 8 8. 2. 2 关注内存的访问越界2 4 9 8. 2. 3 关注边界情况2 5 4 8. 2. 4 B u g的修正 2 5 5 8. 3 其他的方法和工具2 5 6 8. 3. 1 利用断言2 5 6 8. 3. 2 代码检查(C o d eR e v i e w)2 5 8 8. 3. 3 编译器的警告与L i n t工具2 5 9 8. 3. 4 好的代码风格2 6

37、 0 8. 4 思考题2 6 0 第9章 A S I X W i n d o wG U I设计详解 2 6 2 9. 1 A S I X W i n d o w概述2 6 2 9. 2 A S I X W i n d o w s底层软件平台的实现2 6 3 9. 2. 1 A S I XO S对A S I X W I N在系统调用上的支持2 6 4 9. 2. 2 A S I XG P C图形库的设计2 6 7 9. 2. 3 A c t i v e A r e a和笔中断的设计2 7 2 9. 3 A S I X W I N系统任务管理模块的设计2 7 6 9. 4 A S I X W I N消息

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 其他


经营许可证编号:宁ICP备18001539号-1