freepeople性欧美熟妇, 色戒完整版无删减158分钟hd, 无码精品国产vα在线观看DVD, 丰满少妇伦精品无码专区在线观看,艾栗栗与纹身男宾馆3p50分钟,国产AV片在线观看,黑人与美女高潮,18岁女RAPPERDISSSUBS,国产手机在机看影片

正文內(nèi)容

armlinux內(nèi)核中arm中斷實(shí)現(xiàn)詳解(編輯修改稿)

2025-07-22 06:02 本頁(yè)面
 

【文章內(nèi)容簡(jiǎn)介】 。ldr r0, [tsk, TI_PREEMPT]str r8, [tsk, TI_PREEMPT]teq r0, r7strne r0, [r0, r0]endififdef CONFIG_TRACE_IRQFLAGSbl trace_hardirqs_onendifmov why, 0b ret_to_user @中斷處理完成,返回中斷產(chǎn)生的位置, 上面代碼中的usr_entry是一個(gè)宏,主要實(shí)現(xiàn)了將usr模式下的寄存器、中斷返回地址保存到堆棧中。.macro usr_entrysub sp, sp, S_FRAME_SIZE @ S_FRAME_SIZE的值在arch\arm\kernel\@ 中定義 DEFINE(S_FRAME_SIZE, sizeof(struct pt_regs))。實(shí)際上等于72stmib sp, {r1 r12}ldmia r0, {r1 r3}add r0, sp, S_PC @ here for interlock avoidancemov r4, 1 @ str r1, [sp] @ save the real r0 copied@ from the exception stack@@ We are now ready to fill in the remaining blanks on the stack:@@ r2 lr_exception, already fixed up for correct return/restart@ r3 spsr_exception@ r4 orig_r0 (see pt_regs definition in )@@ Also, separately save sp_usr and lr_usr@stmia r0, {r2 r4}stmdb r0, {sp, lr}^@@ Enable the alignment trap while in kernel mode@alignment_trap r0@@ Clear FP to mark the first stack frame@zero_fp.endm上面的這段代碼主要在填充結(jié)構(gòu)體pt_regs ,這里提到的struct pt_regs,在include/asm/。此時(shí)sp指向struct pt_regs。 struct pt_regs {long uregs[18]。}。define ARM_cpsr uregs[16]define ARM_pc uregs[15]define ARM_lr uregs[14]define ARM_sp uregs[13]define ARM_ip uregs[12]define ARM_fp uregs[11]define ARM_r10 uregs[10]define ARM_r9 uregs[9]define ARM_r8 uregs[8]define ARM_r7 uregs[7]define ARM_r6 uregs[6]define ARM_r5 uregs[5]define ARM_r4 uregs[4]define ARM_r3 uregs[3]define ARM_r2 uregs[2]define ARM_r1 uregs[1]define ARM_r0 uregs[0]define ARM_ORIG_r0 uregs[17] irq_handler的實(shí)現(xiàn)過(guò)程,arch\arm\kernel\.macro irq_handlerget_irqnr_preamble r5, lr@在include/asm/archs3c2410/,什么都不做1: get_irqnr_and_base r0, r6, r5, lr @判斷中斷號(hào),通過(guò)R0返回, movne r1, sp@@ routine called with r0 = irq number, r1 = struct pt_regs *@adrne lr, 1bbne asm_do_IRQ @進(jìn)入中斷處理。 …… .endm get_irqnr_and_base中斷號(hào)判斷過(guò)程,include/asm/archs3c2410/.macro get_irqnr_and_base, irqnr, irqstat, base, tmpmov \base, S3C24XX_VA_IRQ@@ try the interrupt offset register, since it is thereldr \irqstat, [ \base, INTPND ]teq \irqstat, 0beq 1002fldr \irqnr, [ \base, INTOFFSET ] @通過(guò)判斷INTOFFSET寄存器得到中斷位置 mov \tmp, 1tst \irqstat, \tmp, lsl \irqnrbne 1001f@@ the number specified is not a valid irq, so try
點(diǎn)擊復(fù)制文檔內(nèi)容
畢業(yè)設(shè)計(jì)相關(guān)推薦
文庫(kù)吧 www.dybbs8.com
備案圖片鄂ICP備17016276號(hào)-1