速報:STM32CubeIDE

STマイクロエレクトロニクス(以下STM)公式ブログで、中国で開かれたSTM32 SummitにおいてSW4STM32とTrueSTUDIO、STM32CubeMXを統合した新しい統合開発環境:STM32CubeIDEを発表しました。

STM公式ブログ:STM32CubeIDE Makes a Massive Appearance in China。STM32CubeIDEは、既にSTMサイトよりダウンロード可能です。

STM32CubeIDE(出典:STMサイト)
STM32CubeIDE(出典:STMサイト)

STM32CubeIDEの主な特徴

  • EclipseベースIDE
  • マルチOS対応(Windows、Linux、macOS)
  • SW4STM32とTrueSTUDIOプロジェクトのインポート機能

STM32CubeIDE

早速STM32CubeIDEをインストールしてみました。所感は、STMが買収したAtollic® のTrueSTUDIOというよりむしろ、SW4STM32へSTM32CubeMXをプラグインしたような画面です。

STM32CubeIDE画面
STM32CubeIDE画面。SW4STM32へSTM32CubeMXをプラグインした画面に近い。

STM32CubeIDE v1.0.0は、最新版STM32CubeMX v5.2.0とSTM32G0 FW v1.2.0/STM32F0 FW v1.10.0 /STM32F1 FW v1.7.0など開発に必要となるツールもパッケージとしてインストールできます。従来の個別インストールとツールアップデートが面倒だと感じる方には、朗報になるでしょう。

現在STM32G0x専用テンプレート開発は、SW4STM32で継続中です。しかし、販売時にはこのSW32CubeIDEでリリースする方が、SW4STM32からのマイグレーションガイドUM2579も付属済みですので良いかもしれません。

マイグレーション操作は簡単です。販売中のSTM32Fxテンプレートへもこのマイグレーションで対応できると思います。

STM32MCU開発環境の場合、IDE、STM32CubeMX、デバイス毎のFW、これら3つのバージョンがともに最新でないと、上手く動作しないことや不具合発生はありえます(例えば、STM32CubeMX v5.1.0では最新のSTM32G0 FW v1.2.0がインストールできないなど)。

STM32CubeIDEの出現で、バージョン管理が容易になれば良いと思います。以上、速報をお伝えしました。
動画がコチラで見られます。

ルネサスE1エミュレータ生産中止予告

2018年12月21日、ルネサス エレクトロニクスのツールニュース2018.12.16号で、使用部品の生産終了のため、E1エミュレータ生産中止が予告されました。来年2019年12月31日が、最終オーダー受付日です。

E1エミュレータ(出典:秋月電子通商)
E1エミュレータ(出典:秋月電子通商、12,600円で販売中)

E1代替エミュレータ

E1エミュレータの代替は、E2またはE2エミュレータLiteです。ターゲットボードとの接続は、同じく14ピンコネクタですのでそのまま使えます。
但し、R8Cは、E1を継続使用、RH850は、E2へ変える必要があります。

ルネサスMCUとエミュレータ対応表(2018年12月現在)
対象マイコン E1 E2 E2 Lite
RL78ファミリ(本ブログ掲載) 対応中 対応中 対応中
RXファミリ 対応中 対応中 対応中
R8Cファミリ 対応中 非対応 非対応
RH850ファミリ 対応中 対応中 非対応

本ブログを始めた頃のR8C開発時代、IDE Hewに使っていたE1エミュレータが、あと1年で生産中止になるとは、私も年を取ったということです。

但し、稼働中のR8Cシステムメインテナンスなどに、ソフトウェア書き換え用として14ピンコネクタ以外のUARTなどを準備していれば別ですが、E1エミュレータは必須ですので、注意してください。

また、新たにRL78開発環境の構築を考えている方は、E1エミュレータではなくE2エミュレータLite(秋月電子:7,980円)の購入をお勧めします。

ブログ閲覧トラブルのお詫び

