RL78/G10テンプレート開発2回目:サンプルソフト問題

前回、初心者が起こしがちなRL78/G10ソフト開発時の2つのつまずき

  • 第1つまずき:CS+設定パラメタの多さ
  • 第2つまずき:サンプルソフトが実務ソフトにそのまま使えないこと

を示し、第1の対策に、パラメタ設定を示しました。今回は、第2つまずき具体例と、弊社テンプレートの対策を示します。

R01AN2668JJ0100をC言語へ

サンプルソフトは、RL78/G10初期設定CC-RL R01AN2668JJ0100(アセンブラ記述)を、C言語で書直したものを使います。2015年6月時点で、適当なC言語サンプルソフトが見当たらないからです。

ルネサス提供サンプルソフト R01AN2668JJ0100
ルネサス提供サンプルソフト R01AN2668JJ0100

処理概要を示します。

初期設定(アプリノートより抜粋)
初期設定(アプリノートより抜粋)

前回作成したソースコードは、メイン処理に何も追加していないものに相当します。これに、アプリケーションノートPage23の図4.5 メイン処理フローチャートに沿ってC言語でSW入力とLED出力処理を追加したものが下記です。

C言語書直しのメイン処理
C言語書直しのメイン処理

Cソース追加後、コンパイル:F7 → ボードダウンロード:F6 → 実行:F5を行いQB-R5F10Y16-TBボードで動作させてください。アセンブラ記述と同じSWを押すとLED1(黄)が点灯し、離すと消灯の動作がボードで確認できます。

サンプルソフトに処理追加

このサンプルソフトに、さらに別処理を追加することを考えます。例えば、圧電サウンダを1秒毎にピッと鳴らすなどです。実務ソフトでは、良くある事柄です。

QB-R5F10Y16-TBボードに圧電サウンダを追加するのは面倒ですので、代りにボードのLED1を1秒毎に点滅させる処理を追加します。もちろん、実装したSWとLED1点灯サンプルソフト処理は、そのままで追加します。

LEDを1秒毎に点滅させるフローチャートは、下記です。問題は、実装済みサンプルソフトに、これをどうやって追加するかです。

追加LED点滅処理
追加LED点滅処理

サンプルソフト問題点:処理追加が困難

マイコンで複数の処理を行う方法、それは「時分割処理」です。オペレーティングシステム:OSを使ったとしても、この時分割処理の手法は同じです。
ある時間は処理1を、別のある時間は処理2を、別けて実行するのが時分割処理です。この分割を、早く細かく行うことで処理を仮想的に並列実行します。イメージとしては、こんな具合です。

マイコンの時分割メイン処理イメージ
時分割メイン処理イメージ

サンプルソフトは、「1つのサンプル処理」を説明するためのソフトです。従って、別処理追加の必要がありません。これが、サンプルソフトが時分割処理を持たない理由です。
サンプルソフトが実務ソフトとしてそのまま使えない理由も、この処理追加の概念が無いからです。
実務ソフトは処理が複数あり、かつ、処理の追加/削除が発生するので、処理の独立性や、追加/削除が容易なことが求められます。

実務ソフトの骨組マイコンテンプレート

マイコンテンプレートは、この時分割処理と、処理独立、追加/削除が容易となる仕組みを持っています。
テンプレートに組込んだフローチャートは下図になります。青がテンプレートです。

マイコンテンプレートのメインフローチャート
テンプレートのメインフローチャート

テンプレートでは、サンプルソフトのSW入力とLED出力も時分割起動します。これは、SWチャタリング対策を行うためです。この対策後のSW状態をSW1_RAMへ保存し、LED出力は、このSW1_RAM値でON/OFF制御します。
SW1_RAMを使うことで、処理独立性が高まります。例えば、LED点灯の代わりに、ブザー音出力などの追加/変更も簡単になります。出力側を変更しても、SW入力側の処理は変わりません。

複数処理と処理独立性を提供する実務ソフトの骨組がテンプレートです。
例えると、パソコンのランチャーソフトに近いです。ランチャーは起動のみですが、テンプレートは、さらにランチされたアプリケーション同志がRAM経由で情報をやり取りすると思ってください。

テンプレート応用例:シンプルテンプレート

簡単なテンプレートの応用例として、ここで示したSWとLEDの実務ソフトをシンプルテンプレートと名付けRL78/G1xテンプレートに添付します。
※シンプルテンプレートは、全ての弊社テンプレートに添付しており、各マイコン対応のCPUボードでハード追加なしに動作します。

テンプレートを使えば、第2のつまずきも回避できます。サンプルソフトを見つけ、テンプレートへ必要部分の処理を肉付けし、RAMを処理間に使えば、拡張や変更に対応できる実務ソフトが完成です。

テンプレートを使ったアプリケーションの開発方法は、コチラのページにも詳しくまとめていますので参考にして下さい。

* * *

RL78/G10テンプレート開発の2回目は、サンプルソフト問題対策としてテンプレートの仕組みを示しました。
次回は、小ピンマイコンRL78/G10特有の問題、RL78/G13やG14と比較するとROM/RAMが少ないことへのテンプレート対処を示します。

RL78/G10テンプレート開発 1回目:テンプレート利点

数回に分けて、RL78/G10テンプレート開発の経緯を、「初心者向け」に示します。あえて初心者向けとしたのは、テンプレートを開発・販売してきて、初心者~中級者向けに作ったテンプレート付属資料が、初心者の方には、多少解りにくい箇所があったことの反省に基づいています。

1回目は、RL78/G10とCC-RLコンパイラのC言語ソフト開発で、CS+ for CC設定とユーザ処理を何も追加していない時のソースコード、QB-R5F10Y16-TBボード動作を示します。

テンプレートご購入者様は、ブログを参照済みですから、この初心者内容をご理解頂いた上で、付属資料をご覧になれば、解りにくさが解消されると思います。最終回後には、RL78/G10が加わったRL78/G1xテンプレートを発売しますので、ご検討いただければ幸いです。

中級以上の方々にとってもお役立てばうれしいのですが、蛇足になる可能性が大です…_| ̄|〇。

RL78/G10特徴

RL78/G10は、ルネサススタープロダクトで入手性も良く、低価格高性能な汎用マイコンです。小ROM/RAMで10/16ピン構成、ADCやUARTなど内蔵回路も少ないので把握し易いでしょう。評価ボードも安く、RL78マイコンに興味がある方やIoTセンサマイコンなどに適しています。

開発環境CS+ for CC設定

RL78/G10をCS+のCC-RLコンパイラを使い、QB-R5F10Y16-TBボードとE1使用時のCS+設定を示します。
この組合せが、最も標準的な開発環境です。

RL78/G10開発環境
RL78/G10開発環境
  1. CS+ for CCのスタート(S)を押して、新規R5F10Y(10pin)プロジェクトを作成し、デバッグツールからE1を選択します。最初に、E1のプロパティを矢印に設定します。

    RL78/G10プロジェクト作成とデバッグ・ツール設定
    RL78/G10プロジェクト作成とデバッグ・ツール設定
  2. CC-RL(ビルド・ツール)のプロパティを矢印に設定します。CC-RL V1.01.00時です。改版で変わる可能性もあります。

    RL78/G10ビルド・ツール設定
    RL78/G10ビルド・ツール設定
  3. コード生成の周辺機能>共通/クロックを選択し、端子割当て、クロック設定、オンチップ・デバッグ、リセット要因設定を矢印に設定します。RL78/G10の標準的な設定です。

    RL78/G10共通/クロック設定
    RL78/G10共通/クロック設定
  4. ウオッチドックタイマとセレクタブル・パワーオン・リセットを矢印に設定します。E1でデバッグする時の設定です。

    RL78/G10ウオッチドックとセレクタブル・リセット設定
    RL78/G10ウオッチドックとセレクタブル・リセット設定
  5. 使用QB-R5F10Y16-TBボードに合わせてポート機能を矢印に設定します。

    RL78/G10ポート設定
    RL78/G10ポート設定

ここまでの設定後、「コード生成する」をクリック → ビルド:F7 → ボードダウンロード:F6 → Run:F5してください。
何も処理を追加していませんので、QB-R5F10Y16-TBはPOWER LED(赤)のみが点灯し、ソースコードの無限ループが実行され続けます。

RL78/G10の無限ループ処理
RL78/G10の無限ループ処理

マイコンソフト開発とは、この無限ループに必要な処理を追記することです。ユーザ処理を何も追加していない開発環境を動かすだけで多くの設定が必要なことが判ります。

マイコンテンプレートの利点

マイコンソフト開発には、2つの要素が必要です。1つが、ソフトそのものの開発能力。もう1つが、開発環境IDE:Integrated Development Environmentの設定能力です(RL78/G10の場合は、上記CS+ for CC)。

ソフト開発能力は、アプリ構成や処理手順などを開発するもので、マイコン機種の依存性はありません。一方、開発環境は、マイコン機種やコンパイラ、デバッグツールなどにより様々に異なります。

初心者やマイコン機種変更時に手間取るのは、むしろこの開発環境設定の方です。ソフト開発に早く着手したい時に設定に手間取ると、せっかくのアイデアやひらめきも、スタートでつまずいてしまいます。

環境設定は、デフォルト設定で動くか、またはダイアログなどを使って簡単に設定、できれば自動的に整うのが理想です。しかし現状のIDEは、多くのプロパティ=パラメタで全ての設定に対応する方式のため、簡易ダイアログは使えず、結果、パラメタ設定を1つでも間違うと不具合が生じます。

マイコン理解が深まると、環境設定も自然にできるようになります。これは、卵と鶏の関係と同じです。どちらも必要ですが、理解に手間取って開発が遅れるよりは、早く成果物ソフトを得たいと思うのは当然です。
CS+ for CC設定の多くは決まり文句ですが、マニュアルをリードして初心者がこれを一発で設定できるかは疑問です。多くの場合は、つまずいてしまうでしょう。

サンプルソフトを使うと、最初のつまずきが多少解消されますが、複数の処理を組合せる実務ソフトには、サンプルソフトはそのままでは使えません。これが、第2のつまずきの原因です。

マイコンテンプレートは、これらの対策に、開発環境設定のパラメタが済みで、複数処理が並列実行できる実務ソフトの骨組を提供します。この骨組に、サンプルソフト流用や自作ソフトを肉付けすれば、成果物が出来上がります。テンプレートには、複数の肉付けを簡単に追加できる工夫が初めから備わっています。従って、つまずくことなく、ソフトそのものの開発に労力を割くことができる、これがテンプレートの利点です。

* * *

誤解を恐れずに言うと、「ソフト開発に必要な理解項目 開発環境のパラメタ設定に必要な理解項目」、です。ソフト開発をしていけば、自然に理解項目が増えていきますが、最初は少ないでしょう。
ボードも含めた開発環境があるのなら、ボードを使ってデバッグしながら徐々に理解項目を増やせば良いのです。ところが、開発環境を初めて動かすのに結構な理解項目が必要なこと、これが、マイコン開発の敷居を高くしている原因です。

ソフトの開発能力と、開発環境の設定能力は、(多少は関係しますが)別です。開発環境は、慣れの問題です。EclipseベースIDEは、この問題を解決する1方法です。弊社マイコンテンプレートは、RL78/G1x以外にも3種のマイコン対応テンプレートを提供中です。ご検討ください。

RL78/G10でCC-RL使用時のTips

RL78-S1コアのRL78/G10をRL78/G1xテンプレートに追加すべく開発中です。CC-RLとRL78/G10開発時にのみ発生する問題の対処方法を示します。

デバッグ・モニタ領域設定

RL78/G10開発時のデバッグ・モニタ領域設定
RL78/G10開発時のデバッグ・モニタ領域設定

CC-RLコンパイラを使ったRL78/G10開発時のみ、デバッグ・モニタ領域設定をハイにする必要があります。これをデフォルトのイイエとすると、ダウンロード時、下記エラーが発生します。

エラー(E0204001) : ダウンロードに失敗しました。
オンチップ・デバッグで使用する予約領域への書き込みはできません。

CA78K0Rの場合や、RL78/G13やRL78/G14でCC-RLを使う場合は、デフォルトのイイエのままでビルド&デバッグ・ツールへダウンロード(B) F6が可能です。

RL78-S3コアにアナログ機能強化RL78/G1F追加

モータ制御をFeatureとするRL78-S3コアに、RL78/G14上位互換でアナログ機能を強化したRL78/G1Fが追加されました。

RL78/G1Gとの差

DCブラシレスモータ制御に最適なマイコンとして先に登場したS3コアRL78/G1Gとの周辺回路差が、赤囲みで示されています。

