STM32MCUのアンチ・タンパ機能

STマイクロエレクトロニクス(以下STM)のSTM32MCUマンスリー・アップデート最新10月号から、アンチ・タンパ機能を紹介します。

関連投稿:「日本語マイコン関連情報」のSTM32マイコン マンスリー・アップデート

タンパとは

タンパ:tamperとは、(許可なく)いじくることです。例えば、MCUパッケージをこじ開けるなどの行為(=タンパイベント)を検出した場合、内部バックアップ・レジスタを全消去し、重要データが盗まれるのを防ぐのがアンチ・タンパ機能です。MCUハードウエアによるセキュリティの一種です。

※マンスリー・アップデート10月号、P13の“STM32のココが便利”、今月のテーマ:~その2~参照

セキュリティの重要性がユーザで認識されつつあるので、開発者としては、「タンパ保護」、「アンチ・タンパ」、「RTCレジスタ保護」、「GPIO設定ロック」などのキーワードは覚えておくと良いでしょう。基本機能実装後にセキュリティを追加する時や、他社差別化に役立つからです。

STM32MCUのセキュリティ機能

マンスリー・アップデート9月号、P12今月のテーマにもセキュリティ機能がありますが、これはSTM32MCU独自というより、ARM Cortex-MコアMCU全てに実装の機能です。STM32MCUと他社の差別化には使いにくいと思います。

差別化に適すのは、ARM Cortex-Mコア以外の周辺回路です。そこで、RTCとGPIOについて、本ブログ掲載中の評価ボード実装MCU、STM32F072RB(Cortex-M0)とSTM32F103RB(Cortex-M3)のタンパ機能設定方法をデータシートで調べました。

出典:STM32F071x8 STM32F071xBデータシート 2017/1版
出典:STM32F103x8 STM32F103xBデータシート 2015/8版

関連投稿:STM32マイコンの評価ボード選定

RTC

MCUで処理実時刻を記録する場合などには、RTCが便利です。

RTCのアンチ・タンパ機能は、アラーム・タイムスタンプとRTCレジスタ保護の2つがあります。RTCレジスタ保護は、RTCレジスタへのアクセス手順のことです。RTC利用時、通常レジスタと異なる面倒な手順でRTCレジスタを設定しているのをサンプルソフトで見た記憶があります。

アラーム・タイムスタンプは、タンパイベント発生時のカレンダーを記録する機能です。但し、データシート内の説明は少なく、実際にソフトウェアでどのように設定すれば機能するかは不明です。

試しにSTM32CubeMXでSTM32F072RBのRTCを設定すると、Tamper 2のみ設定可能です。ヘルプ資料UM1718の説明も少なく、やはり詳細は不明です。
但し、将来アンチ・タンパ機能を実装するなら、Tamper 2に連動してアクティブ化するPA0ピンは、リザーブした方が良さそうです。

STM32F072RBのTamper 2とPA0
STM32F072RBのTamper 2に連動してアクティブ化するPA0ピン

同じ理由で、STM32F103RBならPA13ピンをアンチ・タンパ機能用にリザーブできると良いでしょう。

GPIO設定ロック

GPIO機能を固定するGPIO設定ロックについては、データシート内をTamperで検索してもヒットせず記述もありません。

まとめ

STM32MCUのアンチ・タンパ機能を、STM32マイコン マンスリー・アップデートから抜粋、解説しました。

ユーザがMCUセキュリティを重視しつつあるので、STM32MCUハードウエアが提供するセキュリティの一種であるアンチ・タンパは、他社差別化機能として役立つと思います。

そこで、STM32F072RBとSTM32F103RBのRTC/GPIOソフトウェアでのアンチ・タンパ設定方法をデータシートで調査しましたが、具体的情報は得られませんでした。

対策として、RTC/GPIOサンプルソフトから設定を得る方法があります。但し、ソースコードには、アンチ・タンパ機能の目的や、なぜ面倒な設定手順が必要かについての記述は無いので、マンスリー・アップデートのアンチ・タンパ、RTCレジスタ保護やGPIO設定ロックの理解が、サンプルソフト解読に必要だと思います。

 



投稿記事の表示、検索方法

本ブログは、マイコン:MCU関連情報をWordPressというソフトウェアを使って投稿しています。今回は、WordPressブログ投稿記事を効率的に表示、検索する方法を3つ示します。

※WordPressは、ブログサイト制作時に便利なツール。機能追加が容易なプラグインや、外観を簡単に変更できるテーマが多数あるので、カスタマイズも容易で、運営者が投稿のみに専念できる。

カテゴリ選択

各投稿の下には、カテゴリとタグ(キーワード)が表示されています。

投稿カテゴリーとタグ
各投稿の下に表示されるカテゴリーとタグ

カテゴリ選択は、1つのMCU投稿をピックアップして表示する最も簡単な方法です。

例えば、カテゴリのRL78マイコンをクリックすると、日付の新しい順にRL78関連投稿のみが表示されます。PCなどの大画面表示の時は、左端にカテゴリ一覧が表示されるので選択が簡単になります。

PCのカテゴリ表示
MCU毎の投稿を簡単にピックアップできるPCのカテゴリ表示

カテゴリ選択でブログを表示すると、興味のあるMCU投稿がまとまるので便利です。投稿数が多い時は、複数ページに渡りピックアップされます。表示ページ一番下に複数ページへのリンクが表示されます。

複数ページのリンク
カテゴリ投稿数が多い時に表示される複数ページのリンク

ページ番号が大きい、つまり日付の古い投稿は、そのMCUの選択理由や、IDE:統合開発環境インストール方法など最も基本的でMCU開発初期に必要となる情報が記載されています。古い順に読むとより容易にMCU理解が進むかもしれません。

タグ選択

カテゴリとは別に、投稿下にタグと呼ばれる、いわゆるキーワードが示されています。

投稿のタグ(キーワード)
各投稿の下に表示されるタグ(キーワード)

投稿内容で興味が湧いたキーワード(例:リアルタイムOS)がこのタグ内にある場合は、タグをクリックすると、キーワードにより投稿記事がまとめられます。タグ検索は、複数カテゴリに跨った横断的な検索方法です。

自分の興味があるMCUと他社MCU比較などに使うと便利です。

検索窓

ブログ右上にあるSearch:検索窓を使っても投稿の検索ができます。

検索窓
検索窓による投稿記事検索

タグに無いキーワードや、2018年4月など時期を検索窓に入力してクリックすると関連投稿が表示されます。

まとめ

ブログ投稿記事を効率的に表示、検索する方法を3つ示しました。

  1. カテゴリ選択:MCU毎の投稿まとめに最適
  2. タグ選択:キーワードでの横断的な複数MCU比較や理解に適す
  3. 検索窓:タグ以外のキーワードや、投稿時期での検索に適す

本プログは、複数MCUの内容を、時系列で投稿するので、興味ある対象が様々な雑音で読みにくくなる可能性はあります。この場合には、上記3方法で投稿をまとめると読み易くなると思います。

また、手動で関連する投稿を添付する場合もあります(関連投稿を自動選択するWordPressプラグインもありますが使っていません)。

但し、技術者リスク分散の点からは、雑音も耳に入れておくのも良いと思います。どの投稿もチョットした空き時間で読めるように、A4で1~2ページの文章量です。本ブログをご活用いただき、MCU情報整理やプロトタイプ開発に役立つマイコンテンプレートに興味を持っていただければ幸いです。

関連投稿:ルネサスのIDE買収とリスク分散:技術者個人のリスク分散必要性の章参照

Windows 10更新中断、μT-Kernal、IoTマイコン

Windows 10 1809更新によりユーザファイルが消失するトラブルが発生しています。このためMicrosoftは、Windows 10 1809への更新を一時中断しました。

Windows 10更新でマイドキュメントフォルダ消失!

消失フォルダは、よりによってC:\User\[user name]\Documentsだそうです。マイコンIDEのプロジェクトファイルをマイドキュメントフォルダへ設定している方(私がそうです)は、1809更新を待った方が良いかもしれません。

幸い私の3台のPCは、全て問題なく1809更新に成功し、Documentsフォルダも無事でした。

よく言われる最悪を避けるには、個人データのバックアップです。しかし、Windows機能更新時に、最も守るべきユーザデータを壊す/消すという不具合は、OSとしては許されません。Fast/Slow リングで検証できなかったのでしょうか?

μT-Kernal

OSと言えば、マイコン向けのリアルタイムOS:μT-Kernalの解説がトランジスタ技術2018年10月号の組込みOS入門という別冊にあり、第2章~第6章にリアルタイムOS(RTOS)の説明があります。

また、トロンフォーラムへの登録が必要ですがルネサスRL78/G14向けにポーティングしたμT-Kernalを無料でダウンロードできます。

※μT-Kernalは、ITRONベースに2003年公開の32ビットマイコン向けオープン・ソースRTOS。

本ブログではこれまでRTOSとしてFreeRTOSを紹介してきました。μT-Kernalと比較するとより理解が進むと思います。

関連投稿:マイコンRTOS習得

IoTマイコンとRTOS

IoTマイコンにRTOSを使うと、今回のWindows 10のようなトラブルを招く可能性が生じます。ただIoT通信手段が何になるにせよ、高度なセキュリティや公共リソース利用のための通信処理をマイコンで行うには、RTOSが必要になると思います。

この状況ならいっそのことIoTマイコンには、Cortex-M4(または同等クラス)とCortex-M0/M0+マルチコアを導入し、Cortex-M4でIoT関連処理、Cortex-M0/M0+で従来のMCU処理に2分割、さらにIoT関連処理はMCUベンダーが全て無償提供してくれればIoT MCUの爆発的普及が進むと思います。

つまり、Cortex-M4のIoT関連処理がWindows 10に相当する訳です。これならIoT通信手段やセキュリティが変わってもCortex-M4部分のソフトウェアをOTA(Over The Air)で変えれば対応できます。我々開発者は、本来のマイコン処理に集中できます。
理想的な空想ですがね…。

関連投稿:OTAについてIoT端末の脆弱性対応はOTA:Over The Air更新が必須の章参照

Windows 10 1809更新とマイコンIDE

Windows 10 1809更新

Windows 10のRed Stone最後の大型更新RS5 、Windows 10バージョン1809配布が始まりました。

1809更新2方法

Windows Updateで更新

Windows Update更新プログラムのチェックで1809への更新が開始されます。
但し、これは運が良ければの話で、PCの更新準備が整っていても「最新の状態です」が表示され更新を待たされる場合があります。

手動で更新

Windows 10 October 2018 Updateの今すぐアップデートをクリックし、アップデートツールをダウンロードすると、手動で1809更新開始ができます。

1809更新時間と操作

どちらの方法でも、1809プログラムのダウンロードとインストールに1時間、その後、再起動して新しいWindows 10 1809の自動設定に1時間、合計約2時間程度かかります(PCや通信リンク速度によって異なりますので目安です)。

ダウンロードとインストール中は、通常のPC操作やソフトウェア開発は可能です。再起動は、自動的に始まります。
つまり、何らかの操作を行っている場合は、再起動前に終了しなければなりません。

新Windows 10自動設定中は、PC操作はできませんし、操作不要で設定完了します。
つまり、再起動したら1時間は待つしかありません。

Windows 10 1809の各社マイコンIDE動作

ブログ掲載中マイコンIDE(ルネサス:CS+、NXP:LPCXpresso、Cypress:PSoC Creator、STM:SW4STM32)は、私のWindows 10 1809では正常に動作しました。

ルネサスのIDT買収とリスク分散

ルネサスエレクトロニクス(以下ルネサス)が米)IDT買収を発表したことは9月13日投稿済みです。
この買収にはいろいろな憶測が報じられています。これらをまとめ、技術者個人でのリスク分散を考えます。

ルネサスのIDT買収関連記事(2018年9月28日現在)

どの記事もルネサスのIDT買収を、社長兼CEO呉文精氏コメントのように肯定的には捉えていません。むしろリスクの方が大きく、買収が成功するかを危ぶむ声さえあります。

IDT技術のルネサス車載MCUへの応用/流用よりも、むしろNVIDAやインテルなど大手半導体メーカーの自動車半導体市場介入に対する衝突回避/防衛が真の買収目的だ、が各記事の主張です。

私は記事内容から、なぜ回避や防衛ができるのかはイマイチ理解できません。ただ巨大な買収額が、経営的な足かせとなる可能性があることは解ります。半導体業界の巨額買収は、ルネサスに限った話ではありません。

かなり昔、デバイス間通信にIDTの2ポートRAMを使った経験があり便利でした。IDT買収の日の丸MCUメーカー最後の生き残り:ルネサスエレクトロニクスには頑張ってほしいと思います。

技術者個人のリクス分散必要性

動きの激しいMCU半導体製品を使う技術者個人が生き残るには、リスク分散が必要だと思います。

例えば、業務で扱うMCU以外の開発経験を持つのはいかがでしょう。万一の際にも通用する技術を個人で準備しておくのです。その際には、手軽で安価、しかも実践応用もできることが重要です。

弊社マイコンテンプレートは、下記大手4メーカー6品種の汎用MCUに対応中です(各1000円税込)。

  • ルネサス)RL78/G1xテンプレート
  • NXPセミコンダクターズ)LPC8xxテンプレート
  • NXPセミコンダクターズ)LPC111xテンプレート
  • NXPセミコンダクターズ)Kinetis Eテンプレート
  • サイプレス・セミコンダクター)PSoC 4/PSoC 4 BLE/PRoCテンプレート
  • STマイクロエレクトロニクス)STM32Fxテンプレート
    ※各テンプレートに紹介ページあり

テンプレートを使うと新しいMCU開発を実践、習得できます。経験が有るのと無いのとでは雲泥の差です。
リクス分散の1方法としてご検討ください。

STM32マイコン マンスリー・アップデート

STマイクロエレクトロニクス(以下STM)の「日本語マイコン関連情報」、STM32マイコン マンスリー・アップデートを紹介します。

STM32マイコン マンスリー・アップデート
STM32マイコン マンスリー・アップデート。2018年バックナンバーも示す(出典:STマイクロエレクトロニクス)。

無料の登録制です。

  1. MCU最新トピックス(コラム、半ページ技術解説含む)
  2. MCU資料:更新/新規追加の一覧
  3. 開発環境(IDE)更新情報、日本語資料(トレーニング資料含む)

その他、開発に役立つ情報が、丁寧に整理されています。

特に、1最後の”今月のコラムと技術解説”は、A4:1ページに纏まっていて、チョットした空き時間に目を通しておくと、後々役立つ情報になると思います。

また、2と3のMCU資料更新や新規追加、IDE更新情報は、リンク一覧で当該場所が判る優れたハイパーテキストです。

STM32開発者以外のARM Cortex-M開発者にも有用

STM32開発者に限らずARM Cortex-M開発者なら一読の価値がある月刊誌でお勧めです。

MCU市場予測:2018年出荷数306億個、2022年438億個予測

米)市場調査会社IC InsightsのMCU市場予測記事、“マイコン市場、IoTを追い風に安定成長”が、EE Times Japanに掲載されました(2018年9月19日)。

MCU市場予測(出典:IC Insighs、EE Times Japan記事)
MCU市場予測(出典:IC Insighs、EE Times Japan記事)

2022年までの5年間世界MCU市場は、販売額は年平均成長率7.2%続伸、出荷数は年平均成長率11.1%続伸、平均価格は年平均成長率3.5%下落と予測しています。センサー普及やIoT台頭で安定成長の見込みとの結論です。

