;************************************************************************
;*                                                                      *
;*  assembler definitions for enabling nested interrupts                *
;*                                                                      *
;************************************************************************

;************************************************************************
;* 1  Disclaimer                                                        *
;************************************************************************
;* __DISCLAIMER_START__                                                 *
;************************************************************************
;* (c) 2014-2016, Cypress Semiconductor Corporation
;* or a subsidiary of Cypress Semiconductor Corporation. All rights
;* reserved.
;*
;* This software, including source code, documentation and related
;* materials (乬Software乭), is owned by Cypress Semiconductor
;* Corporation or one of its subsidiaries (乬Cypress乭) and is protected by
;* and subject to worldwide patent protection (United States and foreign),
;* United States copyright laws and international treaty provisions.
;* Therefore, you may use this Software only as provided in the license
;* agreement accompanying the software package from which you
;* obtained this Software (乬EULA乭).
;*
;* If no EULA applies, Cypress hereby grants you a personal, nonexclusive,
;* non-transferable license to copy, modify, and compile the
;* Software source code solely for use in connection with Cypress乫s
;* integrated circuit products. Any reproduction, modification, translation,
;* compilation, or representation of this Software except as specified
;* above is prohibited without the express written permission of Cypress.
;*
;* Disclaimer: THIS SOFTWARE IS PROVIDED AS-IS, WITH NO
;* WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING,
;* BUT NOT LIMITED TO, NONINFRINGEMENT, IMPLIED
;* WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A
;* PARTICULAR PURPOSE. Cypress reserves the right to make
;* changes to the Software without notice. Cypress does not assume any
;* liability arising out of the application or use of the Software or any
;* product or circuit described in the Software. Cypress does not
;* authorize its products for use in any products where a malfunction or
;* failure of the Cypress product may reasonably be expected to result in
;* significant property damage, injury or death (乬High Risk Product乭). By
;* including Cypress乫s product in a High Risk Product, the manufacturer
;* of such system or application assumes all risk of such use and in doing
;* so agrees to indemnify Cypress against all liability.
;************************************************************************
;* __DISCLAIMER_END__                                                   *
;************************************************************************

/************************************************************************/
/* 5.2  Import symbols                                                  */
/************************************************************************/


        EXTERN DefaultDataAbortExceptionIsr

/************************************************************************/
/* 5.3  Export symbols                                                  */
/************************************************************************/

        PUBLIC DefaultDataAbortExceptionHandler

/************************************************************************/
/* 5.4  Declare sections                                                */
/************************************************************************/

        SECTION .text:CODE:ROOT(2)
        ARM
    //.text       ;* Declare code section. (Change section if you need.)
    //.nothumb    ;* use ARM mode.

   // .export     DefaultDataAbortExceptionHandler
   // .import     DefaultDataAbortExceptionIsr

DefaultDataAbortExceptionHandler:
    //add by zhangxuesong
    
    ;* 椺奜敪惗傾僪儗僗偵栠傞応崌
    ; SUB         lr, lr, #8

    ;* 椺奜敪惗傾僪儗僗偺師偺柦椷偵栠傞応崌
    SUB         lr, lr, #4
    STMDB       sp!,{r0-r3, r12,lr}     ;* Store remaining AAPCS register on system stack

    ;* Call interrupt service routine
    LDR         r0, =DefaultDataAbortExceptionIsr
    BLX         r0

    LDMIA       sp!,{r0-r3, r12, pc}^   ;* Restore AAPCS register and CPSR
    
    //BX lr ;
    //end by zhangxuesong
/************************************************************************/
/* 8  File end                                                          */
/************************************************************************/

        END

