第2のRAサンプルコード

ルネサスRAファミリ開発に評価ボード毎のサンプルコードが重要であることは、過去何回か投稿済みです。今回は、これとは別の、「Stacks毎」に提供される第2のサンプルコード利用方法を説明します。

RAプロジェクトソースコード開発手順

FSPパースペクティブへ追加するLPM Stack
FSPパースペクティブへ追加するLPM Stack

ごく簡単にRAプロジェクトのソースコード開発手順を説明すると、

1) 利用「Stack」をFSPパースペクティブへ追加
2) Generate Project Contentクリック
3) 生成されたDeveloper AssistanceのStack API群から、利用APIをソースコード上へコピー&ペースト

という3手順の繰返しです。Stackとは、MCU周辺回路のことです。

評価ボードサンプルコードは、あらかじめ1)~3)をエキスパートが行い、サンプルで利用するStackとStack APIは、エキスパートが選択済みの実動作プロジェクトです。

一方、開発者自らが、1)~3)手順でソースコード開発する時は、どのStackを追加するか、利用するAPIは何か、を検討する必要があります。この検討に必要な情報は、全てFSPパースペクティブへ配置したStackのℹ️から得られます。

ℹ️をクリックすると、Stack PropertiesのAPI infoタブ相当の英文解説が読めます。内容は、Function、Overview、Exampleなどです。API info表示内容と同じですが、より詳しい説明が得られます。

「Stack毎」に提供される第2のRAサンプルコードとは、このExampleのことです。

Low Power Modes (r_lpm)の例

RAファミリの4低電力動作モード(出展:RA6E1ユーザーズマニュアル)
RAファミリの4低電力動作モード(出展:RA6E1ユーザーズマニュアル)

MCUアプリケーションに、低電力動作は必須です。RAファミリには、スリープ/ソフトウェアスタンバイ/スヌーズ/ディープソフトウェアスタンバイの4低電力動作モードがあります。例えば、RA6E1グループユーザーズマニュアルハードウェア編の10章を参照ください。

電力消費の最も大きいMCUを停止するのが、スリープモードです。スリープからの復帰時間も短く、簡単で効果的な低電力動作が可能です。

RAファミリで低電力動作を行うには、FSPパースペクティブへ、最初の図に示したLow Power Modes (r_lpm)スタックを追加します。

Stackのℹ️とサンプルコード

追加Stack ℹ️クリックで表示されるのが、LPMの詳細説明です。LPMスタック追加で増える5個全てのLPM APIが解ります。また、スリープモードプロパティがデフォルト設定済みなのも解ります。

このスリープモードのExampleが、下記LPM Sleep Exampleです。

LPM Sleep Example
LPM Sleep Example

利用APIは、R_LPM_Open()とR_LPM_LowPowerModeEnter()の2個のみです。assert(FSP_SUCCESS == err)は、次章で説明します。

注意点は、この「Stacks毎」に提供されるサンプルコードは、一般的なサンプルコード構成、つまり、初期設定と無限ループ内処理の記述形式ではないことです(一般的サンプルコード構成については、コチラの関連投稿参照)。

ここで示されているのは、LPMスリープモード時に利用するAPIとその利用順序です。

つまり、最初にR_LPM_Open()でスタックAPI利用可否を判断し、次に、R_LPM_LowPowerModeEnter()でスリープ動作OKの判断をしているだけです。

LPM以外のStack Examplesでも同様です。繰返しになりますが、Stack Exampleは、利用APIとその利用順序を示します。

従って、自分のソースコードへ取込むには、Developer Assistance内に生成された5個のLPM APIから、R_LPM_Open()を初期設定へ、次に、R_LPM_ LowPowerModeEnter()を無限ループ内の適当な個所へ、コピー&ペーストすれば、LPMスリープモードのソースコードが完成です。

assert(FSP_SUCCESS == err)

assert()は、()内が真の時は、何もしません。偽の時は、発生場所や関数名、ファイル名などをコンソール出力し、プログラムを停止します。API利用後の結果判断に活用しています。

「Stacks毎」に提供されるサンプルコードでは、多くのStack API利用箇所で使われています。

lpm_fpb_ra6e1_wpと比較

lpm_fpb_ra6e1_wpのFSPパースペクティブとhal_entry.cのMain loop部分
lpm_fpb_ra6e1_wpのFSPパースペクティブとhal_entry.cのMain loop部分

評価ボード毎のサンプルコードにも、低電力動作サンプルがありますので、前章Stack Exampleと比較します。

RA6E1の場合は、lpm_fpb_ra6e1_epです。このFSPパースペクティブとhal_entryのMain loopの一部抜粋が上図です。多くのLPM関連スタックが追加済みで、Main loopの低電力動作を解読するのも大変です。

これは、評価ボードサンプルコードが、初めに示した4低電力動作モードの状態遷移を示すプロジェクトだからです。スリープ動作のみを実装する時は、前章LPM StackのExampleを参照した方が簡単に理解できます。

勿論、評価ボードサンプルコードとStack Example、両方を参考にしてソースコードを開発する方が良いことは言うまでもありません。

Stack Exampleが、評価ボードサンプルコード理解を助ける第2のサンプルコードとして役立つことを示したかった訳です。

追加Stacks一覧

本稿は、LPM Stackを例に第2のサンプルコードを説明しました。

FSPパースペクティブへ追加可能なStackは、Stackタブを選択後、右上のNew Stack>をクリックすると一覧表示されます。

まとめ

RAファミリのソースコード開発は、FSPパースペクティブへStackを追加後、一括生成されるDeveloper Assistance内の多くのStack API群の中から、利用APIを適切な順序でソースコードへコピー&ペーストすることで進めます。

利用Stackに複数動作モードがあるなど評価ボードサンプルコードが複雑な場合や、開発者自らが利用Stack APIを検討する場合は、第2のサンプルコードとして、追加Stackのℹ️クリックで得られるExampleに示されるStack APIとその利用順序を参考に、ソースコード開発をする方法を示しました。

RAアプリケーション開発の骨格

ルネサスRAファミリ評価ボードの動作テストプログラムと、周辺回路サンプルコードから判るRAファミリアプリケーション開発Tipsを示し、このTipsで開発したアプリケーション:App0を公開します。

評価ボードは、RA6E1を用いましたが、他のRAファミリ評価ボードでも同じです。

RAアプリケーションApp0のRTT Viewer出力
RAアプリケーションApp0のRTT Viewer出力

hal_entry.cとuser_main.c分離

