Skip to content

Latest commit

 

History

History
 
 

RX24T

Renesas RX24T ハードウェアー定義テンプレート

概要

ルネサス RX24T 用ハードウェアー定義 C++ テンプレート・クラス
ルネサスが提供する、iodefine.h は C言語の規約に違反している為、特定の環境でしか
正しくコンパイルする事が出来ません。
※ビットフィールドの定義は、バイトサイズのみ準拠しますが、16ビット、又は
それ以上は、エンディアンの関係などから、結果はコンパイラに依存します。

また、非常に冗長であり、可読性が悪いです。
※独自の方法を使い、プログラムで生成しているものと思います。

※RX24T 特有の定義や設定を網羅しています。

C++ テンプレートを活用したハードウェアー定義は、C++11 準拠のコンパイラならエラー
無くコンパイルする事が可能で、ハードウェアー・マニュアルのレジスター説明に準拠し
た正式な名称を使っています。
「iodefine.h」では、ビットフィールド定義の構造上、ビットアクセス、ワードアクセス
で異なった、インスタンスを付加する必要があり冗長です。

ハードウェアーマニュアルに沿った、モジュール別にソースを分割しています。

テンプレートクラスなので、最適化も最大限活用でき、必要なら、さらなる最適化に向け た実装の余地もあります。

ペリフェラル名

  • 各デバイスモジュールを抽象化する為、ペリフェラル名を定義しています。
  • 「ペリフェラル名」は、なるべく、ハードウェアーマニュアルで説明されているキーワード を使うようにしています、詳しくは、peripheral.hppを参照して下さい。
  • この名称は、省電力切り替え、専用ポート制御、割り込み制御など、多様な場面で、識別子
    として使われており、ペリフェラル全体で必要な細かい設定を自動化する為に使われます。

割り込みベクター名

  • 各デバイスが扱う割り込みベクターも、抽象化の為定義されています。

コンビニエンス関数

  • 各デバイスクラスには、ドライバーやサービスクラスからの操作をより抽象的に扱えるように、
    場合により、操作を簡潔に行えるような関数を用意している場合があります。

プロジェクト・リスト


License

MIT