本ブログサーバーに障害が発生したため、2018年12月12日水曜午後3時頃から12月13日木曜午前10時頃までの19時間(!)、ブログ閲覧ができませんでした。期間中に訪れていただいた方々にご迷惑をおかけしたことをお詫び申し上げます🙇。

サーバー障害は現在解消しております。経緯報告と、ソフトウェア全般のメジャー更新時の対応と心構えについて示します。

ブログのみ(!?)閲覧トラブル

閲覧トラブルはHappyTechブログのみに発生し、HappyTechサイト(=マイコンテンプレートサイト)は問題なしでした。どちらも同じレンタルサーバーを利用していますが、ブログ閲覧時にブラウザで表示されたHTTPステータスコードは500番です。

ブラウザ表示のステータスコード、いわゆるエラーコードは、300番台~500番台まであります。

  • 300番台 サイト移転、ドメイン変更通知
  • 400番台 クライアント処理失敗
  • 500番台 サーバーエラー(←今回のエラーコード)

500番台サーバーエラーは、サーバー過負荷やWordPressバグなどの原因がありえます。サーバー業者の障害報告はありませんが、私は、主因がWordPress5メジャー更新だと推測します。

WordPress5へのメジャー更新

12月7日金曜からWordPress5へのメジャー更新配布が始まりました。メジャー更新の中身は、WordPressエディタの全面変更です。活版印刷の発明者といわれるGutenbergにちなんで名付けられた新エディタは、従来版とはかなり異なります。

Johannes Gutenberg(出典:Wikipedia)
Johannes Gutenberg(出典:Wikipedia)

新エディタGutenbergは、既に投稿済みの過去の投稿編集にも影響を及ぼすため、Gutenbergエディタ機能を停止するDisable Gutenbergや、代替として従来エディタが好きなブロガーのためにClassic Editorというプラグインが準備されていました。

「メジャー更新前」にこれらプラグインをインストールしておけば、問題は殆ど無かったと思います。しかし、「更新後」のインストールでは遅すぎます。過去の投稿がGutenbergで変換され、初めてエディタの違いに気づき、慌ててリカバリーするなどした結果、サーバー過負荷に至ったのだと思います。
500番台サーバーエラーが、メジャー更新配布後ではなく、数日たった12日から長時間発生したことが根拠です。

ソフトウェアのメジャー更新時の対応と心構え

このように、「メジャー更新内容の事前調査や対応」と、何か起こるかもという「心の準備」は、バックアップをとることと同じくらい重要です。

更新後に読むことが多いリリースノートですが、せめてメジャー更新がアナウンスされた時は、「更新前」に目を通し、バックアップ以外の対応・準備が万全かを想像しましょう、これが本稿で示したい対応と心構えです。

※MCU IDEは、後方互換性を重視するソフトウェアなので、今回のWordPressエディタのような互換性にインパクトがある問題は生じにくいです。

関連投稿:MCU IDEの後方互換性検証

また、2019年4月よりWordPressの動作要件にphpバージョンが5.6以上、MySQLも5.5以上が加わります。これらより下のバージョンは、セキュリティアップデートだけが提供されます。Office 2019の動作OSが、Windows 10のみというのに似ています。

WordPress推薦phpはバージョン7ですので、2019年4月以降は最新プラグイン利用や既存プラグイン更新にトラブル発生の可能性もあります。プラグイン更新時には、注意しましょう!

httpsとhttpの話

お知らせのついでに、良くあるご質問にこの場でお答えします。

ご質問:ブログもマイコンテンプレートサイトも、httpsではありません。安全ですか?

回答:httpsの目的は2つあります。1つが、サーバーとクライアント間の通信暗号化、つまり他人が通信傍受しても内容を判らなくする仕組みです。
パスワードや個人情報などの機密データを通信する場合にはhttpsは必須です。しかし、弊社ブログもマイコンテンプレートサイトも、閲覧時これら機密データの通信は発生しません。

