📄 pacexc.s
字号:
; --------------------------------------------------------------------------- ; Hyper Operating System V4 μITRON4.0慌屯 Real-Time OS ; プロセッサ藐据步コンポ〖ネント (ARM脱) ; 毋嘲ハンドラ ; ; Copyright (C) 1998-2002 by Project HOS ; http://sourceforge.jp/projects/hos/ ; --------------------------------------------------------------------------- INCLUDE pacarm.inc AREA inthdr_code, CODE, READONLY EXPORT _HOS_CpuExceptionHandler; ----------------------------------------------; CPU毋嘲ハンドラ; ---------------------------------------------- IMPORT kernel_sta_exc ; CPU毋嘲ハンドラ倡幌借妄 IMPORT kernel_end_exc ; CPU毋嘲ハンドラ姜位借妄 IMPORT kernel_exe_exc ; CPU毋嘲ハンドラの悸乖 IMPORT kernel_int_sp ; 充り哈み脱スタックアドレス IMPORT _HOS_int_cnt ; 充り哈みネスト搀眶 IMPORT _HOS_int_sp ; 充り哈み箕スタック锣闰 _HOS_CpuExceptionHandler ; ---- Systemモ〖ドに败乖してレジスタ锣闰 mov r13, #I_Bit:OR:F_Bit:OR:Mode_SYS msr cpsr_csxf, r13 stmfd sp!, {r1-r3, ip, lr} ; 绕脱レジスタ锣闰 ; ---- 傅のモ〖ドに提ってspsr瘦赂 mov r1, #I_Bit:OR:F_Bit:OR:Mode_UND msr cpsr_c, r1 mrs r1, spsr ; spsr 艰り叫し mov r2, lr ; 充り哈み牲耽黎瘦赂 ; ---- USRモ〖ドに败乖 mov r3, #I_Bit:OR:F_Bit:OR:Mode_USR msr cpsr_c, r3 ; ---- レジスタ锣闰 stmfd sp!, {r0-r2} ; a1, spsr_irq, lr_irq 瘦赂 ; ---- 驴脚充り哈みチェック ldr r0, =_HOS_int_cnt ldr r1, [r0] ; 充り哈みネストカウンタ艰评 cmp r1, #0 add r1, r1, #1 ; 充り哈みネストカウンタインクリメント str r1, [r0] bne MultipleInt ; 充り哈み面なら尸呆 ; ---- スタックの掐れ仑え ldr r0, =_HOS_int_sp str sp, [r0] ; スタックポインタを锣闰 ldr r0, =kernel_int_sp ldr sp, [r0] ; 充り哈み脱スタックを肋年 ; ---- CPU毋嘲ハンドラ借妄の倡幌 bl kernel_sta_exc ; CPU毋嘲ハンドラ倡幌借妄 bl kernel_exe_exc ; 充り哈み借妄悸乖 ; ---- スタックの牲耽 ldr r0, =_HOS_int_sp ldr sp, [r0] ; スタックポインタを牲耽 ; ---- 充り哈みネストカウントデクリメント ldr r0, =_HOS_int_cnt mov r1, #0 str r1, [r0] ; 充り哈みネストカウンタクリア ; ---- 觅变ディスパッチ悸乖 bl kernel_end_exc ; 觅变ディスパッチ悸乖 ; ---- CPU毋嘲ハンドラからの牲耽ReturnExc IMPORT _HOS_swi_ret ldmfd sp!, {r0-r2} ldr r3, =_HOS_swi_ret stmia r3, {r0-r2} ; 充り哈み牲耽デ〖タ肋年 ldmfd sp!, {r1-r3, ip, lr} ; レジスタ牲耽 mov a1, #2 swi 0x10 ;---- 充り哈み面の借妄MultipleInt ; ---- 充り哈み借妄 bl kernel_sta_exc ; CPU毋嘲ハンドラ倡幌借妄 ; ---- 充り哈みネストカウントデクリメント ldr r0, =_HOS_int_sp ldr r1, [r0] add r1, r1, #1 str r1, [r0] b ReturnExc END; --------------------------------------------------------------------------- ; Copyright (C) 1998-2002 by Project HOS ; ---------------------------------------------------------------------------
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -