How to handle ARM exceptions and interrupts

Publisher:BlissfulJourneyLatest update time:2015-03-13 Source: go-gddqKeywords:ARM Reading articles on mobile phones Scan QR code
Read articles on your mobile phone anytime, anywhere
       Exception and interrupt handling, which is responsible for handling errors, interrupts, and other events triggered by external systems.

       ARM has 7 exceptions: data abort, fast interrupt request, interrupt request, pre-fetch abort, software interrupt, reset and undefined instruction.

       There are two types of interrupts. The first type is caused by peripherals, namely IRQ and FIQ. The second type is a special instruction that causes an interrupt, SWI. Both interrupts will suspend normal program execution.
    
       Exceptions are any situation that requires the normal execution of instructions to be terminated, including reset of the ARM core, failure of instruction fetch or memory access, encountering an undefined instruction, executing a software interrupt instruction, or an external interrupt. Exception handling is the method of dealing with these exceptional situations. Most exceptions correspond to a software exception handler, a software program that is executed when an exception occurs.

       Each exception causes the core to enter a specific mode. Each processor mode has its own set of grouped registers, and the processor mode determines which registers are active and the full read/write access to the cpsr. At the same time, any ARM processor mode can be entered by programmatically changing the cpsr. User and system modes are not entered through exceptions, and can only modify the cpsr.

Exceptions and their modes
Exception Mode Purpose                   
Fast interrupt request FIQ Fast interrupt request processing        
Interrupt request IRQ Interrupt request processing
SWI and reset SVC Protected mode of the operating system
Prefetch abort and data abort abort Virtual memory or memory protection processing
Undefined instruction undefined Software emulation of hardware coprocessor

       An interrupt is a special exception caused by an ARM peripheral. IRQ exceptions are used for normal operating system transaction processing. FIQ exceptions are generally reserved for individual interrupt sources. IRQ can be interrupted by FIQ, but IRQ cannot interrupt FIQ. In order to make FIQ faster, this mode has more shadow registers. FIQ cannot call SWI (software interrupt). FIQ must also disable interrupts.
   

       Each peripheral device has an interrupt line connected to the vectored interrupt controller. The interrupt sources of peripheral functions are generally WDT, timer, UART, I2C, SPI, RTC, A/D, etc. The priority of these interrupts can be set through registers.

Keywords:ARM Reference address:How to handle ARM exceptions and interrupts

Previous article:Implementation of AMR Speech Codec in TD-SCDMA System
Next article:Use of ARMer9 development platform based on s3c2410

Latest Microcontroller Articles
  • Download from the Internet--ARM Getting Started Notes
    A brief introduction: From today on, the ARM notebook of the rookie is open, and it can be regarded as a place to store these notes. Why publish it? Maybe you are interested in it. In fact, the reason for these notes is ...
  • Learn ARM development(22)
    Turning off and on interrupts Interrupts are an efficient dialogue mechanism, but sometimes you don't want to interrupt the program while it is running. For example, when you are printing something, the program suddenly interrupts and another ...
  • Learn ARM development(21)
    First, declare the task pointer, because it will be used later. Task pointer volatile TASK_TCB* volatile g_pCurrentTask = NULL;volatile TASK_TCB* vol ...
  • Learn ARM development(20)
    With the previous Tick interrupt, the basic task switching conditions are ready. However, this "easterly" is also difficult to understand. Only through continuous practice can we understand it. ...
  • Learn ARM development(19)
    After many days of hard work, I finally got the interrupt working. But in order to allow RTOS to use timer interrupts, what kind of interrupts can be implemented in S3C44B0? There are two methods in S3C44B0. ...
  • Learn ARM development(14)
  • Learn ARM development(15)
  • Learn ARM development(16)
  • Learn ARM development(17)
Change More Related Popular Components

EEWorld
subscription
account

EEWorld
service
account

Automotive
development
circle

About Us Customer Service Contact Information Datasheet Sitemap LatestNews


Room 1530, 15th Floor, Building B, No.18 Zhongguancun Street, Haidian District, Beijing, Postal Code: 100190 China Telephone: 008610 8235 0740

Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved 京ICP证060456号 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号