ARM中断区别-LPC2142与S3C2440的区别

发布者:数字驿站最新更新时间:2016-12-31 来源: eefocus关键字:ARM  中断区别  LPC2142  S3C2440 手机看文章 扫描二维码
随时随地手机看文章

/***************************************************
 *说    明 :ARM中断区别-LPC2142与S3C2440的区别
 ***************************************************/

    LPC 与三星ARM的区别就是三星固定了中断向量的地址,而LPC的就没有。例如三星的S3C2440

所有的中断源都有相对应的中断向量。 

  • 关于三星ARM

 

(1)使用向量中断 

ENTRY

b ResetHandler                                  ;   0x00

b HandlerUndef                                  ;   0x04

b HandlerSWI                                    ;   0x08

b HandlerPabort                                 ;  0x0c

b HandlerDabort                                 ;   0x10

b .                                            ;   0x14

b HandlerIRQ                                    ;   0x18

b HandlerFIQ                                    ;   0x1c

 

ldrpc,=HandlerEINT0                           ;   0x20

ldrpc,=HandlerEINT1

ldrpc,=HandlerEINT2

ldrpc,=HandlerEINT3

ldrpc,=HandlerEINT4567

ldrpc,=HandlerTICK                            ;   0x34

b.

b.

ldrpc,=HandlerZDMA0                           ;   0x40

ldrpc,=HandlerZDMA1

ldrpc,=HandlerBDMA0

ldrpc,=HandlerBDMA1

ldrpc,=HandlerWDT

ldrpc,=HandlerUERR01                          ;   0x54

b.

b.

ldrpc,=HandlerTIMER0                          ;   0x60

ldrpc,=HandlerTIMER1

ldrpc,=HandlerTIMER2

ldrpc,=HandlerTIMER3

ldrpc,=HandlerTIMER4

ldrpc,=HandlerTIMER5                          ;   0x74

b.

b.

ldrpc,=HandlerURXD0                           ;   0x80

ldrpc,=HandlerURXD1

ldrpc,=HandlerIIC

ldrpc,=HandlerSIO

ldrpc,=HandlerUTXD0

ldrpc,=HandlerUTXD1                            ;   0x94

b.

b.

ldrpc,=HandlerRTC                             ;   0xa0

b.

b.

b.

b.

b .

b.

ldrpc,=HandlerADC                             ;   0xb4


精析:很大不同的是ldr pc,=HandlerEINT0开始不同,三星ARM恰当利用了这些地址,很方便完成中断的跳转。


 

(2)不使用向量中断 

ENTRY

b ResetHandler                                 ;  for debug

b HandlerUndef                                 ;  handlerUndef

b HandlerSWI                                   ;  SWI interrupt handler

b HandlerPabort                                ;  handlerPAbort

b HandlerDabort                                ;  handlerDAbort

b .                                           ;  handlerReserved

b IsrIRQ

b HandlerFIQ

. . . . . .

 

IsrIRQ

sub             sp,sp,#4                       ;  reserved for PC

stmfd           sp!,{r8-r9}

 

ldr             r9,=I_ISPR

ldr             r9,[r9]

mov             r8,#0x0

0               movs            r9,r9,lsr #1

bcs             %F1

add             r8,r8,#4

b               %B0

 

1               ldr             r9,=HandleADC

add             r9,r9,r8

ldr             r9,[r9]

