9. 起動が遅すぎ
MP3 Player として動作しはじめるまでには、 まずbootローダがHDDからメモリへkernelを転送して、 それからuClinuxが起動、そしてMP3 Playerアプリが動作開始となります。 ところが、この時間が結構長くてちょっとイライラさせられます。 特に、ローダ (Redboot) がkernelを読み込むのに時間がかかっているようなので、 ここに手を入れて起動時間の短縮を試みました。

1バイト毎の関数コールをブロック単位にする簡単な修正で、 劇的にとまではいきませんが転送の時間が半分ぐらいになりました。 まだ全体としては起動は遅いですが、 あとはその間に液晶に絵でも表示させて気をまぎらわす作戦にします。

《 ← 前へ 》 《 次へ → 》

Redbootの修正
eCos の packages/redboot/current/src/load.c に手を加えて、 バッファから1バイト毎取ってくる関数を呼ぶオーバヘッドを無くしてバッファにある分全部を取ってくるように変えてしまいます。 また、バッファサイズの定義も512から2048と大きくします。 (パッチ)

また、DHCPを有効にしているredbootでネットワークを接続しないで起動した時、 タイムアウトが非常に長かったので、 /packages/redboot/current/src/net/bootp.c の RETRY_TIME と MAX_RETRIES をそれぞれ 1000 と 3 に変更しました。

《 ← 前へ 》 《 次へ → 》