* Release 1.6.2 2011/**/**
- - チケット#24676のバグを修正
\ No newline at end of file
+ - チケット#24676のバグを修正
+
+ - チケット#24777のバグを修正(2011/04/05:shintamainjp)
+ - pdic/uart/uart.c
+ - PORT1からPORT4までを平等に扱うようにした。
+ - SIO_BAUD_RATE_PORTxが定義されている時に、対象ポートのボーレートを変更するようにした。
+ - target/lpc1768_generic_gcc/target_syssvc.h
+ - SIO_BAUD_RATE_PORTxの定義を追加した。
+ - target/lpcxpresso1768_gcc/target_syssvc.h
+ - SIO_BAUD_RATE_PORTxの定義を追加した。
+ - syssvc/serial.c
+ - TNUM_PORT >= 4の時、送受信バッファを定義するようにした。
+ - syssvc/logtask.h
+ - LOGTASK_PORTIDを1からSIO_PORTIDに変更した。
+ - syssvc/serial.cfg
+ - TNUM_PORT >= 4の時、送受信処理用セマフォを定義するようにした。
/* ボーレートの設定 */
uart_write( reg, UART_LCR, LCR_DLAB ); /* ディバイザ設定モードに移行 */
- uart_write( reg, UART_DLL, DLL((SIO_UART_CLOCK/SIO_BAUD_RATE_DEFAULT/16)) );
- uart_write( reg, UART_DLM, DLM((SIO_UART_CLOCK/SIO_BAUD_RATE_DEFAULT/16)) );
-#if defined(SIO2_BAUD_RATE)
- if ( siopid == 2 )
- {
- uart_write( reg, UART_DLL, DLL((SIO_UART_CLOCK/SIO2_BAUD_RATE/16)) );
- uart_write( reg, UART_DLM, DLM((SIO_UART_CLOCK/SIO2_BAUD_RATE/16)) );
- }
+ switch (siopid) {
+ case 1:
+#if defined(SIO_BAUD_RATE_PORT1)
+ uart_write( reg, UART_DLL, DLL((SIO_UART_CLOCK/SIO_BAUD_RATE_PORT1/16)) );
+ uart_write( reg, UART_DLM, DLM((SIO_UART_CLOCK/SIO_BAUD_RATE_PORT1/16)) );
+#else
+ uart_write( reg, UART_DLL, DLL((SIO_UART_CLOCK/SIO_BAUD_RATE_DEFAULT/16)) );
+ uart_write( reg, UART_DLM, DLM((SIO_UART_CLOCK/SIO_BAUD_RATE_DEFAULT/16)) );
#endif
-
-#if defined(SIO3_BAUD_RATE)
- if ( siopid == 3 )
- {
- uart_write( reg, UART_DLL, DLL((SIO_UART_CLOCK/SIO3_BAUD_RATE/16)) );
- uart_write( reg, UART_DLM, DLM((SIO_UART_CLOCK/SIO3_BAUD_RATE/16)) );
- }
+ break;
+ case 2:
+#if defined(SIO_BAUD_RATE_PORT2)
+ uart_write( reg, UART_DLL, DLL((SIO_UART_CLOCK/SIO_BAUD_RATE_PORT2/16)) );
+ uart_write( reg, UART_DLM, DLM((SIO_UART_CLOCK/SIO_BAUD_RATE_PORT2/16)) );
+#else
+ uart_write( reg, UART_DLL, DLL((SIO_UART_CLOCK/SIO_BAUD_RATE_DEFAULT/16)) );
+ uart_write( reg, UART_DLM, DLM((SIO_UART_CLOCK/SIO_BAUD_RATE_DEFAULT/16)) );
#endif
-
-#if defined(SIO4_BAUD_RATE)
- if ( siopid == 4 )
- {
- uart_write( reg, UART_DLL, DLL((SIO_UART_CLOCK/SIO4_BAUD_RATE/16)) );
- uart_write( reg, UART_DLM, DLM((SIO_UART_CLOCK/SIO4_BAUD_RATE/16)) );
- }
+ break;
+ case 3:
+#if defined(SIO_BAUD_RATE_PORT3)
+ uart_write( reg, UART_DLL, DLL((SIO_UART_CLOCK/SIO_BAUD_RATE_PORT3/16)) );
+ uart_write( reg, UART_DLM, DLM((SIO_UART_CLOCK/SIO_BAUD_RATE_PORT3/16)) );
+#else
+ uart_write( reg, UART_DLL, DLL((SIO_UART_CLOCK/SIO_BAUD_RATE_DEFAULT/16)) );
+ uart_write( reg, UART_DLM, DLM((SIO_UART_CLOCK/SIO_BAUD_RATE_DEFAULT/16)) );
+#endif
+ break;
+ case 4:
+#if defined(SIO_BAUD_RATE_PORT4)
+ uart_write( reg, UART_DLL, DLL((SIO_UART_CLOCK/SIO_BAUD_RATE_PORT4/16)) );
+ uart_write( reg, UART_DLM, DLM((SIO_UART_CLOCK/SIO_BAUD_RATE_PORT4/16)) );
+#else
+ uart_write( reg, UART_DLL, DLL((SIO_UART_CLOCK/SIO_BAUD_RATE_DEFAULT/16)) );
+ uart_write( reg, UART_DLM, DLM((SIO_UART_CLOCK/SIO_BAUD_RATE_DEFAULT/16)) );
#endif
+ break;
+ }
/* デバイザ設定モードから、通常モードに戻す */
- uart_write( reg, UART_LCR, 0 ); /* 通常モードに移行 */
+ uart_write( reg, UART_LCR, 0 ); /* 通常モードに移行 */
/* プロトコルを設定。8bit, 1stop bit, parityなし */
uart_write( reg, UART_LCR, LCR_NP_8_1 ); /* 通常モードに移行 */
* \brief シリアルポートのデフォルトボーレート
* \details
* TOPPERS/ASPのシリアルポート1に対するボーレート設定値である。
- * シリアルポートの番号は1オリジンになっている。特に設定しない限り、
- * 2番以降のシリアルポートに対しても同じ値が設定される。2番以降の
- * シリアルポートの速度を変えたければ、マクロSIOx_BAUD_RATEを宣言する。
+ * シリアルポートの番号は1オリジンになっている。
+ * 特に設定しない限り、シリアルポートにはデフォルトの値が適用される。
+ * シリアルポートの速度を変えたければ、マクロSIO_BAUD_RATE_PORTxを宣言する。
*/
#define SIO_BAUD_RATE_DEFAULT (57600)
-#if 0
-#define SIO2_BAUD_RATE 115200
-#define SIO3_BAUD_RATE 115200
-#define SIO4_BAUD_RATE 115200
-#endif
+//#define SIO_BAUD_RATE_PORT1 (57600)
+//#define SIO_BAUD_RATE_PORT2 (57600)
+//#define SIO_BAUD_RATE_PORT3 (57600)
+//#define SIO_BAUD_RATE_PORT4 (57600)
/**
* \brief システムログの低レベル出力のための文字出力