Renesas Community
Search Community
User
Join or sign in
Site
Search Community
User
Renesas Engineering Community
FAQ
HELP
More
Cancel
Forums & Groups
English Community
中文社区(Chinese Community)
More
Cancel
かふぇルネ
forums-groups
Microcontrollers and Microprocessors
RX MCU
More
Cancel
RX MCU
Forum
CS+ RX63N 全割り込みを禁止するには
Home
Forum
Tags
More
Cancel
New
Replies
12 replies
Subscribers
457 subscribers
Views
8865 views
Users
0 members are here
Options
Share
More
Cancel
Related
CS+ RX63N 全割り込みを禁止するには
IKUZO
over 7 years ago
RX63初心者のIKUZOです、全割り込みを、禁止するような方法はありませんでしょうか?
Parents
fujita nozomu
over 7 years ago
CC-RX では clrpsw_i() で PSW の割り込み許可ビット(Iビット)を0に設定することで割り込み禁止にできます。
> 全割り込みを、禁止するような方法はありませんでしょうか?
NMI は禁止できません。
Cancel
Up
0
Down
Reply
Cancel
SA
over 7 years ago
in reply to
fujita nozomu
こんにちは
fujita nozomuさんの説明に補足します。
NMI端子割り込みを含むノンマスカブル割り込み初期設定では、「ノンマスカブル割り込み禁止」となっています。
ノンマスカブル割り込み許可レジスタ(NMIER)で割り込み許可と設定すると、それ以後は割り込みを禁止することができません。
NMIERの各ビットは1回だけ”1”をかけます。”0”(割り込み禁止)は書くことができません。
マニュアルの410ページ、15.6 ノンマスカブル割り込みの動作説明 を読んでみてください。
一般割り込みで、PSWのIPL[3:0]を1111(優先レベル15)に設定すると割り込みは受け付けられません。
Cancel
Up
0
Down
Reply
Cancel
IKUZO
over 7 years ago
in reply to
SA
SAさん
お世話になります、NMI端子割り込みというのは、そう簡単にはできないと思いますが、「一般割り込みで、PSWのIPL[3:0]を1111(優先レベル15)に設定すると割り込みは受け付けられません」を一か所設定するだけで一般割り込みを全て禁止できるということですよね set_psw(0xFF);等で禁止できるということですよね。
Cancel
Up
0
Down
Reply
Cancel
NAKA
over 7 years ago
in reply to
IKUZO
こんな感じ?
clrpsw_i(); //割り込み禁止
setpsw_i(); //割り込み許可
Cancel
Up
0
Down
Reply
Cancel
fujita nozomu
over 7 years ago
in reply to
IKUZO
> set_psw(0xFF);等で禁止できるということですよね。
PSW は32bit幅のレジスタであり、set_psw(0xFF); では PSW の内容は 0x000000ff になります。
PSW の内容は『RX63Nグループ、RX631グループユーザーズマニュアル ハードウェア編』「2.2.2.4プロセッサステータスワード(PSW)」等を参照してください。
Cancel
Up
0
Down
Reply
Cancel
fujita nozomu
over 7 years ago
in reply to
IKUZO
> 「一般割り込みで、PSWのIPL[3:0]を1111(優先レベル15)に設定すると割り込みは受け付けられません」を一か所設定するだけで一般割り込みを全て禁止できるということですよね set_psw(0xFF);等で禁止できるということですよね。
PSW の割り込みマスクレベルを変更する __set_ipl() という関数もあります。
Cancel
Up
0
Down
Reply
Cancel
SA
over 7 years ago
in reply to
IKUZO
こんにちは、
set_ipl()で割り込み優先レベルの設定が出来ます。
RX ファミリ C/C++コンパイラ、アセンブラ、最適化リンケージエディタ
コンパイラパッケージ の293ページ、
void set_ipl(signed long level) を見てみてください。
マニュアルから
set_ipl(7); // PSW.IPL に7 を設定 (0~15の値が設定できるよです)
Cancel
Up
0
Down
Reply
Cancel
IKUZO
over 7 years ago
in reply to
NAKA
NAKAさん
「clrpsw_i(); //割り込み禁止」これでいいんですか、簡単ですね、先ほどのは私が間違っていたのですね、これでいきます、ありがとうございます。
Cancel
Up
0
Down
Reply
Cancel
IKUZO
over 7 years ago
in reply to
fujita nozomu
fujita nozomuさん
「「2.2.2.4プロセッサステータスワード(PSW)」等を参照してください。」確認してみます。
Cancel
Up
0
Down
Reply
Cancel
IKUZO
over 7 years ago
in reply to
fujita nozomu
fujita nozomuさん
「PSW の割り込みマスクレベルを変更する __set_ipl() という関数もあります」なるほど、ありがとうございます。
Cancel
Up
0
Down
Reply
Cancel
Reply
IKUZO
over 7 years ago
in reply to
fujita nozomu
fujita nozomuさん
「PSW の割り込みマスクレベルを変更する __set_ipl() という関数もあります」なるほど、ありがとうございます。
Cancel
Up
0
Down
Reply
Cancel
Children
No Data