カーネル1.7.0移植のためのスタディ
TOPPERS/ASP 1.7.0がリリースされてしばらく経ちます。現在TOPPERS/ASP for LPCプロジェクトではカーネル1.6.0を使っており、適当な時点*1でアップデートが必要です。
以下、カーネル1.6.0に対して、TOPPERS/ASP for LPCが施した変更を列挙しました。このうち、慎重な作業が必要なのは、asp/syssvcへの変更くらいです。
むしろ注意すべきは、将来1.8.0への以降を検討する際、1.7.0へ施した変更点を調査しやすく残しておくことが重要でしょう。
ターゲット依存部の追加
asp/syssvcへの変更点
uart3まで対応するための変更が、ターゲット非依存部に施されています
Index: serial.c =================================================================== --- serial.c (.../tags/09_160_original/asp/syssvc) (revision 373) +++ serial.c (.../trunk/asp/syssvc) (revision 373) @@ -95,6 +95,21 @@ #endif /* TNUM_PORT >= 3 */ +#if TNUM_PORT >= 4 /* ポート4に関する定義 */ + +#ifndef SERIAL_RCV_BUFSZ4 +#define SERIAL_RCV_BUFSZ4 256 /* ポート4の受信バッファサイズ */ +#endif /* SERIAL_RCV_BUFSZ4 */ + +#ifndef SERIAL_SND_BUFSZ4 +#define SERIAL_SND_BUFSZ4 256 /* ポート4の送信バッファサイズ */ +#endif /* SERIAL_SND_BUFSZ4 */ + +static char_t rcv_buffer4[SERIAL_RCV_BUFSZ4]; +static char_t snd_buffer4[SERIAL_SND_BUFSZ4]; + +#endif /* TNUM_PORT >= 4 */ + /* * フロー制御に関連する定数とマクロ */ @@ -130,6 +145,11 @@ SERIAL_RCV_BUFSZ3, rcv_buffer3, SERIAL_SND_BUFSZ3, snd_buffer3 }, #endif /* TNUM_PORT >= 3 */ +#if TNUM_PORT >= 4 + { SERIAL_RCV_SEM4, SERIAL_SND_SEM4, + SERIAL_RCV_BUFSZ4, rcv_buffer4, + SERIAL_SND_BUFSZ4, snd_buffer4 }, +#endif /* TNUM_PORT >= 4 */ }; /* Index: logtask.h =================================================================== --- logtask.h (.../tags/09_160_original/asp/syssvc) (revision 373) +++ logtask.h (.../trunk/asp/syssvc) (revision 373) @@ -65,7 +65,7 @@ #endif /* LOGTASK_STACK_SIZE */ #ifndef LOGTASK_PORTID -#define LOGTASK_PORTID 1 /* システムログ用のシリアルポート番号 */ +#define LOGTASK_PORTID SIO_PORTID /* システムログ用のシリアルポート番号 */ #endif /* LOGTASK_PORTID */ #ifndef LOGTASK_INTERVAL Index: serial.cfg =================================================================== --- serial.cfg (.../tags/09_160_original/asp/syssvc) (revision 373) +++ serial.cfg (.../trunk/asp/syssvc) (revision 373) @@ -22,3 +22,7 @@ CRE_SEM(SERIAL_RCV_SEM3, { TA_TPRI, 0, 1 }); CRE_SEM(SERIAL_SND_SEM3, { TA_TPRI, 1, 1 }); #endif /* TNUM_PORT >= 3 */ +#if TNUM_PORT >= 4 +CRE_SEM(SERIAL_RCV_SEM4, { TA_TPRI, 0, 1 }); +CRE_SEM(SERIAL_SND_SEM4, { TA_TPRI, 1, 1 }); +#endif /* TNUM_PORT >= 4 */
*1:バグ・フィックスの集積リリースを行ったばかりなので、実は今がチャンス