我々MCU開発者は、ますます忙しくなるでしょう (^^♪。

MCU販売額予測(Markets)

2018年販売額は、前年比11%増加で過去最高186億米ドルと見込み、2019年は9%増で204億米ドルと予測。
今後5年間、年平均成長率7.2%で続伸し、2022年は239憶米ドルと予測。

MCU出荷数予測(Units)

2018年出荷数は、前年比18%増加の306億個の見込み。
今後5年間、年平均成長率11.1%で続伸し、2022年は438億個と予測。

MCU平均価格予測(ASP)

2017年に過去最低に落ち込み、2018年も同じペースで下落するが、過去5年間の年間下落率は、その前の10年間に比べ緩やかになったと分析。
2017年から2022年は、年平均成長率3.5%で下落と予測。

※1$以下のMCU平均価格内訳を知りたいところです。下記、過去関連投稿内容ともほぼ合致しています。

関連投稿:2018年IoT市場予測
関連投稿:IoTマイコン市場規模予測

実務LibreOffice Writerカスタマイズ

LibreOffice最新版がv6.1.1に更新されました。本稿は、デフォルトのままでは使いにくいLibreOffice Writerのメニューを、使いやすくカスタマイズする方法を説明します。

ポイントは、ツールバー設定、ステータスバー理解です。この2つを理解するだけで実務的には十分に使い勝手が向上します。また、LibreOfficeのPDFドキュメント出力・編集機能を説明します。

※Windows版LibreOfficeと弊社無償配布Writerテンプレートを使って説明します。

LibreOffice Writerのメニューと配置

Writerを開いた時、デフォルトで表示される各部メニュー名が下図です。

メニューバーが一番上、次が標準ツールバー、その下がフォーマットツールバーです。シングルツールバー(B)を選択すると、フォーマットツールバーが消え、その分文書の表示エリアが広くなります。

LibreOffice Writerのメニュー名称
LibreOffice Writerのメニュー名称

標準ツールバーとフォーマットツールバーはフローティング可能です。縦方向に広い3:2や16:10モニタの場合は、これらツールバーを、モニタ左右どちらかに配置すると文書表示エリアが広くなります。

標準ツールバーとフォーマットツールバーを左へ配置したWriterメニュー
標準ツールバーとフォーマットツールバーを左へ配置したWriterメニュー

ステータスバーは、表示(V)>ステータスバー(B)で表示します。ステータスバーには、ズームスライダーや文書レイアウト機能があります。

ステータスバーの内容
ステータスバーの内容

各メニューのアイコンは、見れば機能が解り、またMicrosoft Wordとほぼ同じなので説明は省略します。

メニューカスタマイズ

Writerの使い勝手を向上させるポイントは、メニューのカスタマイズです。メニューをカスタマイズするには、ツール(T)>カスタマイズ(C)でカスタマイズダイアログを開き、ツールバータブを選択します。

カスタマイズダイアログ
カスタマイズダイアログ

例えば、機能(U)のPDFには☑が入ってます。これは、標準ツールバーにPDFアイコンが表示されることを示しています。文書のPDF化が不要ならチェックを外し、変わりに直接印刷などをチェックすれば、標準ツールバーにアイコン機能を自由に追加・削除できる訳です。もちろん、アイコン表示順序も変更可能です。

LibreOffice Writerのメニューに初めから表示されるアイコン機能と表示順序で満足な方はカスタマイズ不要です。しかし、使っているうちに、メニューからいちいち辿って必要な機能を探すより、使う頻度が高い機能は、標準ツールバーやフォーマットツールバーの見易い位置に表示しておけば1クリックで機能が呼び出せます。

これがメニューのカスタマイズです。このカスタマイズにより操作性は格段に向上します。カスタマイズしたメニューは、標準(D)ボタンのクリックでいつでもデフォルト状態に戻すことができます。色々試してカスタマイズしてください。

ステータスバーの使いこなし

ステータスバーも、選択モード以外は 、メニュー同様だれにでも判る機能が表示されます。ディスケットアイコンの赤表示は、文書に変更が発生したことを示します。ページ数や文字数カウント、ズーム機能が不要なら非表示でも良いでしょう(上図:ステータスバーの内容、参照)。

選択モードとは、文字例を選択する4つの方法をドグルで切替えます。4方法は、標準/拡張/追加/ブロックです。アイコンは変化しませんが、カーソルを持っていくと選択中の機能がホーバー表示されます(下図:ブロック選択ホーバー表示中)。

ブロック選択は、プログラミングのエディタでよく使う矩形選択のことです。

ブロック選択
ブロック選択。矩形選択に近い。

カーソルで範囲を指定する普通の選択方法が、標準選択です。

拡張/追加選択は、章や複数の文節単位で編集する時に便利な選択方法です。スタイル設定後の文書や論文作成時などに使うと便利かもしれませんが、使用頻度は低いと思います。

文章を選択した時に変な選択範囲になった時は、Escキーを押して選択モードを標準選択に戻すと直ります。

PDF出力・編集機能

Writerに限らずLibreOffice全ツールは、標準ツールバーのPDFクリックのみで簡単にPDFドキュメントが出力できます。

LibreOfficeのPDF出力アイコン
LibreOfficeのPDF出力アイコン。Writer(上)、Draw(下)。

また、PDFドキュメントをDrawで直接編集することも可能です。複雑なドキュメントなどではオリジナルのレイアウトが崩れる場合もありますが、よくあるPDF申込書に住所などの必要事項を記入する際などには便利です。

PDFドキュメントをLibreOffice Drawで直接開いた例
PDFドキュメントをLibreOffice Drawで直接開いた例

まとめ

LibreOffice Writerを実務で使いやすくカスタマイズする方法を説明しました。

ポイントは、ツールバーを追加・削除、順番入れ替えなど自分好みに設定し、ステータスバーを使いこなすことです。これらのカスタマイズだけで実務的には十分な使い勝手のWriterになります。

ツールバーのカスタマイズは、Writerだけでなく全てのLibreOfficeツールで同様に可能です。

また、各ツール共通の便利なPDFドキュメント出力と、LibreOffice DrawによるPDFドキュメント直接編集機能を紹介しました。

ルネサスエレクトロニクス、IDT買収

2018年9月11日、ルネサスエレクトロニクス(ルネサス)が米)Integrated Device Technology(IDT)を買収すると発表しました。
約67億ドル買収完了見込みの2019年前半には、IDTはルネサス完全子会社になります。

