- PR -

組み込みsh-linuxでご質問です

1
投稿者投稿内容
ふりりん
会議室デビュー日: 2004/12/06
投稿数: 1
投稿日時: 2004-12-06 14:54
shの組み込みLinuxを使用し、自社製カスタムボードを動作させています。
カーネル側にドライバを作成し、一応は動作していますが、負荷を掛けた動作を行うと
カーネルがフリーズする現象が発生しています。
動作的には割り込みを使用し、データバッファから読み込むといったものですが、
データが大変大きな為に、グローバルで1.5M及び1Mの配列を用意しています。
メモリは32M搭載していますので、容量的には問題無い様に思いますが、カーネル側で
宣言出来るメモリ容量の制限はあるのでしょうか?

また、コンパイルを行うと、割り込みを使用している部分で、
「warning : implicit declaration of function 'setup_irq'」
というワーニングが発生していますが、解消方法が良く分かりません。
初歩的なご質問で申し訳ありませんが、詳しい方がいらっしゃいましたら
御教授頂けたらと思います。宜しくお願いします。
コブラ
ぬし
会議室デビュー日: 2003/07/18
投稿数: 1038
お住まい・勤務地: 神奈川
投稿日時: 2004-12-06 15:34
/usr/src/linux-2.6.x/arch/sh/kernel/irq.c
中に setup_irq(); があるので、こいつのプロトタイプ宣言してやるか、

/usr/include/linux/irq.h をインクルードしたったら Warning 消えるとか!?

しかし、Kernel2.4.x までは Non Preemptive で高負荷掛けるとモノリシック・
カーネル故の弱点、、Solaris みたいな「カーネル・スレッド」レベルでの割り込み
を受け付けんので、他へのレスポンスが後回しにされて処理が停滞する可能性があるかも。

2.6.x 以上では、リアルタイム性を考慮して Solaris みたいな「カーネル・スレッド」
レベルでの割り込みも「あり」っちゅぅ想定で実装されとった思いますが、 2.6.x でその
現象なら・・・

改造!?

ユーザー・モードでメモリ関係の制限あるとしたら、 /etc/sysctl.conf かね。。。
1

スキルアップ/キャリアアップ(JOB@IT)