これは RL78 と、そのコンパイラである rl78-elf-gcc,g++ によるプログラムです。
RL78 の開発では、ルネサスエレクトロニクスが提供する統合開発環境を使う事も出来ますが、
永続的に使うには製品版を購入するか、生成したバイナリーが64Kバイト以下に限られる為、
また、C++ をサポートしない為、gcc を使います。
また、Mac OS-X、Linux などのマルチプラットホームで開発出来る利便性も重視しています。
その他に、登録が必要な「Open Source Tools for Renesas」の開発ツールを使う事もできますが、自分の開発スタイルと微妙に合いません、IDE があまり好きでは無いからです。
現在は、主に「R5F100L」(G13 グループ) に対応した、ヘッダー、関連ライブラリーなどです。
・R5F100LCAFB (FLASH: 32K, RAM: 2K, DATA-FLASH:4K) @250
・R5F100LEAFB (FLASH: 64K, RAM: 4K, DATA-FLASH:4K) @290
・R5F100LGAFB (FLASH:128K, RAM:12K, DATA-FLASH:8K) @340 (変換基板実装済み @420)
・R5F100LJAFB (FLASH:256K, RAM:20K, DATA-FLASH:8K) @400
※ @xxx は、秋月電子販売の参考価格
プロジェクトは、Makefile、及び、関連ヘッダー、ソースコードからなり、専用のスタートアップルーチン、
リンカースクリプトで構成されています。
その為、専用のブートプログラムやローダーは必要なく、作成したバイナリーをそのまま実行できます。
これは、デバイスにハードウェアー・リセットが入力されて、自分のアプリケーションが動作するまでの
全てを詳細に公開してあり、判り易いものとなっています。
※ありがちなのは、コンパイラを魔改造して、内部で、動的に機能を切り替えるなどです。
そのような姑息な手段を行わなくても十分実用になる環境が、gcc と make だけで構築できます。
デバイスI/O操作では、C++ で構成されたテンプレート・クラス・ライブラリーを使い、専用のヘッダー
と各種デバイス用のクラスライブラリーを用意してあり、最小限の実装で、高機能で柔軟な操作を実現する
べく、日々改良と研究を行っています。
※未知のデバイス向けクラス・ライブラリーの提供を募集しています。(MIT ライセンスで提供出来る事)
E-Mail: hira@rvf-rc45.net
ディレクトリー | 内容 |
---|---|
rl78prog | RL78 フラッシュへのプログラム書き込みツール |
G13 | G13 グループ、リンカースクリプト、デバイス定義ファイル |
common | RL78 共有クラス、小規模なクラスライブラリー、ユーティリティー |
chip | 各種デバイス用の制御クラスなど |
ff12a | ChaN さん作成の「FatFS 0.12a」フレームワーク、と、RL78/G13 SPI |
KiCAD_Lib | KiCAD 用部品ライブラリー |
data_flah_lib | GR-Cotton/GR-Kurumi データ・フラッシュ操作ライブラリ |
FIRST_sample | RL78/G13 デバイス向け超簡単なサンプル(LED の点滅) |
SOFT_DELAY_sample | RL78/G13 ソフトウェアー・タイマーのサンプル |
UART_sample | RL78/G13 デバイス向け、シリアル・コミュニケーションのサンプル |
ARITH_sample | RL78/G13 四則演算サンプル(文字列で数式を受け取り計算する) |
ADC_sample | RL78/G13 内臓 A/D 変換サンプル |
ADC_SWITCH_sample | RL78/G13 シリーズ・スイッチ(4列)A/D 変換のサンプル |
THERMISTOR_sample | RL78/G13 サーミスター温度表示サンプル(A/D 変換使用) |
TOUCH_sample | RL78/G13 タッチ・スイッチ、サンプル |
DATA_FLASH_sample | RL78/G13 データ・フラッシュ・サンプル(読み出し、書き込み、消去) |
INTERVAL_TIMER_sample | RL78/G13 内臓12ビット、インターバル・タイマーのサンプル |
INTERVAL_TIMER_TAU_sample | RL78/G13 TAU 利用インターバル・タイマー・サンプル |
EEPROM_sample | RL78?G13 EEPROM I2C Read/Write サンプル |
DS3231_sample | RL78/G13 DS3231 I2C Real Time Clock の時間表示、設定サンプル |
DS1371_sample | RL78/G13 DS1371 I2C Real Time Clock の時間表示、設定サンプル |
BMP180_sample | RL78/G13 BMP180 I2C 圧力/温度センサー読み込み、表示サンプル |
VL53L0X_sample | RL78/G13 VL53L0X I2C Time-of-Flight 距離センサ、サンプル |
PWM_sample | RL78/G13 TAU 利用 PWM 出力サンプル |
SDC_sample | RL78/G13 SD カードの操作サンプル(SDカードのルートディレクトリーのリスト) |
WAV_PLAYER_sample | RL78/G13 WAV file 再生サンプル(PWM 変調による8ビット出力、48KHz/16bits まで対応) |
VS1063_PLAYER_sample | RL78/G13 VS1063 Audio Decoder 再生サンプル |
LCD_DOT_sample | RL78/G13 ST7565(R)/SSD1306 SPI LCD コントローラー、グラフィックス表示サンプル |
MAX6675_sample | RL78/G13 MAX6675 SPI K 熱電対、温度表示サンプル |
MAX7219_sample | RL78/G13 MAX7219 SPI LED 表示サンプル |
SD カードのファイルシステム「fatfs」では、「LFN」(長いファイル名)を標準で使っており、表示は UTF-8 を標準で使います。
(UTF-8、Shift-JIS 変換テーブルがあります)
この場合、128KB以上のデバイスが必要です。
これはメモリーを多く消費します、もし必要無いのであれば、「ff12a/src/ffconf.h」の「_USE_LFN」を
「0」にして、コンパイルすれば、文字列コードは OEM、(CP932 の場合 ShiftJIS)となり、最小限の
メモリー消費になります、長いファイル名も無効になり、8.3 形式になります。
-
Windows では、事前に MSYS2 環境をインストールしておきます。
-
MSYS2 には、msys2、mingw32、mingw64 と3つの異なった環境がありますが、msys2 で行います。
-
msys2 のアップグレード
pacman -Sy pacman
pacman -Syu
- コンソールを開きなおす。(コンソールを開きなおすように、メッセージが表示されるはずです)
pacman -Su
-
アップデートは、複数回行われ、その際、コンソールの指示に従う事。
-
※複数回、コンソールを開きなおす必要がある。
-
gcc、texinfo、gmp、mpfr、mpc、diffutils、automake、zlib tar、make、unzip コマンドなどをインストール
pacman -S gcc
pacman -S texinfo
pacman -S mpc-devel
pacman -S diffutils
pacman -S automake
pacman -S zlib
pacman -S tar
pacman -S make
pacman -S unzip
pacman -S zlib-devel
- git コマンドをインストール
pacman -S git
-
OS-X では、事前に macports をインストールしておきます。(brew は柔軟性が低いのでお勧めしません)
-
OS−X のバージョンによっては、事前にX−Code、Command Line Tools などのインストールが必要になるかもしれません)
-
macports のアップグレード
sudo port -d self update
- ご存知とは思いますが、OS−X では初期段階では、gcc の呼び出しで llvm が起動するようになっています。
- しかしながら、現状では llvm では、gcc のクロスコンパイラをビルドする事は出来ません。
- そこで、macports で gcc をインストールします、バージョンは5系を使う事とします。
sudo port install gcc5
sudo ln -sf /opt/local/bin/gcc-mp-5 /usr/local/bin/gcc
sudo ln -sf /opt/local/bin/g++-mp-5 /usr/local/bin/g++
sudo ln -sf /opt/local/bin/g++-mp-5 /usr/local/bin/c++
- 再起動が必要かもしれません。
- 一応、確認してみて下さい。
gcc --version
gcc (MacPorts gcc5 5.4.0_0) 5.4.0
Copyright (C) 2015 Free Software Foundation, Inc.
This is free software; see the source for copying conditions. There is NO
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
- texinfo、gmp、mpfr、mpc、diffutils、automake コマンドなどをインストール
sudo port install texinfo
sudo port install gmp
sudo port install mpfr
sudo port install libmpc
sudo port install diffutils
sudo port install automake
Linux 環境は、複数あるので、ここでは「Ubuntu 16.04 LTS」環境の場合を書いておきます。
- texinfo、gmp、mpfr、mpc、diffutils、automake コマンドなどをインストール
sudo apt-get install texinfo
sudo apt-get install libgmp-dev
sudo apt-get install libmpfr-dev
sudo apt-get install libmpc-dev
sudo apt-get install diffutils
sudo apt-get install automake
sudo apt-get install zlib1g-dev
- RL78 用コンパイラ(rl78-elf-gcc,g++)は gcc-4.9.4 を使います。
- binutils-2.25.1.tar.gz をダウンロードしておく
- gcc-4.9.4.tar.gz をダウンロードしておく
- newlib-2.2.0.tar.gz をダウンロードしておく
cd
tar xfvz binutils-2.25.1.tar.gz
cd binutils-2.25.1
mkdir rl78_build
cd rl78_build
../configure --target=rl78-elf --prefix=/usr/local/rl78-elf --disable-nls --with-system-zlib
make
make install OS-X,Linux: (sudo make install)
- /usr/local/rl78-elf/bin へパスを通す(.bash_profile を編集して、パスを追加)
PATH=$PATH:/usr/local/rl78-elf/bin
- コンソールを開きなおす。
rl78-elf-as --version
- アセンブラコマンドを実行してみて、パスが有効か確かめる。
cd
tar xfvz gcc-4.9.4.tar.gz
cd gcc-4.9.4
mkdir rl78_build
cd rl78_build
../configure --prefix=/usr/local/rl78-elf --target=rl78-elf --enable-languages=c --disable-libssp --with-newlib --disable-nls --disable-threads --disable-libgomp --disable-libmudflap --disable-libstdcxx-pch --disable-multilib --enable-lto --with-system-zlib
make
make install OS-X,Linux: (sudo make install)
cd
tar xfvz newlib-2.2.0.tar.gz
cd newlib-2.2.0
mkdir rl78_build
cd rl78_build
../configure --target=rl78-elf --prefix=/usr/local/rl78-elf
make
make install OS-X: (sudo make install)
- Linux 環境では、sudo コマンドで、ローカルで設定した binutils のパスを認識しないので、 「make install」が失敗する、その為、以下のようなスクリプトを書いて実行する。
#!/bin/sh
# file: rl78_install.sh
PATH=${PATH}:/usr/local/rl78-elf/bin
make install
sudo rl78_install.sh
cd
cd gcc-4.9.4
cd rl78_build
../configure --prefix=/usr/local/rl78-elf --target=rl78-elf --enable-languages=c,c++ --disable-libssp --with-newlib --disable-nls --disable-threads --disable-libgomp --disable-libmudflap --disable-libstdcxx-pch --disable-multilib --enable-lto --with-system-zlib
make
make install OS-X,Linux: (sudo make install)
OS-X、Linux では、各プロジェクトをビルドする際に、「Makefile」内で設定している
最適化オプション「-flto」を外して下さい。
そうしないと、動作しない実行バイナリーが生成されます。
※MSYS2 でビルドした場合には、これは起こりません。
具体的には、参照されない関数アドレスなどが格納されたセクションの情報が一切出力
されていません。
現在、対処法を検討中です。
※現在のところ、「-flto」で受けられる恩恵は少ないので安全の為、全ての環境で、この
オプションを付加しない方向でビルドしています。
git clone https://github.com/hirakuni45/RL78.git
- プロジェクトを全てコンパイル
sh all_project_build.sh
幾つかの方法がありますが、最も簡単で、コストがかからない方法は、シリアルインターフェースを使って
書き込む方法です。
但し、R8Cのように直接接続する事は出来ません。
シリアルインターフェースからの3つ(5つ)の信号を適切な変換回路でマイコンと接続する必要があります。
※USB シリアル変換モジュールなどを使うと、電源も取れて簡単です。
※(秋月電子、シリアル変換モジュール)http://akizukidenshi.com/catalog/g/gK-06894/
(1) RXD シリアル受信
(2) TXD シリアル送信
(3) RTS ハードウェアー制御信号
(4) VCC 電源(5V又は3.3V)
(5) GND 電源 0V
※3.3Vは限られた電流しか取り出せない為、レギュレーターを入れる事を推奨します。
※ RTS 信号が取り出せる変換アダプターが必要です、DCD 信号では代用できません。
※中国製の格安なモジュールは、RTS が無い物や、品質が安定していない為、お勧めしません、それらの事
項を理解していて対処出来る人だけ利用すると良いと思います。
- 回路図は、rl78prog/KiCAD/ を参照して下さい、簡易書き込み回路があります。
- 正規の回路は、ルネサスエレクトロニクスのホームページからダウンロード出来ます。
- もちろん、ルネサスエレクトロニクス販売のE1、又は、E2、エミュレーターでも書き込む事が出来ます。
- RL78/G13(64ピン製品) の「P40/TOOL0 (5)」、「/RESET (6)」に接続します。
- シリアル通信は、開発過程では良く利用するので、スイッチで切り替えられるようにしておくと便利です。
※切り替えの参考回路が、「rl78prog/KiCAD」にあります。
※シリアル変換回路で書き込んでも、かなり高速に書き込めますので、RL78の為にE1を新規に購入
するのは、コストを考えた方が良いかもしれません。
※現在のところ、Windows 環境でしか書き込みが出来ません。
- rl78prog のビルドには「boost_1_60_0」が必要です。(MSYS2 環境の場合)
- Windows 以外の環境では、「port」、「apt-get」を使ってインストールして下さい。
- USB シリアルチップが、FTDI の場合、OS-X、Linux では、標準のドライバーでは、動作しません。
- また、OS-X では、OS のバージョンによっては、FTDI のドライバーインストールに工夫が必要です。
- その他の USB シリアルチップの場合は調査していません。
- boost はヘッダーのみ利用なので、ビルドの必要はありません。
- mingw64 環境などに pacman を使い boost をインストールして使っています。
pacman -S mingw-w64-x86_64-boost
- rl78prog のビルド(MSYS2)
- ビルドした実行ファイルは、/usr/local/bin に配置します。
cd rl78prog
make
make install
※ /usr/local/bin にパスを通しておく。
-
rl78_prog.conf を編集して、接続する COM ポート、ボーレートの設定をする。
-
ボーレートは、RL78 の仕様と termios の制限から「115200」、「500000」、「1000000」のみ対応しています。
-
/dev/ttyS10 -> COM11 に相当します。(数字に+1する)
-
rl78prog/KiCAD/ に、RL78 プログラマー(書き込み機)の参考回路などが含まれます。
-
動作確認シリアルデバイス
FT231X | CP2102 | CH340 | |
---|---|---|---|
Windows | ○ | ○ | △ |
OS-X | × | × | △ |
Linux | × | × | △ |
○:動作確認済み、△:未確認、×:動作不良
※書き込みソフトはマルチプラットホーム対応ですが、現状では、Windows 環境でしか、
書き込みができません・・
RL78 は一応は、16ビットマイコンに分類されていますが、厳密には違うと思います。
基本は 8 ビットマイコンと何ら変わりなく、アドレス空間が広い 8 ビットと言えます。
C や C++ のプログラムを作成する場合に注意する点は、ポインターは基本 16 ビットで、
64K バイトの空間しかアクセス出来ません、特殊な場合、__far ポインターを使えますが
命令の効率が悪く、特殊な用途に絞って使う事ができます。
※FatFS を使用した場合の、UTF-8 と CP932 の変換テーブルなどを、ROM Flash 領域の
後半に配置して、 __far ポインターによりアクセスしています。
プログラムカウンターは、20 ビットに拡張されており、1M バイトの領域で動作します。
RAM や I/O 領域は、0xF0000 以降にアサインされており、この領域のアクセスでは、上位
4 ビットが固定されたアドレッシングモードを使い、16 ビットのアクセスを行う為、
コンパイラは、20 ビットの領域にアクセスしているように振る舞いますが、実際は、16
ビットの領域しかアクセス出来ません。
※詳しくは、「ミラー領域」の説明を観て下さい。
ルネサス・エレクトロニクスでは、内臓データフラッシュへの書き込みに必要な資料を
公開していません、また、gcc 用のデータフラッシュライブラリの提供もしていません
従って、現状では、内部データフラッシュを利用する事は出来ません。
何か、データを記憶したい場合は、I2C 接続の EEPROM を活用するなどの方法が考えられます。
※GR-Cotton、GR-Kurumi では、RL78/G13 が採用されており、WEB コンパイラは gcc を
使っており、データフラッシュライブラリ(PFDL T4 の gcc 版)が使える事が判り、状況
は変わりました、現在は、データフラッシュの操作は普通に行えるようになっています。
- 現状、メンテナンスが十分ではなく、中途半端な状態でコミットされている場合があります。
- 動作しない場合は、プログラムに不具合がある場合があるので、問い合わせ下さい。
- 各プロジェクトのリストを参考に、プロジェクトのディレクトリーに移動します。
- 各プロジェクトは、「R5F100LGAFB」(ProgramFlash: 128KB、RAM: 12KB、DataFlash: 8KB)がデフォルトとなっています。
- Makefile 内で、他のデバイスに変更する事が出来ます。※ワーク RAM サイズが違うので必ず合わせる必要があります。
- 基本的には、内部発振を使い 32MHz で動作させています。
- 動作周波数を変更したい場合は、同時に Makefile 内の F_CLK を指定する必要があります。
- 現状では、ソフトウェアーディレイは32MHzにしか対応していません。
- より正確なクロックで動かしたい場合、外部にクリスタルを接続し、外部発振を有効にすれば、使う事ができます。
- 但し、最大20MHzまでのクリスタル、又は外部クロックにしか対応しません。
- 起動時の動作周波数設定は、common/option_bytes.c で行っています。
- C++ のテンプレートを多用しているので、バイナリーは大きくなりがちです。
- サイズを優先して最適化したい場合は「-Os」を指定する事で、バイナリーが小さくなります。
- 「-Os」を指定する場合、※「-flto」は現状では利用しない方が良いでしょう。(gcc のバグと思われる)
- 「R5F100LGAFB」は、変換基板にハンダ付けされた物が格安で入手出来ます。(秋月電子)
- 結線に関しては、RL78/G13 ハードウェアー・マニュアルを参照して下さい。
- 基本的には電源を繋ぎ、適切なバイパスコンデンサを繋ぐだけで動作します。
- 特別(複雑な場合)な接続を要求する場合は、KiCAD のプロジェクトファイルを用意しています。
- UART、タイマーなど割り込みエントリーには最新の注意を!
- 基本的に vect.h、vect.c でベースエントリを定義しています。
- メイン側、では、C 言語関数の実装として、ベースで定義されたエントリーを使います。
- メイン側、割り込みのエントリーでは、必ず「renesas.hpp」をインクルードします。
- 「renesas.hpp」には、割り込みエントリーのアトリビュートの定義が含まれます。
- 「renesas.hpp」の定義が無いと、割り込みエントリーが通常の関数として機能して動作しません。
- 「attribute((weak))」を使って定義されている関数は、再定義側が優先されます。
- ヘッダー側には「INTERRUPT_FUNC;」を付加してあり、割り込みハンドラーとして機能します。
- 各ドライバーテンプレートの割り込みタスクは、割り込みハンドラーから呼ばれる前提なので、通常の関数です。
- エントリー名をタイポしてもエラーは出ず、無効な関数として存在するだけになるので注意して下さい。
- 割り込みハンドラーのタイポ、「renesas.hpp」のインクルード忘れによる不具合は見つけるのが困難です。
- 標準的に、ルネサス製 PFDL-T4 ライブラリを利用する前提で、リンクファイルが作られています。
- 詳しくは、PFDL-T4 関係のドキュメントを参照下さい。
- RAM の後半にライブラリのワーク領域が予約されています。(136バイト)
- ライブラリを使わない場合で、少しでも RAM が欲しい場合、リンクファイルを修正する事ができます。
- gcc のリンクファイルの修正は、注意を要します。
- syscalls には、POSIX で必要とされる実装が含まれています。(全てではありません)
- 主な物は、標準出力、標準入力です。(stdout、stderr、stdin)
- 又、SD カードのファイルシステムを組み込んだ場合には、ファイル操作が含まれます。
- 標準入出力は、main.cpp 内で、シリアル入出力として割り当てる事ができます。
- 割り当てる場合、「sci_putch、sci_getch」を実装して下さい。
- SD ファイルシステムを組み込む場合、FatFS とのインターフェースを定義します。
- 「SDC_sample の main.cpp」を参照して下さい。
- 「syscalls.c」の「OPEN_MAX_」は同時にオープンできるファイル数を制限しています。
- 現状は、同時に3つまでです。
- 増やす事ができますが、その分ワーク RAM 領域が減ります。
- SD ファイルシステムを使う場合、128K 以上の FLASH 領域を持ったデバイスがお勧めです。
- syscalls.c を組み込む事で、自動的に printf 関数が使えます。
- 但し、推奨しません。
- printf の引数はスタックベースであり、不整合は、非常に気まぐれな挙動を示す場合があります。
- 基本的に、C++ では、便利ではあっても危険性の高い printf は使う理由がありません。
- 代わりに、同じような機能と利便性を提供する utils::format.hpp を利用して下さい。
- 使い方は、サンプルに含まれています。
- scanf の代わりに、utils::input.hpp を用意してあります。
- ビルドします。(自動で、従属規則が生成されます)
make
- プログラムの書き込み(rl78_prog が必要)
make run
- 新規プロジェクト・ディレクトリーを作成します。
- UART_sample などから、雛形に使う「Makefile」、「main.cpp」をコピーします。
- Makefile の必要な部分を書き換えて、自分のプロジェクト用にします。
- Makefile 内のソースコードパスに、自分のソースコード名を追加する事が出来ます。
- Makefile では「従属規則」が重要ですが、これは自動で生成します。
ファイル名 | 内容 |
---|---|
G13/R5F100LCAFB.ld | R5F100LCAFB ( 32K/ 2K/4K) 用リンカースクリプト |
G13/R5F100LEAFB.ld | R5F100LEAFB ( 64K/ 4K/4K) 用リンカースクリプト |
G13/R5F100LGAFB.ld | R5F100LGAFB (128K/12K/8K) 用リンカースクリプト |
G13/R5F100LJAFB.ld | R5F100LJAFB (256K/20K/8K) 用リンカースクリプト |
G13/readme.txt | リンカースクリプトの概略 |
G13/adc.hpp | A/Dコンバーター定義 |
G13/dma.hpp | DMAコントローラー定義 |
G13/iica.hpp | IICA(I2C)定義 |
G13/intr.hpp | 割り込み制御関係定義 |
G13/port.hpp | ポート関係定義 |
G13/sau.hpp | シリアル・アレイ・ユニット定義 |
G13/system.hpp | システム関係定義 |
G13/tau.hpp | タイマ・アレイ・ユニット定義 |
G13/timer.hpp | 12ビットインターバルタイマー定義 |
ファイル名 | 内容 |
---|---|
chip/chip_list.txt | チップ・リスト |
chip/BMP180.hpp | I2C BOSHE BMP180 温度、圧力センサー・ドライバー |
chip/DS3231.hpp | I2C Maxim DS3231 RTC リアルタイムクロック・ドライバー |
chip/DS1371.hpp | I2C Maxim DS1371 RTC リアルタイムクロック・ドライバー(32ビット、バイナリー・カウンター) |
chip/EEPROM.hpp | I2C 接続 EEPROM ドライバー |
chip/MPU6050.hpp | I2C InvenSense 加速度、ジャイロ・センサー・ドライバー |
chip/ST7565.hpp | SPI LCD 単色、ドットマトリックス・ドライバー |
chip/SSD1306.hpp | SPI OLED 単色、ドットマトリックス・ドライバー |
chip/UC1701.hpp | SPI LCD 単色、ドットマトリックス・ドライバー |
chip/VS1063.hpp | SPI MP3 / OGG VORBIS エンコーダー、デコーダー・ドライバー |
chip/NTCTH.hpp | Analog サーミスター線形補完テンプレート |
chip/VL53L0X.hpp | I2C Time-of-Flight 距離センサ・ドライバー |
chip/MAX6675.hpp | SPI K 熱電対温度センサ・ドライバー |
chip/MAX7219.hpp | SPI LED ドライバー |
ファイル名 | 内容 |
---|---|
common/start.s | ハードウェアー・リセット、初期化 |
common/init.c | main 初期化 |
common/option_bytes.hpp | オプション・バイト設定 |
common/vect.h | ハードウェアー・ベクター定義 |
common/vect.c | ハードウェアー・ベクター設定 |
common/time.h | 時間関数定義(posix time.h にある機能の縮小版) |
common/time.c | 時間関数実装(posix time.c にある機能の縮小版) |
common/io_utils.hpp | I/O 制御テンプレート・ユーティリティー |
common/adc_io.hpp | A/D 変換制御テンプレート |
common/basic_arith.hpp | 四則演算入力クラス |
common/bitset.hpp | ビット・パック簡易テンプレート・クラス(std::bitset の縮小セット) |
common/command.hpp | 行入力テンプレート |
common/csi_io.hpp | CSI(SPI) 変換制御テンプレート |
common/delay.hpp | ソフトウェアー・ディレイ(32MHz動作、マイクロ秒単位) |
common/fifo.hpp | First-in first-out バッファ |
common/filer.hpp | ビットマップ・グラフィックス用ファイル選択 |
common/font6x12.hpp | 6x12 ピクセル、ASCII フォント・クラス(定義) |
common/font6x12.cpp | 6x12 ピクセル、ASCII フォント・クラス(実体) |
common/format.hpp | 文字列整形テンプレート |
common/iica_io.hpp | IICA入出力テンプレート |
common/itimer.hpp | インターバル・タイマー制御テンプレート |
common/kfont12.bin | 12ピクセル漢字フォントビットマップデータ |
common/kfont12.hpp | 12ピクセル漢字フォント・クラス |
common/monograph.hpp | ビットマップ・グラフィックス制御クラス |
common/port_utils.hpp | ポート・ユーティリティー |
common/sdc_io.hpp | SDカード制御クラス |
common/string_utils.hpp | 文字列ユーティリティー(コード変換など) |
common/switch_man.hpp | スイッチ・マネージメントクラス |
common/task.hpp | タスク制御(無効タスククラス) |
common/tau_io.hpp | タイマー制御テンプレート |
common/uart_io.hpp | シリアル・コミュニケーション入出力(UART) |
License
MIT