(toppers-users 3287) Re: Renesas Starter Kit for RX610 簡易パッケージについての確認

片岡 歩 kata @ witz-inc.co.jp
2010年 11月 16日 (火) 13:16:44 JST


ソフトバンク 小山様

ヴィッツの片岡です。

不具合の報告ありがとうございます。

ご指摘のとおり、0x00000001番地に書き込んでますね。
reqflg のクリアは実施したいので、以下の様に値を取得する
レジスタを変更することが良いかと思います。

line:394とline:395のディスティネーションレジスタをr5からr4に変更
393 : mov.l    #__kernel_reqflg, r5    ; reqflg が FALSE なら
394 : mov.l    [r5], r4
395 : cmp      #0, r4
396 : bz         dispatcher_idle_loop    ; アイドルループを繰り返す
397 : mov.l    #0, [r5]                          ; reqflgがtrueならfalseにする 

メモリマップでは
 0x00000000	__kernel_kerflg
 0x00000004	_histcb_table
となっており、サンプルプログラムや付属のテストプログラムでは
問題が表面化しなかったようです。

アイドル復帰後の状態確認って、テスト必要ですね。

修正パッケージについてはどこかのタイミングでリリースしたいと思いますが、
現在、計画が立っておりませんので、本メール記載の対策を入れていただければ
幸いです。

以上、よろしくお願いします。

>先日、Renesas RXについて質問をした 小山 です。
>
>TOPPERS/ASPカーネルの
>「Renesas Starter Kit for RX610 簡易パッケージ」を
>ルネサス製の「RX-Stick」というボードへの移植を
>試みているのですが、カーネルに問題点がありまして
>回答をお願いします。
>
>問題点:
>  カーネルのアイドルループに移行すると
>  RX-Stick専用のモニタデバッガがタイムアウトしてしまう。
>
>カーネルのアイドルループのソースを見ると
>疑問の思うところが見つかりました。
>
>ソース    :arch/rx_rxc/prc_support.src
>モジュール:dispatcher_pre_idle
>問題の行  :397行目
>
>393 : mov.l    #__kernel_reqflg, r5    ; reqflg が FALSE なら
>394 : mov.l    [r5], r5
>395 : cmp      #0, r5
>396 : bz         dispatcher_idle_loop    ; アイドルループを繰り返す
>397 : mov.l    #0, [r5]                          ; reqflgがtrueならfalseにする 
>
>398 : mov.l    #__kernel_intnest, r5
>399 : mov.w  #0, [r5]                           ; タスクコンテキストに切換え
>
>397行目でr5の指すアドレスを0クリアしているのですが、
>r5はその前に__kernel_reqflgの読み込みによって壊れています。
>その結果、00000001hに4バイトで0を書き込むという動作になります。
>
>RX-Stick専用のモニタデバッガでは、00000000h〜00000FFFhまでは
>モニタ専用領域で使用不可という仕様になっており、
>このエリアを書き換えると暴走するようです。
>
>よろしくお願いします。

★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★
||                                                                  ||
|| (株)ヴィッツ                                                   ||
||    組込制御開発部                               ||
||                                                                  ||
||     片岡 歩    E-mail:kata @ witz-inc.co.jp                      ||
||                                                                  ||
||    〒460-0008 名古屋市中区栄2-13-1 白川第2ビル2F/7F              ||
||       TEL:(052)223-7570                      ||
||           (052)220-1218(代表)                                    ||
||       FAX:(052)218-5855                                          ||
〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