Lpc系列ARM的中断向量表中实现方式

发布者:gamma14最新更新时间:2018-12-12 来源: eefocus关键字:Lpc系列  ARM  中断向量表  实现方式 手机看文章 扫描二维码
随时随地手机看文章

         实现方式有两种:第一种 0x18处放置        在发生中断时   跳到VICVectAddr中的地址处 代码如下


        EXTERN undef_handler, prefetch_handler, data_handler, fiq_handler



        ARM

__vector:

        ;;

        ldr   pc,[pc,#+24]              ;; Reset

        ldr   pc,[pc,#+24]              ;; Undefined instructions

        B   .                           ;; Software interrupt (SWI/SVC)

        ldr   pc,[pc,#+24]              ;; Prefetch abort

        ldr   pc,[pc,#+24]              ;; Data abort

__vector_0x14:

        DC32  0                         ;; RESERVED

        ldr   pc,[pc,#-0xFF0]           ;; IRQ

        ldr   pc,[pc,#+24]              ;; FIQ


        DC32  __iar_program_start       ;; Reset

        DC32  undef_handler             ;; Undefined instructions

        DC32  0                         ;; Software interrupt (SWI/SVC)

        DC32  prefetch_handler          ;; Prefetch abort

        DC32  data_handler              ;; Data abort

        DC32  0                         ;; RESERVED

        DC32  0                         ;; IRQ

        DC32  fiq_handler               ;; FIQ


第二种   这种方式也可以称为万能的中断方式 可以用于任何一种ARM 程序先跳到一个C语言编写的函数中 然后在这个函数里找到中断服务程序的地址(找中断服务程序地址的方法会因芯片的不同而不同) 


EXTERN IRQ_Handler


        ARM

__vector:

        ;;

        ldr   pc,[pc,#+24]              ;; Reset

        B   .                           ;; Undefined instructions

        B   .                           ;; Software interrupt (SWI/SVC)

        B   .                           ;; Prefetch abort

        B   .                           ;; Data abort

__vector_0x14:

        DC32  0                         ;; RESERVED

        ldr   pc,[pc,#+24]              ;; IRQ

        ldr   pc,[pc,#+24]              ;; FIQ


        DC32  __iar_program_start       ;; Reset

        DC32  0                         ;; Undefined instructions

        DC32  0                         ;; Software interrupt (SWI/SVC)

        DC32  0                         ;; Prefetch abort

        DC32  0                         ;; Data abort

        DC32  0                         ;; RESERVED

        DC32  IRQ_Handler               ;; IRQ


 


这种是跳到C函数IRQ_Handler中,IRQ_Handler 的代码如下,其功能也是取出 VICVectAddr中的地址进行执行


__irq __arm void IRQ_Handler(void)

{

  void (*interrupt_function)();

  unsigned int vector;


  vector = VICVectAddr;   // 取得中断服务程序地址

  interrupt_function = (void(*)())vector;

  (*interrupt_function)();  // Call vectored interrupt function.

  VICVectAddr = 0;        // 清除中断

}


关键字:Lpc系列  ARM  中断向量表  实现方式 引用地址:Lpc系列ARM的中断向量表中实现方式

上一篇:利用IAR调试Mini2440
下一篇:LPC1768 SPI 外设控制DA(PCM1796)调试记录

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

基于ARM2210的智能移动机器人人机界面设计
引言 嵌入式系统以其高性能、低功耗、低成本的优点,已经在很大程度上改变了人们的生活。如,MP3播放器、智能手机、数码相机产品等已经渗入人们生活的各个方面。随着液晶显示技术的不断进步,以及图形用户界面GUI (Graphical User Interface)技术的广泛应用,人机界面也越来越友好。它能为移动机器人的运动控制提供直观的路径图形、数据参数等。本文介绍了一种以嵌入式微处理器LPC2210为基础,应用ZLG/GUI软件包设计移动机器人人机界面的方法。 我们设计开发的智能移动机器人是一个以PC104嵌入式微机为中心处理器,TMS320F2812为运动控制器,超声波传感器作为避障的集合环境感知、动态决策与规划、行为控制
[单片机]
μC/OS-Ⅱ在ARM单片机S3C44B0x上的移植
目前,嵌入式系统在工业控制、家用电器、移动通信、PDA等各种领域得到了越来越广泛的应用。由于用户对嵌入式产品的性能要求越来越高,程序设计也变得越来越复杂,这就需要一个通用的嵌入式实时操作系统来对其进行管理和控制。对移植了操作系统的嵌入式系统进行设计和开发,可以大大减小程序员的负担,对于不同的应用可以按照相同的步骤来完成系统的设计。 μC/OS-Ⅱ是一种简单高效、源代码公开的嵌入式实时操作系统,具有良好的可扩展性和可移植性,被广泛的应用到各种嵌人式处理器上。μCOS-Ⅱ操作系统拥有可固化,可裁剪,可剥夺性的实时内核,可同时管理64个系统任务。利用移植μCOS-Ⅱ操作系统的嵌入式微处理器来设计和开发产品,对于提高产品的性能,减少产
[单片机]
μC/OS-Ⅱ在<font color='red'>ARM</font>单片机S3C44B0x上的移植
基于ARM7的工业控制数据采集系统的研究
0 引言 在工业测量控制领域,需要获取大量的实时现场参数,由于环境恶劣复杂多变,数据采集系统多为工控机来完成,但工控机体积大、功耗大,可靠性较差、安装不方便同时成本也不低。另外还有专用的数据采集系统,可以独立工作,利用DSP(数字信号处理器)和MCU(微控制器)完成。缺点是价格很高,人机交互能力差。嵌入式处理器的高速发展有效地弥补了工控机的不足,尤其是ARM处理器。它不仅集合上述采集系统的优点,克服了其缺点,同时还加入了一些新的功能,新的特性。新功能新特性的加入,又进一步拓展了其应用领域,应用范围,能针对不同的需求,具有很大的灵活性。 该方案采取ARM处理器来实现,ARM处理器通常都是SoC芯片,其大量的片上外设,相比传统控
[单片机]
基于<font color='red'>ARM</font>7的工业控制数据采集系统的研究
嵌入式ARM下的触摸屏驱动系统设计
文章首先介绍了触摸屏的实现原理,然后介绍了触摸屏芯片AD7873的特性,在此基础上设计了ad7873与i.MX27和触摸屏的连接PCB图,最后依照硬件连接图设计了嵌入式Linux下的驱动,并成功通过了tclib触摸屏专业测试软件的测试,在家庭智能网关系统的测试中也成功运行,实现了从硬件到软件的嵌入式下触摸屏的驱动系统设计。 1引言 随着计算机技术的发展和普及,触摸屏技术得到了越来越广泛应用,在各种手持设备中,如手机、MP4、掌上游戏机、掌上PDA等,由于其方便、舒适,使其完全摆脱了键盘和鼠标的束缚,使人机交互更为直截了当。而在微软最新开发的windows7操作系统中,就有其值得骄傲并加以推广的多点触摸技术,并成为一大卖点。
[电源管理]
嵌入式<font color='red'>ARM</font>下的触摸屏驱动系统设计
arm 内核编译
1、决定在什么地方编译你的内核 首先,你需要决定在什么地方编译你的ARM Linux内核。你的HOME目录是一个编译内核的好地方。如果你希望使用其它的目录,可以适当地取代$HOME目录。但是不推荐在/usr/src/linux目录下编译内核。 2、决定内核的版本 对于任何的内核版本 x.y.z, ◎x-主要版本号 ◎y-次要版本号,其中偶数表示稳定版本,奇数表示开发或测试版本 ◎z-补丁的级别 在ARM的内核树中,你会发现内核版本号后面有一个后缀:-rmkN, or -vrsN,其中'N'是补丁版本号。例如,2.4.26-vrs1表明这个ARM内核的补丁应该应用于2.4.26的内核。 注意:从2.6.0-tes
[单片机]
在QEMU上用Busybox模拟ARM文件系统的步骤
1.下载最新的 busybox代码,解压。 2. 编译busybox cd busybox-1.21.1/ export ARCH=arm export CROSS_COMPILE=arm-linux-gnueabi- make defconfig make install 之后,会生成一个 _install 目录,里面是一个root file system. 默认情况下,生成的busybox二进制文件是动态链接的。所以,需要拷贝用到的动态库到根文件系统里面。 可以用如下的命令查看用到了哪些动态库: 然后,把相应的库从arm-linux-gnueabi/libc/lib/拷到 busybox-1.21.1/_in
[单片机]
在QEMU上用Busybox模拟<font color='red'>ARM</font>文件系统的步骤
ARM移植之BootLoader(2)
3.BootLoader第一阶段   3.1硬件设备初始化   基本的硬件初始化工作包括:    屏蔽所有的中断;    设置CPU的速度和时钟频率;    RAM初始化;    初始化LED   ARM的中断向量表设置在0地址开始的8个字空间中,如下表:   每当其中的某个异常发生后即将PC值置到相应的中断向量处,每个中断向量处放置一个跳转指令到相应的中断服务程序去进行处理,中断向量表的程序如下: @ 0x00: Reset b Reset @ 0x04: Undefined instruction exception UndefEntryPoint: b Ha
[单片机]
<font color='red'>ARM</font>移植之BootLoader(2)
基于ARM920T微处理器的IDE硬盘接口设计与实现
1 引言 20世纪90年代后期,嵌入式系统在工业控制、远程监控和数据采集等领域的应用日趋广泛,人们对嵌入式系统的存储容量也提出了较高的要求。因此研制适用于嵌入式系统的大容量、高速率、高可靠性的数据存储系统变得日益重要。本文针对一款基于ARM920T芯片的开发板,根据ATA硬盘接口规范,设计了IDE硬盘接口电路,实现了对IDE硬盘的读写,可以在Linux系统中对其上的文件系统自由访问,达到了高速率和高可靠性的要求。 2 ARM920T与S3C2410介绍 ARM 包括一系列微处理芯片技术。ARM920T是ARM系列微处理器的一种,它采用5阶段管道化ARM9TDMI内核,同时配备了Thumb扩展、EmbeddedICE调
[单片机]
小广播
添点儿料...
无论热点新闻、行业分析、技术干货……
设计资源 培训 开发板 精华推荐

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

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

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