独自開発ボードのMCUXpressoプロジェクト作成方法

今回はNXP評価ボード以外の“独自開発マイコンボード”を使って、MCUXpressoの新規プロジェクトを作成する方法を、LPC810を例に示します。

New Project by Available boards
New Project by Available boards

上図NXP評価ボードを使ったMCUXpressoの新規プロジェクト作成は簡単です。現在LPC8xxマイコンには、6種のNXP評価ボードがあり、これらの中から使用ボード選択し、Nextクリックでダイアログに従っていけば新規プロジェクトが作成できます。

Preistalled MCUsプロジェクト作成

一方、LPC810(ROM/RAM=4KB/1KB)で独自開発したマイコンボードへ新規プロジェクトを作成する場合は、Preinstalled MCUsからLPC810を選びます。

New Project by Preinstalled MCUs
New Project by Preinstalled MCUs

Nextクリック>LPCOpen – C Project>Project name追記>Import>BrowseでLPCOpenライブラリをImportします(最新版LPCOpenライブラリはv3.02ですが、ここではMCUXpresso IDE v10.1.1 にプリインスト済みのv2.19を使っています)。

Import LPCOpen Library
Import LPCOpen Library

Importするのは、lpc_chip_8xx (lpc_chip_8xx/)です。lpc_board_nxp_lpcxpresso812は、NXP評価ボード利用時、lpc_chip_8xx関数を利用したマクロ関数です(マクロ関数は後述)。

インポートが完了するとNew Projectダイアログに戻ります。ここでLPCOpen Chip Library Projectのlpc_chip_8xx_libの_lib部分を削除すると、Nextボタンが“有効”になるのでクリックします。ポイントは、_libを削除することです。削除しないと、Nextは無効のままで先に進めません。

Import lpc_chip_8xx
Import lpc_chip_8xx

この後は、デフォルト設定のままでNextを何回かクリックすれば、独自開発ボードでの新規プロジェクトが作成できます。

なおLPC810は、ROM4KB、RAM1KBと極少ですのでデフォルトで使用となっているMTBやCRPは未使用に変更すると良いでしょう。

ちなみに、MTB、CRP未使用でLPC810へ弊社LPC8xxマイコンテンプレートのみを実装した時のメモリ使用量は、ROM70%、RAM2%です(debug configuration時)。これでは、残り部分へユーザ処理を追加するとすぐに容量オーバーになります。

対策は、コンパイラ最適化をデフォルトの“最適化なし(O0)”から“、1段階最適化(O1)”へ変更することです。
Project >Properties>C/C++ Build>Settings>Tool Settings>Optimization>Optimization Levelで最適化レベルが変更できます。O1レベルでも、かなりの使用量空きが確保できます。

Optimize for Debug
Optimize for Debug

但し、最適化には副作用も伴います。変数にvolatile宣言を付記するなどして、ツールが行う勝手な最適化への対策をしましょう。対策の詳細は、コチラなどを参照してください。

マクロ関数

LPCOpen Library Stack
LPCOpen Library Stack

LPCOpenライブラリは、層構成になっています。BOARD layerは、CHIP layerを使って上位の各ExampleへAPIを提供します。例えば、LPC812評価ボード実装済みのLED出力の初期化関数:Board_LED_Init()が、chip layerのChip_GPIO_…()を使っているなどです。

Macro Function
Macro Function

本投稿では、Board_LED_Init()をマクロ関数と呼びます。NXP評価ボードは、NXPから多くのマクロ関数が提供されますが、独自開発ボードでは、これらも必要に応じて自作する必要があります。

また、自動生成ソースコードにインクルードされるファイルも、NXP評価ボードでは無いためboard.hからchip.hに代わっていることにも注意しておきましょう。

MCUXpresso Generated Source
MCUXpresso Generated Source

ベンダ提供評価ボード活用の独自開発ボード

独自開発マイコンボードと、NXP評価ボードのIO割付が同じならば、MCUXpressoの新規プロジェクト作成時に本投稿で示したような神経を使う必要はありません。多くのマクロ関数もそのまま利用できます。独自開発ボードの新規プロジェクト作成でも、NXP評価ボードと全く同じになるからです。

独自にマイコンボードを開発する前に、ベンダ提供の評価ボードIO割付を調査し、独自開発へ適用できるか否かの検討をすることをお勧めします。

ベンダ提供評価ボードは、標準的なIO割付ですが、最も応用範囲が広い割付とも言えます。さらに、上述のようにソフトウェア開発、新規プロジェクト作成に対しても多くのメリットがあるのがその理由です。

マイコンソフトウェア開発の基礎知識と開発方法、配布開始

1月末に3回に分けて投稿した「マイコンソフトウェア開発の基礎知識と開発方法」を1つのpdf資料にまとめました。弊社マイコンテンプレートサイトのアプリケーション開発手順のページから、どなたでも無料ダウンロードが可能です。

Sample Software First and MCU Template
Sample Software First and MCU Template

この資料は、Sample Software Firstについて説明しています。マイコンテンプレートを使ったアプリケーション開発手順と合わせて読んで頂くと、マイコンソフトウェアの開発方法がより解り易くなると思います。

今後、ご購入頂いたマイコンテンプレートの付属資料としてこの資料も添付する予定です。

マイコンテンプレート購入検討中の方、既に購入された方でも、ご活用ください。

NXPとルネサスのMCU開発動向

NXPとルネサス、両社幹部が語ったMCU開発動向記事から、弊社ブログARM Cortex-Mシリーズ、16ビットMCU RL78関連部分をピックアップしました。動向記事は下記です。

NXPのMCU開発動向

記事によると車載MCUは、製品群をS32 Automotive PlatformでARMアーキテクチャ(Cortex-A、Cortex-R、 Cortex-M)に全て統一し、基本的なペリフェラル、メモリインタフェースを共通化、S32デバイス間ならソフトウェアの90%を再利用できるそうです。

同時にS32 MCUは、自動車用機能安全規格である「ASIL-D」に対応し高度セキュリティを担保、また完全なOTA(Over the Air)機能もサポート予定です(OTAはコチラの投稿参照)。

S32製品は、2018年1Qサンプル出荷、2019年から量産予定です。

Common Hardware Architecture Platform (Source: NXP)
Common Hardware Architecture Platform (Source: NXP)

この車載MCU開発動向は、本ブログ対象の家庭や個人向けCortex-MコアMCUへも影響を与えると思います。NXPはFreescale買収後、LPCとKinetisの2つのCortex-Mシリーズ製品を提供中です。

ARM Cortex-M Core Kinetis and LPC
ARM Cortex-M Core Kinetis and LPC

S32製品の強み、ハードウェア共通化、ソフトウェア再利用、セキュリティ確保、OTAは、そのまま現状NXPの 2製品並立Cortex-Mシリーズへも適用される可能性が高いと思います。その方がNXP、新規ユーザ双方にとって開発リソースを集中し易いからです(現行ユーザには多少インパクトがありますが、Cortex-Mコアは同じなので、SDKなどが変わるかも?!しれません…)。

ペリフェラルが共通化されれば、サンプルソフトも同じになるでしょう。ソフトウェア90%再利用は、ライブラリ充実化も見込めます。差分の10%は、Cortex-コア差、セキュリティレベル差、応用範囲などになる可能性があり、期待できそうです。

ルネサスのMCU開発動向

ルネサスは、2018年夏発売予定のRZファミリで、組込みAIによる推論モデル処理能力を10倍、2019年末までに更に10倍、2021年で10倍にし、推論処理能力を1000倍にするそうです。このために動的に再構成可能なプロセサ技術「DRP(Dynamically Reconfigurable Processor)」を汎用MCU製品へ取り込んでいくそうです。

RZファミリ:現状ARM Cortex-A9 400MHz採用の家電、カーオーディオなどが対象のMCU。

Cortex-AコアのRZファミリとRL78の比較(Source: Runesas)
Cortex-AコアのRZファミリとRL78の比較(Source: Runesas)

能力向上したAI推論により、振動などの画像データを扱えるようになり、さらにはそのフレームレートも高められ、例えば、熟練工のノウハウをエンドポイントで自動化できるようになる。1000倍ともなれば、現在はエンドポイントでは難しいとされる学習も行えるようになるそうです。

産業機器分野では、自動化やロボット化の実現に関わる異常検知、予知保全、認知検査などにAI処理能力を適用予定です。

1月14日投稿のルネサスe2 studioのAI利用無償プラグインで開発環境を提供しますが、弊社対象のRL78ファミリでどの様に実現されるかは不明です。

AI処理能力を1000倍化(Source: Runesas)
AI処理能力を1000倍化(Source: Runesas)

正常進化のNXPと差別化のルネサス

NXP、ルネサスともにARMコアMCUの開発動向は似ています。ルネサス幹部が、汎用MCU統括のため、あえて産業分野にフォーカスして語っただけと思います。

差分は、NXPがARMアーキテクチャの正常進化とも言えるソフトウェア資産の共通化を全面に推しているのに対し、ルネサスは、差別化DPR技術で推論機能の1000倍化を目指す点です。
※正常進化の根拠は、コチラの投稿のCMSIS参照

この差別化がガラパゴスになるのか、それとも光る技術になるか、今年夏頃の新製品RZファミリに注目します。

NXPマイコンのNXP推薦開発環境

NXPは、Freescaleを買収しARMコアのマイコンラインアップが増えました。昨年発表の新しい統合開発環境MCUXpressoで増加ラインアップに対応中です(MCUXpressoサポート状況Excel表がコチラ)。

IDE、SDK:Software Development Kit、CFG:Config Toolsの3ツールから構成されるMCUXpressoのサポート状況から、新生NXPのARMマイコン開発環境を考察します。

もっと早く気が付いていれば…

このExcel表を見つけたのは、今年1月中。LPC824の最新LPCOpenライブラリv3.02に、昨年から継続するバグ解消が無いことが理由でした。何か変だと思い、NXPサイト検索で発見したのが同表です。

2017年7E目標のLPC824対応マイコンテンプレート開発前にこの表を見つけていれば、対応が変わっていただけに残念です(orz)。LPC800でフィルタリングしたのが下図です。

LPC8xx Recommended SDK
LPC8xx Recommended SDK (Source: Version 14)

LPC8xxシリーズは、LPCOpenライブラリはAvailableなものの、NXPはCode BundleがRecommended SDK:推薦Software Development Kitです。推薦環境以外でテンプレート開発したことになります。

Change Logページを見てもいつCode Bundleへ変わったか不明です。しかし、LPC8xxテンプレートV1開発時の2014年5月10日時点では、「LPCOpenがLPC812のSDK」でした(Legacyフォルダはあっても、Code Bundleなどありませんでした)。

LPC8xxシリーズは、IDEのみMCUXpresso IDEでSDK、CFGの計画はありません。つまり、NXP推薦Code BundleかLPCOpenを使いソフト開発が必要です。

Code BundleとLPC8xx

Code Bundleは、C:\nxp\MCUXpressoIDE_10.1.1_606\ide\Examples\CodeBundlesにあります。特徴は、ハードレジスタを直接アクセスするLegacyスタイルなので、従来の8/16ビットマイコン開発者に馴染み易く、これらマイコン置換え狙いのLPC8xxには、このスタイルの方が歓迎される可能性があります。

但し、LPC81x、82x/83x、84xとハードレジスタが微妙に変化していますので制御ソフトも変化します。LPCOpenのようにAPIでハード差を吸収する思想は少ない(無い)ようです。

気になる点が2つあります。最初は、サンプルソフトのヘッダーが簡素なことです。

ベンダ提供のサンプルソフトヘッダーは、細かな注意点などが30行程度記載されているのが普通です(左:Code Bundle、右:LPCOpen)。

Sample Software Hader
Sample Software Hader

Code BundleのHeaderは弊社マイコンテンプレートと同様簡素(上図は9行)で、間に合わせで開発した感があります。また、ソース内コメントも数人のエキスパート:上級者で分担してサンプルソフトを作成したように感じました。

Code Bundleの全サンプルソフトを動作テストした訳ではありませんが、LPCOpenのようなバグは(今のところ)ありません。SDKとしてLegacyスタイルに慣れた8/16ビットマイコンユーザが使うのは問題なさそうです。

2点目は、NXP推薦開発環境でCode Bundleなのが、LPC8xxシリーズのみの点です。

他のARMマイコンは、LPCOpenかまたはMCUXpresso SDKが大半です。旧NXPマイコンは、LPCOpenまたはMCUXpresso SDK、旧FreescaleマイコンはMCUXpresso SDKが主流です。

LPC8xxシリーズのみ今後もCode Bundleにするのか、または、他の旧NXPマイコン同様LPCOpenになるのかは、ハッキリ言って判りません。

LPC8xxマイコンテンプレートの対処

現在LPCOpenライブラリを使いLPC812のみ対応中のLPC8xxマイコンテンプレートV2.1を今後どうするかの案としては、

  1. LPC812、LPC824ともにLPCOpenライブラリバグ解消を待って改版
  2. LPC812、LPC824ともにCode Bundleを使い改版
  3. LPC812は現状LPCOpen維持、LPC824は、Code Bundleを使い改版(中途半端)

いずれにするか、検討中です。決定には、もう少し時間が必要だと思っています。

ミスリード(Mislead)のお詫び

これまで弊社は、LPC8xxシリーズのSDKはLPCOpenと思い投稿してきました。この投稿で、読者の方に誤った開発方向へ導いた場合には、お詫び申し上げます。申し訳ございません。

LPC8xxテンプレートをご購入頂いた方のテンプレート本体は、C言語のみでライブラリは使っておりませんし、マイコンにも依存しません。ご購入者様は、他マイコンも含めて流用/活用はご自由です。

LPCOpenで開発された関数を、Code Bundleへ変えたとしても、テンプレート本体はそのまま使えます。

あとがき

Code Bundleは、ハードレジスタをユーザ開発ソフトで直接いじる20世紀マイコン開発スタイルです。21世紀の現在は、ハードウェアに薄皮を被せAPI経由で開発するスタイルに変わりました。メリットは、ハードが変わってもユーザ開発ソフト側変更が少なく、マイグレーションに有利です。

ARMコアのマイコンは、全てこの21世紀スタイル:ARMスタイルです。ARMがCMSISなどを発表しているのは、ARMコアに依存しないユーザ開発ソフトを、資産として活用することが目的です(CMSISはこちらの投稿を参照)。

マイコンRTOSがWindowsのようにハードアクセスを全面禁止にすることはあり得ませんので、20世紀スタイルでRTOS化しても問題ありません。が、スイッチマトリクスが気に入っているLPC8xxシリーズだけが20世紀スタイルを使い続けるとは思えません。つまり、Code Bundleは、NXPサポート体制が整うまでの暫定措置だと思います。

この混乱の原因が、QUALCOMMによるNXP買収に絡んでないことを祈っています。

QUALCOMMのNXP買収、EUで一歩前進

2018年1月19日、米QUALCOMMの蘭NXPセミコンダクター買収計画がEU(欧州連合)当局で承認の記事が日経電子版に掲載されました。残るのは、中国の独占禁止法当局の承認だけです。遅れていた買収成立が一歩前進しました。

QUALCOMMのNXP買収
QUALCOMMのNXP買収

マイコンソフト開発の基礎知識と初心者、中級者向け開発方法(最終回)

前回までで初心者、中級者向けマイコンソフトの基礎知識と開発方法に、俯瞰視野でサンプルソフトを選び、サンプルソフト初期設定とループ内処理をライブラリとして評価ボードで動作確認しながら開発するサンプルソフトファーストの方法を述べました。

この方法は、サンプルソフトをジグソーパズルのピースとし、各ピースを弊社マイコンテンプレートへ入れさえすれば開発できるので、楽しくラクにマイコンソフトウェア開発ができます。

サンプルソフトを組合せるマイコンソフトウェア開発
サンプルソフトを組合せるマイコンソフトウェア開発

日本人は、サンプルソフトのコメントや概要記述の英語が苦手です。最終回は、ソフトウェアに使われる英語、特にサンプルソフト英語の扱い方を示し、本開発方法を総括します。

マイコンサンプルソフトの英語コメントは重要

初期設定+無限ループ内の1周辺回路制御という構造:フォーマットが決まっているマイコンサンプルソフトは、英語圏開発者によるものが殆どです。

彼ら彼女らにとって母国語英語ベースのC言語サンプルソフトは、ソースコードだけでも理解に支障はありません。また、関数をモニタ1画面(80字x 25行)以内の行数で記述する傾向もあります。ページスクロールせずに関数全体が見渡せるからです。

C関数の行数
C関数の行数

このような英語圏開発者があえて追記するコメントは、重要事項のみです。数行にまたがるコメントならなおさらです。つまり、なぜコメントしているかを理解することが大切です。といってもソースコードのコメント英語は、解り難いのも事実です。

英語コメントはブラウザ翻訳で日本語化

ブラウザアドレス窓に「翻訳」と入力すると、ブラウザ上で翻訳ができます。長い数行の英文でも瞬時に日本語になります。

ブラウザ翻訳
ブラウザ翻訳

サンプルソフトの英語コメントが解り難い時は、ブラウザ翻訳を使い日本語で読むと内容理解に効果的です。

マイコンソフト開発の基礎知識と初心者、中級者向け開発方法(総括)

従来のマイコンソフトウェア開発は、マイコンデータシートなど理解が先、次に理解した情報のプログラミングという順番でした。この方法は正攻法ですが、初心者、中級開発者には、限られた開発期間で理解対象が多いため開発障壁が高く、プログラミングの時間も相対的に短くなります。

マイコン応用製品の早期開発には、プログラミングを先にする方法へ見直すことが必要です。

それには、初心者、中級開発者が元々持つ俯瞰視野とサンプルソフト、ライブラリ、評価ボード、ブラウザ翻訳などの既存資産を上手く利用すれば良いのです。Arduinoシールドを使えば評価ボードへの機能追加も簡単で、製品版に近い開発環境でのプログラミングも可能です。

