本章首先纠正了很多工程师对C语言中基础内容在嵌入式平台上的认知偏差,主要涉及到数据类型、变量和函数定义声明等。然后介绍了在实际嵌入式项目开发过程中所遇到的坑,还有一些实用的开发技巧。
这一章深入剖析了“栈”的实质和根本机理。嵌入式工程师经常纠缠于这一技术细节。深入理解“栈”,将使你实际嵌入式开发和程序调试事半功倍。
这一章介绍了结构体在嵌入式项目中的实际开发技巧,以及工程师普遍存在的认知问题。主要问题在于因硬件差异而造成的结构体空间分布的兼容性问题。灵活对待嵌入式C语言在各种CPU硬件平台上的差异,包括衍生、扩展、变种等,是嵌入式开发的一大重点。
这一章集中介绍了位域和联合体的开发技巧。嵌入式中很多硬件接口或协议数据均涉及大量的位操作,因此位域极为重要。还介绍了大小端的概念,及其与位域的关系。以作者实际项目SD卡MP3播放器为例,介绍了基于位域和相应芯片的硬件特性对通信接口进行极致优化的方法。
本章介绍了算数、逻辑和位运算在嵌入式平台上实现的实质和应用技巧,其中解释了一些与浮点、判等、数制等内容相关的奇怪问题和坑。还介绍了宏的一些高阶知识,还有一种基于位图的针对巨量数据的高效排序算法,它们均来自于实际项目。
这一章集中聚焦到嵌入式中的指针,这一点对于整个嵌入式的认知有决定性意义。从CPU硬件角度去解释指针的实质,介绍了很多指针相关的开发技巧,比如函数指针、回调等等。还介绍了嵌入式中的malloc与标准C中的根本区别,深入理解堆的概念。嵌入式处处是指针,从这一角度去讲解了单片机芯片上电启动到main函数运行的全流程细节和远程OTA
这一章介绍了数组在嵌入式中的应用和开发技巧,以及基于数组的一些常用算法,比如排序、搜索和滤波等。同时纠正了工程师对数组、指针以及字符串在认知上的一些偏差。
这一章首先讲解了函数的实质以及编译器的一些原理,这对于深入理解嵌入式极为重要。然后纠正了很多工程师对内联函数、递归函数和可重入等内容在嵌入式中应用的一些认知偏差。
这章对嵌入式中的循环和条件判断相关的开发技巧进行了介绍。嵌入式与纯软件的一个很大的不同在于要考虑CPU宝贵的硬件资源,所以如何去简化代码,提高执行效率是重点。这一章中介绍了很多相关的技巧和方法。
这一章是对前面每一章的总结和补充,把相应的知识继续深化拓展。使用提问的方式,解答了很多的嵌入式C语言的终极问题。这个过程中,开始涉及到一些比较升华性的问题,如果搞明白这些问题,象征着你的认知水平又有很大的提升。比如多个函数是否可以同时运行?这就是嵌入式操作系统RTOS的关键技术和主要思想。这对以后的更高阶的嵌入式学习将有深远意义。
选课、学习遇到问题?
扫码添加指导老师 1V1 帮助你!
添加后老师会第一时间解决你的问题