RAファミリは、評価ボード毎にサンプルコードが提供されます。例えば、RA6E1の場合は、FPB-RA6E1 Example Project Bundleがそれで、この中にADCやタイマなどの周辺回路サンプルコードがあります。また、評価ボードテストプログラム:TP(quickstart_fpb_ra6e1_ep)も含まれており、他の周辺回路サンプルコード:EP(Exampleプログラム)とは少し違うファイル構造になっています。

違う原因は、EPが、コード判り易さのため、メイン処理をhal_entry.cに集中して記述するのに対し、TPは、様々な評価ボードへも対応するため、いわば汎用アプリケーション構造となっているからです。

簡単に言うと、FSPが生成するメイン処理:hal_entry.cと、ユーザ追記のメイン処理:user_main.cをファイル分離し、ユーザ開発部分の可搬性を上げた構造を持つのがTPです。

開発したMCUアプリケーションに可搬性があると効率的で生産性もあがります。TP同様、RAアプリケーションも、hal_entry.cとuser_main.cを分離した構造で開発する方法をお勧めします。

※FSP(Flexible Software Package)やサンプルコードの詳細は、コチラの関連投稿を参照ください。

SEGGER RTT Viewer利用

TPとEPには、もう1つ違いがあります。それは、EPには、PC入出力マクロが実装済みの点です。

例えば、gpt_fpb_ra6e1_ep(最初のgptが汎用PWMタイマ、fpb_ra6e1が評価ボード、epがExample Programを示す)ならば、タイマ利用例をPCへ出力し、その設定値をPCから入力できます。

対PC通信にはUSB経由Virtual COMポートを利用する評価ボードが多いのに対し、ルネサスRAファミリは、評価ボード実装デバッガのSEGGER RTT Viewerをこの役目に使います。USARTなどのMCU資産を消費しないメリットがあります。

PCでRTT Viewerを使うには、コチラからJ-Link Software and Documentation Packをダウンロードし、PCへインストール後、J-Link RTT Viewer起動で評価ボードとPC通信ができます(最初の図)。

但し、RA6/4などCortex-M33コアファミリ開発の場合は、ビルド後生成されるmapファイルからRTT Control Block Addressを探し、Viewer起動ダイアログへ入力する必要があります。

プログラム変更やFSP版数が変わると、このBlock Addressも変わるので、生成mapファイルAddress値の再入力が必要です。

RAアプリケーション開発時にも、このPC通信マクロが使えるとprintf/scanfの代用になり便利です。FSP生成プロジェクトでPC通信マクロを利用するには、生成プロジェクトのsrcフォルダへ、SEGGER_RTTとcommon_utili.hの両方を手動で追加します。

追加元のSEGGER_RTTとcommon_utili.hは、どのEPのものでも構いません。

App0特徴

以上から、RAアプリケーション開発時は、FSPが生成するオリジナルファイルに

①HAL生成メインhal_entry.cとユーザ追記メインuser_main.cを分離したファイル構造
②srcへSEGGER_RTTとcommon_utility.hの手動追加

を行うと、ユーザ開発ソースコードのRAファミリ間での可搬性が高く、PC通信も容易なアプリケーションの骨格(Skelton)が完成します。

この方法で開発したアプリケーション:App0を示します。タイトルをPCへ出力するだけのアプリケーション骨格です。この骨格に、開発ソースコードを肉付けしていけば、肉付けソースコードのRAファミリ間可搬性が高く、デバッグ効率も高いアプリケーション開発ができます。

RAファミリアプリケーション開発骨格:App0
RAファミリアプリケーション開発骨格:App0

開発したApp0プロジェクト圧縮ファイルは、コチラよりダウンロード可能です。ご自由にご利用ください。

e2 studioへのインポート方法は、インポート>既存プロジェクトをワークスペースへ>アーカイブ・ファイルの選択で、App0.zip指定です。

App0開発手順

以下にApp0プロジェクトの作成手順を示します。

1)FSPで新規Bare Metal – Minimalプロジェクト生成
2)App0 FSPパースペクティブでGenerate Project Contentクリック
3)他の周辺回路サンプルコードのsrc>SEGGER_RTTとcommon_utility.hをコピーし、App0プロジェクト>srcフォルダへペースト
4)src>hal_entry.cのL3へextern void UserMain(void)追記、L19へUserMain()追記
5)src上で新規>ソース・ファイルをクリックし、UserMain.c追加
6)src上で新規>ヘッダー・ファイルをクリックし、UserDefine.h追加
7)UserMain.cとUserDefine.hへ、前章ソースコード追記
8)ビルドし、Debug>App0.mapファイルから_SEGGER_RTTを検索、そのアドレスを、RTT Viewer起動ダイアログのRTT Control Blockへ入力後OKクリック
9)評価ボードへApp0をダウンロード、実行
10)PCのRTT Viewerで図1のタイトル出力確認

4、5、6の追加ファイル名は、UserMain.c、UserDefine.hなど先頭大文字のPascal形式を用いています。これは、プロジェクト・エクスプローラーでオリジナルのFSP生成ファイルとユーザ追加ファイルの識別が容易になるからです。

また、筆者は、Cソース・ファイル毎にヘッダー・ファイルを追加するより、ソース・ファイル内にプロトタイプ宣言を追記し、個別ヘッダー・ファイルを追加しない方が好みです。4のhal_entry.cへUserMainプロトタイプ宣言を追記したのも、このためです。

UserMain()は、初期設定と無限ループに分け、初期設定にRttInit()とUserInit()を追加しています。RttInit()でタイトルをPCへ出力し、UserIint()は、内容が何もありません。骨格ですので、利用する周辺回路に応じて、ここへ初期設定コードを追記することを想定しています。

App0のプロジェクト構成とRTT Viewerへのmapアドレス設定の様子
App0のプロジェクト構成とRTT Viewerへのmapアドレス設定の様子

まとめ

RAファミリ評価ボードテストプログラムと周辺回路サンプルコードから、hal_entry.cとuser_main.cの分離ファイル構造と、RTT Viewer利用の対PC通信マクロ実装済みのアプリケーションスケルトン(骨格):App0を示しました。

この骨格へ、開発ソースコードを追加していけば、ユーザ追加部分のRAファミリ間可搬性が高く、デバッグ効率も高い、RAファミリアプリケーションが開発できます。

もちろん、3月末を目標に開発中のRAファミリテンプレートも、このApp0へ評価ボード実装LED点滅やチャタリング対策済みSW機能などを追加します。RAファミリテンプレート構想はコチラの4章、RAテンプレートの仕組みはコチラの関連投稿を、参照ください。

メタバースとIoT

コロナ過での海外出張、特に日本帰国時が大変です。(少し長い!)出国時帰国時記事で良く判ります。デジタル達人でさえこうですから、一般人の肉体的、精神的負担は計り知れません。

COVID-19が生んだコンタクトレス・テクノロジ、メタバースやアバターは、パンデミック社会生活の負担解消が目的です。また、IoTとも無関係ではありません。

インターネット進化版メタバース

インターネット進化版メタバース構成
インターネット進化版メタバース構成

電子メールやウェブサイトを生んだインターネット、その進化版がメタバースです。世界中のコンピュータやネットワーク内で構築される3次元仮想空間とその提供サービスです(Wikipediaより)。

SNSのMeta(旧Facebook)やMicrosoftが、メタバースに注力するのは、必然です。巨大インターネット企業GAFAMの次の収入源、ビジネス領域だからです。
※Metaverseは、meta(超)+universe(宇宙)の造語。
※GAFAMは、Google、Apple、Facebook、Amazon、Microsoftのこと。Big Fiveとも呼ばれる。

これら企業のメタバースは、「現実」の人の移動や接触無しに、安全でより効率的な社会生活ができる「仮想空間」をリアルに提供します。仮想空間内の「本人」が、アバターです。

インターネット進化版メタバースは、COVID-19パンデミック規制が例え終息したとしても、ウイルス耐性を持つ仮想空間による新しい社会生活基盤を全世界に与え、経済活動もこの中で行われます。電子メールやSNS、ウェブサイト同様、生活必需基盤となるでしょう。

メタバース内のなりすまし防止、安全性や本人を保証する要素技術がセキュリティです。メタバース入口のWindows 11のTPMもその1つと言えそうです(Windows 11 TPMは、コチラの関連投稿を参照)。

デジタル後進国日本

江戸時代の鎖国や国民性も影響しているデジタル後進国日本は、最新情報の海外調達でも障害や人的負担が大きいことが、最初の2記事から判ります。

アジア唯一のG7国:日本も、最新情報を遅延なく入手し続けないと、後進化に拍車がかかるかもしれません。※劣化日本の傾向と対策は、お時間があればコチラの関連投稿も参照ください。

AI翻訳も身近になりましたが、IoT MCU開発者は、和訳に拘らず英文による情報入手が効率的なのは明らかです。

IoT進化

全てのモノがインターネット接続するIoTも、メタバースにより進化します。

現在は、主に自動車や産業機器などの「人間以外」のモノが対象です。メタバースでは、これら対象に「人間」も加わります。例えば、2~3年後実現の舐めると味がするテレビ。人間の味覚もネットで繋がります。

IoTデバイスは、モノのセンサデータAD化とネット登り方向への送信が主でした。メタバースにより、人間相手の下りデータDA化やGUIなども重要になりそうです。上下データ同時制御や高度GUIには、IoT MCU高性能化も必要です。

ゲームヘッドセットの視覚、聴覚の仮想化
ゲームヘッドセットの視覚、聴覚の仮想化

現在のゲームヘッドセットが提供する視覚、聴覚の仮想化に加え、触覚、味覚、嗅覚などの五感も仮想化できれば、より人間が使いやすいメタバースになります。

更に、エッジ/クラウドAIやロボット技術も加えれば、モノ対人間、人間(アバター含む)同士、人間対モノの繋がり実現のメタバースは、無限の可能性をIoTデバイスへ与えます。

同様に、

・熱さ・冷たさを判断する感覚
・空間の中で、自分の体がどこにあるのかを把握する感覚
・身体のバランスをとるための平衡感覚

など、五感に加えメタバースとの相性が良い三感覚の研究もあります。これらは、IoTデバイスとも相性が良さそうです。

メタバースは、モノから人間を対象に加えたIoTデバイスへ、多大なインパクトを与えると思います。

傾向と対策:日本低下

 

世界第2位から降下傾向の日本
世界第2位から降下傾向の日本

年内最後の投稿に、“日本の半導体産業はどうしてダメになったのか? 今だから分かる3つのターニングポイント”(@IT、2021年12月17日)を紹介し、国際地位低下傾向の日本と、IoT MCU日本開発者の対策を示します。

半導体と通信業界から見る日本低下傾向

半導体の研究・開発者から見た日本地位低下を、3度のターニングポイント失策から分析し、現状の日本半導体は、脇役へ滑り落ちていて、名脇役の存在感を示せるかは、「舵取り」(おそらく政治家や官僚)にかかっていると結論しています。

筆者、Massa POP Izumida氏は、もちろん日本人で、本ブログ筆者と同世代だと思います。80年代に就職、90年代世界第2位の経済大国日本で中堅現役、そして、総合順位31位へ低下した現状日本を実感されている技術者だと推測します。

ATM(Asynchronous Transfer Mode)通信の研究・開発者だった本ブログ筆者も、同じような経験があります。90年代、米国、欧州、日本のATM規格競争が勃発した時、日本案が世界規格になっていれば、現状と異なるネットワーク、通信業界になっていたでしょう。“たられば”の話です。

日本人特性

周囲の意見に「同調意識が強い」日本人の性格や特性は、コチラの記事にまとまっています。「単一民族島国の中」で、上手く生きていくための特性は、必然です。

ただ、舵取りや国際競争の時に、この特性が裏目に出たのが、日本地位低下原因の1つでしょう。現状も変わらない官僚主義は、コチラの記事でも判ります。

一般国民も含めた日本人の特性変化(≒国際化)には、「数世代に渡る長い時間」が必要です。

つまり、今の日本人特性は、「ボーダレスネットワークでワールドワイドに急変した世界の中」の日本低下傾向を、スグに阻止し復帰するには適していない訳です。

日本IoT MCU開発者対策(私案)

IoT MCU日本開発者が生き残るには、「日本人以外の第2の視点とPlan B」が必要です。

日本IoT MCU開発者の対策
日本IoT MCU開発者の対策

日本開発者の現役期間が50年としても、DNAに染み込んだ同調意識もまた簡単には変わりません。

対策は、一時的にせよ、欧米人の特性で自身のIoT MCU状況を捉えることです。欧米人特性は、ネット検索で見つかります。また、欧米に限らず、アジア人特性も日本人とは大きく異なります。