本投稿は、初心者、中級者向けのマイコンソフト開発の基礎知識として、サンプルソフト資産が多数あること、多くのサンプルの中から対象を絞り、一種のライブラリとして動作確認しながらソフト開発をするサンプルソフトファーストの方法を示しました。

IoT時代は、RTOSやセキュリティ知識など、より多くの情報を取り込んだマイコンソフトウェア開発になります。個々の情報の相対的な重要性さえ理解していれば、情報内容の理解よりも開発するソフトウェアへ組込む能力の比重が、ますます高まるでしょう。

開発者がこだわるべきは、短い期間内で開発するソフトウェア出力です。情報理解は、開発後でもOKです。

2018マイコンベンダ最新ニュース

弊社マイコンテンプレートで扱っております主要マイコンベンダ、NXP、ルネサス、STマイクロエレクトロニクス、Cypress各社の2018最新ニュースとRTOS関連ニュースの中から、ブログ対象MCU関連の情報をピックアップしました。

NXP

MCUXpresso IDEの新バージョン10.1.1_606がリリースされました。また、LPC8xx向けのLPCOpenライブラリv3.02もリリースされましたが、リリースノートを見てもv3.01のバグ解消は未処理のようです。

そのためか、MCUXpresso IDE v10.1.1付属LPCOpenライブラリもv2.19のままで、v3.02添付はありません。近いうちにv3.02の動作を調査する予定です。

ルネサス

インターシル社と完全統合した新生ルネサス誕生(2018年1月1日)。アナログ関連で高いスキルを持つ旧インターシル技術がRL78マイコンへも導入されそうな気配があります。Cortex-M0/M0+コアとの競争に生き残るには、汎用RL78マイコンのアナログ強化、センサ内蔵が方策なのでしょう。

但し、開発環境CS+の先行きには不安要素もあります。6月末提供予定のe2 studioのAI利用無償プラグインはRL78もカバーされますが、果たしてCS+でも同機能がサポートされるのかが気掛かりです。

e2 studio新プラグイン
e2 studio新プラグイン(記事より)

STマイクロエレクトロニクス

既にEWARM、MDK-ARM、TrueSTUDIO、SW4STM32の4種IDEをSTM32マイコン向けに提供中のSTMが、TrueSTUDIOの開発元スウェーデンのAtollic社を買収しました。

現状のEclipseベースTrueSTUDIO無償版もコードサイズ制限はなく、弊社使用中のSW4STM32無償版サイズ制限なしと機能的には同じです。このTrueSTUDIOとSW4STM32を比較し、なぜAtollicを買収したのかを探りたいと思います。

Cypress

最新マイコン評価ボードで紹介しましたCY8CKIT-062-BLE PSoC 6 BLE Pioneer Kitが、サイプレスサイトからも購入できるようになりました。また、サンプルソフト(Code Examples)も豊富に提供されています。

E-ink液晶を使ったArduinoシールドは、汎用性が高そうなので興味を惹かれます。

RTOS

mbed OS 5の新しいバージョンMbed OS 5.7.2 がリリースされました。Amazon FreeRTOSなど、MCU用RTOSの普及も2018年のトレンドになりそうです。

まとめ

2017年の半導体ベンダランキング(速報値)が発表されました。NXPは第10位(前年9位)です。2016年MCUランキングは、NXP>ルネサス>STM>Cypressの順でした。NXPとルネサスがMCUシェアの1/3を占めるのは、今年も変わらないかもしれません。

例年に比べ2018年はMCU各社の動きが早いように感じます。EVや自動運転、コネクテッドカーがMCU開発の動きに拍車をかけているのは間違いと思います。

新たな動向としては、ソフトウエア開発環境の整備です。数億、数十億個とも言われるIoTマイコン時代では、現状のようにオーダーメイドでのソフト開発では時間が掛かりすぎます。より高速で効率的なソフトウエア開発ツールやライブラリ活用術が求められるような気がします。

マイコンソフト開発の基礎知識と初心者、中級者向け開発方法(第1回)

マイコンソフトウエア開発者には、俯瞰視野(緑マーク)から開発場所(赤マーク)を捉えることが必須です。

中国の古代建築物
中国の古代建築物(Pixabay無償グラフィックより)

初心者が陥りがちなのは、1つの開発場所の理解に拘って、迷路から抜け出せなることです。ここでは、この開発の迷路にはまらずに、初心者、中級開発者がマイコンソフトウエア開発を楽しくラクにする具体的な方法を3回に分けて解説します。

マイコンソフトウエア開発の手法を書いた書籍やネット情報は、数多くあります。
これらは、奇策などを用いずに正しい開発の方法、つまり「正攻法」で書かれています。開発期限が短くプレッシャーも多い中での正攻法によるソフト開発は、習得に時間がかかり、しかも新しい用語や背景を知らない開発初心者にとっては、覚えることが多く、かなり辛い方法です。

マイコンソフトウエアの開発障壁を高くしているのが、この正攻法です。3回で示す方法は、開発障壁を下げ、マイコンソフト開発を、もっと気軽に、ラクにします。下記内容を予定しています。

  • マイコンソフトウエア開発正攻法のデメリットと、俯瞰視野(第1回)
  • マイコンソフトウエア開発制御対象の分類と、各対象のラクな開発方法(第2回)
  • ソースコード英語コメントの注意点と、英語アレルギーの対処方法(第3回)

マイコンソフトウエア開発正攻法のデメリット

マイコンソフト開発を楽しむには、コツがあります。それは、「初めにデータシートを見ない」ことです。
データシートは、上級レベル開発者が、参考書として「読む時」に威力を発揮します。元々、初心者や中級レベル開発者向けには作成されていないのがデータシートです。

先の投稿でも書いたようにデータシートはデバイスの詳細なデータ値の羅列です。この羅列から内容を見るのではなく「読む」には、値の意味と、意味を理解するためのソフトウエアとは直接馴染みが少ない半導体の基礎知識が必須です。マイコンソフト開発を長年行い基礎知識も習得していれば「読めます」が、マイコン初心者が「読む」のは、時間的に無理、非効率です。

ところが、マイコンソフトウエア開発の根拠は、データシートです。データシートにこう書いてあるから、こうソフトを開発したという理由付けです。つまり、データシートをどのように「読み」、それを「ソフトに変換」した道筋が、巷に溢れるソフト開発情報なのです。要は説明がし易いのです。

この「データシートを読み→ソフトへ変換」は、正攻法ですがデータシートが読めない人は、鵜呑みにするしかない手法です。たくさんの鵜を飲めば、そのうち解るようになりますが効率が悪く忍耐も必要です。

ポイントは、データシートは初心者や中級開発者向けでは無いことです。向いていないデータシートを使って開発着手するのでマイコンソフトウエア開発障壁は高くなるのです。

では初心者、中級開発者は、どうすれば開発障壁を高くせずにマイコンソフト開発ができるのかについては、2回目以降で示します。

初心者、中級開発者の俯瞰視野

最初の写真に戻ります。手前の入口から円形迷路をくぐり、中心の家に到達すればゴール=ソフト開発完了と考えてください(写真そのものは無関係です、念のため…)。

迷路の途中にあるのが、マイコン周辺回路ADCやGPIO、UART通信などのソフト開発対象(斜め赤マーク)です。案件によって対象は異なりますが、対象を開発できればその場所のゲートを通過でき、複数ゲート通過でゴールへ到達するゲームです。ゲームには制限時間(=開発期間)が設定されています。

開発者には開発期間内に何らかの出力、成果が求められます。出力を生むには、現在の位置と開発期間を天秤にかけ、最も出力を生む可能性の高い最短ルート検索能力が必要です。これには、俯瞰視野(緑マーク)からの現状観察は不可欠です。開発者に最も必要な能力が、この俯瞰視野です。

マイコン初心者、中級開発者は、元々初めから俯瞰視野を持っています。マイコンの中身に詳しくないことが逆に幸いしているのです。しかし、正攻法で開発を始めると、段々と視野が狭くなり、開発につまずくとそのつまずいた場所のゲート通過のみに拘る結果、迷路にハマってしまいます。

開発が思い通りに進まない(=迷路にハマった)時は、イメージだけでも良いので俯瞰視野の初心に戻り、現状分析と、例えば、周辺回路の別の使い方などの別ルート再検索を行ってください。間違ったルートでそのまま進んでも、タイムアップでゴールに到達できない可能性もあるからです。

第1回マイコンソフト開発の基礎知識と初心者、中級者向け開発方法のまとめ

  • データシートは、マイコン初心者、中級開発者向けでない
  • マイコンソフトウエア開発者は、俯瞰視野(客観視野)の初心を忘れず状況分析

の2つを示しました。

Cortex-Mシリーズはセーフ、他はアウト

新年早々、Intel、AMD、ARMなどの制御デバイス製造各社に激震が発生しました。「CPU投機的実行機能に脆弱性発見」のニュース(Intel、AMD、ARMの対応Windowsの対応Googleの対応)です。

MeltdownとSpectre
MeltdownとSpectre(Source:記事より)

※投機的実行機能:制御を最適化するためのパイプライン化、アウトオブオーダー実行などの「現代的CPU」ハードウエアに実装済みの機能。

※脆弱性:ウイルスが入る可能性がある箇所のこと、セキュリティホールとも呼ばれる。言わばアキレス腱のような箇所。もっと知りたい方は、総務省サイトの基礎知識が良く解ります。

Cortex-Aシリーズも対象、Cortex-Mシリーズは対象外(セーフ)

パイプラインやアウトオブオーダーなどの最適化機能は、殆どの制御コアに搭載されています。従って、このニュースは深刻です。ハードウエアの深い部分の脆弱性だけに、ソフトウエアのOSやパッチなどで対応できるのか、個人的には疑問ですが、セキィリティ専門家に任せるしかないでしょう。

ARMのリアルタイム系Cortex-RやCortex-Aシリーズも対象:アウト!です。
一方、本ブログ掲載のCortex-Mシリーズマイコンは、これら投機的機能が実装されていないので今回は対象外、セーフでした。

IoT端末の脆弱性対応はOTA:Over The Air更新が必須

昨年12月3日投稿のCortex-Mを用いるIoTマイコンへも、Amazon FreeRTOSなどのRTOSが期待されています。今回のような脆弱性への対応には、無線通信によるソフトウエア更新:OTA機能が必須になるでしょう(ソフトウエアには、OSとアプリの両方を含んでほしいという願望も込みです)。

時々発生する自動車リコールも、ハード起因とソフト起因の両方があります。車の場合は、ディーラーへユーザが車を持ち込めば対応できますが、組込み制御の場合は、開発者自身が動作中の現場で対応するのが現状です。今回は、Cortex-Mシリーズはたまたまセーフでしたが、同様のセキュリティ事案への対策を練る必要があると思います。

と言っても、当面できるのは、現場でIDEやUART経由の直接ソフト更新か、または、コチラの記事のような(多分高価な)パッチ配布手段しか無いかもしれません。

RTPatch適用範囲
RTPatch適用範囲(Source:記事、イーソルトリニティ)

ルネサスのNXP分析と狙う車載半導体市場

EE Times Japan、2107年12月26日にルネサスCEO、呉 文精(くれ ぶんせい)氏のインタビュー記事が掲載されています。

この中で、ルネサスが、競合NXPをどのように評価分析しているか、車載半導体のどの市場を攻めていくかを語っています。前回投稿で述べたように、車載MCUの開発動向は、弊社が扱う家庭や個人向けIoT MCUにも強い影響を与えます。記事の中から、この車載MCU開発動向に関する部分を抜粋します。

ルネサスのNXP評価分析

  • ルネサスがIntersilを買収した理由は、アナログ半導体の利益率の良さ。NXPは、もともと車載MCUに強いFreescaleを買収したので、最近のNXP車載MCU新製品は、ルネサスの脅威であり過小評価はできない。
  • QualcommによるNXP買収は、国境を越えた合併なので社風、社員の相性問題あり。ビジネスモデルもNXPとQualcommで異なる。シナジー効果を早期発揮するのは困難で、短期的にはルネサス有利。

ルネサスは、Intersilのアナログ回路を手に入れました。この結果、RL78/G11やRL78/L1Aのように、汎用MCUへアナログ回路を実装し、他社差別化の動きを加速すると思います(アナログ強化については、2017年8月3日投稿のRL78ファミリのロードマップも参照)。

ルネサスは量産車の車載半導体を狙う

  • NVIDIAやIntelは、ハイエンド(超高性能、大電力使用、高価)GPUからのアプローチ。ルネサスは、車のボリュームゾーン(量産車)に適用できる低消費電力で、低価格、 機敏な計算能力を持つMCUからのアプローチ。
    ルネサスは、量産車に載る半導体市場を狙う。

以上2項目について記事を抜粋しました。ルネサス(+Intersil)が思い描く車載半導体ビジネスが良く判る記事です。

車載メモリ

車載MCUの高性能化は必須です。もう1つの車載半導体のトピックは、メモリだと思います。

この場合のメモリとは、従来のEEPROMに相当する電源OFFでもMCU必須パラメタなどを保持できる不揮発性メモリを含みます。ルネサスの車載メモリ動向(この場合はフラッシュROMですが)は、2017年12月11日投稿で記載しています。

例えば、走行距離などは、バッテリーを外しても保持する必要があり、高信頼で不揮発データ蓄積の要求は、EV→自動運転レベルが高度になればなるほど高まります。

