RL78/G14 Stick スターターキット、RL78/G13 Stick スターターキットのバックアップ使用可能

RL78/G14 Stick スターターキット(G14キットと略)が手元に届きました。これは、先日のRL78/G14ワークショップ参加時に配布予定でしたが、製造が間に合わず、後日宅配となったものです。

RL78/G14RL78/G13がパッケージピンコンパチで、載せ替え可能なことは、既に掲載済みです。今回は、このG14キットと、RL78/G13 Stick スタータキット(G13キットと略)の関係を観ていきます。

RL78G14 Stick スタータキット
RL78G14 Stick スタータキット

コネクタ比較:G14キットとG13キットのコネクタ端子表を比べると、端子名は一部を除いて、一致しています。RL78/G14RL78/G13にプラスアルファの機能がありますので、その分が端子名の違いとして現れます。

RL78/G14キットとRL78/G13キットのコネクタ比較
RL78/G14キットとRL78/G13キットのコネクタ比較

メモリマップ比較:RL78/G14G13ともに、同一のROM64KB)、パッケージピン(64ピン)で比較すると、RAM5.5KB4KBの差がありますが、その他はフラッシュRAMも含めて同一メモリマップとなっています。

以上のことから、RL78/G14のプラスアルファ機能を使わなければ、G14キットは、G13キットのバックアップとして使えることが判ります。G14キットには、2個のタクトスイッチが追加実装されていますので、より効果的に開発できます。

CubeSuite+のコード生成が出力するファイル

CubeSuite+のコード生成(以下Cgと略)が自動生成するファイルを解説します。

先ず、使用マイコンを、なんでも良いので適当に選んで、新しいプロジェクトを作成すると、コード生成プレビュータグの画面が現れます。この時、プロジェクト・ツリーのクロック発生回路に“マーク”が付いています。最初に、このマークに対応します。

マークが付いた、クロック発生回路をダブルクリックして下さい。端子割り当て設定タブに、赤字表記で、“はじめに必ず設定してください。また、この設定は1度行うと変更ができません。”が現れます。PIOR00ビット=1などを選択すると、端子と機能が自動的に変わります。CubeSuite+のCgを使うには、この端子と機能を確定する必要があります

図01 クロック発生回路に!マークが付いた初期画面
図01 クロック発生回路に!マークが付いた初期画面

ここでは、適当にPIORのチェックボックスを選択して、“確定するボタン”を押し、その後、“コード生成(G)ボタン”を押します。すると、プロジェクト・ツリーのファイル+コード生成箇所に、自動的にいくつかのCファイルとヘッダーファイルが生成されます。生成ファイル名には、先頭に“r_”が付いたものと、“r_cg_”の付いた2種類があります。

この”r_”は、ルネサスを、“cg_”は、コード生成を意味し、ユーザが独自に作成するファイルと、Cgが作成したファイルを区別する役目を果たします。”cg_”の後は、マイコン内蔵の周辺名と、macrodriver.h/userdefine.hが続きます。

r_lk.drも生成されますが、別の機会に解説します。

図02 コード生成が生成したファイル
図02 コード生成が生成したファイル

まとめると、Cgは、以下の5種類のファイルを生成します。

01 CubeSuite+のコード生成が作るファイル種類

生成ファイル名 説明 補足
r_main.c main()を含む 内蔵周辺のAPIヘッダーファイルは、Cgが追加済み。
r_systeminit.c hwdinit()を含む 内蔵周辺のAPIヘッダーファイルは、Cgが追加済み。hdwinit()は、main()を起動。hdwinit()は、スタートアップ・ルーチンが起動。
r_cg_周辺.ch 内蔵周辺に応じてCg自動生成 周辺設定に応じてCgが生成したAPI関数を含むcファイルと、そのAPI関連のマクロ、プロトタイプ宣言を含むヘッダーファイル。周辺をユーザがどう使うかを記述するr_cg_周辺_user.cファイル(デフォルト中身は空)。
r_cg_macrodriver.h システム定義ファイル(#progma sfrなど) 全ファイルに自動追加
r_cg_userdefine.h ユーザ独自定義ファイル 全ファイルに自動追加(デフォルト中身は空)

 

ソースの起動順序は、スタートアップ・ルーチン→hdwinit()main()なので、もし、Cgを使わずに、全ソースをユーザが作る場合は、“r_”なしの、main.csysteminit.cファイルを最低限記述すれば良いことも判ります。

r_cg_macrodriver.hは、#progma sfr#progma NOPなどと、最低限の型を定義したファイルで、r_cg_userdefine.hは、ユーザが追加する型や、プロトタイプ宣言を記述するファイルでデフォルトは空です。どちらのファイルもCgが、全てのソースファイルに追加済みです。

このように、Cgを使うと、使用する内臓周辺に応じてファイルが分離されたプログラムの入れ物:スケルトンテンプレートを作ってくれます。後は、このテンプレートへ、周辺をどのように使うかをr_cg_周辺_user.cで追加したり、Cgが生成したAPI関数をどのように使うかをmain()などに記述したりすれば、プログラム完成です。

また、端子と機能を除く、周辺機能は、Cgで再設定ができます。Cgが生成したソースのコメント、/* Start user code for pragma. Do not edit comment generated here */と、/* End user code. Do not edit comment generated here */の間に、ユーザが追加したソースは、そのまま再設定後コード生成したソースへ上書きされるからです。詳しくは、414日の“CubeSuite+「コード生成」の使い方”を参照してください。

RL78/G14ワークショップに参加して

RL78/G14は、①G13とピン互換性あり、②動作速度はG13と同じ32MHz (Max.)、③G14 44DMIPS@32MHzG13 40DMIPS@32MHz、④Renesas Starter Kit販売が近いことが解りました。

RL78_G14とG13の差分ブロック図(ルネサス資料から抜粋)
RL78_G14とG13の差分ブロック図(ルネサス資料から抜粋)

CPUコアに乗除算命令と積和演算命令を追加し、高性能タイマやELCDTCなどの違いにより、G13よりソフト構成によっては、3割程度の性能向上が期待できるらしい。RAM容量も増えています。

ピンコンパチなので、G13からG14への置換えも可能なのでしょう。

CubeSuite+のアップデート機能

無料版CubeSuite+ V1.02.00  [12 Apr 2012]以降に追加された、アップデート機能は、これまでライセンス取得版、つまり有料版のみで提供されていました。開発ツールの更新は、基本的に6か月毎だそうです。しかし、CubeSuite+のように多くのツールの組合せで機能するIDEでは、各ツールの更新サイクルを合わせるのは無理です。結果として、23か月で一部ツール更新が発生します。

そんな時に役立つのが、このアップデート機能です。アップデートマネジャーを起動すると、ツール更新状況をチェックして、更新分のダウンロードとインストを行ってくれます。“アップデートの選択”は、CubeSuite+で開発できる全機種が設定されていますので、必要分のみを選択してください。インスト時は、一旦CubeSuite+を終了する場合もありますが、成功マークが表示されれば、最新ツールの組合せで開発ができます。

アップデートの選択画面ダウンロードとインストール画面アップデート成功画面

RL78/G14ワークショップ参加とその効用

2012730日、ルネサスエレクトロニクスRL78/G14ワークショップ:WS、大阪開催へ参加します。

RL78/G14は、このブログカテゴリRL78/G13の上位機種と思われがちですが、ハード的には、別物です。G14は、旧ルネサスR8Cの後継機、G13は、旧NECエレの78Kの後継機です。G14/G13両機ともに汎用マイコンですが、G14は、64MHz動作のタイマRD内蔵、剰余算命令と積和演算命令がコア部に追加された、より高性能マイコンです。

昨年のG13 WS参加に続いて、今年のG14 WSの参加目的は、R8C/25の置換え検討と、高性能化のポイント、データ・トランスファ・コントローラ;DTCと、イベント・リンク・コントローラ;ELCの習得です。実機Stickボード(RL78/G14 Stick、近日中にルネサスWEB販売予定、40005000円程度と推測)での動作と、CubeSuite+E1によるデバッグができるので、楽しみです。参加者は、このStickを、もれなくもらえる特典もついています。

このように、少し別の機種をスタディすると、ブログ記載のRL78/G13R8C/25を、より深く知ることができるというメリットもあります。本ブログも、記載カテゴリの機種に限らず、いろいろなマイコンの質問にも積極的にお答えしますので、ご質問は、コチラへお寄せください。

CuteSuite+のスタートアップ・ガイド編と最少パラメタ設定値

RL78ファミリCubeSuite+のスタートアップ・ガイド編が、2012628日に発行されました。初心者には、煩雑で、肝心の箇所がコチラを参照して、となっているので判りにくいと思います。マニュアル作りは、対象読者の設定がとても難しいです。特に、全ての機能を統合するIDEなどは、その最たるものでしょう。本ブログは、初級~中級者を対象としています。

そこで、この読者向けに、CubeSuite+の設定で、コレダケをすれば動作OKというものを5個リストアップします。いずれも太字の箇所が設定箇所です。

CubeSuite最少設定値
CubeSuite最少設定値

ターゲットボードは、201277日現在、RL78 G13/G14用のRSKは開発中で入手できませんので、RL78G13 スタータキットStick RL78G13-STICKを想定しました。設定値の内容は、マニュアルを参照してください。

統合開発環境:IDEは、開発ツールの全ての設定を、GUIで変えられることを目的としています。本来はデフォルトのままで、変更必要がないパラメタから、絶対に設定が必要なパラメタまで、これらが全て操作できるので煩雑になります。いろいろIDEを使った経験から、CubeSuite+は、ツールチップ表示やパラメタの解説が下段に表示されることなど、よくできた部類に入ります。

HEWが更新

Hewのバージョン詳細情報
Hewのバージョン詳細情報

約1年間更新が無かったHEWが、2012年5月16日、4.09.00から4.09.01へ更新されました。ルネサスサポート情報 は、2012/06/27にメールで届きました。

早速リリースノートをザット読みましたが、どこが変更されたかが判りません。バージョン番号からして、マイナーなバグ取りと解釈します。Vista/Windows7の標準権限での使用問題に関して、回避策などが記載されておりますが、更新した結果、旧ワークスペースもWindows7で問題なく動作しました。

効果的なRAMの利用方法

効果的なRAMの使い方を2つ解説します。CALLTテーブルsreg変数です。使い方は、CALLTの場合は、通常の関数宣言の前にcalltを、sreg変数は、通常の変数宣言の前にsregを、修飾子のように付けるだけです。例えば、下記です。

callt static void          MainFuncCaller(void);  // CALLTで高速化

sreg unsigned char    CntTau02Int = 0x00U;   // sreg変数で高速化

図3―2 メモリ空間の利用
ユーザーズマニュアル RL78,78K0Rコーディング編 「図3―2 メモリ空間の利用」より抜粋

ユーザーズマニュアル RL78,78K0Rコーディング編 「図3―2 メモリ空間の利用」を観ると、CALLTテーブルと、sreg変数という用途のアドレスがあることが判ります。CALLTテーブルは、通常の関数CALLよりも高速に呼ぶためのテーブル領域です。呼出し回数が多い関数や、高速起動したい関数に好適です。sreg変数は、通常よりも高速アクセスできるショート・ダイレクト・アドレッシング領域内の変数のことで、これもアクセス頻度が高い変数に向いています。その他にも、いろいろな用途の領域がありますが、これら2つは利用効果が高く、副作用も無いので、安心して使えます。

CALLTテーブルもsreg変数も、CubeSuite+のビルド・ツールのパラメタを設定すると、ツールが自動で選んだ関数/変数に適用できます。しかし、デフォルトでは未使用設定ですし、ツール更新のたびに再設定するのは、忘れるなどのミスを招きます。プログラマが、関数と変数を選んで、これらの高速化の修飾を明示的につける方が良いでしょう。注意点は、利用できるサイズが64/148バイトと小さいので、CubeSuite+のビルド・ツール、変数/関数配置オプションのROM/RAM使用量を表示する(デフォルト:いいえ)を、“はい”に設定して、常に使用量を把握しておくことです。

 

Windows8 Release PreviewとHEW Version 4.09.00.007

R8C/25の開発ツール、HEW Version 4.09.00.007が1年以上バージョンアップしていないことは、以前のプログでも書きました。このHEWの動作環境は、64ビット版Window7です。5月31日にWindows8 RPがリリースされましたので、この新しい64ビット版Windows8 RPで、現状のR8C/25 HEWが動作するかをレポートします。

結果は、デスクトップアプリとして何の問題もなくWindows8 RP上で動作しました。Windows8 Release Preview とCustomer Previewとの違いは、より製品版に近いこと、画面描写がカッコ良くなったことなどです。詳細は、いろいろ記事がでるでしょうから、そちらを参照して頂くとして、ここでは、HEWがWindows8 RP上で、どのように動作するかにフォーカスしてレポートします。

Windows8スタート画面とデスクトップHEW画面

Windows8スタート画面                                 デクストップHEW画面(チャーム出現時)

HEWをWindows8 RPへインストールすると、スタート画面のタイルに、普段はあまり使わない全アプリのタイルが自動的に登録されます。これは、わずらわしいので、不要なタイルを右クリックし、「スタート画面からピン止めを外す」を実行し、必要最低限のタイルのみにすることをお勧めします。私は、HEWタイルのみにしました。

HEWタイルをクリックすると、デスクトップ画面に切り替わり、アプリが起動します。通常のアプリは、Windows7画面からスタートボタンを消したこのデスクトップ画面で動作します。マウスを右端に持ってくると、チャームと呼ばれる黒い縦帯の「検索」…「設定」の簡易ランチャーと、時計が自動的に表示されます。右端までの長いソースコードは記述すると、このチャームとバッティングするので、程ほどの長さのコード記述が良いでしょう。その他は、特にWindows7との差は感じませんでした。

製品版とほとんど同じと言われるWindows8 Release PreviewでHEWが動作しましたので、タイルやチャームに気を付ければ、Windows8移行は問題なしと思われます。

Windows8 Release PreviewとCubeSuite+ V1.02.00

CubeSuite+ V1.02.00の動作環境は、ユーザーズマニュアル起動編によると、32ビット版XP、32/64ビット版Windows7です。5月31日にWindows8 RPがリリースされましたので、この新環境の64ビット版Windows8 RPで、CubeSuite+ V10.02.00が動作するかをレポートします。

結果は、デスクトップアプリとして何の問題もなくWindows8 RP上で動作しました。Windows8 Release PreviewとCustomer Previewとの違いは、より製品版に近いこと、画面描写がカッコ良くなったことなどです。詳細は、いろいろ記事がでるでしょうから、そちらを参照して頂くとして、ここでは、CubeSuite+がWindows8 RP上で、どのように動作するかにフォーカスしてレポートします。

Windows8 スタート画面とデスクトップCubeSuite+画面

Windows8スタート画面                                 デスクトップCubeSuite+画面(チャーム出現時)

CubeSuite+をWindows8 RPへインストールすると、スタート画面のタイルに、普段はあまり使わない全アプリのタイルが自動的に登録されます。これは、わずらわしいので、不要タイルを右クリックして、「スタート画面からピン止めを外す」を実行し、必要最低限のタイルのみにすることをお勧めします。私は、CubeSuite+タイルのみにしました。

CubeSuite+タイルをクリックすると、デスクトップ画面に切り替わり、アプリが起動します。通常のアプリは、Windows7画面からスタートボタンを消したこのデスクトップ画面で動作します。マウスを右端に持ってくると、チャームと呼ばれる黒い縦帯の「検索」…「設定」の簡易ランチャーと、時計が自動的に表示されます。右端までの長いソースコードは記述すると、このチャームとバッティングするので、程ほどの長さのコード記述が良いでしょう。その他は、特にWindows7との差は感じませんでした。

製品版とほとんど同じと言われるWindows8 Release PreviewでCubeSuite+が動作しましたので、タイルやチャームに気を付ければ、Windows8移行は問題なしと思われます。