これら日本人外の特性・視点で現状把握を試すと、自分との差分が判り、対策に何をすべきかが見えてきます。これは、個人キャリアプランの中で、Plan Bの1つに相当します。

具体策は、個人により異なります。私の場合は、米語です。幸い、IoT MCU関連ドキュメントやセミナーは、殆どが米語ですので、材料は豊富です。敬語の利用が少ない米語は、効率的情報伝達と取得に優れています。

別策は、国際競争下で最後に生き残っている日本自動車業界の視点を借りることです。自動車業界は、ワールドワイドな視点で、研究開発を実践中です。生き残った主因です。その取組みや視点で、Plan Bを考えるのも良いと思います。

年末年始は、現状から少し距離を取れる時期です。日本人外の視点とPlan B検討は、いかがでしょう。

次回金曜投稿:1月7日

各種メンテナンスのため大晦日投稿はなし、年内は本稿が最後、次回金曜投稿は、来年1月7日です。

弊社サイトは、年中無休です。本年も弊社のご利用、誠にありがとうございました😌。
皆様、良いお年をお迎えください。

クラウドベースMCU開発(個人編)

クラウドベースMCU開発お役立ちリンク
クラウドベースMCU開発お役立ちリンク

ARMが、2021年10月19日、IoT関連製品の開発期間を平均5年から最大2年間短縮できるクラウドベース開発環境「Arm Total Solution for IoT」発表という記事(EE Times Japan)は、以下の点で興味深いです。

・IoT製品化に平均5年もかかるのか?

・ハードウェア完成を待ちソフトウェア開発着手するのか?

但し、クラウドがMCU開発に効果的で、GitHubなどのクラウドリンクが今後増えることは、疑う余地がありません。そこで、すきま時間に個人レベルで役立つクラウドMCUリンクを3点示します。

すきま時間お役立ちクラウドMCU開発リンク

クリエイティブなMCUハードウェア/ソフトウェア開発中は、集中時間と空間が必要です。COVID-19の影響で、開発場所や通勤環境に変化はあるものの、ちょっとした待ち時間や出先での2~3分程度のすきま時間は相変わらず存在します。

個人レベルのIoT MCU開発支援が目的の弊社は、このような短いすきま時間にスマホやタブレットを使って、MCU情報を収集、閲覧するのに便利なリンクを紹介します。

すきま時間にMCU関連情報を閲覧することにより、集中時間に凝り固まった開発視点を新たな視点に変える、最新情報を収集するなどが目的です。

STマイクロMCU技術ノート

STマイクロMCU技術ノートの一部(PDF内容は濃く全てのMCU開発で役立つTips満載)
STマイクロMCU技術ノートの一部(PDF内容は濃く全てのMCU開発で役立つTips満載)

STマイクロのSTM32/STM8シリーズ別に検索できる日本語MCU開発Tips満載リンクです。ログインが必須ですが、わずか数ページで説明されたダウンロードPDF内容は濃く、STユーザに限らず全てのMCU開発者に役立つTipsが得られます。

EDN Japan Q&Aで学ぶマイコン講座

EDN Japan Q&Aで学ぶマイコン講座の一部
EDN Japan Q&Aで学ぶマイコン講座の一部

EDN JapanのMCU情報リンクです。Q&Aで学ぶマイコン講座は、最初の1ページでMCU初心者、中級者からの質問に対する回答要点が示されています。2ページ以降で回答詳細を説明するスタイルですので、短時間での内容把握に適しています。

Digi-Keyブログ

Digi-Keyブログの一部(日本語タイトルは翻訳された記事を示す)
Digi-Keyブログの一部(日本語タイトルは翻訳された記事を示す)

日本語タイトルで日本語へ翻訳されたブログ記事が判るリンクです。大手サプライヤーの英語ブログですのでMCUだけでなく、幅広いデバイス情報が得られます。すきま時間でも読めるように記事は短く纏まっています。最新MCU情報やハードウェア開発者向け情報が多いのも特徴です。

IoT製品とプロトタイプ開発

EE Timesの2021年10月8日、半導体製品ライフサイクルの長さと製造中止対策の記事に、20年前、1990年代の事業分野別の製品開発リードタイムとライフサイクル変化が示されています。

事業分野別の開発リードタイムと製品のライフサイクル変化(出展:記事)
事業分野別の開発リードタイムと製品のライフサイクル変化(出展:記事)

1998年の値ですが、重電機器を除く製品開発時間(リードタイム)が2.3年以内という数値は、現在でも納得できます(0.5年程度のプロトタイプ開発時間は含んでいない実開発時間だと思います)。

MCUベンダ各社は、10年間のMCU供給保証を毎年更新します。つまり、2021年更新ならば、2031年迄の10年間は販売MCUの供給を保証するということです。

但し、セキュリティが重視されるIoT製品では、最新セキュリティハード/ソフト内蔵IoT MCUによる製品化をエンドユーザは望みます。SoC:System on a Chipによる製造プロセス進化により、IoT関連製品の開発期間は、再開発も含めると1998年よりも更に短くなる可能性もあります。

前章リンク情報を活用し、最新セキュリティ内蔵MCU状況、セキュリティ機能のOTA更新可能性、開発製品がエンドユーザのセキュリティニーズと開発コストを満たすか、などを個人でも常時把握・評価し、万一、開発製品の成功見込みが少なくなった場合には、MCU見直しなども必要でしょう。

IoTセキュリティのライフサイクルは変動的で、かつ、IoT製品の市場獲得に支配的です。短い開発時間中であっても、状況に応じてMCUを変更することは、製品の成功と失敗に直結します。

弊社MCUテンプレートを使ったプロトタイプ開発は、このような激変IoT製品開発のMCU評価に適しています。制御系MCUと被制御系を分離、低コスト、少ない手間でプロトタイプを早期に開発し、プロトタイプ実機によりIoT製品のMCU評価、適正判断ができるからです。

もちろん、最初に示したバーチャルなArm Total Solution for IoTとの併用も有効です。セキュリティ重視IoT製品開発の成功には、IoT MCU選択と開発期間の短さがポイントです。

Bluetooth 5.3 LE対応RA開発中

Bluetooth 5.3対応の開発中RA MCU
Bluetooth 5.3対応の開発中RA MCU

2021年10月21日、ルネサスは、最新規格Bluetooth 5.3 Low Energy(LE)対応のRAファミリ新MCUを開発中と発表しました。RA搭載予定のBluetooth 5.3 LE機能と、ルネサス32ビットMCU におけるRAファミリの位置づけを示します。