テンプレートご購入時の銀行振込先やメール内容は、弊社サイトに無関係なhttps対応メーラー(outlook/hotmail/gmail…,etc)で通信しますので、セキュリティは万全です。

もう1つの目的が、Google検索上位を狙うSEO対策です。
Googleは、https推薦のため、httpサイトよりもhttpsサイトを検索上位に表示するそうです。これが多くのサイトがhttps化した大きな理由です。弊社も検索上位表示を望みますが、ベンダー提供以外のマイコン関連サイトは少なく、掲載の中身、つまりコンテンツで検索上位を狙うのが弊社方針です。

また、httpsサイトのドメイン取得は、httpサイトよりもコストが掛かるのも理由です。

弊社は、メンテナンスに多少手間が掛かっても、コスト重視でレンタルサーバーを選んでいます。極稀に今回のようなトラブルも発生しますが、懲りずに引き続き弊社ブログ、マイコンテンプレートサイトを今後ともよろしくお願いいたします。

SLA (Software license Agreement)

STマイクロエレクトロニクス(以下STM)のSTM32マイコン マンスリー・アップデート2018年8月 P4のコラムに、ソースコード生成ツールSTM32CubeMXのSLA(Software license Agreement)変更が記載されています。

SLAとは

SLAは、ソフトウェア利用(または使用)許諾契約(きょだくけいやく)のことです。ウィキペディアに詳しい説明があります。

コラム記載の新しいライセンスが、SLA0048 – Rev 4 – March 2018です。この新ライセンス中にSTM32CubeMXで検索してもヒットしませんし、法律文言の英文解釈能力も持ち合わせていませんので、コラムをそのまま抜粋します。

「マイコンに書き込まれた状態であれば著作権表示などは不要だが、それ以外の状態であればソースコード、バイナリいずれも著作権表示などは必要」になりました。

STM32CubeMXでHALを使ってソースコードを生成すると、ソースコードの最上部に下記コメントや、その他の部分にも自動的にコメントが挿入されます。

STM32CubeMX生成ソースコード
STM32CubeMX生成ソースコード(STM32Fxマイコンテンプレートの例)

要するに、新SLAは、これらSTマイクロエレクトロニクス提供ツールSTM32CubeMXが自動挿入したコメントを、我々開発者は、勝手に削除してはいけない、と言っているのだと思います。

IDE付属ソースコード生成ツール

マイコンのソースコード生成ツールは、STM32CubeMX以外にも、各社のIDE(統合開発環境)に付属しており、

  • ルネサスエレクトロニクス:コード生成
  • NXPセミコンダクターズ:SDK、Processor Expert
  • サイプレス・セミコンダクター:Generate Application

などがあります(固定ページのAPI生成RADツール参照)。これらツールが自動生成するソースコードには、開発者が解りやすいように多くのコメントが付いています。

殆どのIDE付属エディタは、最上部の著作権関連コメントを畳んで表示することが可能ですし、これらコメントは、コンパイル後、つまりマイコンに書き込まれる状態では削除されますので、普段は注意を払わない開発者が殆どだと思います。

これらコメントも、STM32CubeMXと同様、各社のSLA違反になる可能性がありますので、生成ソースコードでのコメント削除はせず、オリジナル出力のまま使うことをお勧めします。

マイコンテンプレート

弊社販売中のマイコンテンプレートも、上記コード生成ツールのソースコード出力は、そのまま使っております。

マイコンテンプレートの版権は、ご購入者様個人に帰属します。但し、テンプレートそのものの転売、配布はご遠慮ください。お願いいたします。🙏

LibreOffice更新

2020年10月サポート終了のOffice 2010代替アプリケーションとして評価中のLibreOffice。このLibreOfficeは、十分に使えると結論しました。本稿は、LibreOfficeの更新を示します。

関連投稿:カテゴリー:LibreOffice参照

LibreOffice更新

LibreOfficeの更新は、MicrosoftのOfficeやWindowsの更新方法とは異なります。

