首先还得感谢主办方以及提供评测书籍的人。感谢给予这次测评的机会,接下来我会介绍书籍中的相关内容;
首先上传封面图片
254ce0684ef56b4e4caa85e425d29368.jpg


然后就是部分目录
b21a71be97141b57a13045ebef4711b9.jpg 16c3a7a5d0f3ed998c534317ce07e5b2.jpg 34ef2bfd3eec7a56ff83ef37654d5aa8.jpg

第一章节,主要介绍一些代码编译工具以及程序编译工具,还有就是项目管理工具,其中第一部分,举例说明代码编译工具Vim的安装,一些常用命令,配置文件,按键映射,第二部分,列举了程序编译工具make,举例三种编译状况,使用IDE编译C程序,使用gcc编译C源程序,使用make编译程序,第三部分介绍代码的管理工具Git,其中介绍了版本控制系统,Git的安装和配置,以及介绍一些常用的命令;

第二章节,主要介绍计算机体系结构与CPU工作原理,这一章节主要是想让读者对于半导体的工艺、芯片、CPU、指令集、微架构、计算机系统架构、总线与地址等有个完整的认知框架,该章节一共分了8个部分来讲解,第一部分主要讲的是芯片是怎样诞生的,第二部分主要介绍CPU是怎么设计出来的,第三部分是介绍计算机的体系结构(冯.诺依曼架构、哈弗架构、混合架构),第四、五部分介绍的是CPU性能的提升,主要从Cache机制、流水线两个方面去介绍,后面主要介绍的是多核CPU、后摩尔时代:异构计算机的崛起,总线与地址、指令与微架构等,这个主要还是介绍了一整个CPU的流程;

第三章节,主要介绍的是ARM体系结构与汇编语言,这个章节分七个部分介绍,主要介绍ARM体系结构、ARM汇编指令、寻址方式、伪指令、汇编程序设计、C语言和汇编语言混合编程、GNU ARM汇编语言,通过这个章节的学习主要是让读者对于ARM体系结构和工作流程,还有就是掌握ARM汇编程序的编写技巧,能看懂反汇编代码,为后面的深入学习C语言打下基础;

第四章节,主要介绍程序的编译、链接、安装和运行,这个章节分为十三个部分介绍,主要介绍从源程序到二进制文件、预处理过程、程序的编译、链接过程、程序的安装、程序的运行、链接静态库、动态链接、插件的工作原理、Linux内核模块运行机制、Linux内核编译和启动分析,U-boot重定位分析、常用的binutils,通过这个章节学习,然读者可以结合ARM平台,把程序的编译、链接、安装和运行的基本原理,并对嵌入式开发中的一些关键知识点和理论(如U-boot的加载、重定位)着重分析,对于ARM裸机程序运行的环境配置、Linux内核模块的加载运行机制等实际案例;

第五章节,主要介绍内存堆栈管理,这个章节分为七个部分介绍,主要讲解为程序运行的“马甲”:进程、Linux环境下的内存管理、栈的管理、堆内存管理、mmap映射区域探秘、内存泄漏与防范、常见的内存错误及检测,通过本章节的学习会对程序的运行的过程中,对于在函数内定义的局部变量是存储在哪里,如何访问,是否可以全局变量一样通过变量名访问等,这部分书中都有详细的说明;

第六章节,主要介绍GNU C编译器扩展语法精讲,这个章节分为十二部分介绍,主要讲解C语言标准和编译器、指定初始化、宏构造“利器”:语句表达式,typeof与container_of宏、零长度数组、属性声明:section,aligned,format,weak,内联函数,内建函数,可变参数宏,这个章节会让我们学习到Linux内核或者GNU开源软件中,常用的一些C语言特殊语法扩展,并掌握Linux内核源码中经常使用的编译扩展特性,避免在C语言扩展语法带来的程序阅读障碍;

第七章节,主要介绍数据的存储跟指针,分成数据模型与存储、数据对齐、数据的可移植性、SIZE_t类型、typedef,枚举类型、常量和变量、从变量到指针、指针与数组的关系,指针和结构体、二级指针、函数指针、VOID;这个章节可以学习到从基本的数据类型和存储开始,去研究不同类型的数据在内存中的存储和引用,去研究各种复杂的指针的定义、声明和使用方法;

第八章节,主要介绍C语言的面向对象编程思想,分成代码复用与分层思想、面向对象编程的基础、Linux内核中OOP思想:封装、继承、多态,通过这一章节学习,你会学会如何使用C语言实现面向对象编程思想的;

第九章节,主要介绍C语言的模块化编程思想,分成模块的编译和链接,系统模块的划分、模块的封装、头文件的深度剖析、模块设计原则、被误解的关键字:GOTO,模块间的通信、模块设计进阶、Aio时代的模块化编程,这个章节会让我们学习到C语言的模块化编程思想,让我们对于软件系统结构清晰、层次更加分明、更加易于管理和维护;

第十章节,主要介绍C语言的多任务编程思想和操作系统入门,分成多任务的裸机实现、操作系统的基本原理、中断、系统调用、文件系统、存储器接口与映射、内存与外部设备、寄存器操作,内存管理单元MMU,进程、线程和协程,这部分主要让我们学习到C语言的多任务编程思想和操作系统的基本原理与编程入门,能够对CPU和操作系统、多任务并发编程思想有一个新的认识,为后续编程打下基础。

纵观全书,主要是围绕从C语言角度出发,学习C语言背后CPU的工作原理、计算机的架构、ARM平台下程序的编译、链接,程序运行时的内存堆栈管理,并探讨了C语言面向对象编程思想、模块化编程思想和多任务编程思想、对于嵌入式工作的从业者是很有参考价值的,对于有一定基础的读者来讲,该书是提升进阶的铺垫,适合去啃。