1

私はMCB2300(LPC2378プロセッサを搭載)に取り組んでおり、keiluVision4を使用しています。私のプログラムでは、malloc()関数を使用して動的メモリを作成しています。すべての動的コンテンツはヒープに格納されるため、必要なヒープサイズが割り当てられていることを確認する必要があります。スタートアップファイル(LPC2300.s)のヒープのデフォルト値は0x00000800です。私のアプリケーションでは、画像(bmp形式)を読み取り、ピクセル値をマトリックスに格納しています。マトリックスは、入力画像のサイズに対して動的に作成されます。スタートアップファイルに設定できる最大ヒープ値は0x000072FFです。このヒープの値については、44x33の画像を正常に読み取ることができました。このサイズを超えると、メモリは割り当てられません。少なくとも100x100のサイズの画像を読み取る必要があります。使用可能なRAMは32Kです。

これらは、コードをコンパイルした後の出力値です

プログラムサイズ:コード= 30664RO-data = 1220 RW-data = 132 ZI-data = 37628

追加のヒープを提供する方法は?

LPC2378用に用意されているSD/MMCカードや外部メモリバンクにヒープメモリを保存することはできますか?この問題を解決するのを手伝ってください

4

1 に答える 1

0

ボードに外部 RAM チップがある場合は、それをヒープに使用できます。しかし、外部 RAM がない場合、ヒープ サイズを内部 RAM サイズより大きくする方法はありません。

SD/MMC カードをメモリ デバイスとして使用するために、仮想メモリ ドライバのいくつかのバリアントを作成できます。ただし、デバイスには MMU (メモリ管理ユニット) がないため、ドライバーは非常に複雑で非常に遅くなります。したがって、それはオプションではありません。

また、28K のヒープがあるため、そこに 99x99 RGB24 BMP 画像を保持できます。99*99*3 = 29403。

于 2011-12-27T15:14:02.957 に答える