(toppers-users 3260) Re: Microblaze依存部のコード不具合
Shinya Honda
honda @ ertl.jp
2010年 10月 11日 (月) 16:45:34 JST
山下さん
名古屋大学の本田です.
ご報告ありがとうございます.
(2010/10/07 14:28), Yoshinori Yamashita wrote:
> 島津製作所 山下です。
>
> 今更の返信で大変恐縮ですが、やっと評価用の試作ボードが動き始めたので
> 依頼されていたMicroblaze依存部 Ver.1.3.3の動作確認を行いました。
>
> その報告と、新たな不具合の報告です。
>
>
> asp_arch_microblaze_gcc-1.3.3 にて、
>
>> 修正点は次の通りです.
>>
>> ・TOPPERS_ISTKPT で,int型のポインタでスタック領域を確保していた問題を
>> 修正.char_t型のポインタへ修正.
>
> この修正は間違いでは?
>
> target_config.hにて
> #define DEFAULT_ISTKSZ (0x1000U/4U) /* 4Kbyte */
> のように 1/4 されているので、char_tに変更すると _kernel_istkpt が
> +1Kbyteの位置を指すことにりますよね?
これは,target_config.h の修正忘れです.正しくは,
#define DEFAULT_ISTKSZ (0x1000U) /* 4Kbyte */
です.
>> ・(toppers-users 3123)で指摘された,dispatcher_2:のアイドルループを抜
>> ける際に,割込みを禁止していない問題を修正.
>
> こちらは動作確認完了しました。
確認ありがとうございます.
>> 申し訳ないのですが,こちらでは現状コンパイル環境までしかないため,コンパ
>> イルが通ることは確認しましたが,動作確認をしておりません.修正内容の確認
>> と動作確認をしていただければ幸いです.
>
>
> 別件ですが、UART関連で不具合を見つけました。
>
> (1) microblaze.h 内の microblaze_xuartl_init()
>
> 送受信バッファクリアのための書き込み先が XUART_TX_OFFSET になって
> いるので、このコードではバッファクリアされず、データ送信されてしま
> います。
>
> 書き込み先は XUART_CTRL_OFFSET と思います。
>
>
> (2) UART Lite 連続送信が止まる
>
> UART Liteの割り込みは、送信割り込みがEdge, 受信割り込みがLevelで
> 割り込みラインは共通なので、割り込みコントローラではEdgeで検出する
> のが通常だと思います。
> UART Liteの割り込みハンドラは、ポート数に応じて自動生成され、入り口
> でi_begin_int(), 出口でi_end_int()が呼ばれ、無条件にi_end_int()内で
> xintc_ack_int()にて割り込みがクリアされています。
>
> →Edgeタイプの割り込みを、ハンドラ出口でクリアしている。
>
> ボーレートを115200等高速にすると、sio_isr()内部でTX FIFOに入れた次の
> 送信データの割り込みがi_end_int()コール前に発生することがあり(※)、
> i_end_int()でこの割り込みがクリアされてしまい、連続データの送信が止
> まってしまうという現象が発生します。
> (UART割り込みの優先度をTimer割り込みと同じにすれば現象は発生しない)
>
> ※sio_isr()処理中にタイマ割り込み等の優先度の高い割り込みが発生した
> 場合。
>
> i_begin_int() / i_end_int()がlevel割り込みにしか対応できていないので、
>
> i_begin_int() / i_end_int()を廃止& configuratorを修正して、
> sio_isr()入り口で xintc_ack_int()をコールする。
>
> あるいは
>
> 割り込みのタイプ(edge/level)に従って、
> ・edge割り込み : i_begin_int() 内でクリア
> ・level割り込み : i_end_int() 内でクリア
>
> のような修正が必要かと思います。
>
> ちなみに、私は後者の方法でコード修正して対応しています。
ご指摘通りに,CFG_INTの割込み属性を見て,edge割込みとlevel割込みで割込み
のクリアのタイミングを変更するようにしました.
コードは別途直接お送りします.問題がないようなら,TOPPERSから公開したい
と思います.
以上,よろしくお願いします.
--
本田 晋也(Shinya Honda)
名古屋大学 大学院情報科学研究科 附属組込みシステム研究センター 准教授
E-mail honda @ ertl.jp
WWW http://www.ertl.jp/~honda/
TEL/FAX 052-789-5888/5889