(toppers-users 3286) Renesas Starter Kit for RX610 簡易パッケージについての確認
ソフトバンク 小山
koyama @ softbank.vc
2010年 11月 16日 (火) 11:53:47 JST
先日、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までは
モニタ専用領域で使用不可という仕様になっており、
このエリアを書き換えると暴走するようです。
よろしくお願いします。
-------------- next part --------------
HTMLの添付ファイルを保管しました...
URL: <http://www.toppers.jp/pipermail/users/attachments/20101116/d667f5ec/attachment.html>