2018年11月5日のLibreOfficeマイナー更新で、セキュリティ更新や不具合修正後の版数が下表です。

LibreOffice版数(2018/11/10現在)
パッケージ 想定ユーザ 2018/11/5版数
最新版(stable 技術マニア、新しいもの好き、パワーユーザ 6.1.3.2
安定版(stable ビジネス組織、法人企業、慎重なユーザ 6.0.7

最新版とは、文字通り最新機能を盛り込んだstable=安定リリース版、安定版は、機能更新を最小限にし、より安定志向のstable=安定リリース版です。どちらも64ビット版(x64)と32ビット版(x86)がありますので、合計4種類のパッケージがコチラから無償ダウンロードできます。

全てstableであり、WindowsのFast/Slowリングのように不具合を含む可能性があるリリース版ではないので安心です。

メジャー/マイナー更新

注意が必要なのは、既にLibreOfficeをインストール済みでも、ヘルプ(H)>更新のチェック(C)でチェックされるのが、メジャー更新時だけという点です。11月5日更新は、マイナー更新ですので、更新チェックしても下記のように「LibreOfficeは最新版です」と表示されるだけです。

LibreOfficeの更新のチェック(C)
メジャー更新のみ確認するLibreOfficeの更新のチェック(C)

マイナー更新を確認するには、ヘルプ(H)>LibreOfficeについて(A)で表示されるダイアログでウェブブサイト(W)をクリックし、LibreOfficeサイトでのバージョン版数の目視確認が必要です。

マイナー更新確認
マイナー更新確認にはウェブサイトで現行版とのバージョン目視確認が必要

このマイナー更新の確認→手動更新が手間と感じるか、または、OfficeやWindowsのように勝手に自動更新される方が良いと感じるかは、意見の分かれるところです。

LibreOfficeや本ブログ読者がMCU開発で使う統合開発環境(IDE)の更新方法は、更新の確認後、その更新をインストールするか否かは、ユーザ自身が決定します。一方、OfficeやWindowsの更新方法は、更新インストールが自動です。

万一、自動でインストールした更新版に不具合がある場合には、更新前の貴重な既存開発データが壊れる可能性があります。IDE更新を自動にしない理由は、この重大リスクを避けるためです。
※Windows 10 1809では、Documentsデータが壊れる不具合が発生し、更新一時停止の経緯があるのは周知の事実です。

不具合更新>セキュリティ更新>機能更新

重要度に応じた更新方法が必要です。

重要度が高いセキュリティや不具合の更新は、ユーザへの更新通知と「自動更新インストールでも良い」と思います。しかし、重要度が低い機能更新や新機能追加は、「ユーザ自身が更新可否を判断」すべきです。

重要度判定が困難な場合やユーザに依存する場合には、安全側対策としてLibreOfficeやMCU IDEのように「ユーザの主体性に任せる方が良い」と私は思います。

Office、Windows 10 1809更新

コチラの記事によると、Officeのリボンが、Windows 10 1809更新に伴って、機能は変わらずに見た目が変わったそうです。
※弊社Office 2010リボンは変化なしなので、2010以降のOfficeのことだと思います。

Officeリボン(出典:記事)
Windows 10 1809に伴って変更されたOfficeリボン(出典:記事)

見た目の変更で生産性がどれ程上がるかは不明ですが、ユーザへの告知不足では、混乱のみが生じるでしょう。OfficeやWindows 10 1809は、機能的に過飽和状態なので見た目を変えたがる傾向にあります。

例えば、1809新機能のスマホ同期は、同様の無償アプリケーションが既にあり、わざわざ新機能を使わなくても十分です。WSL(Windows Subsystem for Linux)のように機能有効/無効のスイッチがあれば、それでも良いのですが、スイッチが無い場合には、新機能追加はトラブルの原因です。

Windows 10 1809のDocumentsデータ消失の発生率は、0.01%だそうです。もし、セキュリティ更新と新機能追加を分離して配布していたら、今秋から今も続く1809トラブルは発生したのでしょうか?

技術者、開発者、研究者の更新

最後に、アップデート:更新繋がりで、興味深い記事を見つけたので紹介します。我々も、自ら更新が必要かもしれません。

STM32のStep-by-Step Guide

STマイクロエレクトロニクス(以下STM)公式ブログのカテゴリ:TutorialsからSTM32開発環境を構築する方に最適な投稿を見つけたので、紹介と気になる点を示します。

Step-by-Step Guide

STM32 step-by-step learning program
STM32 step-by-step learning program

2018年10月8日が投稿日のこの記事は、STM32の開発環境(IDE)構築から評価ボード、UART接続、IoT評価ボードとスマホ接続などを5つのStepで示しています。内容は、前後半の2つに大別できます。

前半は、Step1(45分)で開発環境を構築し、Step2(30分)でSTM32CubeMXとHAL説明、Step3(34分)で評価ボード(NUCLEO-L476RG)とUART利用のPC通信を紹介するなど、内容は、弊社昨年のブログ投稿の最新版と言えます。

後半は、Step4(60分)でIoT評価ボードDiscovery kit IoT node (B-L475E-IOT01A)(DigiKeyにて¥6,370販売中)の使い方、Step5(30分)でAndroidスマホと同評価ボードをBLEで直結し、IoTシステムを構築しています。

IoT評価ボードは、Cortex-M4(915MHzまたは868MHz)を使い、Arduinoコネクタ、モーション、ジェスチャ、環境センサなどが実装済みなので、スマホで取得センサデータを視覚化できます。さらにAWS(アマゾン ウェブ サービス)経由でも接続できるので、本格的なIoTノード開発・評価にも使えそうです。AWSとの接続方法は、コチラの動画(11分12秒)に解説されています。
※動画閲覧にはログインが必要です。

関連投稿:Amazon、IoTマイコンへFreeRTOS提供

気になる点1:TrueSTUDIO

STMは、2017年12月に統合開発環境TrueSTUDIO開発元のAtollic社を買収しました。その結果、無償IDEのラインナップは従来と同じですが、開発会社の説明が変化しました。

関連投稿:2018マイコンベンダ最新ニュースのSTM章参照

STM32ソフトウェア開発スイート(要ログイン)のページで説明します。License typeでフィルタすると、無償版IDEラインナップが表示されます。SW4STM32欄のShow more…をクリックすると下段に“This product is supplied by a third party NOT affiliated to ST”の記述があります。これが気になる点です。

IDE License type Free検索結果
IDE License type Free検索結果。SW4STM32には、”not affiliated to ST”の記述がある。

この記述は、TrueSTUDIO欄には無く、代わりにProduct Imageに“ST acquires Atollic”と記載され、STとAtollicのロゴが表示されます。つまり、STMの無償IDEは、TrueSTUDIOが標準?の感じです。

TrueSTUDIOのProduct Image
TrueSTUDIOのProduct Imageは、STとAtollicのロゴが表示

従って、新たにSTM開発環境を構築される方は、TrueSTUDIOを選ぶと良いかもしれません。これを裏付けるのが、Step1紹介のIDEがTrueSTUDIOだということです。TrueSTUDIOがSW4STM32とほぼ同様に操作できるのは、コチラの動画(9分42秒)で解ります。

弊社2017年9月発売のSTM32FxテンプレートもSW4STM32を使っていますが、これもTrueSTUDIOに変えた方が良いかもしれません。但し、TrueSTUDIOには、SW4STM32プロジェクトをそのままインポートする機能が備わっていますので、二手間のOKクリックが増えますがしのげそうです(Step4のP8、Appendix Porting an AC6 example to TrueSTUDIO参照)。

Porting SW4STM32 project to TrueSTUDIO(出典:Step4)
Porting SW4STM32 project to TrueSTUDIO(出典:Step4)。OK2回クリックでSW4STM32プロジェクトをTrueSTUDIOへインポートできる。

IDEポーティングは、MCUベンダーが、古いIDEから新しいIDEへ替える時に良く使う方法で、NXP(Kinetis Design Studio→NXP Expresso)、ルネサス(Hew→CS+)などでもおなじみです。SW4STM32→TrueSTUDIOがあるのも、STMがTrueSTUDIOを推薦しつつある証と言えるでしょう。

気になる点2:Edge MCUとNode MCU

Step-by-Step Guide資料が前後半で使用MCUと評価ボードが2つに別れたように、前半のEdge MCUと後半のNode MCUの2つの機能に分かれてIoT MCUが発展する気がします。

  • Edge MCU:低消費電力でIoTデータ取得(アナログフロントエンド)機能を備えたMCU。従来のベアメタル開発の延長・発展形。
  • Node MCU:AWSなどIoTネットワーク出入口の無線、高度なセキュリティ機能を備えたMCU(Edge MCUを包含する場合あり、例:Discovery kit IoT node)。FreeRTOSなどのOS実装は必須で、従来MCUより高機能・高性能、1GHzにせまる高速動作。

※ベアメタル開発:OSなどを使わないMCU開発

Edge MCUとNode MCUの違いは、端的に言えば、ベアメタルソフトウェア開発かRTOSソフトウェア開発かです。MCUソフトウェア開発者も、ベアメタルとRTOSの2つに分かれるかもしれない、というのが第2の気になる点です。

Edge MCUだけではIoTに接続すらできません。Node MCUがIoT接続に必須になりつつある気がします。

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では正常に動作しました。

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統合開発環境の後方互換性検証

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

ことを示しました。

組込み開発環境(IDE)更新と留意点

開発環境、特にマイコンソフトウェアの統合開発環境(IDE)は、Eclipseベースが主流です。Eclipseは、年1回6月にメジャー更新され、2018年はPhoton(光子)がリリースされました。本投稿は、開発環境の更新時期と留意点、対策などを示します。

主要開発環境の更新時期

主要開発環境の更新スケジュール
主要開発環境の更新スケジュール。Windows起動不能トラブルなどはいつでも起こりうる!。

主要開発環境の、メジャー更新時期を一覧にしました。1開発期間が3カ月~6カ月とすると、なにがしかの更新に出会うことは確実です。期間中は開発者なら、できれば環境更新などのトラブルの種を避けたいのが願いですが、現状は難しい状況です。

更新トラブルを避ける対策

これらの各種更新による色々なトラブルを避ける最も簡単な方法は、更新を一時的にせよ停止/延期することです。Windows更新を停止/延期するには、コチラに方法が示されています。

EclipseベースのIDEやルネサスCS+の場合には、更新通知があっても、開発者が許可しない限り自動的に更新しないので、Windowsに比べ安心です。但し、開発中の案件が直面しているバグや問題が、更新で解決される場合もありますので、直面問題が開発環境起因かどうかの判断が重要です。

また、Windowsは、SSD/HDDの故障などにより、いとも簡単に起動不能になります。これら更新トラブルや起動不能に対処するには、メイン開発環境とは別に、もう1つ別のバックアップ開発環境があるのが理想的です。

但し、この場合でも、メイン開発環境とバックアップ開発環境のデータ同期に注意を払わないと、折角のバックアップ環境もムダになります。

※弊社開発環境もWindows起動不能に陥り、自動修復やbootrecコマンドで「全く楽しくない修復」を試みていますが、未だ解決していません。

EclipseベースIDEの日本語化

EclipseベースIDEで日本語化を望む場合には、Pleiades(プレアデス)というプラグインが使える可能性があります。個人的には、開発時に使うコマンドやボタンはF5やF8など決まっているので、英語版でも問題は無いと思っていますが、気になる方は、バックアップ環境で試すのも一案でしょう。