编辑推荐
本书结构框架突出,难度层层递进,全书知识讲解以具体的工程开发实例为主线,层层深入,涵盖工程项目开发的全过程,用具体的项目实例讲解知识,所有的知识均有具体的设计开发实例,代码内容完整,相比较其他同类书来说,实践意味更强,可作为工程师和学习者的工具书,对照实例,容易理解,随用随翻,实用性强。
内容简介
本书详细介绍了嵌入式开发和嵌入式Linux系统开发的基础知识,主要讲解:嵌入式Linux系统的基础知识;C语言在嵌入式开发中的应用;嵌入式Linux应用开发基础,如系统文件I/O 编程、进程、线程、进程间通信和网络编程,并结合若干项目,熟悉C语言在Linux应用开发中的流程和思路;C语言在Linux驱动中的应用。本书通过大量实战项目,帮助读者融会贯通,使读者在实战中学到技术的精髓。
作者简介
杨源鑫,CSDN博客专家,CSDN学院讲师,资深嵌入式系统工程师,先后在伟易达集团,深圳砺剑防卫科技有限公司等从事嵌入式产品相关的研发,软件架构设计,集成测试,交流指导等工作,涵盖的范围主要有单片机、Linux、Android、Window等方向的软件层次的开发,具有丰富实战开发经验;他还积极将自己所学所用的所识以及个人工作经验总结进行分享,仅在CSDN就分享了数百篇原创文章,累计阅读量超过百万人次。
目录
第1章 什么是嵌入式开发……………………………………………………………… 1
1.1 概 述 …………………………………………………………………………… 1
1.2 嵌入式开发需要哪些知识储备 ………………………………………………… 1
1.2.1 嵌入式硬件知识 …………………………………………………………… 1
1.2.2 嵌入式软件知识 …………………………………………………………… 5
1.3 常见的嵌入式开发平台 ………………………………………………………… 5
1.3.1 单片机系列 ………………………………………………………………… 5
1.3.2 ARM 系列 ………………………………………………………………… 5
1.4 嵌入式ARM Linux系统的构成 ……………………………………………… 6
1.4.1 硬件电路基础 ……………………………………………………………… 6
1.4.2 bootloader ………………………………………………………………… 6
1.4.3 内 核 ……………………………………………………………………… 6
1.4.4 文件系统 …………………………………………………………………… 6
1.4.5 应用程序 …………………………………………………………………… 6
1.5 本章小结 ………………………………………………………………………… 8
第2章 嵌入式Linux系统基础………………………………………………………… 9
2.1 Linux系统简介 ………………………………………………………………… 9
2.1.1 使用Vmware虚拟机安装Linux操作系统 …………………………… 12
2.1.2 Linux的基本命令 ………………………………………………………… 19
2.2 Linux中vim编辑器的操作与编程…………………………………………… 35
2.2.1 vim编辑器的操作………………………………………………………… 35
2.2.2 在Linux下快速入门Linux C语言编程 ……………………………… 41
2.2.3 在Linux下使用GDB调试代码 ………………………………………… 43
2.2.4 在Linux下Shell脚本基础编程快速入门 ……………………………… 47
2.3 利用 Makefile管理软件工程 ………………………………………………… 59
2.4 在Linux下制作静态库和动态链接库的方法 ……………………………… 62
2.5 本章小结………………………………………………………………………… 64
第3章 C语言在嵌入式开发中的应用 ……………………………………………… 65
3.1 嵌入式开发必知必会…………………………………………………………… 65
3.1.1 数据段、代码段、堆栈段、BSS段的区别 ………………………………… 65
3.1.2 位、字、字节、字符等基础知识 …………………………………………… 68
3.1.3 进制转换基础……………………………………………………………… 68
3.1.4 嵌入式常用位运算基础与深入学习……………………………………… 71
3.2 位运算项目……………………………………………………………………… 74
3.2.1 应用(一):如何分离一个数的高低位 …………………………………… 74
3.2.2 应用(二):如何将两个字节合并为一个字节 …………………………… 76
3.2.3 应用(三):Linux内核中实现的高低位互换函数 ……………………… 77
3.2.4 应用(四):用嵌入式C语言快速翻转一个数的二进制高低位 ………… 78
3.2.5 实战1:如何对一个有规律的数组表进行位移(LED彩灯案例)……… 80
3.2.6 实战2:分离一个十六进制数取出相应的位1或位0
(简单的音频解码案例)…………………………………………………… 82
3.3 预处理、 const、static以及字符串处理在嵌入式中的应用 ………………… 86
3.3.1 宏定义与typedef的区别 ………………………………………………… 86
3.3.2 const关键字 ……………………………………………………………… 96
3.3.3 static关键字 ……………………………………………………………… 98
3.3.4 sizeof运算符 …………………………………………………………… 103
3.3.5 strcat 函数 ……………………………………………………………… 105
3.3.6 strcpy函数 ……………………………………………………………… 107
3.3.7 strlen函数 ……………………………………………………………… 109
3.3.8 strcmp函数 ……………………………………………………………… 111
3.4 C语言的内存管理与指针 …………………………………………………… 113
3.4.1 一维数组 ………………………………………………………………… 113
3.4.2 二维数组 ………………………………………………………………… 119
3.4.3 C语言之指针 …………………………………………………………… 122
3.4.4 为什么内存是线性分布的 ……………………………………………… 131
3.4.5 深入浅出剖析函数指针与回调函数 …………………………………… 135
3.5 谁说面向过程的C语言不能面向对象 ……………………………………… 144
3.5.1 C语言之结构体 ………………………………………………………… 144
3.5.2 C语言之结构体对齐 …………………………………………………… 147
3.5.3 C语言结构体实现原理深入分析 ……………………………………… 150
3.5.4 结构体的封装性之结构体内嵌函数指针 ……………………………… 152
3.5.5 结构体的继承性之结构体内嵌结构体 ………………………………… 153
3.5.6 结构体的多态性之结构体中的void *万能指针……………………… 155
3.5.7 Linux内核中offsetof宏与container_of宏深度剖析 ………………… 157
3.5.8 什么是共用体、联合体与大小端………………………………………… 160
3.6 C语言之标准C文件操作应用 ……………………………………………… 163
3.6.1 fopen函数和fclose函数 ……………………………………………… 163
3.6.2 fread函数和fwrite函数………………………………………………… 165
3.6.3 fseek函数………………………………………………………………… 167
3.6.4 sprintf函数 ……………………………………………………………… 168
3.7 一定要掌握的基本数据结构 ………………………………………………… 170
3.7.1 链 表 …………………………………………………………………… 170
3.7.2 队 列 …………………………………………………………………… 179
3.7.3 栈 ………………………………………………………………………… 181
3.8 实战项目 ……………………………………………………………………… 184
3.8.1 熟悉STM32单片机库函数的使用 …………………………………… 184
3.8.2 弹弹方块C语言实现…………………………………………………… 194
3.8.3 学生信息管理系统的实现 ……………………………………………… 201
3.8.4 空洞文件与一次性产生多个文件 ……………………………………… 216
3.8.5 CheckSum软件的设计原理与应用 …………………………………… 218
3.8.6 使用C语言编写一个将二进制文件转换为C数组头文件的程序 …… 220
3.8.7 数据压缩与解压缩算法的C语言实现 ………………………………… 224
3.8.8 字符串编码解压缩算法 ………………………………………………… 227
3.8.9 C语言之查表法项目运用 ……………………………………………… 229
3.9 本章小结 ……………………………………………………………………… 231
第4章 嵌入式Linux应用开发基础………………………………………………… 232
4.1 文件I/O基础编程 …………………………………………………………… 232
4.1.1 open函数与close函数 ………………………………………………… 233
4.1.2 read函数与write函数 ………………………………………………… 235
4.1.3 lseek函数………………………………………………………………… 237
4.1.4 ioctl函数 ………………………………………………………………… 238
4.1.5 opendir函数、readdir函数与closedir函数 …………………………… 239
4.1.6 stat函数 ………………………………………………………………… 240
4.1.7 文件I/O小结 …………………………………………………………… 242
4.2 进程的实战开发 ……………………………………………………………… 242
4.2.1 进程的定义 ……………………………………………………………… 242
4.2.2 进程与程序的区别 ……………………………………………………… 243
4.2.3 fork函数 ………………………………………………………………… 243
4.2.4 vfork函数 ……………………………………………………………… 246
4.2.5 exec函数族 ……………………………………………………………… 248
4.2.6 特殊进程 ………………………………………………………………… 251
4.3 进程间通信 …………………………………………………………………… 256
4.3.1 管 道 …………………………………………………………………… 257
4.3.2 消息队列 ………………………………………………………………… 261
4.3.3 共享内存 ………………………………………………………………… 268
4.3.4 信 号 …………………………………………………………………… 274
4.3.5 信号量 …………………………………………………………………… 278
4.4 多线程编程 …………………………………………………………………… 281
4.4.1 线程与多线程的定义 …………………………………………………… 281
4.4.2 进程与线程的区别与联系 ……………………………………………… 281
4.5 网络编程 ……………………………………………………………………… 287
4.5.1 TCP/IP协议栈 ………………………………………………………… 287
4.5.2 TCP协议 ………………………………………………………………… 288
4.5.3 UDP协议………………………………………………………………… 300
4.6 实战项目 ……………………………………………………………………… 304
4.6.1 Linux下音频应用编程 ………………………………………………… __________304
4.6.2 Linux下FrameBuffer简介 …………………………………………… 314
4.6.3 Linux下C语言BMP图操作编程 …………………………………… 320
4.6.4 Linux下C语言input系统应用编程 ………………………………… 324
4.6.5 简易Linux终端版聊天室应用编程 …………………………………… 329
4.7 本章小结 ……………………………………………………………………… 338
第5章 C语言在Linux驱动中的应用 ……………………………………………… 339
5.1 简单的Kconfig编程 ………………………………………………………… 339
5.2 手把手教你实现字符设备驱动 ……………………………………………… 345
5.3 手把手教你实现 misc设备驱动……………………………………………… 355
5.4 手把手教你实现外部中断 …………………………………………………… 359
5.5 手把手教你实现中断底半部tasklet实现…………………………………… 364
5.6 手把手教你实现中断底半部work queue…………………………………… 371
5.7 手把手教你实现简单的Linux定时器 ……………………………………… 375
5.8 手把手教你实现input设备驱动程序 ……………………………………… 379
5.9 本章小结 ……………………………………………………………………… 386
参考文献………………………………………………………………………………… 387
后 记………………………………………………………………………………… 389
嵌入式C语言技术实战开发(通过大量实战项目,帮助读者融会贯通,使读者在实战中学到技术的精髓) pdf下载声明
本pdf资料下载仅供个人学习和研究使用,不能用于商业用途,请在下载后24小时内删除。如果喜欢,请购买正版