搭載予定の最新Bluetooth 5.3 LE機能

PCとキーボード、スマホとヘッドホン間など近距離低消費電力無線通信規格としてBluetooth 5は、広く用いられています。MCU搭載例も多く、本ブログでも何件か投稿してきました(STマイクロのSTM32WB、Cypress/InfineonのPSoC6、NXPのKW41Z、Bluetooth 5規格)。

RAファミリでもBluetooth 5対応RA4W1が発売中です。開発中のRAは、新規格Bluetooth 5.3対応MCUです。

Bluetooth SIGが2021年7月13日に発表した新規格Bluetooth 5.3は、Bluetooth 5に、スループットと信頼性、エネルギー効率向上など様々な機能を追加しました。詳細は、Bluetooth SIG サイトのBluetooth Core Specification v5.3で判ります。

開発中の新RAには、これらBluetooth 5.3機能に加え、Bluetooth 5.1で追加された方向検知機能、Bluetooth 5.2で追加されたステレオオーディオ伝送用アイソクロナスチャネルも対応予定です。また、ソフトウェア無線(SDR)機能の搭載により、後日リリースされる新たな規格への移行も可能だそうです。

つまり、新RAは、Bluetooth 5以降の新Bluetooth機能満載のIoT MCUで、しかも、SDRにより新しい機能追加も可能な、“万能”近距離低消費電力無線通信付きIoT MCUになりそうです。

2022年1~3月サンプル出荷予定

最新規格Bluetooth 5.3 Low Energy対応、開発中RA MCUのサンプル出荷は、2022年第1四半期(1~3月)が予定されています。

RAファミリ位置づけ

独自コア、ARMコア、開発環境など様々なルネサス32ビットMCUファミリ差が一目で判る図が、コチラの記事にあります。

RAファミリ位置づけ(出展:記事に加筆)
RAファミリ位置づけ(出展:記事に加筆)

IoT MCU開発者の立場からRAファミリを分析すると、

・ARM Cortex-M33/M23/M4コア採用でIoTセキュリティ強化
・Eclipse IDEベースのKeilやIARなどのARM Ecosystemと無償GNUコンパイラが使える

などRXファミリやSynergyでは不可能であった、手軽で低コスト、個人レベルでも開発可能な32ビットIoT MCUと言えます。

RAファミリ向けルネサスEcosystemは、Eclipse IDEベースのe2 studioです。また、RAファミリ専用Flexible Software Package(FSP)によるAPI生成ツールは、ピン互換性、周辺回路共通性があるため、RAファミリ内での開発ソフトウェア移行や移植も容易になる特徴があります。

無償GNUコンパイラのFlash容量制限などもありません。

RAファミリ開発方法

開発中のBluetooth 5.3 LEが新たに周辺回路に追加されますが、e2 studioやFSPによるRAファミリ開発方法は、汎用RA MCUのRA4E1 Fast Prototype Boardの使い方や、FreeRTOSの使い方と同じです。

RAファミリ開発の早期着手、習得したい方は、上記リンクを参考にしてください。

Flexible Software Package v3.4.0更新

FSPは、10月7日にv3.4.0へバージョンアップしました。

e2 studio 2021-10のHelp>check updatesではFSP v3.3.0から自動更新しません。FSPサイトから最新v3.4.0をダウンロードし、手動でアップグレート更新する必要があります。

Flexible Software Packageのアップグレード
Flexible Software Packageのアップグレード

v3.4.0を別の場所にインストールすれば、旧v3.3.0との併存も可能です。

AI、Security&Cloud、Ecosystem オンライン・コンファレンス

AI、Security&Cloud、Ecosystem(=開発環境)の3日間オンライン・コンファレンスと展示会が、STマイクロ主催でライブ配信されます。STM32ユーザは勿論、他社ユーザでも組込みシステム開発ヒントの可能性があります。

STM32 Innovation Day 2021 11月10日~12日(オンライン)
STM32 Innovation Day 2021 11月10日~12日(オンライン)

AI、Security&Cloud、Ecosystemプログラム概要

11月10日(水)~12日(金)の毎日13時~17時間のライブ配信で、登録すればお好きな内容のみ視聴も可能です。登録方法は、後で示します。

AI、Security&Cloud、Ecosystemのプログラム概要
AI、Security&Cloud、Ecosystemのプログラム概要

詳細プログラムは、コチラからダウンロードできます。

見どころ

10日(水)AI:STM32MCUでの組込みエッジAIデモ。

11日(木)Security&Cloud:Cortex-M33コアSTM32U5、セキュリティ・フレームワークSTM32Trust、AWSクラウド。

12日(金)Ecosystem:STM32MCU機能安全ソフトウェア・パッケージ、Azureクラウド。

13:30~14:00の各分野エキスパートによる基調講演、バーチャル・イベント会場の最新製品紹介やデモなども面白そうです。

他社ユーザの方は、利用中MCUとの差分が明確に判る絶好のチャンスです。

登録方法

事前に、コチラで仮登録し、折返しメールで10分以内に本登録します。

コンファレンス後、アンケートに回答するとMCU評価ボードなどが当選するかもしれません。

RA4E1 Fast Prototype BoardのFreeRTOS使い方

RA4E1 Fast Prototype BoardへFreeRTOSを適用
RA4E1 Fast Prototype BoardへFreeRTOSを適用

RAファミリ評価ボードRA4E1 Fast Prototype Board (Cortex-M33/100MHz、Flash/512KB、RAM/128KB)(以降FPB)の、スイッチS1でLED2を点灯するFreeRTOS適用例を示します。RAファミリビギナーズガイド9章記載のEK-RA6M4評価キットを使った処理内容と同じです。

e2 studio 2021-10は、Project>Change Deviceで対象MCUデバイス変更機能がありますが動作しません。そこで、ガイド掲載のEK-RA6M4を手動でRA4E1へ変更し、FPBでFreeRTOSのセマフォを利用し、S1押下げ割込みとLED2トグル点灯を同期させるFreeRTOSサンプルコードを示します。

このコードを使い、前稿よりも具体的にFPBとFlexible Software Package(以降FSP)の使い方、今回は使わないTrustZoneのメリットを示すのが、本稿の目的です。

RA4E1 Fast Prototype Board(FPB)のRTOSとTrustZone

IoT MCUをクラウド接続するには、RTOSが必要です。AWS(Amazon Web Services )接続にはFreeRTOSライブラリ、Microsoft Azure接続にはAzure RTOSライブラリの利用が前提だからです。

また、クラウド接続には、TrustZoneなどハードウェアによるセキュリティ対策も要求されますので、RTOSとTrustZoneは、IoT MCUの必須2技術です。

ハードウエアセキュリティは、開発後、簡単に追加することが困難です。今回はTrustZone未使用ですが、IoTプロトタイプ開発にTrustZone内蔵Cortex-M33を用いるのは、例え未使用でも製品セキュリティ処理の具体的検討ができるなど、IoTセキュリティを開発初期から考慮した設計となるからです。

これが使わないTrustZoneのメリットです(TrustZone使用例も、いずれ投稿予定)。

本稿は、先ずFreeRTOSをFPBへ適用します。FreeRTOS新規プロジェクト作成、API生成ツールFSP設定、FSP生成ファイルへのタスク追記の順に説明します。

Step1:FreeRTOS新規プロジェクト作成

最新版e2 studio(2021-10)の新規FreeRTOSプロジェクトは、File>New>C/C++Projectとクリックし、①~⑥の手順で作成します。

FreeRTOS新規プロジェクト作成
FreeRTOS新規プロジェクト作成

②プロジェクト名は、任意です。③Boardは、PFB-RA4E1を選択します。

④TrustZone未使用時のプロジェクトを、“Flat”と呼びます。これは、TrustZone使用時、セキュアと非セキュアの2プロジェクト並存が必要となりメモリ領域を分割することに対する、平坦なメモリ使い方に起因していると思います。

※メモリ領域分割は、PCハードディスクのパーティション分割をイメージして頂ければ判り易いでしょう。例えサイバー攻撃を受けても、物理的に侵入できないメモリ領域を作り、ここへ最重要情報やソフトウェアを保存する訳です。

⑤FreeRTOSを選択します。ベアメタル(No RTOS)とAzure RTOSも選択可能です。⑥Minimalを選択し、FinishクリックでFreeRTOS(TrustZone未使用)新規プロジェクトが完成です。

各選択肢を変えると、前稿で説明した多種類の新規プロジェクトが作成できることが解ります。

Step2:Flexible Software Package(FSP)設定

Flexible Software Package (FSP)設定
Flexible Software Package (FSP)設定

新規プロジェクト作成のFinishクリックで、FSPパースペクティブオープンを聞いてきますので、開きます。

①プロジェクトSummaryが表示されます。Stacksタブを選択、②New Stackをクリックし、External IRQ Driver on r_icuを選択します。新しい外部割込みドライバがStackに追加され、③プロパティが表示されます。

FPBのユーザスイッチS1は、P205(IRQ1)に接続済みです。そこで、③プロパティのirq0をirq1、TriggerをFalling、Digital FilteringをEnable、Callbackをexternal_irq1_callbackに変更します。

次にセマフォ追加のため、④ObjectsのNew Objectsをクリックし、Binary Semaphoreを選択します。⑤プロパティSymbolをg_s1_semaphoreに変更します。

RA4E1 Fast Prototype BoardのSW1 P205(IRQ1)の確認
RA4E1 Fast Prototype BoardのSW1 P205(IRQ1)の確認

最後に、⑥pinsタブをクリックし、ユーザスイッチS1:P205(IRQ1)とIOピン割当てをGUIで確認します。

以上でFSP設定は完了です。Generate Project Contentをクリックすると、APIや割込みコールバック関数、関連ファイルが自動生成されます。

Step3:FSP生成ファイルへタスク追記

FreeRTOSセマフォ同期処理
FreeRTOSセマフォ同期処理

FSPが生成したファイル:led_thread_entry.cに上記コードを追加します。このコードは、LED初期化と無限ループ処理から構成されます。RAビギナーズガイド掲載のirq10をirq1へ変更したLEDタスクです。

コールバック関数external_irq1_callbackは、Developer AssistanceのLED Threadを開くと一番下に割込みコールバック関数が生成済みですので、これをドラッグ&ドロップして追加します。

LEDタスク追加後、ビルドしFSBへダウンロード、デバッガ起動後、再開を2回クリックして実行中の様子が上図です。FSBのS1クリックでLED2がトグル点灯します。

FreeRTOS Queueサンプルコード

前章は、RAファミリビギナーズガイド9章のEK-RA6M4評価キットFreeRTOSセマフォサンプルコードを、RA4E1 Fast Prototype Board(FPB)へ流用したコードです。変更箇所は、irq10をirq1へ変えただけです。

FSPには、FreeRTOS Queueサンプルコード:freertos_fpb_ra4e1_epも付属しています。これら2つのサンプルコードを理解すれば、セマフォとQueueを使う基本的なFreeRTOSソフトウェア開発が可能です。

FreeRTOS待合せ手段としては、セマフォ/Queue以外にもMutexやイベントグループなどの手段もあります。弊社ではFreeRTOS基礎固めを目的として、Hardware Independent FreeRTOS Exampleを応用したセマフォ/Queue活用のFreeRTOSテンプレート化を目指しています。RA/REテンプレートもこの方針で開発する予定です。

この方針で開発したNXP版FreeRTOSアプリケーションテンプレートは、コチラから概要がダウンロード可能です。

まとめ

RA4E1 Fast Prototype Board(FPB)へ、RAファミリビギナーズガイド掲載FreeRTOSサンプルコードを流用し、ユーザスイッチS1とLED2点灯をセマフォで同期させました。

FreeRTOS新規プロジェクト作成、Flexible Software Package(FSP)設定、FSP生成ファイルへのタスク追記の具体的操作手順を示しました。

ガイド9章には、更に詳細な説明がありますので、参考になります。例えば、スイッチ割込み優先度12を利用する理由、systick優先度15が予約済みであるなどです。

TrustZoneは未使用ですが、プロトタイプ開発初期からIoTセキュリティを考慮した設計ができるメリットがあります。

FSP付属Queueサンプルコードと本セマフォコードを使ってFreeRTOS基礎固め目的のRA/REテンプレート開発を進めます。

RA4E1 Fast Prototype Boardの使い方

前稿のRAファミリ評価ボードRA4E1 Fast Prototype Board(以降FPB)を入手、RA/REテンプレート検討に着手しました。

FPB開発に用いるルネサスIDE:e2 studio(以降e2)とAPI生成ツール:Flexible Software Package(以降FSP)は、NXPやSTマイクロなどのEclipseベースIDEの利用者が?に思う箇所があると思います。

ルネサスIDE:CS+ユーザでも、同様にこの?を感じると思いますので、対策と評価ボードFPBの使い方を示します。

