[Armadillo:05901] Re: A440で複数スレッドプログラムを実行するとリセットする。
nakai
email@hidden
2010年 10月 8日 (金) 18:41:49 JST
nakaiです。
現在弊社でリリースしています、Armadillo-400シリーズのソフトウェア
・linux-a400-1.03.bin.gz
・linux-2.6.26-at10
・(上記よりも過去のバージョンも含みます)
については、
『タイマー(GPT : i.MX25内蔵汎用タイマー)ドライバに不具合』
があることがわかりました。
この不具合は、タイマーアクセス時にコア内部の不整合が起因して、
Watchdog Timerのkickができず、結果的にリセットされてしまう現象です。
通常利用においては、非常に再現しづらい現象ですが、
アプリケーションやカーネルで多くのタイマーを使用すると現象が発生しやすくなります。
上記の不具合の修正は、次のリリースに含める予定でいます。
まだリリースの準備ができていなくフライング気味ですが、
ダウンロードサイトに最新のイメージ(※)をおきました。
こちらで動作を確認していただけますか?
http://download.atmark-techno.com/armadillo-4x0/image/linux-a400-1.04.bin.gz
※ 現在テスト中ですので、実際のリリースイメージと異なる可能性があります。
(2010/10/08 12:48), email@hidden wrote:
> こんにちは、お世話になります。ichiと申します。
>
> Armadillo440で複数スレッドを持つプログラムを実行すると
> 再起動してしまいます。
> 再起動するタイミングは、バラバラで数10分後のときもあれば
> 20時間後のときもあります。
> 再起動時は、リセットがかかったような状況です。
> (いきなりhermitが起動する。)
>
> 以下に環境とテストプログラムのソースを記載します。
> みなさまのアドバイスを頂きたくお願いします。
>
> ■機器構成
> Armadillo440
> ブートローダ 2.0.3
> カーネル linux-a400-1.03.bin.gz
> ユーザランド romfs-a440-1.02.img.gz
> 周辺機器接続無し
>
> ■プログラム
> メインから20個のスレッドを作成する。その後1秒スリープの
> 単純ループ
> スレッドは、20msecのスリープを行なうだけの単純ループ
> (コンパイル時、-lpthread 追加)
>
> ■原因は?
> スレッド利用方法(プログラム)が悪い?
> 20msecのスリープだけのスレッド20個も実行するのが過酷?
> 外的要因?
>
>
> -- ソース ここから ---------------------------------------------------
> #include<stdio.h>
> #include<stdlib.h>
> #include<unistd.h>
> #include<pthread.h>
>
>
> pthread_t ThreadTable[20];
>
> static void *ThreadFunction(void *argp);
>
>
> int main(int argc, char *argv[])
> {
> int rc,tno;
>
> printf("Thread test program. ver 0.02\n");
>
> for (tno = 0; tno< 20; tno++) {
> rc = pthread_create(&ThreadTable[tno],NULL,
> ThreadFunction,NULL);
> printf("THREAD(%d): pthread_create rc=%d\n",tno,rc);
> }
>
> for (;;) {
> sleep(1);
> }
>
> exit(0);
> }
>
>
> static void *ThreadFunction(void *argp)
> {
> for (;;) {
> usleep(20000);
> }
> }
> -- ここまで ---------------------------------------------------------
>
> 以上、よろしくお願いします。
>
> _______________________________________________
> armadillo mailing list
> email@hidden
> http://lists.atmark-techno.com/cgi-bin/mailman/listinfo/armadillo
>
armadillo メーリングリストの案内