#include "target_syssvc.h"
/**
- * \brief UART0のTX信号にピンを割り付けるためのビットフィールド定義
+ * \brief UART0のTX信号(P0.2)にピンを割り付けるためのビットフィールド定義
*
*/
-#define PINSEL_UART0_TX 0x10
+#define PINSEL_UART0_TX (0x01<<4)
/**
- * \brief UART0のRX信号にピンを割り付けるためのビットフィールド定義
+ * \brief UART0のRX信号(P0.3)にピンを割り付けるためのビットフィールド定義
*
*/
-#define PINSEL_UART0_RX 0x40
+#define PINSEL_UART0_RX (0x01<<6)
+/**
+* \brief UART1のTX信号(P2.0)にピンを割り付けるためのビットフィールド定義
+ *
+ */
+#define PINSEL_UART1_TX (0x02)
+
+/**
+ * \brief UART1のRX信号(P2.1)にピンを割り付けるためのビットフィールド定義
+ *
+ */
+#define PINSEL_UART1_RX (0x02<<2)
+
+/**
+ * \brief UART2のTX信号(P0.10)にピンを割り付けるためのビットフィールド定義
+ *
+ */
+#define PINSEL_UART2_TX (0x01<<20)
+
+/**
+ * \brief UART2のRX信号(P0.11)にピンを割り付けるためのビットフィールド定義
+ *
+ */
+#define PINSEL_UART2_RX (0x01<<22)
+/**
+ * \brief UART3のTX信号(P0.0)にピンを割り付けるためのビットフィールド定義
+ *
+ */
+#define PINSEL_UART3_TX (0x02)
+/**
+ * \brief UART3のRX信号(P0.1)にピンを割り付けるためのビットフィールド定義
+ *
+ */
+#define PINSEL_UART3_RX (0x02<<2)
+/**
+ * \brief PCOMPレジスタのUART2ビット
+ * \details
+ * UART2は、デフォルトでは電源オフなので、使う前にオンにしなければならない。
+ *
+ */
+#define PCUART2 (1<<24)
+
+/**
+ * \brief PCOMPレジスタのUART3ビット
+ * \details
+ * UART3は、デフォルトでは電源オフなので、使う前にオンにしなければならない。
+ *
+ */
+#define PCUART3 (1<<25)
/**
* \brief ターゲット依存部 初期化処理
/*
- * I/Oポートの初期化
+ * SIOポートの初期化
+ *
+ * 以下のコードは、SIO_PORTIDの値に応じて自動的にピン・コンフィギュレーションを行うが、
+ * これはLPC1768の一部機能に過ぎないことに注意。LPC1768は、UART1や2の割り当て先を複数
+ * 種類持っている。以下のコードはそれらのうちの一つに対応しているにすぎない。必要に応じて
+ * アプリケーション・プログラマが書き換えて使うこと。
*/
- /* bit5:4=01, bit7:6=01, ピンをUART0に割り当てる。*/
- LPC_PINCON->PINSEL0 = PINSEL_UART0_TX | PINSEL_UART0_RX;
+#if (SIO_PORTID==1)
+ /* Port0.2,3 ピンをUART0に割り当てる。*/
+ LPC_PINCON->PINSEL0 |= PINSEL_UART0_TX | PINSEL_UART0_RX;
+#elif (SIO_PORTID==2)
+ /* Port2.0,1 ピンをUART1に割り当てる。*/
+ LPC_PINCON->PINSEL4 |= PINSEL_UART1_TX | PINSEL_UART1_RX;
+#elif (SIO_PORTID==3)
+ /* Port0.10,11 ピンをUART2に割り当てる。*/
+ LPC_PINCON->PINSEL0 |= PINSEL_UART2_TX | PINSEL_UART2_RX;
+ /* UART2 の電源をオンにする */
+ LPC_SC->PCONP |= PCUART2;
+#elif (SIO_PORTID==4)
+ /* Port0.0,1 ピンをUART3に割り当てる。*/
+ LPC_PINCON->PINSEL0 |= PINSEL_UART3_TX | PINSEL_UART3_RX;
+ /* UART3 の電源をオンにする */
+ LPC_SC->PCONP |= PCUART3;
+#else
+#error "SIO_PORTID NOT Supported"
+#endif
/*