カーネル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/CHANGES.LPC を追加
  • asp/MANIFEST に "CHANGES.LPC"を追加

ターゲット依存部の追加

  • asp/arch/arm_m_gccを追加
  • asp/chip を追加
  • asp/pdic/uart を追加
  • asp/target/lpc1768_generic_gccを追加
  • asp/target/lpcxpresso1768_gccを追加

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:バグ・フィックスの集積リリースを行ったばかりなので、実は今がチャンス