LibreOffice新ツールバー追加し最新版、安定版ともに更新

2018年2月7日LibreOfficeが最新版、安定版ともに新しいツールバー:NotebookBarを導入し更新されました。
本更新は、マイナー更新に相当しますので、ウェブサイトから更新版ダウンロードとインストールが必要です。

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

関連投稿:LibreOffice更新、メジャー/マイナー更新の章参照

LibreOffice公式Twitterに、LibreOffice6.2の新機能紹介動画(4:33)があります。ツールバー以外にも改善箇所がありますので、この動画をご覧になれば更新内容が解ります。本稿はこれらのうち、新ツールバー:ノートブックバーを説明します。

新ツールバー:ノートブックバーの使い方

ノートブックバーは、従来からある標準ツールバーなどへ「追加された」ツールバーで、より柔軟で少ない面積にコマンドをカスタマイズ表示できます。リボンツールバーへ「一挙に全て変えて」ユーザを戸惑わせるMicrosoft Officeよりも良心的です😅。

そのノートブックバーは、デフォルトでは表示されません。表示(V)>ユーザーインタフェース(I)>で、タブ(D)、または、グループバーコンパクト(E)で利用可能になります。ノートブックバーは、この追加された2種類のユーザーインタフェース:UIの総称と考えれば良いでしょう。

標準ツールバーから新ツールバー:ノートブックバーの表示方法
標準ツールバーから新ツールバー:ノートブックバーの表示方法

一言でいえば、タブ(D)は、Microsoft Office 2010のUIにより近く、グループバーコンパクト(E)は、よりコンパクトかつカスタマイズできるツールバーだと思います。

新UIのタブ。Office2010のようにタブでコマンドを切替える。
新UIのタブ。Office2010のようにタブでコマンドを切替える。
新UIのグループコンパクト。コマンドをグループ分け、よりコンパクトにカスタマイズ表示できる。
新UIのグループコンパクト。コマンドをグループ分け、よりコンパクトにカスタマイズ表示できる。

また、オプション(O)の表示でUI表示のアイコンサイズも自動、小、大の選択が可能です。

UIのアイコンサイズも変更可能
UIのアイコンサイズも変更可能

標準ツールバーに戻すときは、右端のハンバーガーメニュー、または、メニュー(M)でユーザインタフェース(I)が表示されますので簡単です。

タブから標準ツールバーへ戻す方法
タブから標準ツールバーへ戻す方法

文章や資料作成時は、内容や構成に集中しています。頻繁に利用するコマンドは、数個だと思いますので、色々カスタマイズしてご自分の使いやすいUIにすれば作成効率も上がります。Officeに慣れた方でも、今回のノートブックバー追加で、よりLibreOfficeへの移行が簡単になると思います。

弊社は、LibreOffice WriterとDrawの使い方、実務で使えるテンプレートを下記関連投稿で配布中ですのでご活用ください。
関連投稿:実務LibreOffice Writerカスタマイズ
関連投稿:LibreOffice Drawの使い方とテンプレート

Office 2010代替と1809トラブル対策

今年になってExcel 2010が正常に起動しないなどトラブル続出で、RS5:1809のUpdateトラブルも含めるとMicrosoft技術力低下を疑わせる状態が続いています。最先端技術牽引企業ですのでやむを得ないことは承知しておりますが、ビジネスツールとしてはひどいレベルです。19H1:1903は、順番で言うと安定チーム(?)が開発担当してくれるかもしれませんので、改善を期待しております。

本稿で示したLibreOfficeは、Windows/Mac/Unix上で使え、新旧Office文書互換、しかも無償、更新や機能追加方法も安全志向です。2020年10月13日でサポートが終了するOffice 2010、その他Office2019/2016/2013代替、Windowsトラブル対策としてもLibreOffice導入を検討されてはいかがでしょう?



Arduinoコネクタを持つMCU評価ボードが多い理由

ArduinoコネクタコンパチブルMCU評価ボード例
ArduinoコネクタコンパチブルMCU評価ボード例

本稿は、Arduinoコネクタを持つMCU評価ボードが多い理由を、少し丁寧に説明します。上図は、Arduinoコネクタレベルでコンパチブル(=置換え可能)なSTマイクロエレクトロニクス、サイプレス・セミコンダクター、NXPセミコンダクターズ各社のMCU評価ボードを示しています。

Arduinoコネクタ

イタリア発で「オープンソースハードウェア概念」の発端となったArduino(アルデュイーノ、もしくはアルドゥイーノ)。その制御系とArduinoシールドと呼ばれる被制御系ボード間の物理インタフェースがArduinoコネクタ(右下)です。
I2C(SCL/SDA)/ADEF(アナログ基準電位)/DIGITAL(PWM兼用)/ IOREF(IO基準電位)/RESET/POWER/ANALOG INのピン配置が決まっています。

Arduinoコネクタのおかげで、制御系とシールドに分離して開発でき、それぞれをArduinoコネクタで接続すれば、Arduinoボードシステムが完成します。

Wikipediaによると、2013年には制御系とシールド、公式非公式合わせて140万台ものArduinoボードが販売されていて、安価にプロトタイプシステム構築が可能となっています。

Arduinoコネクタを持つMCU評価ボードが多い理由その1:市販安価シールド資産が使える

既にこれだけの数のシールドが販売中ですので、MCU開発にそのまま流用や小変更で使えるシールドもあります。

Arduinoコネクタを持つMCU評価ボードが多い理由その1が、この既製品で安価なシールド資産が使えるからです。使用部品選定やアートワークパターンなども十分に練られた既製品が入手できるのです。しかもこれらは殆どの場合、オープンソースハードウェアなので詳細が開示済みです。

シールドは縦方向に段重ね(スタッカブル)できますので、複数段を重ね機能増加も可能です。

ハードウエア基板を0から動作するレベルにまでもっていくのは、時間もコストも掛かります。市販シールドを利用したプロトタイプ開発が可能なことが、MCU評価ボードにArduinoコネクタを持つ理由です。

Arduinoコネクタを持つMCU評価ボードが多い理由その2:MCU性能評価に使える

シールドを使ってハードウエアが用意されれば、後はソフトウェアです。

図のようにシールドは、複数ベンダーのMCU評価ボードに使えますし、同一ベンダー内の異なるMCUの性能評価にも使えます。

例えば、最も重要な処理に必要なシールドと、その制御ソフトウェアのみをプロトタイプ開発し、MCU性能が重要処理に十分か否かの評価を行います。この評価結果で、コストパフォーマンスに優れたMCU選択が可能となります。

場合によっては、ピンコンパチブル性を利用して他ベンダーのMCU選択も可能です。Cortex-M系MCUはどれも似通ってはいますが、例えば、サイプレスのPSoCシリーズはアナログブロントエンド機能内蔵など、各ベンダーでそれぞれ特徴があります。これらMCU特徴を活かした開発で競合他社との差別化もできます。

MCU評価ボードプロトタイプ開発スピードを上げるマイコンテンプレート

その1もその2もポイントは、プロトタイプ開発のスピードです。効率的に、しかも精度良くプロトタイプ構築し評価するには、MCU製品で使用頻度が高いLCD出力やアナログポテンショメータ入力、LED出力などの単機能シールドを複数使うよりも、これら機能実装済みの汎用Baseboardを使う方が、より低コストにプロトタイプハードウエアの構築ができます。

関連投稿:CY8CKIT-042とCY8CKIT-042-BLEへの機能追加、サンプルソフトが直に試せるマイコン開発環境の章

弊社マイコンテンプレートは、Baseboard動作に必要なソフトウェアをBaseboardテンプレートで提供済みです。開発要件に必要なシールドを見つけ、シールド単体でMCU性能評価を行い、さらにBaseboard実装機能を付加すれば、MCU製品完成形により近いプロトタイプシステムでの評価も可能です。

MCUプロトタイプ開発をスピードアップさせるマイコンテンプレート
MCUプロトタイプ開発をスピードアップさせるマイコンテンプレート

マイコンテンプレートは、MCU評価ボードプロトタイプ開発の「速さ」をより早めます。

MCU評価ボード、IDE、開発ツール、ベンダーが変わってもテンプレート本体は不変

テンプレート本体、具体的にはアプリケーションのLauncher機能は、MCU評価ボード、IDE、コード生成ツールなどの開発ツール、ベンダー各社には依存しません。つまり、単純なC言語でできています。

従いまして、開発ツールやIDEが時代により変化・更新しても、テンプレート本体は変わりません。ご購入頂いた弊社マイコンテンプレートの付属説明資料は、発売当時の環境をベースに解説しております。しかし、最新版のIDEやコード生成ツールに更新されても、このテンプレート本体は不変ですので、安心してお使いください。

まとめ

Arduinoコネクタを持つMCU評価ボードが多い理由は、市販安価シールド資産を活用し、MCU性能評価へも活用すれば、MCUプロトタイプ開発が効率的かつ容易になるからです。プロトタイプ開発スピードをさらに上げるためマイコンテンプレートが役立つことも示しました。

マイコンは種類が多く、どのベンダーの何を使って開発すれば良いかというご質問を時々頂きます。お好きなベンダーのArduinoコネクタを持つMCU評価ボードを使ってプロトタイプ開発することをお勧めしています。制御系ベンダー差は、Arduinoコネクタで消えます。先ずは着手、あえて言えば被制御系の開発着手が先決です。

MCUパラメタ設定を改善したSTM32CubeMX version 5

2018年12月STマイクロエレクトロニクス(以下STM)のMCUコード生成ツール:STM32CubeMXがversion 5にメジャー更新しました。本稿は、このSTM32CubeMX version 5について主に旧version 4をご利用中の方を対象に説明します。初めてSTM32CubeMXを利用される方は、インストール方法などは旧version 4で示したコチラの関連投稿と同じですのでご覧ください。

STM32CubeMX version 5への更新方法

STM32CubeMXは、スタンドアロンアプリケーションとして動作させる場合と、Eclipse IDEのプラグインとして動作させる場合があります。更新が簡単なのは、先に説明するスタンドアロン版です。Eclipse IDEは、SW4STM32を例にプラグイン更新方法を示します。

スタンドアロン版STM32CubeMXの更新方法

デフォルト設定を変えてなければ、STM32CubeMX起動時に自動的に更新を検出しInstall Nowクリックで最新版がダウンロードされます。ダウンロード後、一旦STM32CubeMXを終了し、再起動でversion 5への更新が始まります。

STM32CubeMX version 5への更新(スタンドアロン版)
STM32CubeMX version 5への更新(スタンドアロン版)

スタンドアロンの場合は、更新開始時Access Errorが表示されることもあります。この時は、「管理者として実行」で更新プロセスが始まり、STM32CubeMX version 5の初期画面になります。

STM32CubeMX version 5初期画面
STM32CubeMX version 5初期画面

Eclipse IDE(SW4STM32)プラグイン版STM32CubeMXの更新方法

Eclipse IDEのプラグインでSTM32CubeMX機能を追加した場合は、旧プラグインを削除した後にversion 5プラグインをインストールします。SW4STM32のプラグイン削除は、Help>About EclipseからInstallation Detailsボタンをクリックし、Installed Softwareタブから旧STM32CubeMXを選択、Uninstallまたは、Updateクリックで行います。

旧版STM32CubeMXプラグイン削除
旧版STM32CubeMXプラグイン削除

Uninstallの方が確実です。削除後、新しいSTM32CubeMX version 5プラグインを再インストールすれば、スタンドアロンと同じ初期画面が示されます。SW4STM32のUpdate checkでは、STM32CubeMXの更新を検出できませんので、手動でプラグイン削除、更新された新プラグインのインストールが必要です。

STM32CubeMX version 5改善点

version 5のユーザマニュアルUM1718 Rev 27から、以下の点がversion 4から改善されました。
関連投稿:MCU更新情報取得方法と差分検出ツール、の “2PDF資料を比較するDiffPDF” の章参照

