ARM逻辑-ARM体系结构与汇编指令笔记2

 7、s5pv210内存地址映射
     s5pv210属于ARM Cortex-A8架构,32位CPU
     32根地址线决定了CPU的地址空间为4G.如何分配使用?
     这个问题就是内存映射问题
     s5pv210 datasheet 内存映射位置
     IROM &IRAM  指的是内部集成到SOC的RAM和ROM
     onenand/nand:
     DRAM0 
     DRAM1 
  8、CPU和外部存储器接口
     硬盘特点 
     norflash 总线访问 接到SROM bank 有点是可以
     
     x210 有两个版本 Nand和iNand版
     分别使用Nandflash和iNand为外部存储器
     
     s5pv210共支持4个SD/MMC通道 其中通道0和2依次用作启动
  9、s5pv210的启动过程详解
     内存:
        SRAM   特点:容量小 ,价格高   不需要软件初始化,直接上电就可用
        DRAM   动态内存 特点:容量大 ,价格低,缺点就是需要软件初始化后使用
     单片机中:
        内存需求量小,而且希望开发尽量简单,适合全部用SRAM
     PC机:
        内存需求量大,而且软件复杂,不在乎DRAM初始化开销,适合全部用DRAM
     嵌入式系统:
        内存需求量大,而且 没有NorFlash等可启动介质
        外部大容量NANd+外部大容量DRAM+soc内置SRAM
        
     
     外存:
        NandFlash (跟硬盘一样):特点 容量大  价格低, 缺点不能总线访问,需要运行初始化,然后时序读写
        norflash :能进行总线访问,用来作启动
        硬盘不能做启动        
    s5pv210使用的启动方式是:
        210内置一块96kB大小的SRAM(IRAM),同时还有一块内置的64kB大小的norflash(叫IROM)。
        210的启动大致是这样的:
        1、CPU上电后先从IROM中读取预先设置的代码(BL0),执行。
           这段代码作了系统基本的初始化,如CPU时钟,关闭开门狗。。。。
           (这一段IROM是三星出厂前设置,这段IROM 不能负责初始化外部DRAM的)
           这段代码只能初始化SOC内部的东西。然后这段代码会判断选择的启动模式。通过条线更改启动模式,然后
           从相应外部存储区读取第一部分启动代码(BL1,大小为16k)到内部SRAM。
         
        2、从SRAM去运行刚上一步读取来的BL1(16kB),然后执行,BL1负责初始化nandflash,然后将BL2读取待IRAM(剩余80kB),
        然后运行。
        
        思路:因为启动代码的大小是不定的,有些公司可能96kb就够了,有些公司可能1MB都不够。三星的解决方案是:把启动代码分为2班
        这两部分协同工作来完成启动的。
     10、s5pv210的启动过程详解2    
        BL0作了说明?
        关闭看门狗
        初始化指令chche
        初始化栈
        初始化堆
        初始化块设备复制函数
        设置soc系统时钟
        复制BL1到内部IRAM(16kb)
        检查BL1的校验和
        检查是否是安全启动
        跳转到BL1去执行
        s5pv210所有启动
         先1st启动,通过OMpin选择启动介质
         再2nd启动,从sd2         
         在uart启动
         再USB启动
     11、如何在开发板上选择不同的启动方式
     12、ARM编程模式和7中工作模式 
         
          word: 32bits
          ARM指令集(32-bit)
          Thumb 指令集(16-bit)
          thumb2指令集(16-bit &32-bit)
        ARM 有7个基本工作模式
          User:非特权模式
          FIQ:单一个高优先级产生中断则进入这种模式
          IRQ:低优先级中断会进入这种模式
          SVC:当复位和软中断指令执行时将会进入这种模式
          abort:当存取异常时会进入这种模式
          undef:执行未定义指令时会进入这种模式
          
          system:使用和user模式相同寄存器的特权模式
          
          程序员可以通过写代码切换模式(CPSR寄存器):
          也可以在CPU某些情况下自动切换。
          各种模式下访问权限是不同的。
        为什么设计这些模式
          CPU设计多种模式是为了方便操作系统的多种角色安全等级需要。
      13、ARM的37个寄存器
           每种模式下最多能见到18个寄存器,其他寄存器市面名字相同,但是在当前模式下不可见
           影子寄存器:
           r13,r14 r15 ,在每种模式下都是不同的
           CPSR 程序寄存器 
           程序跑飞:PC寄存器中的内容为非法内容。
      14、ARM异常处理方式介绍
           什么叫异常?
           异常会打断正在执行的工作,并且一般我们希望异常处理完成后继续执行原来的工作。
           中断时异常的一种
           异步的
           同步的 同步时钟
           异常向量表
              异常发生时,CPU会自动跳转,PC指针跳转到异常向量处处理异常,有时会伴有辅助动作。
              是硬件向软件提供的处理异常的支持。
           ARM的异常处理机制
              保存CPSR
              设置CPSR
              保存返回地址到LR_<mode>
              设置PC为相应的异常向量指针
              返回时,异常处理需要:
              从SPSR_<mode>恢复CPSR
              从LR_<mode>恢复PC
              
              RESET  地址:
              硬件中断:
              软件中断:用来实现操作系统的系统调用

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

小相619

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值