当前位置:首页 > 工业技术
嵌入式C语言技术实战开发
嵌入式C语言技术实战开发

嵌入式C语言技术实战开发PDF电子书下载

工业技术

  • 电子书积分:13 积分如何计算积分?
  • 作 者:杨源鑫,侯继红,陈锦勇,刘凯强编著
  • 出 版 社:北京:北京航空航天大学出版社
  • 出版年份:2018
  • ISBN:9787512427105
  • 页数:389 页
图书介绍:本书主要是结合作者从事嵌入式工作以及教学过程中中总结的一些学习方法还有工作经验。本书主要讲解C语言在嵌入式系统开发的中的应用,包含了C语言的相关知识、Linux、Shell知识,在知识讲解的基础上,重点讲解了Linux的具体开发技术,并结合ARM ContextA9讲解具体的开发实例。适合有一定编程基础的读者参考学习。
《嵌入式C语言技术实战开发》目录

第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

返回顶部