・MCUパラメタ設定にマルチパネルGUI採用(UM1718、5章)
・CMSIS-Packサポート(UM1718、7章)
・X-Cube-BLE1ソフトウェアパック(UM1718、14章)
・ST-TouchGFX追加(UM1718、17章)

一言で言うと、5章:カラフルになったパラメタ設定、7章:CMSIS-Pack追加が可能、14章と17章:2チュートリアル追加です。CMSIS-Packとチュートリアルは、必要に応じて理解すれば良いでしょう。

そこで、基本操作の5章STM32CubeMX version 5のパラメタ設定を、弊社STM32F0シンプルテンプレートで用いたSTM32CubeMX version 4プロジェクトファイルを使って説明します。
※STM32F0シンプルテンプレート(¥1,000販売中)をご購入頂いてない方のために、上記プロジェクトファイルのみをコチラから無料でダウンロードできます(zipファイルですので解凍してご利用ください)。

マルチパネルGUIによるMCUパラメタ設定改善の実例

Open Existing Projectsで上記STM32F0シンプルテンプレートプロジェクトファイル:F0SimpleTemplate.iocを選択すると、旧versionで作成されていること、FWも更新されていて、最新環境へ更新(Migrate)するか、FWはそのままSTM32CubeMXのみ更新(Continue)かの選択肢が表示されます。
※MigrateとContinueの差は後述します。

旧版プロジェクトファイルを開いた時のメッセージ
旧版プロジェクトファイルを開いた時のメッセージ

今回は、Migrateを選択すると、見慣れたPinout & Configuration画面が現れます。

STM32F0シンプルテンプレートのプロジェクトを開いた画面
STM32F0シンプルテンプレートのプロジェクトをversion 5で開いた画面

Connectivity >を開くと、STM32F0シンプルテンプレートで使用中USART2の各種パラメタ設定値がマルチパネルで表示されます。

STM32F0シンプルテンプレートプロジェクトのUSART2マルチパネル画面
STM32F0シンプルテンプレートプロジェクトのUSART2マルチパネル画面

このマルチパネル表示がversion 5で最も改善された機能です。従来版では、複数タブで分離表示されていた設定が、1画面のユーザインタフェース:UIに集約されました。より解りやすく、より簡単にMCUパラメタ設定ができます。

その他の機能は、カラフルな見た目になってはいますが、旧versionと殆ど同じと考えて良いと思います(開発元には失礼ですが…😅)。不明な点は、HelpでUM1718が直に表示されるので調べられます。

また、販売中の弊社STM32Fxテンプレート付属説明資料のSTM32CubeMXは、version 4で説明しておりますが、この程度の改版ならば、説明資料をversion 5用に作り直さなくても、ご購入者様に内容をご理解頂けると思います。

旧版プロジェクトファイルを開いた時のMigrateとContinueの差

STM32CubeMXは、UIをつかさどる共通部分と、STM32MCUファミリ毎の個別ファームウエア:FW部分の2つから構成されています。本稿は、UI共通部分の更新を説明しました。FWもバグとりや、ファミリへの新MCU追加などで更新されます。周辺回路の初期化CコードやHAL:Hardware Abstraction Layer library 、LL: Low-Layer library利用のAPI生成は、FW部分が担います。

Migrateは、このUIとFWを同時に最新版へ更新します。一方、Continueは、UI部分のみ更新しFWは既存のままです(安全側更新とも言えます)。FW更新で既製ソフトウェアへ悪影響がでる場合には、Continueを選択することもあるでしょう。しかし、基本的にはUI、FWともに最新版へ更新するMigrateが本来の更新方法です。

万一FW更新でトラブルが発生した時は、デフォルトでSTM32Cube>Repositoryフォルダに新旧FWがzipファイルで保存されていますので、FWのみ元に戻すことも容易です。

*  *  *

Postscript:24日午前3時~午前4時5分に実施されたSTM32G0 and STM32CubeMX 5.0ウェブナーどうでしたか? 解りやすいスライドが豊富で、STM32G0の良さがより理解できました。全機能無償のKeil uVision5対象デバイスにSTM32L0、STM32F0とSTM32G0も加わりました。STM32CubeMX 5.0と評価ボードNUCLEO-G071RBを使ったLチカコード生成も解りやすかったですね😃。
※タイムリーなことに、1月25日STM公式ブログ上で上記一連の処理がYouTubeに投稿されました。

さて、ウェブナー参加で目から鱗が落ちたのは、STM32G0の広い応用範囲と低電力動作を活かすには、デバイス間移植に優れるHAL APIよりも、デバイス最適化のLL API利用が適してかもしれない点です。
HAL利用のSTM32Fxテンプレートとは異なるアプローチ、例えば、STM32Gxテンプレートの新開発が必要になりそうです👍。

関連投稿:HALとLLの違いは、STM32CubeMXの使い方、“STM32CubeMXの2種ドライバライブラリ”の章参照
関連投稿:STM32Fxテンプレートのアプローチは、STM32評価ボードNUCLEO-F072RB選定理由参照

2018 IoT MCUを振り返る

今年も多くの方々に本HappyTechブログをご覧いただき、また、多くの方々にマイコンテンプレートをご購入いただいたことに心より感謝いたします。ありがとうございました。

2018年の弊社ブログ投稿を振り返って、IoT MCUの2018動向を総括します。

ノードとエッジに2層化するIoT MCU

IoT時代には、数十億個以上もの膨大な数が必要と言われるIoTエッジMCU、これが本ブログ対象マイコンです。低コスト、低消費電力、効率的ハードウェア/ソフトウェア生産性が求められます。

これらIoTエッジMCUを束ね、クラウドと無線通信するのがIoTノードMCU。IoT MCUは、ノードとエッジの2層化傾向があります。

IoT MCU日本ベンダー動向

ルネサス エレクトロニクス:アナログフロントエンド強化の買収継続
NXPセミコンダクターズ:クアルコム買収断念で独自性維持
サイプレス・セミコンダクター:超低電力Cortex-M0+製品強化
STマイクロエレクトロニクス:日本語資料強化