str             r9,[sp,#8]

ldmfd           sp!,{r8-r9,pc}

.. . . . .

HandleADC               #       4

HandleRTC               #       4

HandleUTXD1           #         4

HandleUTXD0           #         4

.. . . . .

HandleEINT3           #         4

HandleEINT2           #         4

HandleEINT1           #         4

HandleEINT0           #         4                              ;  0xc1(c7)fff84

 

精析:

很大不同的是IsrIRQ,还有的是IsrIRQ没有进行sub lr,lr,#4的操作。

 

原因是这里没有出现过函数调用,那么lr仍然

是进入中断前保存的lr的值.由于当函数加上__irq关键字(中断服务函数)时,

编译器在执行中断服务函数之前自动添加上

sub lr,lr,#4

stmfd sp!,{r0-r3,r12,lr}(只压栈r0-r3,r12,lr原因时ARM内核进入中断时默认压栈r4-r7)

.....

ldmfd sp!,{r0-r3,r12,pc}^

注意:IsrIRQ是不可重入的。

 

; 在这里不出现sub lr,lr,#4原因是这里没有出现过函数调用,那么lr仍然

; 是进入中断前保存的lr的值.由于当函数加上__irq关键字(中断服务函数)时,

; 编译器在执行中断服务函数之前自动添加上

; sub lr,lr,#4

; stmfd sp!,{r0-r3,r12,lr}(只压栈r0-r3,r12,lr原因时ARM内核进入中断时默认压栈r4-r7)

; .....

; ldmfd sp!,{r0-r3,r12,pc}^

; 注意:IsrIRQ是不可重入的。

 

  • 关于LPC的ARM

LPC的ARM我们要着重关心VICVectAddr寄存器,为什么这样说呢?

 

LDR     PC, ResetAddr

LDR     PC, UndefinedAddr

LDR     PC, SWI_Addr

LDR     PC, PrefetchAddr

LDR     PC, DataAbortAddr

DCD     0xb9205f80

LDR     PC, [PC, #-0xff0]

LDR     PC,FIQ_Addr


精析:

    LDR PC,[PC,#-0xff0]的地址为0x18,那么这时PC的指向值是什么呢?我们可以这样计算得到

PC=0x18+8-0xff0=0xfffff030,恰好是VICVectAddr寄存器的地址,而且VICVectAddr保存的是要执行的中断例程的地址,因为当中断发生时,硬件自动把如VICVectAdd0、VICVectAddr1的值复制到VICVectAddr中。

   因此,LPC只要设置好VICVectAdd0类似的地址就可以实现中断了。


关键字:ARM  中断区别  LPC2142  S3C2440 引用地址:ARM中断区别-LPC2142与S3C2440的区别

上一篇:ARM9中断调试(1)
下一篇:S3C2440 I2C实现

推荐阅读最新更新时间:2024-03-16 15:28

ARM裸机篇(二)——i.MX6ULL启动过程
一、 i.MX6ULL启动流程 I.MX6U 支持多种启动方式以及启动设备,比如可以从 SD/EMMC、 NAND Flash、 QSPI Flash等启动。 i.MX6UL完整的启动流程如下图所示,完成启动任务的代码位于0x0000 0000 地址处的Boot ROM。 启动流程过程大致可分为六步。①检查CPU的ID ,②检查复 位状态,③获取启动方式,④加载程序映像,⑤校验映像,⑥跳转到映像去执行。 i.MX6ULL有四个启动模式,如下表,具体使用哪种启动模式通过内部寄存器 BOOT_MODE 中的值来选择,如图: 当 BOOT_MODE 设置为内部 BOOT 模式以后,所谓“内部”是相对于“Serial Down
[单片机]
<font color='red'>ARM</font>裸机篇(二)——i.MX6ULL启动过程
ARM7 lpc2148之单路LED控制实验
说明:力天电子的此款开发板,跟周立功的LPC2131不同,周立功的开发板上可以用跳线棒来选择是否用595驱动,周立功课本上进行GPIO输出实验——单路LED控制实验时,直接把LED接到了arm2131处理器上,如下图所示: 而力天电子的流水灯跟驱动是直接连在一起的必须使用595驱动,如下图所示: #include NXP/iolpc2148.h #define SCLK 0x01 24 #define MISO 0x01 5 #define MOSI 0x01 6 #define RCK 0x01 7 void Delayn(unsigned long n); void HC
[单片机]
<font color='red'>ARM</font>7 lpc2148之单路LED控制实验
ARM免预付授权费拼IoT 台IP厂商推强化版快速开发方案
ARM日前宣布其DesignStart计划再升级,旗下Cortex-M0及Cortex-M3免预付授权费,将要加速迈向1兆连网装置之路。而熟悉半导体相关业者表示,对于台系IC设计与IP矽智财业者来说,对产业的影响可说是如人饮水、冷暖自知。据了解,如晶心科等台系IP业者,也会于近期推出在价格、产品效能更优化的强化版快速开发(Quick-start)方案因应,如更小体积、更低功耗的M801相关方案,也希望客户了解价格并非是唯一考量,如何兼顾产品效能来加速IC设计客户量产时程,找出最适合解决方案才是重点。   ARM DesignStart 计划扩充阵容,纳入ARM Cortex-M3处理器,IC设计客户如MCU微控制器业者无需预付授权
[半导体设计/制造]
基于ARM的综合测试仪设计
  我国的疆域广阔,时区分布不同,海拔以及温度,湿度等气候差异都很大,实时的了解我们所处位置的气候情况对工作和生活是很重要的。尤其对一些野外工作的科研人员来说,需要测试海拔,温度,湿度等物理量作为参考因素。为了测量这些物理量需要我们携带多种测试设备,这对野外工作很不方便。为了实时方便的了解我们所处的海拔高度和天气情况,我们需要有更便捷,功能更齐全的综合测量仪器。同时可以将现场的数据送到PC,以方便今后的进一步分析和处理。   2系统组成以及基本原理   整个综合测试仪主要由五个部分组成。分别是核心控制单元,湿度测量,海拔高度测量,温度测量,以及测量数据显示部分。湿度测量是通过湿度传感器将环境湿度物理量变换为电信号,最终将处
[单片机]
基于<font color='red'>ARM</font>的综合测试仪设计
ARM Cortex-A8内核处理器及android操作系统上实现双屏异像显示应用
随着ARM Cotex-A8与Android的组合越来越强大,其从智能移动终端如智能手机,平板电脑等消费电子领域渗透到各行各业的趋势愈发明显。但受制于芯片体系结构和操作系统构架的设计,在Android平台上通常只能实现同步双屏的一些应用,如下图基于智能手机的显示器应用或者基于平板电脑的投影仪应用: 图1:手机接HDMI电视机 图2:平板电脑接VGA投影仪 在这样的应用中,大屏主要作为小屏的延伸,其目的是让视频或显示界面的可视区域变大,以便让观看的体验更好或者让更多的人看到小屏上的内容。其操作的UI界面与内容界面都同时显示在不同的屏上。专业上可称为同步双显或称双屏同像技术。而对于性能弱一点的处理器或操作系统,由于
[嵌入式]
Arm点赞联发科天玑9000 5G旗舰SoC
近日,联发科宣布推出全新天玑9000旗舰5G移动平台,率先采用台积电4nm先进制程,CPU采用面向未来十年的新一代Armv9架构,包含1个主频高达3.05GHz的Arm Cortex-X2超大核、3个主频高达2.85GHz的Arm Cortex-A710大核和4个主频为1.8GHz的Arm Cortex-A510能效核心,内置14MB超大容量缓存组合,为智能手机提供超乎想象的强大计算性能。 天玑9000搭载Arm Mali-G710旗舰十核GPU,支持LPDDR5X内存,传输速率可达7500Mbps,支持双通道UFS3.1闪存,平台性能与能效提升的同时为全场景应用加速。 天玑9000集成MediaTek第五代AI处理器AP
[手机便携]
基于ARM920T核的电磁流量仪表的开发
  0 引言   随着流量检测仪器的技术发展,对流量的测量仪表提出了更高的应用需求。传统的流量检测仪表一般依据各自的测量机理,通过简单的信息分析处理来完成测量工作。因此,在处理能力、测量精度、误差修正、功能扩展等方面都存在着局限性。新一代流量检测仪器将以更优良的性能取而代之。目前,高速、高精度、大容量的嵌入式处理器在控制和测量领域的应用越来越普遍。   1 电磁流量仪表的基本原理   电磁流量仪表是依据法拉第电磁感应定律来测量管内流体流量的测量装置,现把电磁流量仪表传感器原理说明,如图1 所示。 图1 电磁流量仪表传感器原理图   当流体在管道内流动经过一横向磁场B的时候,相当于有一定电导率的导体在切割磁力线,形成动
[单片机]
三星宣布与Arm联合优化下一代基于GAA的Cortex-X CPU
三星电子日前宣布,将与Arm合作,提供基于三星代工厂最新的全环栅极(GAA)工艺技术开发的优化下一代Arm Cortex-X CPU。该计划建立在三星代工厂与Arm多年合作伙伴关系的基础上,三星代工厂已经在各种工艺节点上生产了数百万带有Arm CPU IP的器件。 此次合作为三星和Arm之间的一系列公告和计划创新奠定了基础。两家公司制定了大胆的计划,为下一代数据中心和基础设施定制芯片重塑2纳米(nm) GAA,以及推出将彻底改变未来人工智能(AI)移动计算市场的突破性AI小芯片解决方案。 三星电子执行副总裁兼Foundry负责人Jongwook Kye表示:“随着我们继续进入Gen AI时代,我们很高兴能够扩大与Arm的合
[半导体设计/制造]
小广播
添点儿料...
无论热点新闻、行业分析、技术干货……
设计资源 培训 开发板 精华推荐

最新单片机文章
何立民专栏 单片机及嵌入式宝典

北京航空航天大学教授,20余年来致力于单片机与嵌入式系统推广工作。

换一换 更多 相关热搜器件
电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved