• R/O
  • SSH
  • HTTPS

toppersasp4lpc: Commit


Commit MetaInfo

Revision522 (tree)
Zeit2011-10-04 22:47:11
Autorshintamainjp

Log Message

チケット #26459 : 複数シリアルポートの同時使用対応を実施。当然ながら既存のコードも問題なく動作する。

Ändern Zusammenfassung

Diff

--- asp/trunk/asp/pdic/uart/uart.h (revision 521)
+++ asp/trunk/asp/pdic/uart/uart.h (revision 522)
@@ -57,22 +57,26 @@
5757 /*
5858 * SIOの割込みベクタ番号
5959 */
60-#if (SIO_PORTID == 1)
61-#define INHNO_SIO INHNO_UART0
62-#define INTNO_SIO INHNO_UART0
63-#elif (SIO_PORTID == 2)
64-#define INHNO_SIO INHNO_UART1
65-#define INTNO_SIO INHNO_UART1
66-#elif (SIO_PORTID == 3)
67-#define INHNO_SIO INHNO_UART2
68-#define INTNO_SIO INHNO_UART2
69-#elif (SIO_PORTID == 4)
70-#define INHNO_SIO INHNO_UART3
71-#define INTNO_SIO INHNO_UART3
60+#if defined (SIO_BAUD_RATE_PORT1)
61+#define INHNO_SIO1 INHNO_UART0
62+#define INTNO_SIO1 INHNO_UART0
7263 #endif
7364
65+#if defined (SIO_BAUD_RATE_PORT2)
66+#define INHNO_SIO2 INHNO_UART1
67+#define INTNO_SIO2 INHNO_UART1
68+#endif
7469
70+#if defined (SIO_BAUD_RATE_PORT3)
71+#define INHNO_SIO3 INHNO_UART2
72+#define INTNO_SIO3 INHNO_UART2
73+#endif
7574
75+#if defined (SIO_BAUD_RATE_PORT4)
76+#define INHNO_SIO4 INHNO_UART3
77+#define INTNO_SIO4 INHNO_UART3
78+#endif
79+
7680 /**
7781 * \ingroup SIOAPI
7882 * \brief コールバックルーチンの識別番号
--- asp/trunk/asp/target/lpcxpresso1768_gcc/target_syssvc.h (revision 521)
+++ asp/trunk/asp/target/lpcxpresso1768_gcc/target_syssvc.h (revision 522)
@@ -85,6 +85,30 @@
8585 #endif
8686
8787 /**
88+ * \brief システムで使用可能なシリアルポート1に対するID番号。
89+ * \details 対応するシリアルポートは実装の詳細で決まる。
90+ */
91+#define SIO1_PORTID (1)
92+
93+/**
94+ * \brief システムで使用可能なシリアルポート2に対するID番号。
95+ * \details 対応するシリアルポートは実装の詳細で決まる。
96+ */
97+#define SIO2_PORTID (2)
98+
99+/**
100+ * \brief システムで使用可能なシリアルポート3に対するID番号。
101+ * \details 対応するシリアルポートは実装の詳細で決まる。
102+ */
103+#define SIO3_PORTID (3)
104+
105+/**
106+ * \brief システムで使用可能なシリアルポート4に対するID番号。
107+ * \details 対応するシリアルポートは実装の詳細で決まる。
108+ */
109+#define SIO4_PORTID (4)
110+
111+/**
88112 * \brief コンソールが使用するシリアルポートID
89113 * \details
90114 * UIF用コンソールに使用するポート番号である。ポート番号は1から始まる整数。
@@ -92,14 +116,16 @@
92116 * LPCX1768では、PORT番号に応じて正しいUARTにピンを割り当て、必要に応じて電源を与えなければならない。
93117 * これらは target_config.c の target_initialize() にまとめてある。ただし、target_initialize()が
94118 * 対応するのは限定的な組み合わせである。詳しくは、 target_initialize() のコメントを参照。
119+ *
120+ * コンソール用シリアルポートにはSIO1_PORTIDで定義されたポートを使用する。
95121 */
96-#define SIO_PORTID (1)
122+#define SIO_PORTID (SIO1_PORTID)
97123
98-
99124 /**
100125 * \brief UARTドライバが管理する内蔵UARTの数
101126 */
102127 #define TNUM_SIOP_UART (1)
128+
103129 /**
104130 * \brief システムが管理するシリアル・ポートの総数
105131 * \details
@@ -107,7 +133,6 @@
107133 */
108134 #define TNUM_PORT TNUM_SIOP_UART /* システムが管理するシリアルポートの総数 */
109135
110-
111136 /*
112137 * SIOポートコンフィギュレーションの正当性確認
113138 *
@@ -123,26 +148,67 @@
123148 * \details
124149 * logtaskで使用する。1オリジン。
125150 *
126- * システムログ用のシリアルポートは、コンソール用のシリアルポートと強要することが多い。
151+ * システムログ用のシリアルポートは、コンソール用のシリアルポートと共用することが多い。
127152 */
128153 #define LOGTASK_PORTID SIO_PORTID
129154
130155 /**
131- * \brief シリアルポートのデフォルトボーレート
156+ * \brief シリアルポート1のボーレート
157+ *
132158 * \details
133159 * TOPPERS/ASPのシリアルポート1に対するボーレート設定値である。
134- * シリアルポートの番号は1オリジンになっている。特に設定しない限り、
135- * 2番以降のシリアルポートに対しても同じ値が設定される。2番以降の
136- * シリアルポートの速度を変えたければ、マクロSIOx_BAUD_RATEを宣言する。
160+ * この宣言を有効にするとシリアルポートが活性化される。
161+ * シリアルポートのピン設定はtarget_config.cに実装されている。
162+ * LPC1700では複数のピン設定があるため、実装の詳細を確認すること。
163+ *
164+ * このファイルで定義されているTNUM_SIOP_UARTの定義数を実際に使用する
165+ * UART数と一致させる事。
137166 */
138-#define SIO_BAUD_RATE_DEFAULT (57600)
167+#define SIO_BAUD_RATE_PORT1 (57600)
139168
140-//#define SIO_BAUD_RATE_PORT1 (57600)
141-//#define SIO_BAUD_RATE_PORT2 (57600)
142-//#define SIO_BAUD_RATE_PORT3 (57600)
143-//#define SIO_BAUD_RATE_PORT4 (57600)
169+/**
170+ * \brief シリアルポート2のボーレート
171+ *
172+ * \details
173+ * TOPPERS/ASPのシリアルポート2に対するボーレート設定値である。
174+ * この宣言を有効にするとシリアルポートが活性化される。
175+ * シリアルポートのピン設定はtarget_config.cに実装されている。
176+ * LPC1700では複数のピン設定があるため、実装の詳細を確認すること。
177+ *
178+ * このファイルで定義されているTNUM_SIOP_UARTの定義数を実際に使用する
179+ * UART数と一致させる事。
180+ */
181+// #define SIO_BAUD_RATE_PORT2 (57600)
144182
145183 /**
184+ * \brief シリアルポート3のボーレート
185+ *
186+ * \details
187+ * TOPPERS/ASPのシリアルポート3に対するボーレート設定値である。
188+ * この宣言を有効にするとシリアルポートが活性化される。
189+ * シリアルポートのピン設定はtarget_config.cに実装されている。
190+ * LPC1700では複数のピン設定があるため、実装の詳細を確認すること。
191+ *
192+ * このファイルで定義されているTNUM_SIOP_UARTの定義数を実際に使用する
193+ * UART数と一致させる事。
194+ */
195+// #define SIO_BAUD_RATE_PORT3 (57600)
196+
197+/**
198+ * \brief シリアルポート4のボーレート
199+ *
200+ * \details
201+ * TOPPERS/ASPのシリアルポート4に対するボーレート設定値である。
202+ * この宣言を有効にするとシリアルポートが活性化される。
203+ * シリアルポートのピン設定はtarget_config.cに実装されている。
204+ * LPC1700では複数のピン設定があるため、実装の詳細を確認すること。
205+ *
206+ * このファイルで定義されているTNUM_SIOP_UARTの定義数を実際に使用する
207+ * UART数と一致させる事。
208+ */
209+// #define SIO_BAUD_RATE_PORT4 (57600)
210+
211+/**
146212 * \brief システムログの低レベル出力のための文字出力
147213 * \details
148214 * ターゲット依存の方法で,文字cを表示/出力/保存する.
@@ -150,6 +216,8 @@
150216 extern void target_fput_log(char_t c);
151217
152218 #endif /* TOPPERS_TARGET_SYSSVC_H */
219+
153220 /**
154221 * \}
155222 */
223+
--- asp/trunk/asp/target/lpcxpresso1768_gcc/target_config.c (revision 521)
+++ asp/trunk/asp/target/lpcxpresso1768_gcc/target_config.c (revision 522)
@@ -129,7 +129,6 @@
129129 */
130130 void target_initialize(void)
131131 {
132-
133132 /*
134133 * チップ依存部の初期化。この呼び出しは削除してはいけない。
135134 */
@@ -159,31 +158,41 @@
159158 * 種類持っている。以下のコードはそれらのうちの一つに対応しているにすぎない。必要に応じて
160159 * アプリケーション・プログラマが書き換えて使うこと。
161160 */
162-#if (SIO_PORTID==1)
161+
162+#if defined (SIO_BAUD_RATE_PORT1)
163163 /* Port0.2,3 ピンをUART0に割り当てる。*/
164164 LPC_PINCON->PINSEL0 |= PINSEL_UART0_TX | PINSEL_UART0_RX;
165-#elif (SIO_PORTID==2)
165+ target_uart_init(SIO1_PORTID);
166+#endif
167+
168+#if defined (SIO_BAUD_RATE_PORT2)
166169 /* Port2.0,1 ピンをUART1に割り当てる。*/
167170 LPC_PINCON->PINSEL4 |= PINSEL_UART1_TX | PINSEL_UART1_RX;
168-#elif (SIO_PORTID==3)
171+ target_uart_init(SIO2_PORTID);
172+#endif
173+
174+#if defined (SIO_BAUD_RATE_PORT3)
169175 /* Port0.10,11 ピンをUART2に割り当てる。*/
170176 LPC_PINCON->PINSEL0 |= PINSEL_UART2_TX | PINSEL_UART2_RX;
171177 /* UART2 の電源をオンにする */
172178 LPC_SC->PCONP |= PCUART2;
173-#elif (SIO_PORTID==4)
179+ target_uart_init(SIO3_PORTID);
180+#endif
181+
182+#if defined (SIO_BAUD_RATE_PORT4)
174183 /* Port0.0,1 ピンをUART3に割り当てる。*/
175184 LPC_PINCON->PINSEL0 |= PINSEL_UART3_TX | PINSEL_UART3_RX;
176185 /* UART3 の電源をオンにする */
177186 LPC_SC->PCONP |= PCUART3;
178-#else
179-#error "SIO_PORTID NOT Supported"
187+ target_uart_init(SIO4_PORTID);
180188 #endif
181189
182-
183- /*
184- * バナー出力用のシリアル初期化
185- */
186- target_uart_init(SIO_PORTID);
190+ /*
191+ * バナー出力用のシリアル初期化を実行する。
192+ * 上記のシリアルポート初期化と重複するかもしれないが、
193+ * ここではこれを許容する。
194+ */
195+ target_uart_init(SIO_PORTID);
187196 }
188197
189198
--- asp/trunk/asp/arch/arm_m_gcc/lpc1700_gcc/chip_serial.h (revision 521)
+++ asp/trunk/asp/arch/arm_m_gcc/lpc1700_gcc/chip_serial.h (revision 522)
@@ -65,16 +65,25 @@
6565 * 引数として使う。
6666 */
6767
68-#define INTPRI_SIO -3 /* 割込み優先度 */
68+#define INTPRI_SIO1 (-3) /**< SIO1割込み優先度 */
69+#define INTPRI_SIO2 (-3) /**< SIO2割込み優先度 */
70+#define INTPRI_SIO3 (-3) /**< SIO3割込み優先度 */
71+#define INTPRI_SIO4 (-3) /**< SIO4割込み優先度 */
6972
7073 /**
71- * \brief 割込み優先度
74+ * \brief 割込み属性
7275 * \details
73- * UART割込みハンドラ登録のための定数。コンフィギュレータが静的コンフィギュレーション時に、シリアルポート登録用
74- * 引数として使う。この値は0でかまわない。
76+ * UART割込みハンドラ登録のための定数。
77+ * コンフィギュレータが静的コンフィギュレーション時に、
78+ * シリアルポート登録用引数として使う。
79+ * この値は0でかまわない。
7580 */
76-#define INTATR_SIO 0 /* 割込み属性 */
7781
82+#define INTATR_SIO1 (0) /**< SIO1割込み属性 */
83+#define INTATR_SIO2 (0) /**< SIO2割込み属性 */
84+#define INTATR_SIO3 (0) /**< SIO3割込み属性 */
85+#define INTATR_SIO4 (0) /**< SIO4割込み属性 */
86+
7887 #endif /* TOPPERS_CHIP_SERIAL_H */
7988 /**
8089 * \}
Show on old repository browser