ARM架构(嵌入式概念)
前言
本篇文章开始带大家深入学习ARM架构,深入的学习ARM架构可以帮助我们深入的了解到最核心的内容,并且增强我们的底层思维能力。
一、MCU和MPU介绍和区别
MCU(Microcontroller Unit,微控制器单元)和MPU(Microprocessor Unit,微处理器单元)是嵌入式系统中常见的两种处理器类型,它们有一些相似之处,但也存在一些区别。
MCU(Microcontroller Unit):
MCU是一种完整的计算机系统集成在一颗芯片上,包括处理器核心(通常是微处理器)、存储器(如闪存和RAM)、输入/输出接口(如GPIO、UART、SPI等)、定时器、模拟电路(如ADC、DAC等)和其他外设。它主要用于嵌入式系统,如家电、汽车电子、智能设备等,通常有较低的功耗和较小的体积。MCU往往具有较低的成本,可裸片运行,且通常能够自带固件(如引导加载程序)。
MPU(Microprocessor Unit):
MPU是计算机系统中的主处理器单元,通常是一颗独立的芯片,它执行所有计算、控制和处理任务。MPU通常配备与它一起工作的外部存储器(如RAM、ROM、闪存)和外部设备(如输入/输出接口、硬盘、网络接口等)。MPU的处理能力较强,适用于需要大量数据处理和高性能计算的应用,如个人电脑、服务器、嵌入式Linux系统等。
区别:
1.集成度和外设:MCU是在单个芯片上集成了处理器核心、存储器和外设,而MPU通常需要外部芯片来提供存储器和外设。MCU在集成度方面更高。
2.功耗和成本:由于MCU通常用于功耗敏感的嵌入式系统,它们通常具有较低的功耗,并且成本相对较低。MPU则更适用于需要高性能和较高功耗的应用。
3.处理能力:MPU拥有更强大的处理能力,适用于需要复杂计算和大量数据处理的任务。MCU的处理能力相对较弱,适用于较简单的嵌入式应用。
总的来说,MCU和MPU都是用于嵌入式系统的处理器,但其设计目标、特点和适用范围有所不同。在选择时,需要根据具体应用的需求,考虑功耗、成本、性能要求等因素来选择适合的处理器类型。
二、嵌入式硬件结构与启动
在ARM架构中,ROM(Read-Only Memory,只读存储器)通常包含用于启动设备的固件程序,例如引导加载程序(Bootloader)。ROM中的程序负责在系统电源打开或复位时进行初始化,并选择设备的启动方式。
下面是ARM从ROM中读取程序进行选择设备启动方式的基本过程:
1.上电/复位:当系统上电或者复位时,处理器开始执行从ROM的起始地址处开始的指令。
2.ROM载入:处理器从ROM中读取初始的引导加载程序代码。
3.引导加载程序执行:引导加载程序是一个小型的固件程序,负责初始化系统硬件,包括外设和内存控制器。它还负责加载并运行操作系统或其他应用程序。
4.设备启动方式选择:引导加载程序的一个重要功能是决定设备的启动方式。根据具体的实现和设备的配置,引导加载程序可以通过不同的方式选择启动方式。这些启动方式可以包括从不同的存储设备(如闪存、SD卡、网络等)加载操作系统镜像,或者从其他引导设备(如串口、USB等)接收启动命令。
5.加载操作系统:引导加载程序根据选择的启动方式,从适当的存储设备中加载操作系统镜像到内存中。
6.跳转到操作系统:引导加载程序将控制权转移到已经加载的操作系统的入口点,操作系统接管处理器,并开始执行其自己的初始化和启动过程。
三、RAM和ROM
在ARM架构中,RAM(Random Access Memory,随机访问存储器)和ROM(Read-Only Memory,只读存储器)是常见的存储器类型,用于存储和处理数据、指令和程序。
RAM(随机访问存储器):
RAM是一种易于写入和读取数据的临时存储器。在ARM系统中,RAM通常用于存储正在执行的程序、变量、堆栈和其他临时数据。RAM是易失性存储器,意味着在断电或复位后数据将丢失。它具有较快的读写速度和随机访问的能力,适用于需要快速读写和频繁访问的数据和指令。RAM在ARM系统中通常分为不同的级别,如L1缓存、L2缓存和系统内存。
ROM(只读存储器):
ROM是一种只读的存储器,其中存储的数据在制造过程中被写入,并且在正常使用情况下不能被修改。在ARM系统中,ROM通常包含固化的引导加载程序(Bootloader)或其他不变的固件程序。ROM被用于存储启动代码、初始化程序和设备固件等不易改变的数据和指令。ROM可以提供始终可靠和可用的引导代码,即使在系统断电或异常情况下也能正常运行。
需要注意的是,随着技术的进步,现在的ROM已经演变为可以被修改的存储介质,例如闪存(Flash Memory)。闪存既可以作为只读存储器(例如存储固件程序),又可以作为可写存储器(用于存储数据和应用程序)。闪存具有较大的容量、较高的存储密度和非易失性的特点,广泛用于嵌入式系统中。
总结:
RAM和ROM在ARM架构中扮演着不同的角色。RAM用于存储临时数据、程序和堆栈,具有较快的读写速度。ROM用于存储引导加载程序和其他固件程序,其内容在制造过程中被写入,很难修改。闪存则是一种可读可写的存储介质,适用于存储固件、数据和应用程序。这些存储器类型在ARM系统中协同工作,为设备的运行和存储提供必要的支持。
总结
本篇文章就讲解到这里,下篇文章开始我们讲解使用寄存器点亮一个LED灯。