自動車と産業、セキュリティがIoT MCUを牽引

超高性能、セキュリティ、CAN FD、低電力が自動車向け要求、同じくセキュリティ重視だが、コストパフォーマンスも重視、低電力が産業向け要求、両要求ベクトルがIoT MCUベンダー開発を牽引中。

MCUコアのこだわり不要

要求を満たすには広いMCUカバー能力と低電力動作が必要で、Cortex-M0+とCortex-M4のマルチコアや、シングルコア動作周波数の引上げが見られます。製造プロセス微細化も進むでしょう。

エンドユーザ(顧客)は、いわゆるソリューション(解)を求めていて、要求を満たせばMCUコアが何でも構わないので、開発者は、手段であるMCUコアにこだわる必要性を少なくすることが求められます。

つまり、最適ソリューションのハードウェア/ソフトウェアを、様々なベンダー、MCUから自ら選択し、効率的に解を提供できるIoT MCU開発者がプロフェッショナルです。

そこで、ソリューション提供・提案をする開発者個人向けツールとして、弊社マイコンテンプレートを発展させる予定です。ブログ対象IoT MCUも、この基準にフォーカスし情報提供します。

以上簡単ですが2018年のIoT MCUを総括しました。2019年も引き続きよろしくお願いいたします。

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違反になる可能性がありますので、生成ソースコードでのコメント削除はせず、オリジナル出力のまま使うことをお勧めします。

マイコンテンプレート

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

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

Cortex-M0/M0+/M3比較とコア選択

デバイスが多く選択に迷う方も多いマイコン:MCU。周辺ハードウェアも異なるので、最初のMCUコア選択を誤ると、最悪の場合、開発のし直しなどに繋がることもあります。

本稿は、STマイクロエレクトロニクスのSTM32マイコンマンスリー・アップデート10月号P8のトレーニング資料、STM32L0(Cortex-M0+)掲載のARM Cortex-M0/M0+/M3の比較資料を使ってMCUコア選択方法についての私案を示します。

STM32L0(Cortex-M0+)トレーニング資料

各種STM32MCU(Cortex-Mx)毎の非常に良くできた日本語のテクニカルスライド資料が入手できます。例えばSTM32L0(Cortex-M0+)は194ページあり、1ページ3分で説明したとしても、約10時間かかる量です。他のMCU(Cortex-Mx)資料も同様です。

開発に使うMCUが決まっている場合には、当該資料に目を通しておくと、データシート読むよりも解りやすいと思います。しかし、Cortex-Mxコア差を理解していない場合や、開発機器の将来的な機能拡張や横展開等を考慮すると、どのMCU(Cortex-Mx)を現状開発に使うかは重要検討項目です。

ここで紹介するSTM32L0(Cortex-M0+)トレーニング資料には、Cortex-M0+特徴説明のため、通常データシートには記載が無いCortex-M0やCortex-M3との違いも記載されています。

そこで、STMマイコンのみでなく一般的なARMコアのMCU選択に重要な情報としても使えるこの重要情報ページを資料から抜き出しました。

Cortex-M0/M0+/M3比較

バイナリ上位互換性

Cortex-Mxのバイナリ互換性(出典:STM32L0(Cortex-M0+)トレーニング資料)
Cortex-Mxのバイナリ互換性(出典:STM32L0(Cortex-M0+)トレーニング資料)

先ず、P22のCortex-Mプロセッサのバイナリ互換性です。この図は、Cortex-Mxコアの命令セットが、xが大きくなる方向には、上位互換であることを示しています(ただし再コンパイル推薦)。逆に、xが小さくなる方向は、再コーディングが必要です。

つまり、Cortex-M0ソースコードは、M0+/M3/M4へも使えるのです。Cortex-Mxで拡張された命令セットの特徴を一言で示したのが、四角で囲まれた文章です(Cortex-M3なら、“高度なデータ処理、ビットフィールドマニピュレーション”)。
さらに、STM32MCU内臓周辺ハードウェアは、各シリーズで完全互換なので、同じ周辺ハードウェア制御ソースコードはそのまま使えます。

もちろんxが大きくなるにつれコア性能も向上します。しかし、よりCortex-Mx(x=+/3/4)らしい性能を引き出するなら、この四角文章のコーディングに力点を置けば、それに即した命令が用意されているので筋が良い性能向上が期待できる訳です。

超低電力動作Cortex-M0+、39%高性能Cortex-M3

P22ではCortex-M0とM0+の違いが解りません。そこで、P19のCortex-M0/0+/3機能セット比較を見るとCortex-M0+が、Cortex-M0とCortex-M3の良いとこ取り、中間的なことが解ります。また、Cortex-M3が、M0比39%高性能だということも解ります。

Cortex-M0_M0+_M3セット比較(出典:STM32L0(Cortex-M0+)トレーニング資料)
Cortex-M0_M0+_M3セット比較(出典:STM32L0(Cortex-M0+)トレーニング資料)

具体的なCortex-M0+とCortex-M0との差は、P20が解りやすいです。Cortex-M0+は、性能向上より30%もの低消費動作を重視しています。また、1サイクルの高速GPIOも特徴です。Cortex-M0+は、M0の性能を活かしつつより既存8/16ビットMCU市場の置換えにチューニングしたからです。

Cortex-M0とCortex-M0+の比較(出典:STM32L0(Cortex-M0+)トレーニング資料)
Cortex-M0とCortex-M0+の比較(出典:STM32L0(Cortex-M0+)トレーニング資料)

さらにP21には、低電力化に寄与した2段になったパイプラインも示されています。Cortex-M0/M0+は、今年初めから話題になっている投機的実行機能の脆弱性もありません。

Cortex-M0とCortex-M0+のブランチ動作(出典:STM32L0(Cortex-M0+)トレーニング資料)
Cortex-M0とCortex-M0+のブランチ動作(出典:STM32L0(Cortex-M0+)トレーニング資料)

