MISPOさんのNORTiをRX SmartConfiguratorと一緒に使いたい場合の課題と対策を考察してみるスレッド

こんにちは。NoMaYです。

ひとつ立てても良さそうな気がしましたので立ててみました。

もっとも、その前に気になる問い掛け、が無いわけでは無いですけれども、、、

● マイコンベンダ提供のソフトウェア開発フレームワークと共存させることが苦痛な実装のRTOSを今後も新規プロジェクトで使う予定がありますかね

[関連スレッド]

スマートコンフィグレータの自動生成をカスタマイズしたい
japan.renesasrulz.com/cafe_rene/f/forum5/8248/thread

FITの割込みハンドラの実装について
japan.renesasrulz.com/cafe_rene/f/forum5/8212/fit

RX72Nで簡易I2C通信をしたい。DATAは出力されているがCLKが何故か正しく出力されない。。
japan.renesasrulz.com/cafe_rene/f/forum5/7129/rx72n-i2c-data-clk

FITでのSCI使用時に文字を1文字送信すると、プログラムが固まります。
japan.renesasrulz.com/cafe_rene/f/forum5/7071/fit-sci-pc-1
 


RX SmartConfiguratorで気になった点とか改善する案とか報告してみるスレッド
japan.renesasrulz.com/cafe_rene/f/forum5/7536/rx-smartconfigurator/42599#42599
 

Parents
  • ふぐりんです
    NoMaYさんこんにちは。


    以下のスレッドでNoMaYさんに作っていただいたプログラムで
    NORTiをRX SmartConfiguratorと一緒に使えるようになったようです。
    NORTiユーザとしてFITとの同居という念願がかないました。(共存させることが苦痛な実装のRTOSじゃなくなった?w
    NoMaYさんありがとうございました!

    スマートコンフィグレータの自動生成をカスタマイズしたい
    japan.renesasrulz.com/.../thread

    ソース追いかけたり実験したりしてたので遅くなりましたが確認が取れました。
    詳しいやりかたなどは私のGitHUB(github.com/mkogax)に上げたいと思っていますが、NoMaYさんのソースを転載してもよろしいでしょうか?許可いただければ、ファイルとしてそのまま収録したいと思います。
    以下簡単なご報告です。

    ----------
    セットアップ
    ----------
    NoMaYさんの NORTi_interrupt.c (20220629_2版) をそのまま改変なしで使用しました。
    ただし、NORTi_interrupt.h で全て NORTiタイプを指定し、INTBにはNORTi管理のベクタテーブル(RAM)を登録します。
    NORTi側は初期化時に呼ばれる intini() (利用者が作るヘルパ関数のようなもの)を改造するだけです。

    ----------
    効果
    ----------
    ・FIT/CGは改変なしでそのままNORTiを利用できます。(コールバックでNORTi利用可)
    ・NORTiの割込みハンドラ(def_inh())をそのまま利用できます。
    ・NORTiの割込みサービスルーチン(cre_isr())をそのまま利用できます。(最初におまじない必要)
    ・FIT/CGの割込み処理はNORTi対応で少しオーバヘッドが増えますが、NORTiを使わないで高速に処理したい場合(nonOS)はdef_inh()で対応できます。

    ----------
    実験(Target Board for RX130,CS+)
    ----------
    ・r_cmt_rx(FIT)の10msec周期コールバックからNORTiのチックタイム通知(isig_tim())
    ・TMR0(CG)で#pragma interrupt の割込みルーチンからタスク起床(wup_tsk())
    ・TMR1(CG)の改造でdef_inh() のNORTi割込みハンドラからタスク起床(wup_tsk())
    ・TMR2(CG)の改造でcre_isr() のNORTi割込みサービスルーチンからタスク起床(wup_tsk())
    ・TMR3(CG)で#pragma interrupt の割込みルーチンを非NORTiとして再登録(def_inh())してカウンタ変数更新を確認

  • ふぐりん さん、こんにちは。NoMaYです。

    どうもありがとうございました。新たな技も開発されたみたいですね。そして、以下の件、もちろん転載して構わないです。

    > 詳しいやりかたなどは私のGitHUB(github.com/mkogax)に上げたいと思っていますが、NoMaYさんのソースを転載してもよろしいでしょうか?許可いただければ、ファイルとしてそのまま収録したいと思います。

  • ふぐりんさん、こんにちは。Muraと申します。

    RXシリーズでNORTiをSmartConfiguratorと使おうとしておりましてふぐりんさん、NoMAYさんご考案の方法にて実現しようとしております。

    CC-RXでビルドしますと、NORTi_interrupt.cのstatic void dummy_NORTi_INT_HOOK(void)関数で関数内にコメント記載のあるE0552111:Symbol is undefined のエラーとなります。

    知識不足で申し訳ございません。対処方法についてご教示頂けますと幸いです。

  • Muraさん、こんにちは。NoMaYです。

    これは私の案件ですね。たぶん、NORTi_interrupt.hの中で変更した#defineのどれかにスペルミスがあったのだと思います。ごめんなさい、最初に作った者として申し訳ないですが、よ~くNORTi_interrupt.hの中を見て頂けないでしょうか?

  • NoMaYさん、こんにちは。Muraです。

  • NoMaYさん、こんにちは。Muraです。

  • NoMaYさん、こんにちは。Muraです。

    Enter to Replyのチェックを外すの忘れて、改行の度にReplyしてしまっていました。失礼しました。

    ご教示ありがとうございます。

    Gitからダウンロードさせて頂いたNORTi_interrupt.hを加工なしで使用させて頂いております。ファイルの内容確認しておりますが特に原因となるようなものは見つけれておりません。

    切り分けで試してみるようなことでも、解決のヒントになるようなことございましたら何でも試してみますので連絡頂けますと幸いです。

  • Muraさん、こんにちは。NoMaYです。

    すみません、開発環境が、CS+であればmtpjファイルを、e2 studioであれば.projectファイルと.cprojectファイルを、zipファイルに固めてリプライに添付して頂けないでしょうか?

  • NoMayさん、こんにちは。Muraです。

    お手数お掛けしまして申し訳ございません。

    e2studioの.projectファイルと.cprojectファイルを添付いたします。e2studio_proj_cproj_20220902.zip

    よろしくお願いいたします。

  • Muraさんこんにちは。
    私はCS+でやってまして・・e2studioでいただいた設定を見ながらCS+でちょっと試してたんですが、CS+では再現できませんでした。すいません。(RX66N/v3で試しました)

    とりあえず私のGitに置いているNORTi_interrupt.hを使う限りでは dummy_NORTi_INT_HOOK(void)関数は使わないようです。
    dummy_NORTi_INT_HOOK(void)関数と参照している行(93行目)をコメントアウトしても、ビルド+実行できました。よかったらお試し下さい。
    (すいません。NoMayさんのエリアですが・・)

  • Muraさん、こんにちは。NoMaYです。

    頂いたファイルとGitHubからダウンロードしたNORTi_interrupt.hとNORTi_interrupt.cを使ってコンパイルしてみましたが、エラー無くコンパイル出来ました。今度は、NORTi_interrupt.hとNORTi_interrupt.cの2つをzipファイルに固めてリプライに添付して頂けないでしょうか?

  • NoMayさんおひさしぶりです!
    確認ありがとうございます。
    原因はなんでしょうね・・気になるw

Reply Children
No Data