R8C FLGレジスタの確認方法

HEWを使用し、R8Cを使用したUART通信プログラムの
開発を行っています。

時々UART2の受信割り込みが発生しなくなる
現状が発生しており、原因を調べています。
この状態でも、該当の割り込み要求ビット(RI)は
\”1\”となっていることを確認しました。
このため、設定されているIPLのレベルより
UART2の優先レベルが低いため割り込みが発生しなく
なるのでは?と考えたのですが
どのようにIPL(FLGレジスタ)の値を
確認すればよいのでしょうか?

エミュレータは、H/W側の都合で接続できません。
開発にはC言語を使用しています。
よろしくおねがいいたします。

Parents
  • yoshさん

    失礼しました。
    FLGレジスタ値を、C言語のソース上でリードする方法でしたね。

    C言語オンリーでの読み出し方法は、ちょっと思いつかないので
    とりあえず、アセンブラ関数を呼び出して、STC命令でFLGレジスタを読み出すのがいいかと思います。

    C言語の型宣言を
    extern int asm_func( void );
    として、アセンブラで以下の様に記述してみてはいかがでしょう?
    .section program
    .glb _asm_func
    _asm_func:
    stc FLG\,R0 ;return値(int型)にFLGを格納
    rts
    .END

    詳細は、C コンパイラユーザーズマニュアルの53ページあたり
    http://documentation.renesas.com/doc/products/tool/rjj10j2478_nc30_u.pdf
Reply
  • yoshさん

    失礼しました。
    FLGレジスタ値を、C言語のソース上でリードする方法でしたね。

    C言語オンリーでの読み出し方法は、ちょっと思いつかないので
    とりあえず、アセンブラ関数を呼び出して、STC命令でFLGレジスタを読み出すのがいいかと思います。

    C言語の型宣言を
    extern int asm_func( void );
    として、アセンブラで以下の様に記述してみてはいかがでしょう?
    .section program
    .glb _asm_func
    _asm_func:
    stc FLG\,R0 ;return値(int型)にFLGを格納
    rts
    .END

    詳細は、C コンパイラユーザーズマニュアルの53ページあたり
    http://documentation.renesas.com/doc/products/tool/rjj10j2478_nc30_u.pdf
Children
No Data