関連投稿:Cortex-Mシリーズは、投機的実行機能の脆弱性はセーフ

共通動作モード:Sleep

Cortex-M0とCortex-M0+の低消費電力モード(出典:STM32L0(Cortex-M0+)トレーニング資料)
Cortex-M0とCortex-M0+の低消費電力モード(出典:STM32L0(Cortex-M0+)トレーニング資料)

低電力化は、Cortex-M0+で追加された様々な動作モードで実現します。この一覧がP70です。つまり、Cortex-M0+らしさは、M0にない動作モード、LP RUNやLP sleep (Regulator in LP mode)で実現できるのです。

逆に、SleepやSTANBYの動作モードは、Cortex-M0/M0+で共通です。さらに、Cortex-M3でも、アーキテクチャが異なるので数値は異なりますが、SleepとSTANBY動作モードはM0/M0+と共通です。

ここまでのまとめ:Cortex-M0/M0+/M3の特徴

Cortex-M0/M0+/M3の特徴・違いを一言で示したのが、下表です(関連投稿より抜粋)。

各コアの特徴は、MCUアーキテクチャや命令セットから生じます。但し、M0/M0+/M3でバイナリ上位互換性があるので、全コアで共通の動作モードがあることも理解できたと思います。

ARM Cortex-Mx機種 一言で表すと…
Cortex-M0+

超低消費電力ハイパフォーマンスマイコン

Cortex-M0

低消費電力マイコン

Cortex-M3

汎用マイコン

Cortex-M4

デジタル信号制御アプリケーション用マイコン

関連投稿:ARMコア利用メリットの評価

MCUコア選択方法

  1. Cortex-M0またはCortex-M0+コアでプロトタイプ開発を行い、性能不足が懸念されるならCortex-M3コア、さらなる消費電力低下を狙うならCortex-M0+コアを実開発で選択。
    プロトタイプ開発に用いるソースコードは、そのまま実開発にも使えるように、全コアで共通の動作モードで開発。
  2. 早期にプロトタイプ開発を実開発に近い形で作成するために、弊社マイコンテンプレートを利用。

1.は、本稿で示した内容を基に示したMCUコア選択指針です。低消費電力がトレンドですので、プロトタイプ開発の段階から超低消費電力のCortex-M0+を使うのも良いと思います。しかし、初めから超低消費動作モードを使うのでなく、全コアで共通動作モードでの開発をお勧めします。

理由は、万一Cortex-M0+で性能不足が懸念される時にCortex-M3へも使えるソースコードにするためです。プロトタイプ開発の段階では、ソースコードの実開発流用性と実開発の評価を目的にすべきです。チューニングは、実開発段階で行えばリクスも少なくなるでしょう。

2.は、プロトタイプ開発実現手段の提案です。マイコンテンプレートは、複数のサンプルソフトを結合して1つにできます。実開発に使える(近い)サンプルソフトさえ見つけられれば、それらをバラック的にまとめて動作確認できるのです。これにより、当該コアのプロトタイプ評価が早期にできます。

また、マイコンテンプレートで使用したSTM32評価ボードは、ボードレベルでピンコンパチなのでCortex-M0/M0+/M3への変更も簡単です。

関連投稿:マイコンテンプレートを使ったアプリケーション開発手順

MCUコア選択の注意事項:重要度評価

ARMコア向けの弊社マイコンテンプレートは、全てCortex-M0/M0+/M3共通の動作モードで開発しています。
その理由は、テンプレートという性質・性格もありますが、本稿で示した他のARMコアへのソースコード流用性が高いからです。試しに開発したソースコードであっても、無駄にはならないのです。

最後に、P184、P185に示されたCortex-M0(STM32F0)とCortex-M3(STM32L1)、Cortex-M0+(STM32L0)のADCの差分を示します。

Cortex-M0/M0+/M3のADC比較1(出典:STM32L0(Cortex-M0+)トレーニング資料)
Cortex-M0/M0+/M3のADC比較1(出典:STM32L0(Cortex-M0+)トレーニング資料)
Cortex-M0/M0+/M3のADC比較2(出典:STM32L0(Cortex-M0+)トレーニング資料)
Cortex-M0/M0+/M3のADC比較2(出典:STM32L0(Cortex-M0+)トレーニング資料)

STM32MCU内臓周辺ハードウェアは、各シリーズで完全互換と先に言いましたが、スペックを細かく見るとこのように異なります。

このハードウェア差を吸収するのが、STM32CubeMXで提供されるHAL(Hardware Abstraction Layer)です。つまり、STMマイコンを使うには、コア選択も重要ですが、STM32CubeMX活用も同じように重要だということです。もちろん、STM32FxマイコンテンプレートもSTM32CubeMXを使っています。

ARMコアは、バイナリ上位互換ができる優れたMCUコアです。MCUベンダーは、同じARMコアを採用していますが、自社のMCU周辺ハードウェアレベルにまで上位互換やその高性能を発揮できるような様々な工夫・ツールを提供しています。

開発MCUを選択する時には、コア選択以外にも多くの選択肢があり迷うこともあるでしょう。多くの場合、Core-M0/M0+/M3などの汎用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更新後、最初に既存プロジェクトを開く時の差分情報で、プロジェクトに生じた差分、影響を分析し、後方互換を検証
  • コンパイル・オプションはデフォルト設定が、更新された統合開発環境の後方互換を取りやすい

ことを示しました。

LibreOffice Drawの使い方とテンプレート

LibreOfficeが無償提供するのは前回の文書作成ツールWriter(≒Microsoft Office Word)だけではありません。スクリーンショットから解るようにCalc(≒Excel)、Impress(≒PowerPoint)、Draw(≒Visio)、Base(≒Access)、Mathの6種類のOffice互換ツールを無償で提供中です。

LibreOfficeの無償6種ツール
LibreOfficeの無償6種ツール。Writerは前稿参照、今回はDraw。

今回は、図形描画やDTP(Desktop publishing)向きLibreOffice Drawの使い方とDrawテンプレートを開発しました。

