はじめまして
Shimaと申します。
GENMAI BSPを元に、kernelの機能を削減して、外部RAMのみで動作させています。
RZ/A1 10Mbyte
一部のRAMが使用できなくなっていますが、このRAMを使用できるようにすることは可能でしょうか。
約4Mbyte
起動ログの抜粋
...
Memory: 10MB = 10MB totalMemory: 6696k/6696k available, 3544k reserved, 0K highmem
freeコマンドの実行結果
# free total used free shared buffersMem: 6792 5720 1072 0 156-/+ buffers: 5564 1228Swap: 0 0 0
ご使用になっている Linux BSP の種類やバージョンを教えていただけますか?
> その後、configを変える前から、実装されているSDRAM容量に対して、Linuxでfreeコマンドを> 実行した結果のtotalから除外されているRAM容量があることに気が付きました。
Windows などと同様に、Linux も基本的には、ハードディスク (組込み機器だとフラッシュメモリや eMMC などの記憶デバイス) から、そのプログラム全体を主記憶である RAM にコピー(ロード)して RAM 上で実行されます。お尋ねの「totalから除外されているRAM容量」の 10 MB - 6,792 kB = 10,240 kB - 6,792 kB = 3,448 kB
約 4 MB は、Linux カーネルのコードやデータ(静的、動的)として使用済み/使用予約済みの領域サイズです。ですから、基本的には、使用できません。
ただ、Linux カーネル(やアプリ)は、かなり贅沢に RAM を使用しますから、既に Shima さんも一部、実行されているように、色々な方法で使用する RAM の量を削減する工夫がされています。
補足です。
実行速度の点で XIP は難しいとしても、もし、Shima さんがカーネル(やアプリ)を ARM 命令を使用してコンパイルしているのなら、それを Thumb 命令を使用してコンパイルするように変更する (カーネルのコンフィギュレーションで "Compile the kernel in Thumb-2 mode" を選択して、CONFIG_THUMB2_KERNEL を有効にする) と、カーネル(やアプリ)のコードサイズが削減されて、それが占有していた RAM の削減になります。
また、命令密度が向上することで、多くの場合には、実行速度も併せて向上します。