ルネサス、IDT買収の狙い

・補完性が高い製品獲得によるソリューション提供力の強化
・事業成長機会の拡大

ルネサスは、RFや各種アナログ・ミックスドシグナル機能を持つIDT製品を獲得し、これらをマイコンやパワーマネジメントICと組み合わせ、アナログフロントエンドを強化、これによりIoTや産業、自動車分野の事業領域拡大を狙うと発表しました。

2017年2月に32億1900万ドルで買収したアナログ半導体メーカの米)Inersilと今回のIDTとの事業重複は無く、ルネサス+IDT+Intersilでエンドポイントのインテリジェンスを抑え勝つ(=優勝を狙う)とルネサス)社長兼CEOの呉文精氏はコメントしています。

System on a chip(SoC)でルネサスMCUに強力なアナログ機能が実装される可能性が高まったと思います。

MicrochipのインテリジェントADC(ADCC)

同様の動向として、アナログフロントエンドに計算機能を備えたインテリジェントADCを使いAD変換結果に含まれるノイズを除去、MCU処理電力を低減するADCCデバイスをMicrochipが発表しました。

2018年9月19日水曜14時~15時に、「センサノードの低コスト設定:ADCC」と題して日本語Webinarsが予定されています。登録は必要ですが、どなたでも無料で視聴できオンライン質問にも回答してくれるそうです。興味ある方は、参加してはいかがでしょう。

QualcommのNXP買収断念とルネサスのIDT買収

