ARM预备知识

    xiaoxiao2021-03-25  108

    1】半导体器件的开关特性

    二极管:正向导通

    三极管:区分NPN和PNP

    NPN:B极高电平,三极管导通,电压方向C->E

    PNP: B极低电平,三极管导通,电压方向E->C

    MOS管:区分N沟道和P沟道

    N沟道:G极高电平,MOS管导通,通常S极接地

    P沟道:G极低电平,MOS管导通,通常S极接Vcc

     

    2】逻辑运算和位运算

    与运算:与0清零

    或运算:或1置1

    异或:  异或1取反

     

    位运算:(重点)

    & | ~ << >>

    int a;

     

    1. 将a的第3位置1

       0000 0000 ... 1000   0x8  0x1<<3

       a = a | 0x8;     ==>  a = a | (0x1<<3);

     

            2. 将a的第三位清零

       1111 1111 ... 0111       ~(0x1<<3)

       a = a & 0xfffffff7;   ==> a = a & (~(0x1<<3));                // a = a & (0x0<<3); 错误

    3. 将a的第2位和第3位置1   0000 0000 ... 1100       0x3<<2              

       a = a | (0x1<<2) | (0x1<<3);   ==>   a = a | (0x3<<2);

    4. 将a的第2位和第3位清零      ~(0x3<<2)

       a = a & (~(0x1<<2));

       a = a & (~(0x1<<3));    ==>   a = a & (~(0x3<<2));

     

     

     

    位运算练习:

        2. 将a的第2位和第3位先清零然后置1

    a = a & (~(0x3<<2)) | (0x3<<2);                        [1]

     

        3. 将a的第5、4、3、2这四个位设置为   0101           位域   [5:2]: 0001  ....

                                             5432                         0111  .....

     

    a = a & (~(0xf<<2));             *************0000**     先清零

    a = a | (0x5<<2);                *************0101**     再设置

     

     

     

    3】计算机组成原理

    存储器: 三级存储系统

    主存储器(内存): cpu统一编址的范围内

    存放正在运行的程序和数据

    内存条  RAM SDRAM  SRAM DRAM

    特点:掉电易失  速度快   价格贵  容量小   cpu可以直接访问

     

    辅助存储器:

    存放暂时不参加运行的程序和数据

    硬盘、磁盘  ROM   flash  nandFlash  norflash  emmc

    特点:掉电不易失  速度慢  价格便宜  容量大   cpu不可以直接访问

     

    高速缓冲器(cache):

    存放正在运行的程序中比较活跃的部分

    特点:掉电易失  速度更快  价格更贵   容量更小

     

    运算器:ALU

     

     

    计算机的总线结构

    总线是一组能为多个部件服务的公共信息传送线路,它能分时地发送与接收各部件的信息。

     

     

    ARM体系结构

    ARM 约定:

        Byte :  8 bits

        Halfword :  16 bits (2 byte)

                Word :  32 bits (4 byte)   字

     

     

     

    所有处理器按照指令集架构进行分类:

    1. 精简指令集处理器    RISC        指令少  功能弱   指令定长

    arm

     

    2. 复杂指令集处理器    CISC        指令多  功能多   指令不定长

    x86

     

    大部分ARM core 提供:

    ARM 指令集(32-bit)             代码(指令)密度小

    Thumb 指令集(16-bit )          代码(指令)密度大

     

     

    【4】arm处理器的两种状态

    当处理器执行在ARM状态:

    所有指令 32 bits 宽

    所有指令必须 word 对齐

    所以 pc值由bits [31:2]决定, bits [1:0] 未定义 (所以指令不能halfword / byte对齐).

    当处理器执行在Thumb状态:

    所有指令 16 bits 宽

    所有指令必须 halfword 对齐

    所以 pc值由bits [31:1]决定, bits [0] 未定义 (所以指令不能 byte对齐).

     

     

     

    第一条指令 0x0000 0000         ... 0000

    第二条指令 0x0000 0004         ... 0100

    第三条指令 0x0000 0008         ... 1000

       0x0000 000c         ... 1100

       0x0000 0010         ... 0000

     

    【5】arm处理器工作模式

    ARM 有8个基本工作模式:

    User : 非特权模式,大部分任务执行在这种模式

            FIQ :   当一个高优先级(fast) 中断产生时将会进入这种模式

            IRQ :   当一个低优先级(normal) 中断产生时将会进入这种模式

            Svc :   当复位或软中断指令执行时将会进入这种模式

            Abort : 当存取异常时将会进入这种模式

    Undef : 当执行未定义指令时会进入这种模式

            Sys : 使用和User模式相同寄存器集的特权模式

    Cortex-A特有模式:

    Monitor : 是为了安全而扩展出的用于执行安全监控代码的模式;

    也是一种特权模式

     

    1. user是非特权模式,其他7种模式都是特权模式

    2. 除了user、sys、monitor其他5种模式称为异常模式

     

    异常模式        fiq      irq         svc                   abort                          undef  

            异常源          FIQ      IRQ       Reset/SWI      Data Abort/Prefetch Abort         Undefined instruction

     

    reset的优先级最高    FIQ的优先级比IRQ高

     

     

    7】arm处理器的工作寄存器 - 处理器内部的存储器

    ARM 有37个32-Bits长的寄存器.    Cortex体系结构下有40个32-Bits长的寄存器

       1 个用作PC( program counter)

               1个用作CPSR(current program status register)

               5个用作SPSR(saved program status registers)

               30 个通用寄存器

     

    相应的 r13 (the stack pointer, sp)  栈指针寄存器    存放本模式下的栈的栈顶地址

           r14 (the link register, lr)  链接寄存器      保存返回地址

    相应的 r15 ( the program counter, pc) 保存下一条将要执行的指令的地址     pc = lr

    相应的CPSR(current program status register, cpsr)  保存当前程序的状态  (当前工作模式,处理器状态,ALU的值)

    相应的 spsr (saved program status register)   用来备份cpsr寄存器的

    转载请注明原文地址: https://ju.6miu.com/read-14914.html

    最新回复(0)