本书概览和内容介绍

220829na8p8cyjdp6q2wac

从一本书的目录可以大致看到一本书的内容的丰富程度是否值得一读,从本书的目录来看内容还是很丰富扎实的。

先是介绍了计算机的发展史,个人觉得既然以RP2040为基础进行讲解,这一部分可以重点偏向于嵌入式系统更好,毕竟通用计算机系统发展史很多书籍都会讲,再重复没太大新意也不是很契合本书重点。

220829y8i7878zannba72z

然后介绍了ARM汇编语言,以及最重要的异常和中断部分,这一部分是最基本的理论基础,值得详细介绍,所以组织这部分内容是不错的。

220829zwg1fiveqgrqwfew

然后介绍了RP2040芯片,契合书题

220932gih7twttwneg7kez

然后介绍了总线,并结合了RP2040的总线结构进行了介绍,这里业主要集中在理论介绍,较多的时序图,如果是我来介绍的话会介绍下如何阅读时序图,然后以一个内存写操作读操作为例进行AHB总线介绍,以一个外设寄存器读写为例来介绍APB总线

220932wk3opc2uc1c1kkwt

然后介绍了DMA,这也是一个非常重要的内容,介绍了理论但是却反实践,如果是我介绍,会以一个DMA接收串口数据和中断接收串口数据的案例进行介绍,对比DMA的优势和变成注意点,介绍burst等概念。

220932bb17k7uglll087n3

然后介绍了定时器,串口,SPI,IIC接口,也是介绍了理论,如果是我介绍会辨别以PWM驱动蜂鸣器播放音乐,串口实现命令行,SPI驱动TFT显示,IIC读写EEPROM等案例理论结合实践介绍。

221025dktbzzzyykxut96v

221025mgixsigmo12g0wgi

221025juj2ullvjv7l2421

然后介绍了ADC/DAC,人机接口秒如果是介绍会介绍ADC采集音频,DAC播放,LED调光,按键防抖,段码显示实践,LCD显示HelloWorld,触摸划线等案例,这些案例都是工作中会遇到的。

221111xjjsmd9mv3a3f669

221111iwcq56gg18zfqymg

最后介绍了嵌入式操作系统,可以以一个交通灯的而案例介绍系统组件,调度原理,信号量等原理。

221111p8sjj085ow8xt8er

本书优缺点和建议

2.1 每章后面都有思考题和习题这个很好,但是缺乏理论结合实践的设计,问题都基本是理论问题,很少有结合工程实践的问题。启发性不强。看了下几个作者都是学校教师,还是走的传统教材的风格,建议可以考虑改善下。

2.2 缺乏理论结合实践,比如3.3章节介绍了汇编语言和高级语言的接口,介绍了很多,让初学者很难理解,如果是我来写这章的话,我会以一个点亮LED的程序为例,先写c代码,然后介绍如何编译,如何查看反汇编代码,如何对照反汇编代码来看c代码,如何仿真单步运行,查看传参,查看栈帧,如何查看寄存器等等,这样寓教于乐,一个实践案例既教了理论又教了实践,且这个实践是工作中就是这么做的,读者从学校到工作就不会觉得学习的没有用处!实践中一般不会从0开始写汇编,一般都是修改,比如先基于c反汇编得出汇编框架再优化,或者基于已有汇编,然后优化,所以授人以鱼不如授人以渔才是根本。

2.3 书题基于树莓派Pico,但是全文没有介绍到一处树莓派Pico这个开发板,只介绍到了RP2040芯片本身,如果能以树莓派Pico来介绍各章节内容,并且能在开发板上演示案例,那么将契合书题,现在感觉有点文不对题。