⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 pacctx.s

📁 iTRON4.0最新操作系统
💻 S
字号:
#include "mipsregs.h"#define SF_SIZE (4*72)        /* ------------------------------------------------------------------------ *//*  Hyper Operating System V4  μITRON4.0慌屯 Real-Time OS                  *//*    プロセッサ藐据步コンポ〖ネント (MIPS4高垂コア脱)                      *//*                                                                          *//*                                  Copyright (C) 1998-2002 by Project HOS  *//*                                  http://sourceforge.jp/projects/hos/     *//* ------------------------------------------------------------------------ */                .global hospac_dis_int         /* 充り哈み敦贿 */                .global hospac_ena_int         /* 充り哈み钓材 */                .global hospac_cre_ctx_asm     /* 悸乖コンテキストの侯喇 */                .global hospac_swi_ctx         /* 悸乖コンテキストの磊仑 *//************************************************  充り哈み敦贿  void hospac_dis_int(void)************************************************//* ステ〖タスˇレジスタのIEビットを0にする */                .text                .align  2hospac_dis_int:                mfc0    t0, CP0_STATUS          /* CP0レジスタをロ〖ド */                la      t1, 0xfffffffe          /* IE=0 */                and     t0, t0, t1                mtc0    t0, CP0_STATUS          /* CP0レジスタをストア */                jr      ra                nop/************************************************  充り哈み钓材  void hospac_ena_int(void)************************************************//* ステ〖タスˇレジスタのIEビットを1にする */                .text                .align  2hospac_ena_int:                mfc0    t0, CP0_STATUS          /* CP0レジスタをロ〖ド */                la      t1, 0x00000001          /* IE=1 */                or      t0, t0, t1                mtc0    t0, CP0_STATUS          /* CP0レジスタをストア */                jr      ra                nop/************************************************  悸乖コンテキストエントリ〖アドレス************************************************/                .text                .align 2ctx_entry:                      j       a1                      /* 悸乖アドレスa1にジャンプ。a0が悸乖箕パラメ〖タ */                nop/************************************************  悸乖コンテキストの侯喇  void hospac_cre_ctx_asm(         T_HOSPAC_CTXINF *pk_ctxinf,    侯喇するコンテキスト         VP     sp,                     スタックポインタ         void   (*task)(VP_INT),        悸乖アドレス         VP_INT exinf)                  悸乖箕パラメ〖タ************************************************/                .text                .align 2hospac_cre_ctx_asm:                move    k0, a1                  /* スタックポインタを锣闰 */                subu    a1, a1, SF_SIZE         /* スタックの凯磨∈4*72=288バイト∷*///                sw      a2, 4*5(a1)             /* 悸乖アドレスの呈羌 */                sw      a3, 4*4(a1)             /* 悸乖パラメ〖タの呈羌 */                sw      k0, 4*29(a1)            /* スタックポインタの肋年 */#if 0                        la      k0, ctx_entry           /* 悸乖エントリポイントをリタ〖ンアドレスに肋年 */                sw      k0, 4*31(a1)#else                sw      a2, 4*31(a1)#endif                mfc0    k0, CP0_STATUS          /* CP0_STATUSを锣闰 */                sw      k0, 4*36(a1)                                sw      a1, (a0)                /* コンテキストのスタックポインタ瘦赂 */                jr      ra                      /* 钙び叫し傅へ耽る */                nop/************************************************  悸乖コンテキストの磊仑  void hospac_swi_ctx(        T_HOSPAC_CTXINF *pk_pre_ctxinf, 附哼のコンテキストの瘦赂黎        T_HOSPAC_CTXINF *pk_nxt_ctxinf) 磊り仑えるコンテキスト************************************************/                .text                .align 2hospac_swi_ctx:                move    k0, sp                  /* 凯磨涟のスタックポインタを锣闰 */                subu    sp, sp, SF_SIZE         /* スタックを凯磨 */#if 0                sw      $0, 4*0(sp)             /* zero を锣闰∈涩妥なし∷*/                .set noat                sw      $1, 4*1(sp)             /* at   を锣闰 */#endif                        sw      $2, 4*2(sp)             /* v0   を锣闰 */                sw      $3, 4*3(sp)             /* v1   を锣闰 */                sw      $4, 4*4(sp)             /* a0   を锣闰 */                sw      $5, 4*5(sp)             /* a1   を锣闰 */                sw      $6, 4*6(sp)             /* a2   を锣闰 */                sw      $7, 4*7(sp)             /* a3   を锣闰 */                sw      $8, 4*8(sp)             /* t0   を锣闰 */                sw      $9, 4*9(sp)             /* t1   を锣闰 */                sw      $10, 4*10(sp)           /* t2   を锣闰 */                sw      $11, 4*11(sp)           /* t3   を锣闰 */                sw      $12, 4*12(sp)           /* t4   を锣闰 */                sw      $13, 4*13(sp)           /* t5   を锣闰 */                sw      $14, 4*14(sp)           /* t6   を锣闰 */                sw      $15, 4*15(sp)           /* t7   を锣闰 */                sw      $16, 4*16(sp)           /* s0   を锣闰 */                sw      $17, 4*17(sp)           /* s1   を锣闰 */                sw      $18, 4*18(sp)           /* s2   を锣闰 */                sw      $19, 4*19(sp)           /* s3   を锣闰 */                sw      $20, 4*20(sp)           /* s4   を锣闰 */                sw      $21, 4*21(sp)           /* s5   を锣闰 */                sw      $22, 4*22(sp)           /* s6   を锣闰 */                sw      $23, 4*23(sp)           /* s7   を锣闰 */                sw      $24, 4*24(sp)           /* t8   を锣闰 */                sw      $25, 4*25(sp)           /* t9   を锣闰 */                sw      $26, 4*26(sp)           /* k0   を锣闰∈涩妥なし々∷*/                sw      $27, 4*27(sp)           /* k1   を锣闰∈涩妥なし々∷*/#if 0                sw      $28, 4*28(sp)           /* gp   を锣闰∈涩妥なし々∷*/#endif                sw      k0,  4*29(sp)           /* sp   を锣闰∈凯磨涟の猛∷*/#if 1                sw      $30, 4*30(sp)           /* fp   を锣闰∈涩妥なし々∷*/#endif                sw      $31, 4*31(sp)           /* ra   を锣闰 */                sw      sp, (a0)                /* spを瓷妄挝拌へ锣闰 */                lw      sp, (a1)                /* 瓷妄挝拌からspを牲耽 */                lw      $2, 4*2(sp)             /* v0   を牲耽 */                lw      $3, 4*3(sp)             /* v1   を牲耽 */                lw      $4, 4*4(sp)             /* a0   を牲耽 */                lw      $5, 4*5(sp)             /* a1   を牲耽 */                lw      $6, 4*6(sp)             /* a2   を牲耽 */                lw      $7, 4*7(sp)             /* a3   を牲耽 */                lw      $8, 4*8(sp)             /* t0   を牲耽 */                lw      $9, 4*9(sp)             /* t1   を牲耽 */                lw      $10, 4*10(sp)           /* t2   を牲耽 */                lw      $11, 4*11(sp)           /* t3   を牲耽 */                lw      $12, 4*12(sp)           /* t4   を牲耽 */                lw      $13, 4*13(sp)           /* t5   を牲耽 */                lw      $14, 4*14(sp)           /* t6   を牲耽 */                lw      $15, 4*15(sp)           /* t7   を牲耽 */                lw      $16, 4*16(sp)           /* s0   を牲耽 */                lw      $17, 4*17(sp)           /* s1   を牲耽 */                lw      $18, 4*18(sp)           /* s2   を牲耽 */                lw      $19, 4*19(sp)           /* s3   を牲耽 */                lw      $20, 4*20(sp)           /* s4   を牲耽 */                lw      $21, 4*21(sp)           /* s5   を牲耽 */                lw      $22, 4*22(sp)           /* s6   を牲耽 */                lw      $23, 4*23(sp)           /* s7   を牲耽 */                lw      $24, 4*24(sp)           /* t8   を牲耽 */                lw      $25, 4*25(sp)           /* t9   を牲耽 */                lw      $26, 4*26(sp)           /* k0   を牲耽∈涩妥なし々∷*/                lw      $27, 4*27(sp)           /* k1   を牲耽∈涩妥なし々∷*/#if 0                lw      $28, 4*28(sp)           /* gp   を牲耽∈涩妥なし々∷*/#endif                lw      $30, 4*30(sp)           /* fp   を牲耽∈涩妥なし々∷*/                lw      $31, 4*31(sp)           /* ra   を牲耽 */                lw      $29, 4*29(sp)           /* sp   を牲耽 */                jr      ra                      /* コンテキストへジャンプ */                nop/* ------------------------------------------------------------------------ *//*  Copyright (C) 1998-2002 by Project HOS                                  *//* ------------------------------------------------------------------------ */

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -