📄 breakhdr.s
字号:
/*""FILE COMMENT""************************************************************** System Name : RENESAS 7145 micro T-Engine* File Name : breakhdr.S* Version : 1.01.00* Contents : User Break Handler entry* Model : RENESAS T-Engine/uT-Engine* CPU : RENESAS T-Engine Series CPU* Compiler : GNU* OS : T-Kernel** note : The Software is being delivered to you "AS IS" * : and Renesas,whether explicitly or implicitly makes * : no warranty as to its Use or performance. * : RENESAS AND ITS SUPPLIER DO NOT AND CANNOT WARRANT * : THE PERFORMANCE OR RESULTS YOU MAY OBTAIN BY USING * : THE SOFTWARE. AS TO ANY MATTER INCLUDING WITHOUT * : LIMITATION NONINFRINGEMENT OF THIRD PARTY RIGHTS,* : MERCHANTABILITY, INTEGRATION, SATISFACTORY QUALITY, * : OR FITNESS FOR ANY PARTICULAR PURPOSE.** Copyright (c) 2004-2006 RENESAS TECHNOLOGY CORP. All Rights Reserved.* AND RENESAS SOLUTIONS CORP. All Rights Reserved.** history : 2004.10.01 ver1.00.00* : 2006.02.01 ver1.01.00*""FILE COMMENT END""*********************************************************/#include <machine.h>/*""FUNC COMMENT""******************************************************* * ID : X.Y.Z * Outline : UserBreak/NMI/Exception Handler Entry(Assembler) *----------------------------------------------------------------------- * Include : *----------------------------------------------------------------------- * Definition : UserBreakHandler *----------------------------------------------------------------------- * Function : UserBreak/NMI/Exception Handler Entry(Assembler) *----------------------------------------------------------------------- * Argument : None *----------------------------------------------------------------------- * Return : None *----------------------------------------------------------------------- * Input : None * Output : None *----------------------------------------------------------------------- * Used Func : break_shell() *----------------------------------------------------------------------- * Notice : In coming here,some register saved already as follows: * High Address +--------+ * | SR | * | PC | * | R3 |(=dintno) * | R2 | * Low Address +--------+ *""FUNC COMMENT END""***************************************************/ .text .balign 2 .globl Csym(UserBreakHandler)Csym(UserBreakHandler): mov.l DisableIntSR,r2 ldc r2, sr mov r15, r2 mov.l BreakStackTop,r15 mov.l r0, @-r2 // Save register mov.l r1, @-r2 // Save register mov.l r4, @-r2 // Save register mov.l r5, @-r2 // Save register mov.l r6, @-r2 // Save register mov.l r7, @-r2 // Save register mov.l r8, @-r2 // Save register mov.l r9, @-r2 mov.l r10, @-r2 mov.l r11, @-r2 mov.l r12, @-r2 mov.l r13, @-r2 mov.l r14, @-r2 stc.l gbr, @-r2 sts.l pr, @-r2 sts.l macl,@-r2 sts.l mach,@-r2 mov r3, r5 // R5=dintno mov.l r2, @-SP mov.l C_BreakEntry,r0 jsr @r0 // call break(regaddr) mov r2, r4 // R4=RegTable(delayed slot) mov.l @r15, r15 lds.l @SP+, mach // Restore register lds.l @SP+, macl lds.l @SP+, pr ldc.l @SP+, gbr mov.l @SP+, r14 mov.l @SP+, r13 mov.l @SP+, r12 mov.l @SP+, r11 mov.l @SP+, r10 mov.l @SP+, r9 mov.l @SP+, r8 mov.l @SP+, r7 mov.l @SP+, r6 mov.l @SP+, r5 mov.l @SP+, r4 mov.l @SP+, r1 mov.l @SP+, r0 mov.l @SP+, r2 mov.l @SP+, r3 rte nop .balign 4C_BreakEntry: .long _break_shellDisableIntSR: .long 0x000000F0BreakStackTop: .long 0xFFFFE400
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -