NEC ELECTRONICS NEC ELECTRONICS
NEC electronics NEC electronics NEC
ホーム
アプリケーション
製品情報
先端技術
サポート
WEBショップ
ニュース&イベント
会社案内
header
GO
詳細検索機能/特性検索
サイトマップ お問い合わせ

RX4000

目次

    
FAQ-ID = VRrx4000-nnnn
0001: システム・コール
0002: UserPool
0003: FPU命令
VRrx4000
-0001
システム・コール
Q1
RX4000提供のシステム・コール get_blkを発行し、 取得メモリ・ブロックの先頭からメモリ Write後、rel_blkを発行した場合、 "メモリ・ブロックがメッセージとして使用されている”エラーとなってしまう。
snd_msg発行時と同様に先頭の 4バイトをゼロ・クリアしてから使用しないといけないのでしょうか。
(ユーザーズ・マニュアルには特に記述されてないようですが、先頭4バイト・ゼロ・クリア後、 rel_blkすると正常となります)。
A1
はい、ゼロ・クリアしていただかなくてはなりません。
これは、snd_msg し、メッセージがメール・ボックスにキューイングしているときに rel_blk 出来ないようにするための仕組みのためです。 このとき RX4000 では、先頭 4バイトが 0 か 0以外かで判断しています。 0 の場合はキューイングされていないと認識します。 この判断は常になされますので、rel_blk するときは、そのメモリ・ブロックの先頭 4 バイトをゼロ・クリアしていただく必要があります。
この情報はお役にたちましたか?
back to top  

VRrx4000
-0002
UserPool
Q1
システム・メモリの UserPool についてですが、実行タスクによって UserPool自体を分けたい場合、 複数の UserPoolの生成が可能でしょうか?  具体的にはキャッシャブル領域、アンキャッシャブル領域にそれぞれ独立した UserPool を生成し、各タスクでどの UserPoolを使うかを決定するという動作が実行できないかと考えています。
A1
残念ながら、SystemPool、UserPool、StackPool をそれぞれ複数生成することはできません。
従って、キャッシャブル領域とアンキャッシャブル領域で UserPool を分けて使うという方法を取ることはできないことになります。 とりあえず UserPool をキャッシャブル領域に配置するという方法が最良かと思われます。
この情報はお役にたちましたか?
back to top  

VRrx4000
-0003
FPU命令
Q1
VR4310の初期化時にコプロセッサ CP0, CP1 を使用許可とし、カーネル初期化を行っていますが、 カーネル初期化後のメイン・ルーチンで CP1 が使用禁止となってしまい、 FPU命令実行時 CP1 使用不可例外が発生してしまう。 試しに他の箇所で CP0、CP1 を許可にしてみたがシステム・コールが実行されると禁止となる傾向に思えます。 取りあえずの対処として、FPU 使用直前に割り込み禁止とし、CP0, CP1 許可にしていますが、 適切な方法(カーネルへの設定情報等)を教えてください。
  環境
        CPU:V4310
        カーネル:RX4000
        コンパイラ:Green Hills
        ディバッガ:Partner ET2
A1
RX4000のバージョンが、Ver 3.10の場合は FPU命令を使用できません。
RX4000のバージョンを Ver 3.11にしていただく必要がありますので、ご購入いただいた販売店へご相談ください。
この情報はお役にたちましたか?
back to top  









































 ご利用にあたって  個人情報保護について  RSS       © 1995-2008  NEC Electronics Corporation