ザビタン開発日記
2009 | 01
2008 | 01 | 02 | 06 | 12
2007 | 10 | 11 | 12
10月 18 (木曜日) 2007
17:47
バグ?
 
あっれえぇぇぇぇ???

正常に動作してるのに、ずーっと動かしてるとqemuが落ちるなぁ?
なんでーー?

(こういうのは大抵、メモリなんだよなぁ)

・・・メモリ関係をいいかげんに写したツケかな・・・・

ちょっとチェック(というか、復習)してみよう。

           :
//メモリの定義??
struct MEMMAN *testmemman = (struct MEMMAN *) MEMMAN_ADDR;
           :
//このシートに書きこめるよう、バッファを確保する。
//大きいのでmemman_allocを使う(画素分)
unsigned char *testbuf=(unsigned char *) memman_alloc_4k(testmemman,400*200);
           :
//このタスクで使うfifoバッファを確保する
int *testfifo = (int *) memman_alloc_4k(testmemman,128*8);
//タスクのレジスタを初期化
testtask->cons_stack = memman_alloc_4k(testmemman,64*1024);
testtask->tss.esp = testtask->cons_stack + 64 * 1024 - 12;
//タスクの実行関数のアドレスを当て込む
testtask->tss.eip = (int) &test_task;
           :
//タスクが持つfiroに当て込みを行う
fifo32_init(&testtask->fifo, 128, testfifo, testtask);

あやしいのはたぶんこの辺・・・

えっと・・・まずはここ。

//メモリの定義??
struct MEMMAN *testmemman = (struct MEMMAN *) MEMMAN_ADDR;

これはいらないでしょう!
メモリマネージャはひとつで十分のはず。わざわざ別のを作る必要はないはず。

これもあやしいなぁ。

//このタスクで使うfifoバッファを確保する
int *testfifo = (int *) memman_alloc_4k(testmemman,128*8);

fifoの各データはint型のはず。int fifobuf[128] と同じだけのメモリが欲しければ128*4じゃないか? (intは4バイトだから)

おぉ!!!!!
この状態で約2時間動かしたけど落ちないぞ!??(^^

とりあえず暫定的にこれで大丈夫つーーーことで!!

リビジョン13






 
30日を過ぎたBlogにはコメントできません。

Referer  (1)
(1) 2 3 4 5 6 7 8 9 10 » 

PopnupBlog V3 Denali created by Bluemoon inc.