国嵌学习——ARM

NOR启动:在片选0位置放置的是2Mnor flash,在片选6位置放置的是内存0x30000000

ARM工作模式

ARM处理器的运行模式可以通过软件改变,也可以通过外部中断或异常处理改变。应用程序运行在用户模式下,当处理器运行在用户模式下时,某些被保护的系统资源是不能被访问的。

除用户模式以外,其余的所有6种模式称为非用户模式,或特权模式(privileged modes);其中出去用户模式和系统模式以外的5种又称为异常模式(exception modes),常用语处理终端或异常,以及需要访问受保护的系统资源等情况。

处理器的开发工具,处理器的工作模式,处理器的寄存器,处理器的指令集

ARM寄存器

ARM处理器共有3732位寄存器,其中31个为通用寄存器,6个为状态寄存器。这些寄存器不能被同时访问,具体哪些寄存器是可以访问的,取决ARM处理器的工作状态及具体的运行模式。但在任何时候,通用局存期R14~R0、程序计数器PC、一个状态寄存器都是可访问的。

ARM工作状态下,任意时刻可以访问16个通用寄存器和一到两个状态寄存器。在非用户模式(特权模式)下,则可访问到特定模式分组寄存器

使用ADS查看寄存器

ARM寻址方式

处理器根据指令中给出的地址信息来寻找物理地址的方式

GPIO

S3c2440130gpio,分为10

每组GPIOGPA-GPJ)们都可以通过3个寄存器来控制与访问,这3个寄存器分别为:

——GPxCONGPIO配置寄存器

——GPxDATGPIO数据寄存器

——GPxUP:上拉电阻控制寄存器:某位为1时,相应引脚无内部上拉电阻;为0时相应的引脚使用内部上拉电阻

(其中xAB......HJ

LED控制思想

1.先将相应的引脚设置为输出模式;

2.再向相应的引脚输出低电平即可点亮LED灯。

ARM中断机制

1.查询方式

程序不断地查询各设备的状态,并作出相应的反应。该方式实现简单,常用在比较单一的系统中,比如一个温控系统中可以使用查询方式不断检测温度的变化。

2.中断方式

当事件发生时,硬件会设置某个寄存器CPU每执行完一个指令时,查看这个寄存器,如果所关注的时间发生了,则中断当前程序,跳转到一个固定的地址处理这个事件,处理完后返回到被中断的程序中继续运行

中断处理流程

1.中断控制器汇集各类外设发出的中断信号,然后通知CPU

2.CPU存当前程序的运行环境,然后调用中断服务程序(ISR)来处理中断

3.在ISR中通过读取外设的相关寄存器来设别中断的类型,并进行相应的处理

4清除中断:通过读写相关中断控制寄存器和外设相关寄存器来实现

5恢复被中断程序的执行环境,继续执行被中断的程序

 

S3c244060个中断源

SUBSRCPND

SUBSRCPND寄存器用来标明子中断(如:INT_RXD0)是否发生.S3C244015个子中断,SUBSRCPND中每一位对应一个子中断,当这些子中断发生时,相应的位被置为1.清除子中断只需向SUBSRCPND寄存器中相应位写入1page-392

INTSUBMSK

INTSUBMSK寄存器用来屏蔽SUBSRCPND寄存器所标示的中断。INTSUBMSK寄存器中某位被设为1时,相应的子中断被屏蔽。设置为0时,标示子中断被允许。(s3c2440.pfd page-395

SRCPND

SRCPND中每一位用来标明一个(或一类)中断是否已经发生。例如:SUBSRCPND寄存器中的子中断INT_RXD0发生了,且没有被INTSUBMSK屏蔽,则SRCPNDINT_UART0位被置1.SRCPND寄存器的清除与SUBSRCPND寄存器相似,若想清除某一位,往此位写入1

INTMSK

INTMSK寄存器用来屏蔽SRCPND所标示的中断。INTMSK某位被设置为1时,对应的中断被屏蔽,设置为0时,相应中断被允许。INTMSK只能屏蔽设为IRQ的中断,不能屏蔽设为FIQ的中断page-388

INTMOD

INTMOD寄存器中某位被设置为1时,它所对应的中断源会被设置为FIQ模式,即此中断发生时,CPU将进入快速中断模式,这通常用来处理特别紧急的中断。当该位被置为0时,表示为IRQ模式(page-387

FIQ&IRQ

IRQ模式下,中断处理程序需要自己保存R8R12这几个寄存器,退出中断处理时需要自己恢复这几个寄存器,而FIQ模式由于这几个寄存器都有back寄存器(fiq_R8....,模式切换时CPU自动保存这些值到back寄存器,退出FIQ模式时自动恢复,所以这个过程FIQIRQ快。FIQIRQ有更高优先级,如果FIQIRQ同时发生,那么FIQ先处理

优先级选择-分析(page-382

INTPND

经过中断优先级仲裁器选出优先级高的中断后,这个中断在INTPND寄存器中的相应位被置1,随后,CPU将进入中断模式处理它。同一时间内,此寄存器只有1位被置1;在ISR中可以根据这个位确定中断类型。清除该中断时,往这个位写入0

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值