📄 cpu_insn.h
字号:
/* * TOPPERS/JSP Kernel * Toyohashi Open Platform for Embedded Real-Time Systems/ * Just Standard Profile Kernel * * Copyright (C) 2000-2004 by Embedded and Real-Time Systems Laboratory * Toyohashi Univ. of Technology, JAPAN * Copyright (C) 2001-2004 by Dep. of Computer Science and Engineering * Tomakomai National College of Technology, JAPAN * Copyright (C) 2001-2004 by Industrial Technology Institute, * Miyagi Prefectural Government, JAPAN * * 惧淡螟侯涪荚は·笆布の (1)×(4) の掘凤か·Free Software Foundation * によって给山されている GNU General Public License の Version 2 に淡 * 揭されている掘凤を塔たす眷圭に嘎り·塑ソフトウェア∈塑ソフトウェア * を猖恃したものを崔むˉ笆布票じ∷を蝗脱ˇ剩澜ˇ猖恃ˇ浩芹邵∈笆布· * 网脱と钙ぶ∷することを痰浸で钓满するˉ * (1) 塑ソフトウェアをソ〖スコ〖ドの妨で网脱する眷圭には·惧淡の螟侯 * 涪山绩·この网脱掘凤および布淡の痰瘦沮惮年が·そのままの妨でソ〖 * スコ〖ド面に崔まれていることˉ * (2) 塑ソフトウェアを·ライブラリ妨及など·戮のソフトウェア倡券に蝗 * 脱できる妨で浩芹邵する眷圭には·浩芹邵に燃うドキュメント∈网脱 * 荚マニュアルなど∷に·惧淡の螟侯涪山绩·この网脱掘凤および布淡 * の痰瘦沮惮年を非很することˉ * (3) 塑ソフトウェアを·怠达に寥み哈むなど·戮のソフトウェア倡券に蝗 * 脱できない妨で浩芹邵する眷圭には·肌のいずれかの掘凤を塔たすこ * とˉ * (a) 浩芹邵に燃うドキュメント∈网脱荚マニュアルなど∷に·惧淡の螟 * 侯涪山绩·この网脱掘凤および布淡の痰瘦沮惮年を非很することˉ * (b) 浩芹邵の妨轮を·侍に年める数恕によって·TOPPERSプロジェクトに * 鼠桂することˉ * (4) 塑ソフトウェアの网脱により木儡弄または粗儡弄に栏じるいかなる禄 * 巢からも·惧淡螟侯涪荚およびTOPPERSプロジェクトを倘勒することˉ * * 塑ソフトウェアは·痰瘦沮で捏丁されているものであるˉ惧淡螟侯涪荚お * よびTOPPERSプロジェクトは·塑ソフトウェアに簇して·その努脱材墙拉も * 崔めて·いかなる瘦沮も乖わないˉまた·塑ソフトウェアの网脱により木 * 儡弄または粗儡弄に栏じたいかなる禄巢に簇しても·その勒扦を砷わないˉ */#ifndef _CPU_INSN_H_#define _CPU_INSN_H_/* 布淡にて网脱している、MAX_IPM は cpu_config.h で年盗 */#ifndef _MACRO_ONLY/* * 扩告レジスタの拎侯簇眶 *//* コンデションコ〖ドレジスタ∈CCR∷の附哼猛の粕叫し */Inline UB current_ccr(void){ UB ccr; Asm( "stc.b ccr, %0l" : "=r"(ccr) ); return(ccr);}/* コンディションコ〖ドレジスタ∈CCR∷の附哼猛の恃构 */Inline void set_ccr(UB ccr){ Asm( "ldc.b %0l, ccr" ::"r"(ccr) );}/* エクステンドレジスタ∈EXR∷の附哼猛の粕叫し */Inline UB current_exr(void){ UB exr; Asm( "stc.b exr, %0l" : "=r"(exr) ); return(exr);}/* コンデションコ〖ドレジスタ∈EXR∷の附哼猛の恃构 */Inline void set_exr(UB exr){ Asm( "ldc.b %0l, exr" :: "r"(exr) );}/* * 充哈みマスク拎侯ライブラリ (充哈みモ〖ド2脱) *//* 附哼の充哈みマスクの粕叫し */Inline IPM current_intmask(void){ return( (IPM) (current_exr() & EXR_I_MASK) );}/* 充哈みマスクの肋年 */Inline void set_intmask(IPM intmask){ set_exr( (IPM) ((current_exr() & ~EXR_I_MASK) | intmask ) );}/* カ〖ネル瓷妄布のすべての充哈み ♂ 充哈みレベルがMAX_IPM 笆布の充哈み *//* カ〖ネル瓷妄布のすべての充哈みを敦贿 (NMIを近く) */Inline void disint(void){ /* set_intmask( (IPM) MAX_IPM ); */ set_exr( (IPM) ((current_exr() & ~EXR_I_MASK) | MAX_IPM ) );}/* カ〖ネル瓷妄布のすべての充哈みを钓材 (NMIを近く) *//* この借妄は、祸悸惧、カ〖ネル瓷妄布の铜痰を啼わず、すべての充哈みを 钓材することになっている。 */Inline void enaint(){ /* set_intmask( (IPM) 0 ); */ set_exr( (IPM) (current_exr() & ~EXR_I_MASK) );}/* * 充哈みロック觉轮の扩告脱簇眶 *//* すべての充哈みを敦贿 (NMIを近く) */Inline void _disint_(){ /* set_intmask( (IPM) 7 ); */ set_exr( (IPM) (current_exr() | EXR_I_MASK) );}/* * ビット拎侯脱簇眶 *//* ビットクリア */Inline void bitclr(UW addr, UB bit){ Asm( "bclr %1l, @%0" :: "r"(addr), "r"(bit) );}/* ビットセット */Inline void bitset(UW addr, UB bit){ Asm( "bset %1l, @%0" :: "r"(addr), "r"(bit) );}#endif /* _MACRO_ONLY */#endif /* _CPU_INSN_H_ */
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -