TCP/IPプロトコル・スタックの省メモリ開発事例(前編) ――ミドルウェアの追加で既存の16ビット・マイコンがネット対応マイコンに変身
● 目標はROM64Kバイト,RAM8Kバイト
開発に先立ち,既存のTCP/IPプロトコル・スタックについて調査を行いました(表1).FreeBSD版のTCP/IPプロトコル・スタックは,ほぼすべてのTCP/IPの機能を備えており注1,信頼性に定評があります.しかし,16ビット・マイコン向けとしてはROM使用量(コード量)もRAM使用量も大きいのが問題です.
開発ツール・ベンダなども組み込みマイコン向けのTCP /IPプロトコル・スタックを提供していますが,これらも32ビット・クラスの高機能マイコン向けであり,フルスペックに近いものが多く,FreeBSD版の場合と同じようにメモリ使用量が問題となります.
注1;RFC(Request for Comments)の要件をすべて満たしているわけではない.独自の判断により,あえてRFCとは異なる実装になっている部分もある.WindowsのTCP/IPの実装はFreeBSD版とまた少し異なっており,RFCのオリジナルの仕様も含めたそれぞれの仕様の是非について,議論が絶えないところである.
FreeBSD版* | ツール・ベンダ製 | フリー・ライセンス | |
ROM使用量 (バイト) | 180K | 数十K~数百K | 18K |
RAM使用量 (バイト) | 580K | 数K~数百K | 2.5K |
機能 | フルスペック | ほぼフルスペック | 機能制限が多い |
*FreeBSD版のTCP/IPプロトコル・スタックを組み込みマイコン向けに移植したもので比較した.