最後に2回に渡ってWriterとDrawを使ったLibreOfficeの対Office評価結果、感想を示します。

LibreOffice DrawとMicrosoft Office Visio

LibreOffice Drawは、Microsoft Office Visio相当のツールです。Visioはユーザがあまり多くないと思いますので簡単に説明します。プレゼン資料作成ツールPowerPointの作図機能をより強化し、DTPやCADにも使えるレベルの図形描画ツールがVisioです。

元々Visioは、他社開発ソフトをMicrosoftが買収し、Officeに加えた経緯があるので、UIや使い方がプロパー(純正)製品のWord/Excel/PowerPointとは少し異なります。また、有償配布されるOfficeパッケージに含まれることも少なく、単体では数万円もするためユーザが少ないのですが、私の使用頻度はWordに次ぐツールです。

つまり、Visioは気に入っているツールです。理由は、高度な描画機能とテキスト配置自由度の高さです。アイデアをまとめる時には、PowerPointよりも簡単・自由で役立つので、価格を無視できればお勧めです。

このVisio相当のLibreOffice Drawは、その名(Draw)の通り図形描画に特化したツールでUIや使い方もVisioに近いものです。VisioでできることはDrawでもできるハズです。

LibreOffice Drawスクリーンショット(出典:libreoffice.org)
LibreOffice Drawスクリーンショット(出典:libreoffice.org)

Drawのスクリーンショットが上図です。Galleryから使えそうなステンシル(基になる図)を選び、図面の任意位置に配置、テキストなども加えると簡単に説明に適した資料が出来上がります。もちろん、配置したステンシルの編集もかなり自由に行えます。

※LibreOfficeは、Mac、Windows、Linux のマルチプラットフォーム対応です。 さらにUSBメモリで使えるPotable版や、AndroidとiOSにはビューアが用意されています。

LibreOffice Draw既定のフォント設定

Writerと同様、LibreOffice Drawも日本語と英語混在の図形描画になるので、既定のフォント設定を初めに行います。

Drawの既定フォントは、全てスタイルで設定します。 表示(V)>スタイル(E)またはF11で使用中のスタイルを表示します。”すべてのスタイル”の数が、文書作成ツールのWriterと比べ少ないことが解ります。図形描画がメインなので、これは当然です。

LibreOffice Draw既定のフォント設定
LibreOffice Draw既定のフォント設定。すべてのスタイル数がWriterに比べ少ない。

親となるスタイルは、⊞Filled、⊞Outlined、⊞標準の3種類です。この⊞標準の子スタイルとして、図面に使うタイトルやテキストのスタイルがあります。そこで、⊞標準スタイル上で右クリックし編集(B)を選びクリックします。

標準スタイルの編集ダイアログが現れますので、フォントタブを選び、西洋諸言語用フォント、アジア諸言語用フォントともにお好きなフォント(例:メイリオ)、スタイル、サイズを設定してください。

標準スタイルの設定
標準スタイルの設定。西洋アジア諸言語ともに同じフォント、スタイル、サイズを使うことがポイント。

この標準スタイルの設定が、タイトルやテキストに継承、波及するのはWriterと同じです(スタイルや継承の詳細は前稿参照)。

図形描画ツールDrawでは、この設定を⊞Filledや⊞Outlinedにも適用しておけば十分です。なぜなら、タイトルやテキストを実際に図面へ記載した時に、その文字サイズやボールド、イタリックなどの修飾を説明する図形に合わせて決める方が実用的だからです。従って、必要最低限のフォント設定で十分です。

マスターと標準

LibreOffice Draw独特の表示に、マスターと標準(←スタイルのことではないので注意!)があります。

マスターとは、全ての図面の背景のことです。例えば、会社ロゴや日付フィールドなどを記載します。一方、標準とは、マスター背景の上の透明図面のことです。つまり、マスター背景と透明図面は、レイヤ構造になっています。

通常は、この標準上で図形やタイトル、テキストを記載し、マスターは変更できない構成になっています。この編集対象を切替えるのが、表示(V)>標準(N)とマスター(M)です。

LibreOfice Drawのマスターと標準
LibreOfice Drawの表示(V)。標準(N)かマスター(M)を選ぶ。

標準図面上に書かれた内容は、もちろん重要ですが、全図面のフォーマットとも言える背景もまた重要です。

本稿で無償配布するDrawテンプレートのマスターは、シンプルな枠組み、図面説明、タイトル、改定、ページ、会社名欄のみを追加しています。必要に応じてご自由に変更してください。

LibreOffice Drawテンプレート作成

標準図面上に何も記載していない図面で、ODF図形描画テンプレート(拡張子.otg)として名前を付けて保存すれば、これが作成したDrawテンプレートになります。本稿では、横A3サイズのDrawテンプレートを開発しました。

紹介したDrawテンプレートは、コチラからダウンロードができます(サポートなしです、念のため)。ご自由にご活用ください。

※ダウンロード時エラーメッセージが表示されることがあります(前稿Writerのダウンロードも同様で原因不明)。ダウンロードはできますので、エラーメッセージは無視してください。

LibreOffice感想:Microsoft Office代替ソフトウェアとして十分使える!

2回に渡りLibreOffice WriterとDrawの使い方、通常の仕事利用でも十分と思う文書作成Writerテンプレート、描画作成Drawテンプレートを示しました。
※最新版Writer機能をフル活用した公式英文ガイドは、コチラからダウンロードできます。フル活用するとこのような綺麗で読みやすい文書作成が可能です。

LibreOfficeは、無償オープンソースソフトウェアです。現在使用中のMicrosoft Office 2010延長サポートが2020年10月13日に終了するので、代替としてOffice互換性もあるLibreOfficeの魅力をまとめます。

長年使い慣れたMicrosoft Officeと比較するとUIのチョットした違いなどはやむを得ないと思います。しかし、これは慣れの問題でもあります。