RL78/G1FとG1Gの機能差(G1F資料より抜粋)
RL78/G1FとG1Gの機能差(G1F資料より抜粋)

強化アナログ機能

RL78/G1F強化アナログ機能(G1F資料より抜粋)
RL78/G1F強化アナログ機能(G1F資料より抜粋)

増幅率をソフト制御できる3.0V/μs以上の高スルーレートPGA: Programmable Gain Amplifierや、RL78/G14ではROM96kB以上でしか搭載されなかった8ビットD/Aコンバータに加え、0.07us高速コンパレータも内蔵しています。

RL78/G1Fパッケージ
RL78/G1Fパッケージ

パッケージは、64ピン以下で64/32kBのROMです。前回掲載のスタープロダクトG14は、比較的大きなROMのものでしたが、このサイズならCS+無償版で開発可能です。従って、RL78/G1xテンプレートも使えます。

モータ制御マイコン選択チャート

RL78/G1Fが登場した結果、ルネサスのモータ制御マイコン選択チャートは下図になりました。G1Gとの価格差が気になります。

モータ制御マイコン選択チャート(G1F資料より抜粋)
モータ制御マイコン選択チャート(G1F資料より抜粋)

RL78/G14とピンコンパチなので、G1Fの入手性が良ければ、汎用G14スタープロダクトR5F104BCAFPの代わり、またはQB-R5F104LEーTBに載せ替えて使いたいです。IoT向けの少ピンマイコンとしても有用と思うからです。

RL78/G1x名称

G1Fが加わり、ルネサスRL78汎用G1xマイコンも10/12/13/14/1A/1C/1D/1E/1F/1Gとラインアップが増えています。名称とFeatureが一致しないのが悩ましいところです。汎用ベースで少しASSP的な色付けありと考えれば良いのでしょうか?
今後G2x、G3xと開発されるでしょうから、ますます判りにくくなりそうです。

RL78マイコンテンプレートの今後

CC-RLコンパイラを使ったRL78マイコンサンプルソフトの公開が始まりました。そこで、RL78マイコンの現状を俯瞰し、今後のRL78テンプレートの方向性を検討します。

スタープロダクト

2015年5月のルネサススタープロダクトからRL78マイコンのみを取出し、CPUコア分類を追加したのが下表です。

Group P/N Package ROM RAM Flash Feature CPUコア
RL78/G10 R5F10Y16ASP 10-LSSOP 225mil 0.65p 2KB 256B Low-Pin Count S1
RL78/G12 R5F1026AASP 20-LSSOP 225mil 0.65p 16KB 2KB 1.5KB Low-Pin Count S2
R5F1027AANA 24-HWQFN 4mm 0.50p 16KB 2KB 1.5KB Low-pin Count
RL78/G13 R5F100ACASP 30-LSSOP 300mil 0.65p 32KB 4KB 2KB General
R5F100GEAFB 48-LFQFP 7mm 0.50p 64KB 4KB 4KB General
R5F100LEAFB 64-LFQFP 10mm 0.50p 64KB 4KB 4KB General
R5F100LGAFB 64-LFQFP 10mm 0.50p 128KB 8KB 12KB General
R5F100MJAFB 80-LFQFP 12mm 0.50p 256KB 8KB 20KB General
R5F100PJAFB 100-LFQFP 14mm 0.50p 256KB 8KB 20KB General
RL78/G14 R5F104BCAFP 32-LFQFP 7mm 0.80p 32KB 4KB 4KB Motor Control S3
R5F104FFAFP 44-LFQFP 10mm 0.80p 96KB 8KB 12KB Motor Control
R5F104LGAFA 64-LFQFP 12mm 0.65p 128KB 8KB 16KB Motor Control
R5F104PJAFB 100-LQFP 14mm 0.50p 256KB 8KB 24KB Motor Control
RL78/L13 R5F10WLGAFB 64-LFQFP 10mm 0.50p 128KB 4KB 8KB LCD S2
R5F10WMGAFB 80-LFQFP 12mm 0.50p 128KB 4KB 8KB LCD

RL78マイコンロードマップ

RL78マイコンロードマップに、スタープロダクトGroupと、S1コア、S3コアを追記しました。これら以外は、全てS2コアです。CPUコア差は、表1-1です。

RL78マイコンロードマップとCPUコア差
RL78マイコンロードマップとCPUコア差

これらから、RL78マイコン状況を俯瞰した結果が下記です。

  • スタープロダクト:☆は、汎用G1xに集中。小ピン小ROMのG10は、発売後すぐにスター化。
  • RL78マイコンは、殆どS2コア。S1コアは、G10のみ。S3コアは、G14とG1Gの2Groupのみだが、G14がスター化。
  • 業績回復の2015年は、ASSPマイコンを発売。アプリ機能内蔵がスター化のポイントか?

RL78/G1xテンプレートのカバー範囲拡大

現状RL78/G1xテンプレートは、汎用S2/S3コアをカバーしています。が、S1が外れています。

いまさら8ビット?と思うかもしれませんが、CC-RLコンパイラでS1コアも性能向上します。さらにS1コアのRL78/G10は、低価格で入手性も良い(秋月電子で☆R5F10Y16ASPが60円、R5F10Y47ASPが100円)ので、IoTマイコンセンサにも向いています。

このRL78/G10のような小ピンマイコンは、ROM/RAM容量も小さいので、今後RL78/G1xテンプレートにもこれら対応に工夫を加え、カバーしたいと考えています。

CC-RLコンパイラテキストから得るRL78開発指針

CC-RLコンパイラコーステキストの要約を作成するつもりでしたが、要約は自ずと得られるものですし、条件により要点箇所も異なります。効率的に知るには、索引ページからの逆引きもお勧めです。

そこで、CC-RLテキストとCA78K0Rテキストの差分から、主催者ルネサスがセミナーでCC-RLコンパイラのために補強した箇所を明らかにします。

RL78コンパイラセミナーテキスト差分

CC-RLコンパイラコーステキスト2015年5月19日 Rev.1.00と、これまで使われたCA78K0Rテキスト2014年6月24日 Rev.1.08の目次を比べたのが下表です。

RL78コンパイラコーステキスト比較
RL78コンパイラコーステキスト比較

RL78/G14 (256kB ROM、24kB RAM、8kB データフラッシュ)のトレーニングボードMT-RL78を使うCC-RLセミナーは、CA78K0Rと同じ1.5日間です。同じ期間で、テキスト内容が増えています(空欄は記述なし)。

新CC-RLが、CA78K0Rなどの既存記述(CPU)からの移植に関して多くの分量が割かれているのは当然として、ルネサスがCC-RL向けに変更した箇所が判ります。

CC-RLテキストで唯一削除された節が、リンク・ディレクティブです。CC-RLでは、このリンク・ディレクティブの代わりに、セクション関連の説明が増えており、セクション理解がより重要性を増したようです。

また、最適化も、最適化抑止やモジュール間最適化の節が追加されており、使いこなしのポイントと言えるでしょう。

RL78開発指針

RL78コンパイラコースがCC-RL対応へ代ったことは、RL78開発の今後を見極める上で重要な出来事です。

提供側のルネサス、使用側の開発者、双方ともに2つのコンパイラへリソースを割くより、1つの方が効率的なのは明らかです。過渡期の問題を除くと、CC-RLの方がCPUパフォーマンスを引き出せるのです。

Windows10リリースの今年は、ベース環境も変わります。サービスを得る側は、Win10やワード、エクセル、パワーポイント等のツールの使い方を詳しく知っているよりも、ワード、エクセル、パワーポントでどんな内容の資料が作れるかが大切です。マイコン開発も全く同じです。

開発ソフトのサービス内容を、素早く、手軽に、より深く検討するには、両コンパイラで動作確認済みのCS+プロジェクトで提供されるRL78/G1xテンプレートが役立ちます。

CC-RL対応コンパイラコースの新テキストリリース

ルネサス主催マイコンセミナーのRL78コンパイラコースで使うCC-RLコンパイラ対応テキストがリリースされました。

CA78K0Rコンパイラのテキスト要約と同様、新テキストについても要約版を作成する予定です。セミナーに参加できると一番ですが、大阪か東京の2日間セミナーなので、弊社の場合、費用が悩みです。

CC-RLに関しては、5月18日時点で多くのFAQも追加掲載されています。つまづいている方が多そうです。
CC-RL対応済みのRL78/G1xテンプレート活用も、これらつまづきからの1解決策として有効です。
テンプレートは、CS+で実際に動作するプロジェクトで提供します。FAQの回答より具体的につまづきを解決できます

CC-RLコンパイラ対応RL78/G1xテンプレートv4.0

RL78/G1xの習得、アプリ早期開発に使えるRL78/G1xテンプレートv3.1を、CC-RLコンパイラとCR78K0Rコンパイラの両方に対応したRL78/G1xテンプレートv4.0(税込1000円)に更新しました。

コンパイラ別テンプレート提供

RL78/G1xテンプレートv4.0は、新しいCC-RLコンパイラと従来のCA78K0Rコンパイラ、それぞれにテンプレートを提供します。テンプレート全体像を説明資料P3に示します(マイコンテンプレートサイトより説明資料P1~P3ダウンロード可能)。

RL78/G1xテンプレート説明資料P3より抜粋
RL78/G1xテンプレート説明資料P3より

テンプレートを使ったアプリ例として、推薦開発ボード:BlueBoard-RL78/G13_64で動作確認済みのメニュードリブンテンプレート、4種CPUボード:RL78/G13-Stick、RL78/G14-Stick、QB-R5F100LE-TB、QB-R5F104LE-TBで動作確認済みのシンプルテンプレートを添付しております。RL78/G1x習得やアプリ開発が、ゼロから始めるよりも早くスムースに、しかもボードで実際に動作を確認しながら可能です。

テンプレート応用例 動作確認ボード 動作概要
メニュードリブン BlueBoard-RL78/G13_64 LED, SW, ADC, LCD, データフラッシュ, UART処理等
シンプル RL78/G13-Stick LED D2を1秒毎に点滅
RL78/G14-Stick SW1押下げでLED D2トグル点滅、または
1秒毎に点滅
QB-R5F100LE-TB LED1を1秒毎に点滅、SW1押下げでLED2トグル点滅
QB-R5F104LE-TB

テンプレートですので、ボードのIO割付けを変更すれば、お好きなボードへの移植も簡単です。また、両コンパイラ版ともにボード動作は同じです。
※ルネサス提供のデータフラッシュライブラリは、各コンパイラ専用ですので注意してください。

コンパイラCA78K0RからCC-RLへの移行リスク評価

新CコンパイラCC-RLは、CA78K0Rに比べ、「3倍の処理性能、割込み応答時間1/6、コードサイズ1割減」など、良い事ばかりです。今後のRL78開発にCA78K0Rを使い続けるメリットは少なそうです。

但し、これら数値は、最高値です。処理によっては、高速化の程度やコードサイズ削減効果はまちまちです。既に開発済みのアプリケーションの一部、または全部をテンプレートへ組込むことで、コンパイラ差が実際どの程度かが判ります。コンパイラ移行のリクス評価にも本テンプレートが使えます。

CA78K0RコンパイラからCC-RLコンパイラへのプロジェクト移行方法については、コチラの記事を参照ください。

マイコンテンプレートサイトに詳細記載

RL78/G1xテンプレート詳細情報は、マイコンテンプレートサイトにまとめております。もくじ説明資料P1~P3は、無料でダウンロードできますので、是非ご検討ください。このサイトには、RL78/G1xテンプレート以外にも、3種類のマイコンテンプレートを掲載中です。

ご購入方法

RL78/G1xテンプレートv4.0ご希望の方は、メール(info@happytech.jp)にてお知らせください。銀行振込口座を返信いたしますので、この口座へ代金1000円(税込)を振込んでください。
ご入金確認後、RL78/G1xテンプレートv4.0一式(CC-RL版テンプレート+CA78K0R版テンプレート+説明資料全ページ)ZIP圧縮、合計約4MBをメールにてお送りします。

保証期間の対応

旧RL78/G1xテンプレートご購入後、1年以内の無償バージョンアップ期間内の方は、弊社よりRL78/G1xテンプレートv4.0を、1週間以内に送付致しますのでお待ちください。

1年以上経過された方は、customerservice@happytech.jpへメールを頂ければ、50%OFFの500円(税込)で提供致します。よろしくお願い致します。

Kinetis Design Studio V3.0.0リリース

FreescaleのKinetisマイコン無償開発環境KDSの新バージョンV3.0.0が2015年5月5日リリースされました。関連資料から、特徴を探ります。

ポーティングガイトが詳しくなった

