新聞中心

EEPW首頁(yè) > 嵌入式系統(tǒng) > 設(shè)計(jì)應(yīng)用 > linux-2.6.26內(nèi)核中ARM中斷實(shí)現(xiàn)詳解(2)

linux-2.6.26內(nèi)核中ARM中斷實(shí)現(xiàn)詳解(2)

作者: 時(shí)間:2012-08-21 來(lái)源:網(wǎng)絡(luò) 收藏

#define asmlinkage CPP_ASMLINKAGE __attribute__((regparm(0)))

表示函數(shù)的參數(shù)傳遞是通過(guò)堆棧完成的。

3.7 描述3.3節(jié)中的ret_to_user 返回過(guò)程,/arch/arm/kernel/entry-common.S

ENTRY(ret_to_user)

ret_slow_syscall:

disable_irq @ disable interrupts

ldr r1, [tsk, #TI_FLAGS]

tst r1, #_TIF_WORK_MASK

bne work_pending

no_work_pending:

/* perform. architecture specific actions before user return */

arch_ret_to_user r1, lr

@ slow_restore_user_regs

ldr r1, [sp, #S_PSR] @ get calling cpsr

ldr lr, [sp, #S_PC]! @ get pc

msr spsr_cxsf, r1 @ save in spsr_svc

ldmdb sp, {r0 - lr}^ @ get calling r0 - lr

mov r0, r0

add sp, sp, #S_FRAME_SIZE - S_PC

movs pc, lr @ return move spsr_svc into cpsr

第三章主要跟蹤了從發(fā)生到調(diào)用到對(duì)應(yīng)號(hào)的desc->handle_irq(irq, desc)中斷函數(shù)的過(guò)程。后面的章節(jié)還會(huì)繼續(xù)講解后面的內(nèi)容。

linux操作系統(tǒng)文章專題:linux操作系統(tǒng)詳解(linux不再難懂)

上一頁(yè) 1 2 3 下一頁(yè)

評(píng)論


相關(guān)推薦

技術(shù)專區(qū)

關(guān)閉