新聞中心

        EEPW首頁 > 嵌入式系統 > 設計應用 > linux-2.6.26內核中ARM中斷實現詳解

        linux-2.6.26內核中ARM中斷實現詳解

        作者: 時間:2012-09-01 來源:網絡 收藏

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

        表示函數的參數傳遞是通過堆棧完成的。

        3.7 描述3.3節中的ret_to_user 中斷返回過程,/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

        第三章主要跟蹤了從中斷發生到調用到對應中斷號的desc->handle_irq(irq, desc)中斷函數的過程。后面的章節還會繼續講解后面的內容。

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

        上一頁 1 2 3 4 下一頁

        關鍵詞: linux 內核 ARM中斷

        評論


        相關推薦

        技術專區

        關閉
        主站蜘蛛池模板: 乐陵市| 抚松县| 城口县| 邯郸市| 璧山县| 泾阳县| 靖边县| 漯河市| 同江市| 耿马| 临夏市| 潼南县| 宝清县| 鄂温| 宁陵县| 宿迁市| 石嘴山市| 宜昌市| 临猗县| 沾化县| 喀喇| 盱眙县| 荣昌县| 庆城县| 山东省| 阿坝| 突泉县| 穆棱市| 洪泽县| 松原市| 浙江省| 万安县| 泸州市| 霞浦县| 乐陵市| 凤阳县| 涞源县| 曲周县| 陆川县| 弋阳县| 阿鲁科尔沁旗|