• <li id="00i08"><input id="00i08"></input></li>
  • <sup id="00i08"><tbody id="00i08"></tbody></sup>
    <abbr id="00i08"></abbr>
  • 新聞中心

    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中斷

    評論


    相關推薦

    技術專區

    關閉
    主站蜘蛛池模板: 防城港市| 高清| 财经| 建德市| 双鸭山市| 和平区| 丁青县| 克什克腾旗| 尼玛县| 武安市| 慈溪市| 文水县| 湖口县| 绵阳市| 苗栗县| 成都市| 海丰县| 绥中县| 化德县| 湘阴县| 河津市| 巩义市| 河东区| 博野县| 陆丰市| 林周县| 宁阳县| 会昌县| 什邡市| 永嘉县| 邯郸县| 吴桥县| 乐山市| 长沙市| 黔南| 古丈县| 北票市| 商河县| 阿克| 安丘市| 永州市|