仮想お客様開発ボード:BlueBoard-RL78/G13_30pin-Hへのテンプレート移植の3回目は、その2で示した移植手順3以降を解説します。
レジスタ・バンク設定
マイコンで複数処理をシステムとして上手く動作させるポイントの1つが、割込み処理です。この割込み処理を効率的に使うために、レジスタ・バンクの設定をします。詳しくは、コチラをご覧ください。移植ボードで使うレジスタ・バンク設定は、テンプレートの設定をそのまま使います。
userdefine.h修正
移植ボード回路図からテンプレートのuserdefine.hポート番号の論理名定義を変更します。
移植ボード動作
移植ボードの動作は、1. 電源ON後、uart1へ起動メッセージ出力、2. uart1経由で1文字コマンドを受信し、コマンドに応じてA:ADC値をuart1へ出力、B:ブザートグル出力、L:LEDトグル点滅、3. User SW押し下げでLEDとブザーのトグル動作とします。
テンプレート移植例なので、簡単な動作にしました。関数間の入出力データは、マイコンRAMを使っていますので、関数間の独立性や単体試験は容易です。
テンプレートの移植機能
Version2テンプレート提供中の全機能と、開発ボードへ移植する機能を示します。User SWは、INTP1に接続しているのでコード生成のINTP1割込み処理、Buzzerは自励式なので、LEDドライバで対応します。
ファイル名 | 機能概要 | 備考 | ボード移植 |
main.c | 起動処理 | アプリとドライバ起動 | あり |
userdefine.h | ユーザ追加マクロ | ハードウエア割付修正 | あり |
uart.c | uart1ドライバ | 受信コマンド解析修正 | あり |
sw.c | swドライバ | チャタリング対応済み | なし |
led.c | ledドライバ | ブザー出力へ修正 | あり |
adc.c | adcドライバ | ノイズ対応済み | あり |
lcd.c | lcdドライバ | HD44780互換品対応 | なし |
pfdl_user.c | データフラッシュドライバ | RL78_FDL_LIB_VERSION_T04_REN: V1.05使用 | なし |
pfdl.h | ライブラリヘッダ | なし | |
pfdl_types.h | ライブラリ追加マクロ | なし | |
pfdl.lib | ライブラリ本体 | なし | |
LcdTest.c | Lcdテスト用アプリ | 1s周期起動 | なし |
動作テスト
移植ボードをパソコンに接続し、コマンドを送受信して動作中のボードを示します。
RL78/G1xテンプレートのメリット
BlueBoard-RL78/G13_30pin-Hを仮想お客様開発ボードとし、テンプレートの移植手順と、その方法を説明しました。テンプレート移植が簡単であることがお判り頂けたと思います。殆どがCubeSuite+の再設定と、ハード割付の変更です。ボード動作に関しては、動作に応じた追加や修正は必要になります。しかし、テンプレートで枠組みが決まっているので簡単です。処理の入出力データは、RAM経由なので、他のアプリやドライバの動作タイミングを考えずに、単独の動作タイミングで開発できるからです。
新規ボード開発時には、ボード周辺ハード/ソフトの単体テストソフトを作り、徐々に結合し、最後にシステム全体として動作させます。本テンプレートを開発当初から活用頂けると、関数間データ送受にRAMを使っていること、アプリやドライバ起動が時分割で複数あること、割込み処理効果を上げるバンク・レジスタ設定があること、などの本テンプレートの特徴を活かして、単体テストや結合テストも容易で、かつ、テストソフトそのものも活用できるので、実用プログラムの早期開発に役立ちます。
メリットは、早期開発だけではありません。開発から時間がたってプログラムを見直す時に、プログラム解読が容易です。時間経過するとフローチャートなどに も目を通しますが、結局、動作理解には、ソースの解読が必要です。この時、テンプレートで枠組みが決まっているのと、そうでないのとでは、解読の困難さが 大幅に異なります。枠組がシンプルで、関数間がRAMで分離される本テンプレート方式は、単純なソースで記述できるので解読も簡単です。