何より無償でもWord/Excel/PowerPoint互換ツールのみならず、Visio相当のDrawやAccess相当のBaseもあるのは特筆すべきです。OfficeパッケージでこれらVisio/Accessを揃えると、Office Professional Pulsパッケージ以上の購入が必要だったと記憶しています。1ライセンス当たり10万円以上の初期投資が必要です。

既にMicrosoft Officeの各ツールは、機能的には過飽和状態だと思います。これが私がOffice 2010からOffice 2013/2016/365へ更新しなかった理由です。また日本独自のOfficeライセンスもマイナス要因です。

※家庭向けOffice 365は、今年の10月2日から無制限インストール、同時5サインイン可能へ変更になります。但し、Visio Pro for Office 365の対応は不明です。

最新版LibreOfficeの基本機能は、本稿で示した通常の仕事で使う範囲内では、文書作成、描画作成にMicrosoft Office 2010代替ソフトウェアとして、十分に間に合い使えるというのが私の感想です。皆さんもお試しになってはいかがでしょう。

LibreOffice Writerの使い方とテンプレート

今回はMCUの話題から離れ、LibreOffice Writerの文書テンプレート無償配布の話をします。

202010月でサポートが終了するMicrosoft Office 2010の代替として、無償LibreOfficeを評価中であることはMCU開発環境トラブル顛末記に示しました。最新版LibreOffice 6.1がリリースされ、益々使いやすく、また既存OfficeユーザでもUIに違和感が少なくなりました。

このLibreOffice Writerの簡単な使い方と、文書作成に必要十分なテンプレートを作成しました。

LibreOfficeセキュリティ対策

LibreOfficeの脆弱性情報があります。以下の設定をしておけば防止できます。

LibreOfficeセキュリティ対策
ツール(T)>オプション(O)>セキュリティで信頼された場所ではないドキュメントからのリンクをブロックにチェックを入れる

既定のフォント設定

WriterWordなどの日本語文書作成ツールで面倒なのが、日本語と英語混在文書でどのフォントを使うかです。日英別々の設定がツール上は可能ですが、文字サイズ差異、等幅、豆腐問題が発生します。好みの問題を別にすれば、1フォントで全言語に使えると便利です。

豆腐問題:本来フォントが表示されるべき部分に□□□(←これを豆腐と言う)などの”空白の四角”が表示されること。

私は、Windows 7Word時代からメイリオを日英言語に使っています。日本語フォントを使っても英語スペルチェックは問題なく行われます。Writer既定フォントの設定は、ツール(T)>オプション(O)LibreOffice Writerを選択し、お好みのフォント(例:メイリオ)を選びサイズも日本語(アジア諸言語)と同じにしておきます。

LibreOffice Writer既定のフォント設定
西欧、アジア諸言語ともに同じフォントとサイズを設定

西欧とアジア諸言語に同じフォントとサイズを設定することがポイントです。これでLibreOffice Writerを使って日英混在の文章が違和感なく作成できます。

Writer文書作成手順とスタイル編集

一般的に第三者に見せる報告書や説明文の作成時は、文章作成→体裁追加という順番で文書を作ります。ここでは、文章は既に出来ているとして話を進めます。

※便宜上、シンプルテキスト=文章、文章の体裁を整えた第三者に見せるドキュメント=文書と呼びます。

文章ができた次の段階が体裁追加です。限られた時間で読者に効果的に内容を伝えるには、この体裁は重要です。タイトル、見出し(大中小)、ヘッダーやフッターなどがこの体裁です。

Writerは、体裁のことをスタイルと呼び、表示(V)>スタイル(J)またはF11で設定済みのスタイルを表示します。既に色々なスタイルが設定されており、文章にこれらスタイルを適用することで見栄えのする報告書などの文書が出来上がります。

階層のスタイル表示
階層のスタイル表示

スタイルの表示に階層を選ぶと、標準スタイルを左端先頭にして、⊞フッターや⊞ヘッダーなどが現れます。これは、標準スタイルを基(親)に、各(子)スタイルが継承されることを示しています。つまり、親の標準スタイルを変えると、その変更が、子のスタイルに継承、波及するのです。そこで、最初に標準スタイルを編集します。

標準スタイル上で右クリックし編集(B)を選びます。特に変更が無ければ、そのままキャンセルします。

⊞本文のスタイルを編集する時も、同様に⊞本文上で右クリックし編集(B)を選ぶと下図になります。

本文スタイルのインデントと間隔の編集
本文スタイルのインデントと間隔の編集。間隔を段落上部下部を広くし視覚的に塊化する

管理タブで継承元、つまり親が標準スタイルになっていることが解ります。インデントと間隔タブを選択し、間隔を段落上部下部ともに0.30cmに増やします。これは、改行した文書を一塊として視覚的に分離して表示するためです。塊になっていれば、長い文章でも見やすく、読みやすくなります。

なお、子スタイルを変更しても親スタイルはそのままです。継承関係がある親スタイルの変更は影響大です。

同様にフッター、ヘッダー、タイトル、見出し(大:見出し1、中:見出し2、小:見出し3)にスタイル編集を加えました。これら編集を加えたスタイルを文章に適用するのみでも報告書や説明文には十分です。

Writerテンプレート作成

文章に各種スタイルを適用して体裁に問題が無ければ、その適用スタイルをテンプレート化します。

体裁が整ったWriter文書は、ODF文書ドキュメント(拡張子.odt)として名前を付けて保存(Ctrl+Shift+S)します。その後、全文章を削除し、今度は、ODF文書ドキュメントテンプレート(拡張子.ott)として名前を付けて保存すれば、これが作成したWriterテンプレートになります。

LibreOffice Writer文書テンプレートの保存方法
LibreOffice Writer文書テンプレートの保存方法。Microsoft Word互換性を実現する様々な保存方法があるのも解る。

この文章なしでスタイルのみに変更を加えたものがWriterテンプレートです。

このテンプレートを使う時は、作成したテンプレートを開き→文章作成→文章にスタイル適用、その後、ODF文書ドキュメントとして保存すれば、見栄え良い文書が簡単に完成します。