RA4E1 Fast Prototype Boardとe2 studio
RA4E1 Fast Prototype Boardとe2 studio

e² studio

Eclipse IDEをベースとしたRAファミリ統合開発環境:IDEが、e2、API生成ツールが、FSPです。

e2は、ARMコアを含む全てのルネサスMCU開発用の新世代IDEで、古くからあるRL78ファミリやRXファミリなどのルネサス独自コア専用統合開発環境CS+の後継IDEとして登場しました。但し、CS+は、現在でもRL78/RXファミリ開発に使えます。

e2は、MCUファミリ毎にコンパイラを切替えることにより、全ルネサスMCUの共通IDEとして動作します。MCUファミリのコンパイラは、普通1種類です。ところが、RAファミリには、GNUとARM Compiler V6の2種類が用意されており、どちらも無償です。

GNUとARM Compiler V6?

e2インストール時、デフォルトでインストールされるコンパイラは、GNUです。ARM Compiler V6は、後から追加インストールが必要です。最初の?は、両コンパイラの“違いは何か”です。

次章で示すFSPやTrustZone利用に差が生じるのであれば、問題です。

ルネサス資料を探しましたが、結局、コンパイラ差は分かりません。最近では殆ど行わないアセンブラデバッグが無ければ、コンパイラはどちらでも構いませんので、デフォルトGNUで当面はOKとします。

Flexible Software Package (FSP)?

RAファミリ専用のAPI生成ツールが、FSPです。動画:Generating Your First RA FSP Project(8:25)で使い方が分かります。

Flexible Software Package構成
Flexible Software Package構成

簡単に説明すると、スタックと呼ぶ開発プロジェクトで使用するHALドライバやRTOSなどのミドルウェアパタメタをGUIで設定後、e2のGenerate Project Contentをクリックすると、Developer Assistance内に全てのAPIが自動生成され、その中から使用するAPIを、ユーザ自身でソースコード任意場所にドラッグ&ドロップする使い方です。

ソースコード任意場所にAPIを配置できるのは、親切とは言えません。NXPやSTマイクロのコード生成ツールでも、API追加箇所にコメント付きのソースコードが生成されます。しかし、FSPは、ソースコード上のどこにでもAPIを設置できます。

API使用順序、設置場所、パラメタの意味が予め解ってないと、適切なコーディングは困難でしょう。後述する多くの公式サンプルコード(スタック利用例)がありますので、これらを参考に習得する必要があります。

hal_entry.c?

e2 studioのra_genとsrcフォルダ
e2 studioのra_genとsrcフォルダ

Generate Project Contentのクリックで生成されるのがAPI本体、つまり、ra_genフォルダ内のmain.cを含むスタックのドライバ関数群です。ra_genフォルダは、FSPが生成するコードの格納場所です。

これらとは別のsrcフォルダ内に見慣れないhal_entry.cファイルがあります。srcフォルダは、ユーザが追加するコードの格納場所です。

FPB出荷時にインストール済みのquickstart_fpb_ra4e1_epプロジェクトを読むと、main.c→hal_entry.c→user_main.cとコールされ、結局、user_main.cに一般的なIDEでユーザが追記する初期設定と無限ループを記述するのが、FSPでのユーザソースコード記述作法のようです。

※一般的なIDEでユーザが追記する初期設定と無限ループについては、基本のキ3章まとめを参照してください。

quickstart_fpb_ra4e1_epのuser_main処理
quickstart_fpb_ra4e1_epのuser_main処理

readme.txt?

公式サンプルコードをe2へインポート後、readme.txtでサンプル動作内容やFPB追加配線の必要性が分かります。バグだと思いますがe2(2021-07)は、サンプルコード付属readme.txtがプロジェクト内へインポートされません。

筆者は、手動でインポートしました。例えば、sci_uart_fpb_ra4e1_epプロジェクトは、追加配線無しではTera Term動作確認ができませんので、readme.txtを読み、追加配線が必須です。

RA4E1 Fast Prototype Board(FPB)の使い方

IoT MCUの機能と消費電力を最適化したRAファミリのRA4E1グループ評価ボード:RA4E1 Fast Prototype Board(FPB)の特徴は、以下2点です。

  • TrustZone
  • 低電力動作(Sleep > Snooze > Software Standby > Deep Software Standby)
RA4E1ブロック図
RA4E1ブロック図

TrustZoneの使い方は、RAファミリビギナーズガイドの11章が参考になります。

FreeRTOS利用を含むサンプルコードはコチラ、低電力動作サンプルコードはコチラからダウンロードできます。前章のquickstart_fpb_ra4e1_epやsci_uart_fpb_ra4e1_epプロジェクトは、初めのサンプルコード内にあります。

RTOSは、IoT接続先クラウドに応じてFreeRTOSかAzure RTOSの2種から選択可能です。また、通常の低電力動作:Sleepに加え、SnoozeやDeep Software Standbyなど超低電力動作モードも備えています。

プロジェクトは、ベアメタルまたはRTOS、TrustZone利用または非利用、の各選択肢がありますので4種類、FreeRTOSかAzureの選択を加えると、合計6種類の新規プロジェクト作成方法が可能です。

つまり、IoT MCUエッジ開発で必要となる様々なプロジェクト開発に、FPBだけで対応可能です。応用範囲の広い評価ボードで、IoTプロトタイプ開発に適しています。サンプルコード内容も豊富です。

まとめ

ユーザ視点からのベンダ各社がEclipse IDEをベースIDEに使うメリットは、IDEインタフェースがEclipseに似てくるので、ベンダが変わっても同じIDE操作性が得られることです。各社IDEで異なる部分は、周辺回路設定やAPI/コード自動生成の部分に限られるのが一般的です。

これら部分に加え、RAファミリ開発に使うe2 studioとFlexible Software Package は、無償コンパイラ選択、生成APIのソース追加方法、hal_entry.cなど、一般的なEclipseベースIDE利用者にとって?が生じる箇所が多数ありました。

ルネサス資料は多いのですが、肝心の?ポイントが解りにくいとも感じました。RAファミリ開発着手時は、これらに対し慣れが必要かもしれません。そこで、備忘録として本稿を作成しました。

なお、同じく前稿で示したREファミリについては、非常に良くまとまったREマイコンの使い方がルネサスサイトより入手できます。

RA4E1 Fast Prototype Board(Cortex-M33/100MHz、Flash/512KB、RAM/128KB)は、低価格で入手性もよくTrustZoneやRTOS、低電力動作など、幅広い知識や技術が要求されるIoT MCU開発の素材として優れています