Qualcomm による約470億ドルNXPセミコンダクターズ(NXP)買収は、断念という結果になりました。“NXP買収を断念したQualcommの誤算(前・後編)”によると、半導体業界はこの騒動からいろいろな教訓を学ぶべきだそうです。
また、同記事でNXP CEOのRick Clemmer氏は、

「QualcommとNXPの合併により、さらなるスマート化に向けたセキュアな接続を実現するというわれわれのビジョンに必要な、あらゆる技術を統合できる。これによって、最先端のコンピューティングやユビキタス接続を、セキュリティや、マイクロコントローラなどの高性能ミックスドシグナルソリューションと組み合わせることが可能になる。両社が協業することで、さらに完成度の高いソリューションを提供できるようになるだろう。特に、自動車やコンシューマー、産業用IoT、デバイスレベルのセキュリティなどの分野において、リーダー的地位をさらに強化し、幅広い顧客基盤との間で既に構築している強固な協業関係を、さらに拡大していくことが可能になる」

と語っています。

上記は、買収を免れたNXPにとっては実現しなかった訳です。コメント内容は、ルネサスのIDT買収狙いと重なる部分が多く、IDT買収がルネサスにとって重要であることの証拠と言えると思います。

企業買収は、巨大な初期投資が必要な半導体業界での生き残りと主要技術確保のための戦略です。
ルネサスとNXPのIoT、産業、自動車分野のMCU競争は、ますます激しくなるでしょう。

MCU統合開発環境の後方互換性検証

MCU統合開発環境は、後方互換が重要です。数年前に開発したプロジェクトを改良・改版する際には、最新の開発環境(IDE)でも開発当時と同じ動作が求められるからです。

ベンダー各社もこの点に留意してIDE改版を行っているハズです。ただ、リリースノートにも具体的な互換性説明などは見当たりません。そこで、MCU最新IDEの後方互換性を検証します。

本稿は、ルネサスエレクトロニクス(以下、ルネサス)の最新IDE:CS+に、弊社2015年開発のRL78/G1xテンプレートプロジェクトを適用し、発生するメッセージなどを示し、開発当時と同じ動作をするかを確認します。もちろん、これはあくまでも一例にすぎませんが、開発中にIDE更新に遭遇した際などの安心材料になれば幸いです。

ルネサス統合開発環境CS+

2018年9月最新ルネサスIDE CS+は、Ver.: V7.00.00(2018/07/20リリース)です。CS+は、業界標準のEclipseベースIDEではなくルネサス独自開発のIDEです。

好都合なことにWindows 10 1803をクリーンインストールしたので、まっさらなWindows 10へ最新CS+をインストールした条件で検証ができます(1803クリーンインストール顛末はコチラを参照)。

CS+ダウンロードサイトでカテゴリ:無償評価版を選び、分割ダウンロードか一括、CS+ for CCかCS+ for CA,CX のどれかのパッケージをダウンロード後、実行すれば必要なツール全てがWindowsへインストールされます。

統合開発環境CS+パッケージ
統合開発環境CS+パッケージ(一括ダウンロードの例)

関連投稿:CS+ for CCとCS+ for CA,CXの違い

既存プロジェクトを新しいCS+で開いた時のメッセージ

以下CS+ for CCの例で示しますが、CS+ for CA,CXでも同じです。

既存のプロジェクトを開く
既存のプロジェクトを開く。BB-RL78G13-64.mtpjをクリック。

CS+ for CCを起動し、既存のプロジェクトを開くでRL78/G1xテンプレートプロジェクトのCC-RLを選択すると、最初に警告メッセージが表示され、出力パネルにその内容、プロジェクト開発当時と新しいCS+での「プロジェクトの差分情報」が表示されます。

既存プロジェクトを開いた時に表示されるメッセージとその内容
既存プロジェクトを開いた時に表示されるメッセージとその内容

※“プロジェクト差分情報”は、新規CS+をインストールした時だけでなく、プロジェクト開発中にCS+更新に遭遇した際にも表示されます。

黒字の “デバイス・ファイルが更新……”は、CS+がサポートするMCUデバイスが増えたために発生します。あまり気にする必要はありません。

