LPC8xxの2種類のAPIライブラリ

LPC8xxのサンプルコードには、2014年2月現在、2種類の既成APIライブラリ(ドライバ)があります。

1. LPCClose:LPCXpresso_7.0.0_92付属のNXP_LPC8xx_SampleCodeBundle.zip

2. LPCOpen:LPCOpenサイトのLPCOpen-LPCXprersso LPC812, LPC800-MAX/LPCXpresso, Keil_IAR

両者の違いは、2が3階層ライブラリ(私は下図のように理解)、1は、従来からある階層なしのライブラリです(詳しくは、コチラ)。LPCCloseは、LPCOpenに対して、私がかってに付けた名前です。

LPCOpenの目的

LPCOpenの構造
LPCOpenの構造

 私は参照してもLPCOpen理解度はイマイチなのですが、目的は周辺回路のライブラリ汎用化、ひいてはCライブラリのような標準化とOpen開発によるAPIバグ取り、CMSISのドライバ版と理解(想像?)しています。

既成API利用のプログラミング

一方、LPCClose側のライブラリ評判は、良くありません。既成API利用のプログラミングは歴史が浅く、ドライバ側の改版も順次進むでしょう。また、いずれのサンプルもLPC8xxの最大特徴、スイッチ・マトリクス・ツール(ver1 20130602版):SMTの出力を使ったコードはありません。SMT完成が2013年6月なので、サンプルコード開発に間に合わなかったのが原因と思います。が、現状でもSMT出力をLPCOpenソースへ代入するとコンパイルエラーが生じるなど、新しい製品なのでしかたがないのでしょう。ソフト開発を複数人で行うと必ず生じる副作用だと思います。

LPCOpenの選択

ポイントは、既成ドライバの改版時、ユーザ開発部分に影響が少ない(理想はゼロ)構成にしておくことです。LPCOpenヒストリーを観ると、現在のv2.01までに5回改版されています。

このような状況ですが私は、LPCOpenライブラリを使います。バグ取りの進み具合がOpen開発なので早そうなのと、Cライブラリの雰囲気があるからです。その分、LPCCloseに比べ、解読しにくい箇所もありますが、組込みマイコン標準周辺回路ライブラリを夢見て活用したいと思います。

コメントを残す