現状RAファミリ資料の纏まりは、REファミリと比べると今一歩ですが、改善されると思います。開発に必要となる技術レベルが少し高いのですが、e2 studioとFlexible Software Package (FSP)、RA4E1 Fast Prototype Board(FPB)と豊富なサンプルコードを使ったIoT MCU開発は、好奇心を満たすIoT MCU習得へ向けたお勧めの開発環境と評価ボードと言えるでしょう。

弊社ブログは、RA/REテンプレート開発を目指し、継続して関連情報を投稿します。

Windows 11アップグレード可能通知:FYI

Windows 11を実行できます
Windows 11を実行できます

10月5日リリースWindows 11アップグレード可能通知が弊社PCへ届きました。今月リリースWindows 10 21H2で運用し、1年程度の11評価結果を見てアップグレードを予定しております。ご参考まで。

IoVとIoT

IoV:Internet of VehiclesやV2X:Vehicles-to-Everything通信により、車載半導体チップとソフトウェア需要が指数関数的に増加、ユーザの自動車選択基準が、エンジンなどのメカから車載ソフトウェアへ移行しつつある、という記事がEE Timesに記載されました。

これらIoV状況が、IoTへ与える影響について考えてみました。

IoVとIoT

IoVでユーザ選択基準が車載ソフトウェアへ変化
IoVでユーザ選択基準が車載ソフトウェアへ変化

車のカタログから、エンジン特性や足回りのメカ説明が消え、スマホ連動性や運転支援など車載ソフトウェアによるサービスの説明に変ったのはここ数年です。記事によると、車の新しいユーザ選択基準になりつつあるカーエレクトロニクスが、半導体業界にとってはスマホ以来の最大チャンスだそうです。

また、「CASE」で車載半導体はどう変わるのか(2021年9月15日、EE Times Japan)でも、自動運転と電動化が今後の車載半導体動向を左右すると結論付けています。
※CASE:Connected(通信機能)、Autonomous(自動運転)、Shared&Services(共有化/サービス化)、Electric(電動化)

年々向上するユーザのソフトウェア指向を満たす車載IoV業界、COVID-19の影響で停滞気味の民生IoT業界とは雲泥の差です。

車載半導体需要予測は初めの記事数値を参照して頂くとして、両記事のポイントは、ソフトウェア差別化や付加価値追加には、カスタムチップまたは、IP(Intellectual Property)などの組込みハードウェアが効果的という点です。これらIPには、セキュリティやエッジAIなどIoTへ流用できるものが数多くあります。

従って、IoVは、結果としてIoTも牽引すると思います。

但し、世界的半導体不足が続く状況では、優先度、調達コスト、多くの数量が確実に見込めるIoVが優勢、IoTはこの影響で、しばらくチップ供給不足や停滞が続くでしょう。

停滞気味のIoT側開発者として今できることは、IoV同様、IoTソフトウェア差別化に備えることだと思います。

IoT MCUのTrustZone、SOTB

IoTの観点から、IoTソフトウェア差別化や付加価値追加のための組込みIPと言えば、ARM TrustZone内蔵Cortex-M33コア、ルネサスの新製造プロセスSOTB:Silicon On Thin Buried Oxideなどが相当します。

アクティブ消費電力とスリープ消費電力両方を減らせるSOTBプロセス(出典:ルネサスサイト)
アクティブ消費電力とスリープ消費電力両方を減らせるSOTBプロセス(出典:ルネサスサイト)

例えば、TrustZoneが、高いセキュリティ効果を発揮するのはご存知の通りですし、SOTB製Cortex-M0+搭載ルネサスREファミリは、超低スタンバイ電流により太陽光発電環境などのエナジーハーベストでも電池交換不要を実現するなどです。

SOTBは、超低消費電力動作と高速動作を両立する革新的製造プロセスです。全てのルネサスMCUへ採用すれば強力な差別化技術になると思いますが、今のところ出し惜しみなのか(!?)戦略的なのか、REファミリにのみ採用中です。

一見、ASSP:Application Specific Standard Produceのようですが、これら差別化技術は、汎用MCUに採用された時に最も効果を発揮します。

従来のエッジMCUでの単純なアナログデジタル変換に加え、セキュリティや超低電力動作などのIoT化に伴う付加機能がIoT MCUには必須です。IoT付加機能内蔵MCUが、汎用IoT MCUになります。

IoT開発者は、これらIoT付加技術を今のうちに習得しておくことが必要です。

IoVとIoTの最も大きな差は、車載と民生半導体の電源仕様でしょう。IoVは、EV(Electric Vehicle)のモータ高出力要求に伴いバッテリーが12V供給から48Vへ高電圧化しつつあり、万一の耐圧やフェイルセーフが求められます。IoTは、低電圧(≦3.3V)電源で低圧化しつつあります。

RA/REテンプレート構想

残念ながらSOTB製REファミリ評価ボードは、まだ値段が高く、個人レベルでは手が出しにくい状況です。そこで、SOTBプロセスではありませんが、REファミリとソフトウェア互換性があると思われるCortex-M33コア搭載ルネサスRAファミリを、弊社テンプレート対象にと考えています。

RAファミリは、TrustZoneでIoTセキュリティへ対応しています。また、9月22日発売のRAファミリRA4E1グループの評価ボード:RA4E1 Fast Prototype Boardは、20米ドル台と低価格です。ルネサス独自コアではないため、コンパイラFlash容量制限もありません。

FPB-RA4E1 Fast Prototyping Board(出典:クイックスタートガイド)
FPB-RA4E1 Fast Prototyping Board(出典:クイックスタートガイド)

RL78/G1xテンプレートから新しいルネサスMCUをテンプレート対象に出来なかった理由の1つが、この容量制限です。ARMコア他社同様、GNUまたはARM Compiler V6が、e2 studioでRAファミリ開発に無償で使えます。

今のところRAテンプレートは、REへも使えると考えています。ARMコア差は、CMSIS:Cortex Microcontroller System Interface Standard やHAL:Hardware Abstraction Layerで吸収できるハズだからです。

ADC、SW、LED、UART(VCOM)などのIoT MCU基本動作をRA/REテンプレート共通部分でサポートし、TrustZoneや超低電力動作などRA/RE特徴を活かす部分は、共通部分へ特徴サンプルコードを追加する方法で実現できれば嬉しいと考えています。構想段階ですが、詳細は今後投稿します。