Changeset d188e6e8 in rtems


Ignore:
Timestamp:
Dec 8, 2020, 3:11:34 PM (8 months ago)
Author:
Kinsey Moore <kinsey.moore@…>
Branches:
master
Children:
1a7afb5
Parents:
f046af5
git-author:
Kinsey Moore <kinsey.moore@…> (12/08/20 15:11:34)
git-committer:
Joel Sherrill <joel@…> (12/10/20 17:37:50)
Message:

cpukit/aarch64: Add explanation of exception flow

Location:
cpukit/score/cpu/aarch64
Files:
2 edited

Legend:

Unmodified
Added
Removed
  • cpukit/score/cpu/aarch64/aarch64-exception-default.S

    rf046af5 rd188e6e8  
    5555/*
    5656 * This is the exception vector table and the pointers to the default
    57  * exceptions handlers.
     57 * exceptions handlers. Each vector in the table has space for up to 32
     58 * instructions. The space of the last two instructions in each vector is used
     59 * for the exception handler pointer.
     60 *
     61 * The operation of all exceptions is as follows:
     62 * * An exception occurs
     63 * * A vector is chosen based on the exception type and machine state
     64 * * Execution begins at the chosen vector
     65 * * X0 and LR are pushed onto the current stack
     66 * * An unconditional branch and link is taken to the next instruction to get
     67 *   the PC
     68 * * The exception handler pointer (EHP) is retrieved from the current vector using
     69 *   the PC
     70 * * Branch and link to the EHP
     71 * * X0 and LR are popped from the current stack after returning from the EHP
     72 * * The exception returns to the previous execution state
    5873 */
    5974
  • cpukit/score/cpu/aarch64/aarch64-exception-interrupt.S

    rf046af5 rd188e6e8  
    256256Execute irq handler
    257257Restore volatile regs from interrupt stack
    258 Exception return
     258Return to embedded exception vector code
    259259*/
    260260
     
    282282Call thread dispatch
    283283Restore volatile registers from thread stack
    284 Return to dispatch
     284Return to embedded exception vector code
    285285*/
    286286
Note: See TracChangeset for help on using the changeset viewer.