青字の “プロジェクト差分情報”は、新しいCS+を用いた結果、既存プロジェクトに生じた差分、影響のことです。

例えば、CS+のCC-RLコンパイラが改良・改版され、開発当時のコンパイル・オプションには無かった [間接参照を1バイト単位で行う] 選択肢が発生し、これに関しては、「いいえ」を選択したことなどが解ります。

これらの選択は、基本的に既存プロジェクトに影響が無い(少ない)方をデフォルトとしてCS+が選びます。このデフォルト選択が、CS+の後方互換を実現している鍵です。

後方互換の検証:プロジェクトビルド成功と評価ボードの動作確認

そのままビルド(B)>ビルド・プロジェクト(B)を実行すると、サブプロジェクトを含め全プロジェクトがリビルドされます。出力パネル青字は警告:Warring、赤字はエラー:Errorを示します。

全プロジェクトビルド結果
全プロジェクトビルド結果

出力パネルに赤字が出るのは問題ですが、青字内容に問題がなければ、新規CS+でもプロジェクトが正常にビルドできたことを示します。

そこで、ターゲット評価ボードへビルド出力をダウンロード、既存プロジェクト開発当時の動作確認ができ、最新CS+で後方互換が検証できました。

CS+の便利機能

ルネサスCS+には、プロジェクトと開発ツールをパックして保存する便利な機能があります。

CS+の便利機能
CS+の便利機能。プロジェクト開発時の環境を丸ごとそのまま保存できる。

この開発ツールとは、使用中の統合開発環境のことで、文字通りプロジェクトとCS+、デバイス・ファイル情報などのプロジェクト開発時の環境を丸ごとそのまま保存し、復元もできます。
但し、当然OS:Windowsまでは保存しなので、年2回の大規模OS更新やWindows 7サービス終了などには開発者自ら対応する必要があります。

後方互換とプロジェクト開発方針

IDEの後方互換は、開発者にとっては当然のことです。ただし、改良・改版された最新コンパイラ性能を、既存プロジェクトで最大限引き出しているかは疑問を持つ方もいるでしょう。個人的には、この点について以下のように考えます。

  • プロジェクト開発時、使用する統合開発環境のコンパイル・オプションは、最適化も含めてデフォルト設定で開発。
  • サイズ優先や速度優先の設定は、開発の最終段階で必要性がある時にのみ最小限設定し、その設定をソースに明記。

例えば、弊社マイコンテンプレートは、1つを除いて全て上記方針で開発しています。除いた1点とは、NXPのLPC8xxテンプレートのLPC810(ROM 4KB/RAM 1KB)の小ROMデバイスの1段最適化のみです。テンプレート(ひな形)の性質上、いろいろなプロジェクトへの適応性が高いのもこの方針の理由です。また、デフォルト設定と最小限設定なので、結果的に最新統合開発環境への後方互換も取りやすいと言えます。

経験上、コンパイル・オプションを操作して開発したトリッキーなプロジェクトは、設計段階(MCU選択やプログラム構成)の失敗だと考えています。個人的には、デフォルト設定で十分余裕(50%程度)がある設計がお勧めです。これを確かめるためにも、プロトタイプ開発は重要だというのが私の考えです。

MCU統合開発環境、後方互換のまとめ

MCU統合開発環境(IDE)とWindows環境の年間メジャー更新スケジュールは下図です(2018年7月9日投稿の再掲)。

主要開発環境の年間更新スケジュール
主要開発環境の年間更新スケジュール

プロジェクト開発中にこれら更新に遭遇することは少なくないでしょう。本稿は、ルネサスCS+を例に最新IDEの後方互換性を確認しました。EclipseベースのIDEでも同様です。まとめると、

  • IDE更新後、最初に既存プロジェクトを開く時の差分情報で、プロジェクトに生じた差分、影響を分析し、後方互換を検証
  • コンパイル・オプションはデフォルト設定が、更新された統合開発環境の後方互換を取りやすい

ことを示しました。