以前は、Code Warriorからの移行ガイドのみでしたが、これに旧KDSからの移行も加わりました。つまり、KDS V3.0.0で旧版プロジェクトを変更すると、変更後は、旧版では、Openできないということです。KDS V2.0.0を継続して使われる方は、注意が必要です。

Processor Expert V3.0.0へ更新

旧PEで、TSS_LibraryがFRDM-KE02Z40評価ボードで正常動作しない不具合が解消されたかは、後日報告します。

Kinetis SDK v1.2.0でサポート評価ボードが増えた

KSDK v1.2.0サポートボード一覧
KSDK v1.2.0サポートボード一覧

残念ながら、Kinetisテンプレートで使用したKシリーズマイコンのFRDM-KE02Z40Mボードは、V3.0.0でもSDKサポートはありません。SDKメリットは、ボード動作確認済みのサンプルソフトが、Freescaleから提供されることです。
次期Kinetisテンプレート候補のLシリーズは、多くの低価格評価ボード(FRDM-KLxxx)がサポートされていますので、この中らか対象マイコンと評価ボードを選定する予定です。

以上、KDSV3.0.0リリースの速報でした。

CC-RL移行支援機能オプションのRAM/ROMサイズ検証

RL78開発に使っていたCA89K0Rコンパイラから、新登場のCC-RLコンパイラへの移行に関して、コンパイラ表記混在が可能で、多くの既存ルネサスサンプルソフトや、将来のCC-RLサンプルソフトも使える「CS+移行支援機能を使った方法2が適している」ことを前回示しました

方法2では、移行のために多くのオプションを設定しました。これらを設定しないCC-RLネイティブオプションとRAM/ROMサイズを比較し、移行オプションの設定が、サイズや処理速度に影響を与えないことを検証しました。

CC-RLネイティブオプションプロジェクト

最も基本的なオプションのみを設定したネイティブオプションのプロジェクトとして、CS+ for CC付属のサンプル・プロジェクトRL78_G13_Tutorial_Basic_Operation_CCを使います。

RL78_G13_Tutorial_Basic_Operation_CCプロジェクト作成
RL78_G13_Tutorial_Basic_Operation_CCプロジェクト作成

これは、CPUボードQB-R5F100LE-TBで動作可能なプロジェクトです。GOボタンを押すと、指定フォルダにRL78_G13_Tutorial_Basic_Operation_CC プロジェクトが作成されます。ネイティブのままでは、RAM/ROMサイズ出力がありませんので、合計セクション・サイズ表示のみを追加設定します。

ネイティブオプションへの追加設定
ネイティブオプションへの追加設定

リビルト・プロジェクト実行で、ネイティブオプションでのRAM/ROMサイズが出力されます。

RAMDATA SECTION:  00000002 Byte(s)

ROMDATA SECTION:  00000298 Byte(s)

PROGRAM SECTION:  000001b4 Byte(s)

移行支援機能オプションのプロジェクト

ネイティブオプションプロジェクト作成時と別フォルダを指定しGOボタンを押し、もう1つ別のRL78_G13_Tutorial_Basic_Operation_CC プロジェクトを作成後、下記移行支援機能オプションと、前回プログ設定のオプションを追加設定します。

  • コンパイラの移行支援機能:-convert_ccオプション
  • アセンブラの移行支援機能:-convert_asmオプション
  • セクションの自動配置:いいえ
  • メモリモデル:スモール・モデル
  • 合計セクション・サイズ表示:はい

コンパイラ表記の混在可能を試すため、CC-RL表記をCA78K0R表記へ変更します。

コンパイラ表記混在テストソース
コンパイラ表記混在テストソース

リビルト・プロジェクト実行で、移行オプションでのRAM/ROMサイズが出力されます。

RAMDATA SECTION:  00000002 Byte(s)

ROMDATA SECTION:  00000298 Byte(s)

PROGRAM SECTION:  00000 1af Byte(s)

PROGRAM SECSIONに5バイト差分、減少が生じますが、これは、セクション自動割付けを行わなかったためです。
コンパイラ表記が混在してもビルドできますし、移行オプションを追加設定しても、RAM/ROMデータサイズは変わりません。ネイティブ1b4=436バイトに対して、5バイト程度の増減であれば、処理速度への影響もないことが確認できます。もちろん、CPUボードQB-R5F100LE-TBで正常動作します。