#include "target_syssvc.h"
/**
- * \brief UART0のTX信号にピンを割り付けるためのビットフィールド定義
+ * \brief UART0のTX信号(P0.2)にピンを割り付けるためのビットフィールド定義
*
*/
#define PINSEL_UART0_TX 0x10
/**
- * \brief UART0のRX信号にピンを割り付けるためのビットフィールド定義
+ * \brief UART0のRX信号(P0.3)にピンを割り付けるためのビットフィールド定義
*
*/
#define PINSEL_UART0_RX 0x40
+/**
+ * \brief UART1のTX信号(P0.15)にピンを割り付けるためのビットフィールド定義
+ *
+ */
+#define PINSEL_UART1_TX (0x01<<30)
+
+/**
+ * \brief UART1のRX信号(P0.16)にピンを割り付けるためのビットフィールド定義
+ *
+ */
+#define PINSEL_UART1_RX (0x01)
+
+/**
+ * \brief UART2のTX信号(P0.10)にピンを割り付けるためのビットフィールド定義
+ *
+ */
+#define PINSEL_UART2_TX (0x01<<20)
+
+/**
+ * \brief UART2のRX信号(P0.11)にピンを割り付けるためのビットフィールド定義
+ *
+ */
+#define PINSEL_UART2_RX (0x01<<22)
+
+/**
+ * \brief PCOMPレジスタのUART2ビット
+ * \details
+ * UART2は、デフォルトでは電源オフなので、使う前にオンにしなければならない。
+ *
+ */
+
+#define PCUART2 (1<<24)
+
/*
- * 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)
+ /* Port0.15,16 ピンをUART1に割り当てる。*/
+ LPC_PINCON->PINSEL0 |= PINSEL_UART1_TX;
+ LPC_PINCON->PINSEL1 |= 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;
+#else
+#error "SIO_PORTID NOT Supported"
+#endif
/*
* \brief コンソールが使用するシリアルポートID
* \details
* UIF用コンソールに使用するポート番号である。ポート番号は1から始まる整数。
+ *
+ * LPCX1768では、PORT番号に応じて正しいUARTにピンを割り当て、必要に応じて電源を与えなければならない。
+ * これらは target_config.c の target_initialize() にまとめてある。ただし、target_initialize()が
+ * 対応するのは限定的な組み合わせである。詳しくは、 target_initialize() のコメントを参照。
*/
#define SIO_PORTID (1)
*/
#define TNUM_PORT TNUM_SIOP_UART /* システムが管理するシリアルポートの総数 */
+
+/*
+ * SIOポートコンフィギュレーションの正当性確認
+ *
+ * この実装では、UIFコンソール用ポートは、TNUM_SIOP_UARTの値と同じか、
+ * より小さくなければならない。
+ */
+#if (SIO_PORTID > TNUM_SIOP_UART)
+#error "SIO_PORTID must be less than or equal to TNUM_SIOP_UART"
+#endif
+
/**
* \brief システムログ用のシリアルポート番号
* \details
* \brief シリアルポートのデフォルトボーレート
* \details
* TOPPERS/ASPのシリアルポート1に対するボーレート設定値である。
- * シリアルポートの番号は1オリジンになっている。
- * 特に設定しない限り、シリアルポートにはデフォルトの値が適用される。
- * シリアルポートの速度を変えたければ、マクロSIO_BAUD_RATE_PORTxを宣言する。
+ * シリアルポートの番号は1オリジンになっている。特に設定しない限り、
+ * 2番以降のシリアルポートに対しても同じ値が設定される。2番以降の
+ * シリアルポートの速度を変えたければ、マクロSIOx_BAUD_RATEを宣言する。
*/
#define SIO_BAUD_RATE_DEFAULT (57600)
=====================================================================
- LPC1768 GENERICターゲット依存部 (asp-1.6.1対応)
- Last Modified: 2011/Feb/27
+ LPC1768 GENERICターゲット依存部 (asp-1.6対応)
+ Last Modified: 2011/May/22
=====================================================================
(1) 対応しているターゲットシステムの種類・構成,バージョン番号
lpc1768_generic_gcc
・ターゲット非依存部のバージョン番号
- 1.6.1
+ 1.6
・プロセッサ,チップ,開発環境依存部の構成とバージョン番号
- 1.6.1
+ 1.6.0
・使用するPDICとバージョン番号
pdic/uart
#include "target_syssvc.h"
/**
- * \brief UART0のTX信号にピンを割り付けるためのビットフィールド定義
+ * \brief UART0のTX信号(P0.2)にピンを割り付けるためのビットフィールド定義
*
*/
#define PINSEL_UART0_TX 0x10
/**
- * \brief UART0のRX信号にピンを割り付けるためのビットフィールド定義
+ * \brief UART0のRX信号(P0.3)にピンを割り付けるためのビットフィールド定義
*
*/
#define PINSEL_UART0_RX 0x40
+/**
+ * \brief UART1のTX信号(P0.15)にピンを割り付けるためのビットフィールド定義
+ *
+ */
+#define PINSEL_UART1_TX (0x01<<30)
+
+/**
+ * \brief UART1のRX信号(P0.16)にピンを割り付けるためのビットフィールド定義
+ *
+ */
+#define PINSEL_UART1_RX (0x01)
+
+/**
+ * \brief UART2のTX信号(P0.10)にピンを割り付けるためのビットフィールド定義
+ *
+ */
+#define PINSEL_UART2_TX (0x01<<20)
+
+/**
+ * \brief UART2のRX信号(P0.11)にピンを割り付けるためのビットフィールド定義
+ *
+ */
+#define PINSEL_UART2_RX (0x01<<22)
+
+/**
+ * \brief PCOMPレジスタのUART2ビット
+ * \details
+ * UART2は、デフォルトでは電源オフなので、使う前にオンにしなければならない。
+ *
+ */
+
+#define PCUART2 (1<<24)
+
/*
- * 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)
+ /* Port0.15,16 ピンをUART1に割り当てる。*/
+ LPC_PINCON->PINSEL0 |= PINSEL_UART1_TX;
+ LPC_PINCON->PINSEL1 |= 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;
+#else
+#error "SIO_PORTID NOT Supported"
+#endif
/*
* \brief コンソールが使用するシリアルポートID
* \details
* UIF用コンソールに使用するポート番号である。ポート番号は1から始まる整数。
+ *
+ * LPCX1768では、PORT番号に応じて正しいUARTにピンを割り当て、必要に応じて電源を与えなければならない。
+ * これらは target_config.c の target_initialize() にまとめてある。ただし、target_initialize()が
+ * 対応するのは限定的な組み合わせである。詳しくは、 target_initialize() のコメントを参照。
*/
#define SIO_PORTID (1)
*/
#define TNUM_PORT TNUM_SIOP_UART /* システムが管理するシリアルポートの総数 */
+
+/*
+ * SIOポートコンフィギュレーションの正当性確認
+ *
+ * この実装では、UIFコンソール用ポートは、TNUM_SIOP_UARTの値と同じか、
+ * より小さくなければならない。
+ */
+#if (SIO_PORTID > TNUM_SIOP_UART)
+#error "SIO_PORTID must be less than or equal to TNUM_SIOP_UART"
+#endif
+
/**
* \brief システムログ用のシリアルポート番号
* \details
=====================================================================
- LPC1768 GENERICターゲット依存部 (asp-1.6.1対応)
- Last Modified: 2010/Feb/27
+ LPC1768 GENERICターゲット依存部 (asp-1.6対応)
+ Last Modified: 2010/May/22
=====================================================================
(1) 対応しているターゲットシステムの種類・構成,バージョン番号
lpcxpresso1768_gcc
・ターゲット非依存部のバージョン番号
- 1.6.1
+ 1.6
・プロセッサ,チップ,開発環境依存部の構成とバージョン番号
- 1.6.1
+ 1.6.2
・使用するPDICとバージョン番号
pdic/uart