포럼: Developers (Thread #24819)

hosv4acfgでのデータキューは未サポート? (2009-12-11 14:40 by mc_ozawa #47401)

こんにちは。mc-ozawaです。

HOS-v4aでデータキューを使用したいのですが、コンフィギュレーター(hosv4acfg)が認識してくれません。
このバージョンでは未サポートなのでしょうか?

コンフィギュレーターのソースを確認した結果です。
・h4acfg.cpp(v1.3)
  93行目 // CreDtq ・・・・・≫ コメントになっている
  コメントを解除しても下記要因でコンパイルエラーになる

・credtq.cpp(v1.5)
  75行目 KERNEL_RES_DTQID ・・・・・≫ KERNEL_RSV_DTQIDでは?
  138行目以降のCApiCreDtq::WriteCfgDef()は、HOS-v4からの移行途中らしいコード
   構造体名がHOS-v4のままで、HOS-v4aと一致しない
   例)T_KERNEL_DTQCB_ROM → _KERNEL_T_DTQCB_RO?

  また、メッセージ#36280と#45349(snd_dtqバグ?)も未対応?

その他
・crecyc.cpp(v1.7)
  77行目 KERNEL_RSV_DTQID ・・・・・≫ KERNEL_RSV_CYCIDでは?

・添付document内cfgrtr.txt
  253行目 ID flgidno 予約するセマフォID数 ・・・・・≫ フラグID数

上記以外のファイルは確認していませんが、データキューのサポートも宜しくお願いします。

RE: hosv4acfgでのデータキューは未サポート? (2009-12-11 22:19 by ryuz #47408)

お世話になります。Ryuzです。

申し訳ありません、データキューはまだ実装が終わっておりません。

何かとコア部で手戻りが多いので、もう少し多品種を検討してからAPI拡大で考えておりましたが、需要があるようならデータキュー実装の優先度を上げたいと思います。

よろしくお願いいたします。
Reply to #47401

RE: hosv4acfgでのデータキューは未サポート? (2009-12-11 23:23 by ryuz #47409)

お世話になります。Ryuzです。

さしあたって、コンフィギュレータを対応させて、CVSにはコミットしました。
超単純な snd_dtq&rcv_dtq でデータは渡せましたが、コード
自体が試し書きに近いので、特定パターンのケアなど抜けている
と思います。
適当に安定したところでまたスナップショット出したいと思います。


余談ですが、冗長な繰り返し記述が増えてきて、Cプリプロセッサの弱さを
実感し始めました。
コード生成用のコードを書き起こして全コード再生成なんてことも
まじめに悩んでます(それもあって手が止まってます)。
 FPGAのソフトコア対応もあって、SMPにも対応したいし、
そうするとこれまた大修正になりそうで落としどころを模索中です。

Reply to #47408

RE: hosv4acfgでのデータキューは未サポート? (2009-12-14 12:14 by mc_ozawa #47434)

お世話になります。mc-ozawaです。
遅れましたが、お忙しい中早々の対応有難う御座います。

これから動かしてみたいと思います。
また、何か有りましたら問合せをしたいと思いますので宜しくお願いします。
Reply to #47408

RE: hosv4acfgでのデータキューは未サポート? (2009-12-14 17:12 by mc_ozawa #47438)

お世話になります。mc-ozawaです。

予約変数"KERNEL_RES_*****"のチェック漏れが有りました。
 ・credtq.cpp 75行目 KERNEL_RES_DTQID ・・・・・≫ KERNEL_RSV_DTQID
 ・attisr.cpp 85行目 KERNEL_RES_ISRID ・・・・・≫ KERNEL_RSV_ISRID

二度手間をおかけしますが、宜しくお願い致します。
Reply to #47408

RE: hosv4acfgでのデータキューは未サポート? (2009-12-15 07:49 by ryuz #47450)

Ryuzです。報告有難うございます。
類似バグチェックするべきでした。
取り急ぎ御指摘の2点だけ直しております。

また時間が取れたら少し見て見ます。
御希望に添えるかわかりませんが、優先的に対応した方が
良い機能などあればお気軽にリクエストください
(何せきまぐれなもので)。
Reply to #47438

RE: hosv4acfgでのデータキューは未サポート? (2009-12-11 23:48 by ryuz #47411)

こんばんは。Ryuzです。
報告頂いた、残りのバグレポについてです。


> また、メッセージ#36280と#45349(snd_dtqバグ?)も未対応?
#36280 は見落としていました。書き換えました。
#45359 は rcv_dtq 側を修正しておりました snd_dtq には手を入れていません。

> 77行目 KERNEL_RSV_DTQID ・・・・・≫ KERNEL_RSV_CYCIDでは?
バグです。修正いたしました。

> 253行目 ID flgidno 予約するセマフォID数 ・・・・・≫ フラグID数
誤記でした。修正いたしました。


丁寧な報告、有難うございました。

Reply to #47401

RE: hosv4acfgでのデータキューは未サポート? (2010-02-26 10:14 by mc_ozawa #48925)

お世話になります。mc-ozawaです。

コンフィギュレーターにおいて、system.cfg内で"KERNEL_INT_STK(***)"を指定した場合、
_kernel_ictxcbのスタック値が作成されない(0x0000)のままになります。
このため、割込みハンドラ内(kint_hdr.srcの1235行あたり)でR15に入れるスタック値が"0"になり
時々不正コードエラー割込みが発生します。

原因:
 コンフィギュレーターのintstak.cpp内145行目で出力する変数名が"SYSSTK()"になっているためのようです。
 "_KERNEL_SYS_INI_SYSSTK" → "_KERNEL_SYS_INI_INTSTK"に修正すれば正しく"_kernel_ictxcb"にスタック値が
 設定されました。
 修正をお願い致します。


Reply to #47401

RE: hosv4acfgでのデータキューは未サポート? (2010-02-26 19:27 by ryuz #48944)

お世話になります。Ryuzです。

バグレポ有難うございます。
確かにバグのようです。問題箇所まで解析いただき非常に助かります。。

NULL以外の値のときに発生してしまいます。

取り急ぎ、修正を入れてコミットいたしました。
よろしくお願いいたします。
Reply to #48925

RE: hosv4acfgでのデータキューは未サポート? (2010-03-19 17:00 by mc_ozawa #49597)

お世話になります。mc-ozawaです。

割込みハンドラで時々不正コードエラー割込みが発生する件に関して、
多重割込み処理(kint_hdr.src内1300行~1316行)中にスタック位置がずれるようです。

以下は、ソースからの抜粋
multiple_int:
; ---- 割込み実行処理呼び出し
mov.l addr_exe_inh, r1
jsr @r1
mov.l r3, @-r15 ←←← 対になるの命令がない(スタックー2)

; ---- 割込みカウンタの減算
mov.l addr_ictxcb, r1
mov.b @(ICTXCB_INTCNT, r1), r0
add #-1, r0
mov.b r0, @(ICTXCB_INTCNT, r1)

; ---- 割込みマスク値の復帰
mov.l r3, @-r15 ←←← スタック位置がずれる(スタックー4)ため、RTE命令でどこかへ飛ぶ
bra return_int
mov.w r3, @r1

○割込みマスク値の復帰は、
mov.l r3,@-r15 ではなく mov.l @r15+, r3 ではないのでしょうか?

ご確認後、修正をお願い致します。

Reply to #48925

RE: hosv4acfgでのデータキューは未サポート? (2010-03-21 18:20 by ryuz #49624)

お世話になります。Ryuzです。
バグレポ有難うございます。内容確認いたしました。

push/pop が両方pushになってしまっていますね。申し訳ありません。

取り急ぎ修正したものをコミットいたしました。

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


Reply to #49597