经常有网友要我推荐一些关于嵌入式方面的书,尤其是一些转行学嵌入式的朋友,该看那些书能快速构建嵌入式学习所需要的知识体系呢?嵌入式是一门交叉学科,没有足够的知识储备,上来就学习的话,往往也就成了走过场,跟着操作走一遍,深入不下去,学不到精髓。
有没有一本书,专门针对嵌入式学员设计,嵌入式开发所需要的所有理论知识和常用的技能点都涉及到,都刚刚好,不会讲太深,讲太偏,也不会泛泛而谈,都是工程结合理论,在实际嵌入式开发中都用得到的知识。学员读了这本书,能快速构建嵌入式开发所需要的全套知识体系,学员遇到问题,能快速在自己的知识体系中找到其位置,知道该学什么,该从哪里着手。
带着这个初衷,经过几个月的努力,《嵌入式C语言自我修养》书稿V1.0版终于完成了:从一堆沙子开始,如何通过半导体工艺做出CPU的?一款CPU是如何设计出来的?芯片设计流程是怎么样的?CPU的流水线、乱序执行、分支预测、单发射多发射、多级cache、超线程技术、多核技术、SIMD/NEON是怎么工作的?GPU/DSP/FPGA/TPU/NPU是怎么回事?程序在CPU上是如何执行的?程序是如何编译链接重定位的?程序安装包是如何做的?程序的安装是怎么回事?程序是怎么运行的?程序运行在内存中是怎么动态变化的?函数调用过程中堆栈内存是如何动态变化的?内存泄漏是什么回事?段错误的本质是什么?为什么要有内存管理?如何真正理解指针?如何灵活地使用指针?为什么你看不懂Linux内核驱动源码?如何用面向对象思想去分析Linux内核源码?什么是C语言的模块化编程?为什么是回调函数?什么是框架?在AIoT时代如何提升自己的C语言编程技能?非计算机专业的学生如何入门操作系统?什么是中断?什么是文件系统?什么是系统调用?为什么要有系统调用?什么是进程?什么是线程?什么是协程?
按照这个顺序,从最底层到最上层,整个嵌入式知识体系也就搭建完成了。如果你是非计算机专业的学生,甚至是非电类的学生,不知道半导体工艺、不知道CPU的工作原理、不知道程序是怎么编译、安装和运行的、不知道C语言的模块化编程、多任务编程、面向对象编程思想。读了这本书可以补齐所有的理论短板和知识盲区。书稿大纲如下:
书稿根据《C语言嵌入式Linux高级编程》****改编,在此基础上又增加了物联网、AI等一些章节:比如现在异构处理器中的GPU、DSP、TPU、NPU是怎么回事,增加了CPU内部的工作原理及细节,比如乱序执行、流水线、分支预测、多核技术、big.LITTLE架构,增加了半导体工艺、芯片设计流程等章节。学员读完本书的预期目的是:能够快速构建嵌入式开发所需要的完整知识体系:半导体、集成电路、CPU内部工作原理、计算机体系架构、ARM汇编语言与反汇编、程序的编译运行原理、软件包的制作与安装、程序运行时的底层堆栈内存机制、GNU C扩展语法、C语言的面向对象思想编程、C语言的模块化编程、C语言的多任务编程思想...
大纲目录暂时分享出来了,如果大家有什么建议,觉得有什么需要完善的地方,欢迎留言,多提建议。