アプリケーションのモジュール テーブルを作成しようとしています。
/*** MODULE TABLE DEFINTION ***/
struct ModuleInfo
{
char use_module; // 0 = don't use, 1 = use, -1 for end of list
char module_name[64]; // english name of module
int(*module_init)(void); // module initialization callback
void(*module_tick)(void); // module tick callback
void(*module_end)(void); // module end callback
void *config_table; // config table
};
/*** MODULE TABLE ***/
const struct ModuleTable module_table[] = {
{
1, "GPS/NMEA over RS232",
gps_nmea_rs232_init,
gps_nmea_rs232_tick,
gps_nmea_rs232_end,
NULL
},
// end table
{
-1, NULL, NULL, NULL, NULL
}
};
このテーブルには、適切な間隔で呼び出される初期化、ティック、および終了関数へのポインターを含むモジュールのリストが格納されます。
これは、特定の PIC マイクロコントローラー用の GCC 3.23 (と思いますか?) のバージョンである MPLAB C30 を使用して構築しています。
ただし、これをコンパイルしようとすると、次のようになります。
In file included from main.c:3:
modules.h:67: error: array type has incomplete element type
(編集:ROM)スペアがたくさんあり、(編集:RAM)スペアがあまりないため、テーブルは可能であれば const にする必要があります。なぜこれが機能しないのかわかりません。