一、单片机基础知识
1.单片机基本组成是什么?
单片机是一个集成电路芯片,拥有 中央处理器、存储器、输入/输出接口等等基本功能集成在同一个硅片上。
中央处理器与存储器没啥好讲的,CPU分为不同位数的架构,输入/输出接口就是与特定功能的设备进行交互。
除了此之外还有,中断控制器,用于控制各种的中断源,通信接口与上面输入/输出接口区分开,如SPI,I2C,完成与外部设备之间的通信,还有定时器/计数器,定时器的本质就是计数器。
2.MCU,SOC,FPGA,DSP的代表什么含义呢?
MCU上面已经讲了。
SOC叫做系统集成芯片,拆开来分析就是这个一个集成了很多功能的系统芯片,我也是理解为在MCU的内核基础上再添加一些特定的功能。
FPGA理解起来有些抽象,因为这个听起来有些离谱,使用软件改变硬件的功能,具体的实现过程可以不用关注。类似MCU,如果目标是做一个智能家居系统,MCU就好像一个遥控器,不需要关注系统的实现内部详情,只需要知道对应的“接口”有什么功能就行,但是FPGA就需要了解系统的每个功能的实现详情,将所有的功能集成在一个芯片上。FPGA对比MCU的集成电路芯片,优点是功耗更低,效率更高,缺点是开发的成本较高,开发周期较长。
DSP叫做数字信号处理,看得出来,本质还是一个处理器,已经有CPU,为什么还需要DSP呢?DSP的优点就是答案,在接受外部设备的模型信号,将模拟信号经过该处理器,成为一个数字信号(只有0与1二进制数据),这里的速度特别快,远大于CPU的速度,
对比DSP与与通用CPU的是,可以从性能、功耗、实时性、优点应用场景、缺点应用场景。
DSP在进行信号处理任务性能较好,例如滤波、编解码、变换操作,相同的信号处理任务,DSP的功耗会更少,DSP的实时性较好,对于较长的数据流,实时性就会得到体现,在视频、音频等应用场景较多,缺点是在一般计算任务,DSP的计算效率还没有通用CPU快呢。
3.单片机中程序存储在哪里?
这个答案根据时间先后顺序的,分为程序未运行与正常运行的时候两个阶段。
(1)程序未运行的时候,程序全部存在flash中,code存代码,Ro-data就是存储常量,只能读没法写,RW-data存储未初始化与已初始化的变量,RAM用不到,也压根没有RW-data,只有Zi-data,还都是随机值。
(2)程序运行的时候,RAM开始拷贝flash中的Rw-data,flash中就不管这个数据,除非断电重启或者复位操作,才需要重新执行上述的操作。
一句话概述:程序执行的时候代码存储在flash中,数据存储在RAM中。
4.单片机程序的BIN文件和HEX文件的区别?
如果使用Flash读取工具从单片机的Flash上完整读出来的文件可能是bin文件但绝对不是hex文件!
5.单片机与操作系统中应用程序在内存中分布对比?
一句话概括:操作系统的程序都是在RAM中的,单片机的应用程序对半分开,哈哈,数据当存在RAM,代码存在ROM(flash).