在嵌入式开发中,处理器有两种:微控制器和微处理器。那么这两种处理器有何区别呢?微控制器 = CPU + 片内内存 + 片内外设;微处理器 = CPU。在以前嵌入式硬件资源很少时,它们的区别对于硬件工程师来说还是很大的。但是在现代的嵌入式中,它们的概念都差不多了。相对来说,微控制器具有成本低,功耗低等优点,常用于嵌入式系统设计;对于软件工程师而言,微控制器和微处理器没有任何区别。
成都创新互联公司致力于互联网网站建设与网站营销,提供网站设计制作、成都网站制作、网站开发、seo优化、网站排名、互联网营销、成都小程序开发、公众号商城、等建站开发,成都创新互联公司网站建设策划专家,为不同类型的客户提供良好的互联网应用定制解决方案,帮助客户在新的全球化互联网环境中保持优势。本系列博客内容是根据狄泰软件学院的《门徒计划》中的 主线课程 相关内容总结而来,狄泰技术交流群:199546072。
下来我们来看看寄存器的分类:CPU 寄存器和外设寄存器。CPU 寄存器是指专用指令执行、数据运算、变量处理以及参数传递;外设寄存器是指用于控制外设的行为和工作方式,寄存器值得配置需要根据芯片手册完成。在处理器中关键寄存器:PC - 重新计数器(指令指针 IP)和 SP - 栈指针(Stack Pointer)。PC 程序计数器的特性,每执行一条指令,PC 中的值就会发生变化,PC 时钟保存下一条 CPU 要执行的指令地址。SP栈指针的特性,始终指向栈空间的顶端,实现 LIFO 特性,保存中断断点、函数调用返回点以及 CPU 现场数据等。我们来看看 PC 和 SP 的使用案例:函数调用。如下
在函数调用的时候,PC 指向跳转函数的地址处。在它执行完跳转函数的内容后,接着又返回前面的函数中接着执行代码。那么它如何知道该返回到哪呢?此时便用到了 SP 栈指针。在 PC 进行跳转前会将此时的上下文信息保存到 SP 栈指针指向的栈上。当执行完跳转函数的内容后想要返回原来函数的地址时,此时便会利用 SP 栈指针进行返回。bp 指针是用来保存 SP 栈指针的基地址的,当保存了 PC 的上下文信息时,SP 将会向下移动。
下来我们来看看处理器的 IO 操作,处理器与外设之间的数据通信通过 IO 操作完成。IO 分为内存映射 IO空间和独立 IO 空间。内存映射 IO 空间是指外设通过精密的硬件连接映射到处理器的地址空间,通过地址访问的方式与外设进行通信;而独立 IO 空间是指独立于地址空间,无法通过地址访问外设,使用专用指令与外设进行通信。从软件工程师的角度来看,只需要对不同的 IO 端口读写就可以操作外设;读写 IO 端口时候的具体值和意义需要查询具体的硬件手册。那么硬件设计的关键是什么呢?如下
通过具体的硬件设计,可以使得地址总线上的值在某个范围时,片选信号为“真”,即:使能连接的设备,从而读取相应地址中的数据!这些都是硬件工程师关心的东西,我们只需要能看的懂就可以了。下来以具体设备的地址映射为例来进行说明,地址为0xFFFF1234,如下
我们看到低 16 位是通过与门来进行连接的,也就是说,只有它们全为 1 时才能接通。接下来看看处理器启动过程:1、处理器上电后,PC 寄存器固化了一个默认值;2、PC 默认值用于决定第一条执行指令;3、第一条执行指定隶属于启动顺序。如下图所示
在嵌入式的启动程序中,我们称之为 BootLoader,它也是系统上电后运行的第一个程序(Not OS)。根据运行阶段,体积和功能的不同分为三个部分:a> BL0 - 固化于硬件中,用于初始化硬件,加载并运行 BL1;b> BL1 - 存储于外部存储设备中,用于初始化主存,加载并运行 BL2;c> BL2 - 存储于外部存储设备中,用于引导操作系统执行。
另外有需要云服务器可以了解下创新互联cdcxhl.cn,海内外云服务器15元起步,三天无理由+7*72小时售后在线,公司持有idc许可证,提供“云服务器、裸金属服务器、高防服务器、香港服务器、美国服务器、虚拟主机、免备案服务器”等云主机租用服务以及企业上云的综合解决方案,具有“安全稳定、简单易用、服务可用性高、性价比高”等特点与优势,专为企业上云打造定制,能够满足用户丰富、多元化的应用场景需求。