=====================================================================
                UARTドライバ (asp-1.6.0対応）
                                  Last Modified: 2010/Oct/11
=====================================================================

○概要

16450互換UART用ドライバである。LPC17xx用に開発したが、互換性を考慮している
ので、移植性は高いはずである。

このドライバは内蔵UARTだけを使うシステムを想定している。そのため、
target_serial.hからuart.hを読み込むだけでビルドできる。

○コンパイラ

GCC 4.4.1 で動作確認を行った．動作確認した GCC 4.4.1 は，以下のサイトから
バイナリパッケージをダウンロードして用いた．

   http://www.codesourcery.com/gnu_toolchains/arm/download.html


○各種設定の変更

SIO_PORTID
	1から始まるTOPPERSのシリアルポート番号。コンソールに使うポート番号を
	指定する。target_syssvc.hで宣言する。
	
TNUM_PORT
	1から始まる数字で、TOPPERS/ASPの管理下に置かれるUARTの個数を指定する。
	target_syssvc.hで宣言する。

SIO_BAUD_RATE_DEFAULT
	SIOポート1で使用されるボーレート。target_syssvc.hで宣言する。
	SIOx_BAUD_RATEを宣言しない場合、他のSIOポートでもこの値を使用する。

SIO2_BAUD_RATE
	SIOポート2で使用されるボーレート。target_syssvc.hで宣言する。
	宣言しない場合はSIO_BAUD_RATE_DEFAULTが使われる。他のポートでも同様
	である。	

SIO_UART_CLOCK
	内蔵UARTブロックに入力されるクロック周波数をヘルツで指定する。DLL/DLMが
	分周するクロックはこの信号である。すべてのSIOポートが同じ信号を使用すると
	仮定している。

uart_write, uart_read
	整数で与えられるベースアドレスとレジスタ・オフセットを使ってレジスタに
	読み書きするための補助関数。チップ依存部やターゲット依存部ごとにuart.cの
	中で用意する。

UART_BOUNDARY
	1,2,4のいずれか。UARTレジスタの間隔を指定する。バイト・アドレスのシステム
	ならば1、CORTEX-M3のような32bitシステムではたいてい4である。
	UART_BOUNDARYはuart.cの中でしか使わないので、uart.cで宣言する。
	変更する場合には、チップ依存部、あるいはターゲット依存部識別マクロによる
	条件コンパイルを追加する。

INTNO_SIO, INHNO_SIO
	コンソールに使用するシリアルポート(PORTID)が使用する割り込みハンドラ番号、
	割り込み番号を指定する。これはtarget_serial.cfgで使用する。
	
sioreg_table
	シリアルポートのベースアドレスを納めた配列。配列の0番にシリアルポート1の
	ベースアドレスを格納する。uart.cで定義する。

○変更履歴

2010/Oct/11
	初版