Interrupts
3.4.2
Vector Pragma
The vector pragma creates one or more dispatch functions targeting the indicated
function. For target functions specified with the interrupt pragma, this functions as
if the vector clause had been used. The target function of a vector pragma can be
any function, including external functions implemented in assembly or by other means.
# pragma vector function-name vector vector-number [,
vector-number-list ]
The following pragma defines a dispatch function targeting foo at exception vector
address 54.
#pragma vector foo 54
3.4.3
Vector Attribute
A handler function can be associated with one or more exception vector addresses via
an attribute. The at_vector attribute indicates that the handler function should itself
be placed at the exception vector address. The vector attribute indicates that a
dispatch function should be created at the exception vector address(es).
For example, the following declaration specifies that function foo will be created as an
interrupt handler function of priority four. foo will be located at the address of exception
vector 54.
void __attribute__ ((interrupt(ipl4))) __attribute__ ((at_vector(54)))
foo (void)
The following declaration specifies that function foo will be created as an interrupt
handler function of priority four. Define dispatch functions targeting foo at exception
vector addresses 52 and 53.
void __attribute__ ((interrupt(ipl4))) __attribute__ ((vector(53,
52))) foo (void)
3.5
EXCEPTION HANDLERS
The PIC32MX devices also have two exception vectors for non-interrupt exceptions.
These exceptions are grouped into bootstrap exceptions and general exceptions.
3.5.1
Bootstrap Exception
A reset exception is any exception which occurs while bootstrap code is running
( Status BEV =1 ). All reset exceptions are vectored to 0xBFC00380 .
At this location the MPLAB C32 toolchain places a branch instruction targeting a
function named _bootstrap_exception_handler() . In the standard library, a
default weak version of this function is provided which merely goes into an infinite loop.
If the user application provides an implementation of
_bootstrap_exception_handler() , that implementation will be used instead.
3.5.2
General Exception
A general exception is any non-interrupt exception which occurs during program
execution outside of bootstrap code ( Status BEV =0 ). General exceptions are vectored
to offset 0x180 from EBase .
At this location the MPLAB C32 toolchain places a branch instruction targeting a
function named _general_exception_context() . The provided implementation
of this function saves context, calls an application handler function, restores context
and performs a return from exception instruction. The context saved is the hi and lo
registers and all general purpose registers except s0-s8 , which are defined to be
preserved by all called functions and so are not necessary to actively save again here.
? 2007 Microchip Technology Inc.
DS51686A-page 49
相关PDF资料
SW300003-EVAL LIBRARY SOFT MODEM-EVAL ONLY
SW300010-EVAL SPEECH RECOG LIBRARY-EVAL ONLY
SW300040-EVAL LIBRARY NOISE SUPPR-EVAL ONLY
SW300060-EVAL LIBRARY ACOUSTIC ECHO-EVAL ONLY
SW300070-EVAL SOFTWARE LIBR ENC/DEC EVAL ONLY
SW500012 HI-TECH C PRO FOR PIC32
SY87701LHI-EVAL BOARD EVAL SY87701 EXPERIMENT
SY87729LHI-EVAL BOARD EVAL N SY87729 EXPERIMENT
相关代理商/技术参数
SW006021-1 制造商:Microchip Technology 功能描述:MPLAB XC8 STANDARD COMPILER 制造商:Microchip Technology Inc 功能描述:COMPILER MPLAB XC8 STD 制造商:Microchip Technology Inc 功能描述:COMPILER MPLAB XC8 STANDARD 制造商:Microchip Technology Inc 功能描述:COMPILER, MPLAB XC8, STANDARD 制造商:Microchip Technology Inc 功能描述:MPLAB XC8 ANSI C Compiler for the PIC10 (12),(16),(18) (Workstation License) 制造商:Microchip Technology Inc 功能描述:MPLAB XC8 Standard Compiler 制造商:Microchip Technology Inc 功能描述:OPTOCOUPLERS; Core Architecture:PIC; Software Edition:Standard
SW006021-1N 制造商:Microchip Technology 功能描述:MPLAB XC8 STANDARD COMPILER (F 制造商:Microchip Technology Inc 功能描述:MPLAB XC8 STANDARD COMPILER (FLOATING LICENSE) - Boxed Product (Development Kits) 制造商:Microchip Technology Inc 功能描述:COMPILER MPLAB XC8 STD FLOAT LIC 制造商:Microchip Technology Inc 功能描述:MPLAB XC8 Standard Compiler (Fltng Lic)
SW006021-2 制造商:Microchip Technology 功能描述:MPLAB XC8 PRO COMPILER WORKSTATION LICENSE 制造商:Microchip Technology Inc 功能描述:MPLAB XC8 PRO COMPILER - Boxed Product (Development Kits) 制造商:Microchip Technology Inc 功能描述:COMPILER MPLAB XC8 PRO 制造商:Microchip Technology Inc 功能描述:COMPILER, MPLAB XC8, PRO 制造商:Microchip Technology Inc 功能描述:MPLAB XC8 ANSI PRO Compiler for the PIC10 (12),(16),(18) (Workstation License) 制造商:Microchip Technology Inc 功能描述:MPLAB XC8 PRO Compiler 制造商:Microchip Technology Inc 功能描述:SOFTWARE TOOL, MPLAB XC8 PRO COMPILER; Core Architecture:PIC; Supported Families:PIC10, PIC16, PIC18; Software Edition:Linux; License Type:Floating - node; No. of User Licenses:1; Supported Hosts:-
SW006021-2C 制造商:Microchip Technology Inc 功能描述:COMPILER MPLAB XC8 PRO CHI
SW006021-2N 功能描述:开发软件 MPLAB XC8 PRO Compiler (Fltng Lic) RoHS:否 制造商:Atollic Inc. 产品:Compilers/Debuggers 用于:ARM7, ARM9, Cortex-A, Cortex-M, Cortex-R Processors
SW006022-1 制造商:Microchip Technology 功能描述:MPLAB XC16 STANDARD COMPILER 制造商:Microchip Technology Inc 功能描述:MPLAB XC16 STANDARD COMPILER - Boxed Product (Development Kits) 制造商:Microchip Technology Inc 功能描述:COMPILER MPLAB XC16 STD 制造商:Microchip Technology Inc 功能描述:COMPILER MPLAB XC16 STANDARD 制造商:Microchip Technology Inc 功能描述:COMPILER, MPLAB XC16, STANDARD 制造商:Microchip Technology Inc 功能描述:MPLAB XC16 Standard Compiler (Workstation License) 制造商:Microchip Technology Inc 功能描述:OPTOCOUPLERS; Core Architecture:PIC, dsPIC; Software Edition:Standard
SW006022-1N 制造商:Microchip Technology 功能描述:MPLAB XC16 STANDARD COMPILER ( 制造商:Microchip Technology Inc 功能描述:MPLAB XC16 STANDARD COMPILER (FLOATING LICENSE) - Boxed Product (Development Kits) 制造商:Microchip Technology Inc 功能描述:COMPILER MPLAB XC16 FLOAT LIC 制造商:Microchip Technology Inc 功能描述:MPLAB XC16 Standard Compiler (Fltng Lic)
SW006022-2 功能描述:开发软件 MPLAB XC16 PRO Compiler RoHS:否 制造商:Microchip Technology 产品: 用于: