嵌入式硬件学习(一)
文章目录
一、ARM介绍
1、ARM公司
(1)主要设计ARM系列RISC处理器内核
(2)授权ARM内核给生产和销售半导体的合作伙伴,自己不生产芯片
(3)提供基于ARM架构的开发设计技术
2、ARM各系列
(1)A——特点:高性能、支持多核,应用场景:手机、电脑
(2)R——特点:实时性强,应用场景:汽车电子
(3)M——特点:低功耗、低延迟,应用场景:嵌入式系统、工业自动化
二、SOC概念
(1)SOC包括:kernal、总线、存储器、片内外设。
(2)kernal包括:
算术逻辑单元(ALU)、
寄存器(R0-R12)、
内存管理单元(MMU)——负责将RAM映射为虚拟内存、
高速缓存——i.cache、d.cache、
pc、lr、sp寄存器。
(3)内部总线包括:
AHB总线:高速总线,挂载存储器、LCD等高速设备。
APB总线:低速总线,挂载Timer、UART、I2C等。
(4)最小系统:电源、时钟、复位、ROM、RAM。
三、ROM和RAM的分类
RAM | 介绍 |
---|---|
sram | 用晶体管存储0和1,速度快,成本高,存储密度小 |
dram | 动态存储,用电容充放电存储0和1,功耗大,速度慢,成本低,存储密度大 |
sdram | 增加了同步电路,提高了读写速度 |
ddr ram | (double data rate sdram),为sdram的下一代 |
iram | 并非真正意义上的ram,通常iram就是sram,通常在soc内部,所以叫iram |
ROM | 介绍 |
---|---|
rom | 非易失性存储器,最早只读不写 |
prom | programmable rom,可编程的rom。能够写入一次 |
eprom | 可擦写的prom,可以重复擦写,需要特殊工具 |
eeprom | 电可擦写的prom |
flash | 新一代非易失性存储器,分为nor flash(可以寻址)和nand flash(不能寻址) |
四、编译流程
五、大小端
大小端是指数据在内存中的存储方法。
1、大端:高位字节在低地址,低位字节在高地址。
2、小端:低位字节在低地址,高位字节在高地址。
六、ARM的工作模式
ARM有7种基本工作模式:
1、User:非特权模式
2、FIQ:高优先级(fast)中断产生
3、IRQ:低优先级(normal)中断产生
4、Abort:存取异常产生
5、Supervisor:复位或者软中断指令执行
6、Undef:执行未定义指令
7、System:和User模式相同的寄存器集特权模式
七、ARM寄存器基本介绍
1、ARM有37个32bits长的寄存器:PC、CPSR、5个SPSR、30个通用寄存器。
2、Cortex有40个32bits长的寄存器。
3、sp寄存器:栈指针寄存器,主要用于临时存储局部变量、函数形参和返回地址。
4、lr寄存器:用于存储函数调用的返回地址。
5、pc寄存器:指向cpu执行的下一条指令。
八、判断一个数是不是立即数
判断条件有以下三点:
(1)如果这个数的范围在0-255之间,那么这个数一定是立即数;
(2)如果超出,需要把这个数展开成二进制,从高位依次向下第一个1和和最后一个1之间如果位数不超过8位(包含这两个1),如果超过了一定不是;
(3)如果不超过八位,还要看最低位1后面的零是否为偶数,如果是偶数,则是立即数。
九、ARM上电启动流程
1、硬件复位阶段
(1)电源上电:电源管理芯片确保各组件获得稳定供电;
(2)时钟初始化:晶振电路为系统提供时钟信号,锁相环将时钟频率提高到合适频率;
(3)复位信号:复位电路生成复位信号,将处理器和外设恢复到初始状态;
(4)内存初始化:检测是否能正常工作。
2、ROM固件启动阶段
(1)ROM引导程序执行:复位接触,处理器将从ROM固定地址开始执行指令。ROM中的引导程序(BootROM)是硬件厂商预置。
(2)启动模式选择:引导程序通过GPIO、DIP开关、Boot引脚等,确定从何处加载下一步引导程序。
(3)外设初始化
3、一级引导程序(Bootloader)加载
(1)加载Bootloader:根据BootROM的配置,从指定存储介质加载一级引导程序到RAM中。
(2)执行引导程序:初始化更复杂的硬件、配置必要外设、准备环境以加载操作系统内核或者二级引导程序。
4、二级引导程序加载
(1)加载内核:从存储器中读取操作系统内核
(2)设置启动参数、设置树加载、跳转到内核——将控制权交给操作系统内核,进入系统运行阶段。
5、操作系统内核启动
(1)内存管理初始化
(2)加载设备驱动,初始化硬件设备
(3)文件系统挂载
(4)启动用户空间
作者:Hello小赵