開発したWriterテンプレートは、コチラからダウンロードができます(サポートなしです、念のため)。ご自由にご活用ください。※ダウンロード時エラーメッセージが表示されることがあります。ダウンロードはできますので、エラーメッセージは無視してください。

Writerテンプレートは、本稿で開発したもの以外にも多数初めから備わっています。ファイル(F)>新規作成(N)>テンプレート(C)で履歴書などが、またオンライン上のテンプレートなども参照できます。

テンプレートの役目

このように、Writerテンプレートを使うと「文章の作成」と「体裁追加」を分断し流れ作業化できるので、各段階の作業に集中し、より良い文書が作れます。

自動車の製造と同じく流れ作業は、効率的な生産に向いています。全作業を1人で行う場合でも、集中する作業範囲を狭くできるのでミスが減ります。これは、Writerテンプレートに限らず、マイコンテンプレートでも同じです。

これがテンプレートの役目です。ソフトウェア開発でコーディングとデバッグを別々に行うのと似ています。

弊社マイコンテンプレートは、複数のサンプルソフトを組合せた開発ができます。個々のサンプルソフトをテンプレートへ組込む時に、サンプル利用だけでなく、テンプレートに組込むという観点からもサンプルソフトを見ることになるので、サンプル応用や変更へも広く対応できるようになります。

Writerの標準スタイルに相当するのが、マイコンテンプレート本体です。テンプレート本体は、とてもシンプルな作りで変更や修正も容易です。マイコンテンプレートは、汎用マイコン毎に5種類あり、詳細はコチラです。各1000円の有償ですがご活用ください。

MCUから離れると出だしで書きましたが、結局MCUテンプレートに結び付けてしまい申し訳ありません。

気を取り直して……、次回は、LibreOfficeの描画作成ツールDrawの使い方とそのテンプレートを示す予定です。

RL78ファミリから解る汎用MCUの変遷

汎用MCUの定義が変わりつつあります。ルネサスエレクトロニクス(以下、ルネサス)のRL78ファミリから、最近の汎用MCUの変わりつつある現状を考察します。

RL78ファミリの汎用MCUロードマップ

2018年6月版の最新RL78ファミリMCUカタログから抜粋したRL78ファミリのロードマップです。

RL78ファミリロードマップ (出典:ルネサス汎用MCUラインアップカタログ)
RL78ファミリロードマップ (出典:ルネサス汎用MCUラインアップカタログ)

赤囲みのRL78/G1xが汎用MCU製品を示します。2014年以後は、For小型システムやForモータシステムなど、一見するとASSP:application-specific standard product、特定用途向けMCUのような製品が汎用MCUの中にあります。

これは、RL78/G1Fのコンセプトを見るとその理由が理解できます(出典:ローエンドマイコンで実現できる 高機能なブラシレスDCモータ制御

RL78_G1Fのコンセプト(出典:ローエンドマイコンで実現できる 高機能なブラシレスDCモータ制御)
RL78_G1Fのコンセプト(出典:ローエンドマイコンで実現できる 高機能なブラシレスDCモータ制御)

つまり、汎用MCU RL78/G14を、モータシステム向きに周辺機能拡張や使い勝手を向上させたのがRL78/G1Fなのです。あくまで汎用MCUがベースで、それを特定用途、この場合はモータ制御向けに調整したのです。

このメリットは、開発者、ルネサス双方にあります。開発者にとっては、使い慣れた汎用MCUの延長上に特定用途向けMCUがあるので馴染みやすく開発障壁が低くなること、ルネサスにとっては、新規ASSPを開発するよりも低コスト、低リスクなことです。

RL78ファミリの汎用MCUとは、変わる定義

RL78ファミリのMCUには、S1/S2/S3という3種類のコアがあります。数字が大きくなると高性能になります。

関連投稿:RL78 S1/S2/S3コアの分類

ルネサスの汎用MCUとは、これらS1/S2/S3コアを使ったMCU製品を指します。また、RL78/G1FのようにS3コアMCUのRL78/G14をベースとし、特定用途向け機能を付加したものも汎用MCUです。

※弊社は、S1/S2/S3コアの各汎用MCUに対してRL78/G1xテンプレートを販売中です。

販売中の汎用MCU向けテンプレートと特定アプリ向けMCUの関係
販売中の汎用MCU向けテンプレートと特定アプリ向けMCUの関係

この特定用途名が、ルネサスが考えるIoT時代にふさわしい汎用MCUと言えます。「汎用」という従来の広く漠然とした用途よりも、より「具体的な用途・応用に適す汎用MCU製品」としてRL78/G1FやRL78/G11があるのです。

特定用途向け汎用MCU開発にもRL78/G1xテンプレートが役立つ

このIoT時代の特定用途向けMCU開発でも、弊社RL78/G1xテンプレートが使えます。ベースが「汎用中の汎用」RL78/G10(S1コア)、RL78/G13(S2コア)、RL78/G14(S3コア)だからです。

例えば、RL78/G1Fのアプリケーションノートやサンプルコードは、具体的でほとんどそのまま開発製品へ適用できます。しかし、用途が限定されているだけに、逆に簡単な機能追加が難しい場合もあります。そんな時に、テンプレートが提供するサンプルコードを活かしつつ処理を追加できる機能を使うと便利です。

ここでは、ルネサス汎用MCUについて考察しましたが、NXPセミコンダクターズやSTマイクロエレクトロニクス、Cypressセミコンダクターなどの他社MCUベンダも同様です。汎用MCUの定義は、より具体的な用途・応用名が付いたIoT MCUへ変わりつつあります。しかし、基本の汎用MCUを習得していれば、より応用し発展できます。基本が重要だということです。

IoTでは、MCU開発はより複雑で高度になります。また、製品完成度の要求もさらに高まります。基本要素や技術を、(たとえブラックボックス的だとしても)積み上げられる、基礎・基本を習得した開発者のみが生き残ると思います。開発者個人で基礎を習得するために、是非弊社マイコンテンプレートをご活用ください。