📄 cpu_support.s
字号:
; *; * TOPPERS/JSP Kernel; * Toyohashi Open Platform for Embedded Real-Time Systems/; * Just Standard Profile Kernel; * ; * Copyright (C) 2000-2002 by Embedded and Real-Time Systems Laboratory; * Toyohashi Univ. of Technology, JAPAN; * ; * 惧淡螟侯涪荚は·Free Software Foundation によって给山されている ; * GNU General Public License の Version 2 に淡揭されている掘凤か·笆; * 布の(1)×(4)の掘凤を塔たす眷圭に嘎り·塑ソフトウェア∈塑ソフトウェ; * アを猖恃したものを崔むˉ笆布票じ∷を蝗脱ˇ剩澜ˇ猖恃ˇ浩芹邵∈笆布·; * 网脱と钙ぶ∷することを痰浸で钓满するˉ; * (1) 塑ソフトウェアをソ〖スコ〖ドの妨で网脱する眷圭には·惧淡の螟侯; * 涪山绩·この网脱掘凤および布淡の痰瘦沮惮年が·そのままの妨でソ〖; * スコ〖ド面に崔まれていることˉ; * (2) 塑ソフトウェアを浩网脱材墙なバイナリコ〖ド∈リロケ〖タブルオブ; * ジェクトファイルやライブラリなど∷の妨で网脱する眷圭には·网脱; * に燃うドキュメント∈网脱荚マニュアルなど∷に·惧淡の螟侯涪山绩·; * この网脱掘凤および布淡の痰瘦沮惮年を非很することˉ; * (3) 塑ソフトウェアを浩网脱稍材墙なバイナリコ〖ドの妨または怠达に寥; * み哈んだ妨で网脱する眷圭には·肌のいずれかの掘凤を塔たすことˉ; * (a) 网脱に燃うドキュメント∈网脱荚マニュアルなど∷に·惧淡の螟侯; * 涪山绩·この网脱掘凤および布淡の痰瘦沮惮年を非很することˉ; * (b) 网脱の妨轮を·侍に年める数恕によって·惧淡螟侯涪荚に鼠桂する; * ことˉ; * (4) 塑ソフトウェアの网脱により木儡弄または粗儡弄に栏じるいかなる禄; * 巢からも·惧淡螟侯涪荚を倘勒することˉ; * ; * 塑ソフトウェアは·痰瘦沮で捏丁されているものであるˉ惧淡螟侯涪荚は·; * 塑ソフトウェアに簇して·その努脱材墙拉も崔めて·いかなる瘦沮も乖わ; * ないˉまた·塑ソフトウェアの网脱により木儡弄または粗儡弄に栏じたい; * かなる禄巢に簇しても·その勒扦を砷わないˉ; * ; * @(#) $Id: cpu_support.S,v 1.2 2002/04/14 10:37:55 reiji Exp $; * .c_mode .align 1 .global __kernel_dispatch .include "c5402dsk.h" .mmregs__kernel_dispatch: PSHM AR1 ;AR1,6,7をスタックに瘦赂 PSHM AR6 ;PCは钙び叫し箕にスタックに瘦赂される PSHM AR7 ;戮の输锦レジスタARxは瘦赂する涩妥はない LDM SP,A MVDM *(__kernel_runtsk),AR1 ;AR1 <- runtsk NOP STL A,*AR1(TCB_sp) ;タスクスタックをTCBに瘦赂 ST #dispatch_r,*AR1(TCB_pc) ;悸乖浩倡戎孟をTCBに瘦赂 B dispatcher_1dispatch_r: POPM AR7 ;レジスタを牲耽 POPM AR6 POPM AR1 B __kernel_calltex ;タスク毋嘲ル〖チンの钙び叫し .global __kernel_exit_and_dispatch__kernel_exit_and_dispatch: SSBX INTM ;充り哈み敦贿 ST #0,*(_nest) ;カ〖ネルの介袋步借妄箕のためdispatcher_1: LD *(__kernel_schedtsk),A ;schedtskがあるか々 BC dispatcher_2,AEQ ;痰ければジャンプ MVDK *(__kernel_schedtsk),*(__kernel_runtsk) ;schedtskをruntskに MVDM *(__kernel_runtsk),AR1 NOP MVDK *AR1(TCB_sp),SP ;TCBからスタックを牲耽 LD *AR1(TCB_pc),A ;TCBから悸乖浩倡戎孟を牲耽 BACC A dispatcher_2: STM #STACKTOP,SP ST #0x01,*(_nest) RSBX INTM ;充り哈み钓材 IDLE 1 ;リセットかマスクされていない充哈み略ち SSBX INTM ;充り哈み敦贿 ST #0x0,*(_nest) B dispatcher_1;; タスクの弹瓢借妄;; .global __kernel_activate_r .global _activate_r;__kernel_activate_r:_activate_r: RSBX INTM ;充り哈み钓材 POPM AR2 POPM AR3 LDM AR2,B LDM AR3,A BACC B .global _interrupt_interrupt: PSHM ST0 PSHM AL PSHM AH PSHM AG PSHM BL PSHM BH PSHM BG PSHM ST1 PSHM AR0 PSHM AR2 PSHM AR3 PSHM AR4 PSHM AR5 PSHM T PSHM TRN PSHM BK PSHM BRC PSHM RSA PSHM REA PSHM PMST LD *(_nest),A ADDM #1,*(_nest) ;充り哈みのネスト搀眶をインクリメント BC _interrupt_from_int,ANEQ LDM SP,A ;スタック掐れ仑えと STM #STACKTOP,SP ;傅のスタックポインタの PSHM AL ;瘦赂を乖う PSHM IMR MVDM *(_INT_VECNO),AR2 ;オフセット猛をAR2にセット STM #IMR,AR3 ;票じ充り哈みが部刨もかからないように LD *AR2(_int_mask_table),A ; ∶ AND *AR3,A ;
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -