- 公開日:2024年08月30日
- | 更新日:2024年09月09日
RL78マイコン:CS+のソースコード生成機能を使ってソースコード生成をしてみた
- ライター:Kido
- マイコン
製品概要
RL78マイコンは業界最高レベルの低消費電力を実現しながら数々の高性能周辺機能が組み込まれた高付加価値のマイコンです。
そのRL78マイコンの開発環境であるCS+のソースコード生成機能は、周辺機能の制御プログラムを自動生成することができます。また、必要なソースコードをユーザ設定に従って生成するため開発期間、開発コストの大幅な削減を実現します。
検証実験した背景
ソースコード生成機能を使用することで、周辺機能の制御プログラム(レジスタの初期設定/開始設定/終了設定 .etc)の自動生成を行うことができ、開発工数の削減に貢献します。また、周辺機能のリソースを割り当てすることでハードウェア設計(マイコンリソースの割り当てを確認すること)に役立てることも可能です。
今回、CS+プロジェクトの立ち上げからコード生成機能の設定を行い、ソースコード出力までの方法をまとめました。
検証実験の手順
・検証環境
デバイス:RL78/G14(100pin、ROM256KB)
統合開発環境:CS+
コンパイラ:CC-RL
・手順
– CS+でRL78/G14のプロジェクト作成
– コード生成(設計ツール)の設定を行う。今回の例では基本的な設定(端子割り当て、クロック設定、ポート設定、ウォッチドッグ設定)と、PWM出力(5本)設定とA/Dコンバータの設定を行います。
– コード生成を行い、出力されるソースコードを確認します
①CS+でRL78/G14のプロジェクトを作成
CS+を起動 ⇒ 「ファイル」 ⇒ 「新規作成」 ⇒ 「新しいプロジェクトを作成」
②コード生成(設計ツール)の設定を行っていきます
1.端子割り当て、クロック設定
端子割り当てタブで、周辺I/Oリダイレクション・レジスタ(PIOR0,PIOR1)の設定で端子割り当てを決める。
・クロック設定タブで、動作モード、EVDD設定、メインシステムクロックの設定等を行います。
2. タイマアレイユニット(TAU0)の設定を行っていきます。
今回は以下のPWM①、②を設定します。
PWM出力① 周期1ms、Duty50%:チャネル0(マスタ)、チャネル1(スレーブ)を使用
PWM出力② 周期5ms、Duty50%:チャネル2(マスタ),チャネル3(スレーブ)を使用
周期1ms設定(チャネル0(マスタ))
Duty50%設定(チャネル1(スレーブ))
周期5ms設定(チャネル2(マスタ))
Duty50%設定(チャネル3(スレーブ))
3.タイマRD(TMRD1)の設定を行っていきます。
今回は以下のPWM出力を設定します。
PWM出力③ 周期100μs、Duty30%
PWM出力④ 周期100μs、Duty50%
PWM出力⑤ 周期100μs、Duty70%
・TMRD1でPWMモード選択
・周期100μs、Dutyをそれぞれ30%、50%、70%に設定します
4.A/Dコンバータ設定
今回は、ANI0、ANI1、ANI2、ANI16、ANI17を設定します。
5.ポート設定
今回はP00、P01、P04、P05、P06を出力設定にします。
6.ウォッチドッグ・タイマ設定
・今回はウォッチドッグタイマのオーバフロー時間を2^16/fIL(ms)に設定します。
③コード生成
・コード生成の設定が終わったら、コード生成ボタンを押します。
・生成されたソースコードが、プロジェクト・ツリーに表示されれば完了です。
検証実験の結果
生成されたソースコードの説明.etc
ファイル名 | 説明 |
r_main.c | メイン処理ファイル |
r_systeminit.c | 各機能の初期化 |
r_cg_cgc.c | クロック設定 |
r_cg_cgc.h | クロック設定 ヘッダファイル |
r_cg_cgc_user.c | クロック設定 ユーザー用ファイル |
r_cg_adc.c | AD設定 |
r_cg_adc.h | AD設定 ヘッダファイル |
r_cg_adc_user.c | AD 割り込み関数 |
r_cg_timer.c | タイマ設定 |
r_cg_timer.h | タイマ設定 ヘッダファイル |
r_cg_timer_user.c | タイマ 割り込み関数 |
r_cg_port.c | ポート設定 |
r_cg_port.h | ポート設定 ヘッダファイル |
r_cg_port_user.c | ポート ユーザー用ファイル |
r_cg_wdt.c | ウォッチドッグ設定 |
r_cg_wdt.h | ウォッチドッグ設定 ヘッダファイル |
r_cg_wdt_user.c | ウォッチドッグ 割り込み関数 |
実現する製品はこちら
・RL78ファミリ
RL78/F12,RL78/F13,RL78/F14,RL78/F15,RL78/G10,RL78/G11,RL78/G12,RL78/G13,RL78/G13A,
RL78/G14,RL78/G1A,RL78/G1C,RL78/G1D,RL78/G1E,RL78/G1F,RL78/G1G,RL78/G1H,RL78/H1D,
RL78/I1A,RL78/I1B,RL78/I1C,RL78/I1D,RL78/I1E,RL78/L12,RL78/L13,RL78/L1A,RL78/L1C
お問い合わせはこちら
ルネサス製品をお探しの方は、メーカーページもぜひご覧ください。
ルネサス エレクトロニクス株式会社 (Renesas Electronics Corporation)
Renesas Electronics Corporation – 半導体事業 – マクニカ (macnica.co.jp)