;************************************************************************ ;* * ;* 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