Cypressは、FRAM(強誘電体メモリ)という新しい技術を車載、IoT両方に提唱しています。SRAMと同様に重ね書き可能で短いアクセス時間、書換え回数も多くデータ保持期間100年(リテンション)という長さが特徴です。

FRAMと他メモリの比較(AN706-00053-1v0-J.pdfより)
FRAMと他メモリの比較(AN706-00053-1v0-J.pdfより)

FRAMの詳細は、chip1stopのCypressインタビュー記事で解ります。

*  *  *

低価格、高性能、大容量メモリのMCUは、IoT MCUの要件でもあります。EVや自動運転の技術開発は急速で、しかも車載半導体は、大量生産が期待出来るので、MCUベンダ間の競争は激化しています。車載半導体でデファクトスタンダード技術になると、IoTへもそのまま使われることは、十分あり得ます。

2018年IoT市場予測

2017年末、IoT関連の2018年~2020年頃までの市場予測記事が多く発表されました。その中から4記事をピックアップして要約を示します。IoT開発者は、開発業務への対応だけでなく、急激に変わるかもしれない市場把握も必要です。

JEITA発表 2018対前年比2%プラス成長、2020東京オリンピックまで継続、家庭や個人向けが最大市場

JEITA:Japan Electronics and Information Technology Industries Association(ジェイタ)は、日本電子工業振興協会(JEIDA:ジェイダ)と日本電子機械工業会(EIAJ)が統合したITと電機産業の業界団体で、電機という枠を超えてトヨタ自動車やソフトバンクも参加しています。12月19日発表記事が、PC Watchに掲載されています。

  • 2018年、電子情報産業の世界生産は、対前年比4%増(2兆8,366億ドル)、日本生産は前年比2%増(39兆2,353億円)の見通し。2020東京オリンピックまで成長継続。
  • IoT市場は、2030年には世界404.4兆円、日本19.7兆円とそれぞれ2016年調査の約2倍に成長する見通し。特に、今年スマートスピーカーで話題となった家庭や個人向けが一番大きな市場になる。

EVより自動運転が半導体消費は大きい

EE Times Japan12月14日掲載の新しい半導体の流れを作る、IoTと5Gによると、

  • 自動車搭載の半導体需要は、EVが400米ドル、自動運転レベル3が800米ドルで、レベルが向上すると半導体搭載額はさらに高額となる。
自動運転の半導体消費量(記事より)
自動運転の半導体消費量(記事より)

手間を考えると、車載半導体をリサイクルすることは無いでしょう。車の平均寿命を10年としても、毎年膨大な数の車載半導体が消費されることになります。さらに、顧客(車ベンダ)のMCU高性能化やメモリ量増大の要求も強いので、数兆個とも言われるIoTの家庭や個人向けMCUも、この車載MCUの流れに沿ったものへ変わるかもしれません。

自動運転で半導体消費が増える理由は、車載センサーで見えない先方の情報をネットワーク経由で取得し、運転制御に利用するからです。車載MCUに高速で膨大な計算量、大容量メモリが必要になるのもうなずけます。

セキュリティ課題と対策

ネット接続で問題となるセキュリティ課題と対策については、12月19日Tech Factory掲載の【徹底解説】つながるクルマ「コネクテッドカー」のセキュリティ課題と対策に解説(要無料会員登録)されています。

  • ウイルスバスターで有名なトレンドマクロは、家庭、自動車、工場の3領域に対してIoT戦略をとる。
  • コネクテッドカー以外のIoTデバイスでも同じセキュリティ課題が下記。ソフトウエアセキュリティが最重要。
IoTセキュリティ課題(記事より)
IoTセキュリティ課題(記事より)

組込みソフトにも、ウイスル対策ソフトをインストールすることが必要になるのでしょうか? 私はRTOSに実装してくれることを望んでいます。

IoTエンジニア不足

日経IT Pro12月19日、日本のIT人材は「IoT初心者」、エンジニア2000人調査で判明では、

  • IoTや人工知能を担う先端IT人材は、2020年には48000人不足

と分析しています。

職種が広範囲なので、実際の開発者が何人不足するかは私には不明ですが、2020東京オリンピック位までは、IoT開発者が忙しいのは確からしいです。

ここで挙げた予測の全てが確実だとは言い切れません。しかし、開発者は、ここ数年で起こるかもしれない家庭や個人向けIoT MCUの変化に対応しつつ、IoTサービス企画立案、最新技術に基づいた高速な開発技術が求められるようです。

数か月の開発期間が終わって気が付くと、浦島太郎になったということだけは避けなければなりません。