UARTドライバの移植に着手

TOPPERS/ASPCORTEX-M3公式リリースは、STマイクロのSTM32F103がベースになっています。このプロセッサのシリアルポートはUSARTと呼ばれ、古典的なUARTと異なります。一方、LPC1768はUARTを使っています。
従って、シリアル・ポートのドライバを移植しなければなりません。
シリアル・ポートのドライバに関してはBlackfin依存部を書いたときに汎用UARTドライバを書いています。汎用性についてはTOPPERS/JSP for LPC2388への移植がすんなり進んだことで、一応満足できるものになっています。
今回、ASPの移植に伴い、下調べをしているところです。以下のような点がわかってきました。

  • JSPASPでシリアルI/Oポートのアーキテクチャが異なる
  • ASPCORTEX-M3依存部公式リリースでは、ターゲット依存部のシリアルが2層構造になっている

まず、アーキテクチャですが、コールバック関数の名前が変更になっており、JSPの依存部をそのまま使うわけにはいかないようです。
さらに、JSPのm68k公式リリースでは2層構造になっていたシリアルI/Oポートのターゲット依存部が、CORTEX-M3公式リリースでは1層になっています。JSPのm68k依存部では、異なるアーキテクチャのシリアル・ペリフェラルを混在できるように、ターゲット依存部で異種ドライバを束ねて使えるようになっています。一方でASPCORTEX-M3依存部は割り切って内蔵シリアル・ポートのみ使える構造になっています。マイコンのSoC化を考えると、アマチュアである私が実装する場合には1層で良さそうです。
そういうわけで、シリアル・ポートのドライバを書き直す準備をしています。
今まではTOPPERS/JSP本体といきなりリンクしてエイヤッ!とばかり動かしていましたが、今回はテスト・ドライバでくるむ形にして石橋をたたきながらの開発をする予定です。