業界激震:Microsoft 365顧客にAmazon

買い切り型Officeは2026年全サービス終了、サブスクリプション型Office 365(=Microsoft 365)移行が必要と先日投稿しました。これ関連のAmazonがMicrosoft 365顧客になるというクラウド業界激震ニュースが、Business Insiderで10月19日報じられました。

クラウド業界激震:AmazonがMicrosoft 365を巨額契約
クラウド業界激震:AmazonがMicrosoft 365を巨額契約

契約規模

AmazonのMicrosoft 365購入は、100万ライセンス以上、5年間で10億ドル(=1490憶円)を超える規模です。Amazon社員、顧客実務担当者の両方が、このMicrosoft 365を使います。巨額契約です。

契約要因は生成AI

詳細記事は、ImpressクラウドWatchに掲載されています。概要が以下です。

クラウド版Microsoft 365は、Amazon社員のPCへWord/Excel/PowerPoint/Outlookなどの最新Officeツール、Teamsなどの会議ツール、大容量クラウドストレージOneDriveを提供します。Microsoftは、これらツールへ生成AIを活かした機能追加を頻繁に行っています。最新例は、Microsoft EdgeのAI画像生成です。

Amazonが自社会議ツール:Chime、オンラインストレージ:WorkDocsから、競合他社Microsoft 365への変更要因の1つが、生成AIです。AI活用で、更なる生産性向上が見込まれるからだと思います。

AmazonのMicrosoft 365移行は、2024年前半完了の予定です。

CUI、GUIに次ぐPCインタフェース:AI Copilot

PC生産性を下げるのは、CUI/GUI(キャラクタ/グラフィカル ユーザインタフェース)の煩わしい操作です。これを自然言語対応のAI Copilotで代用すれば、生産性は向上します。AI Copilotが、CUI/GUIの次の新しいPCインタフェースと言われるゆえんです。

CUI/GUIベースのPCヘルプは、使い物になりません。これがAIベースヘルプに変れば、最終目的への最短操作や処理を、自動的に行う事も可能になるでしょう。

例えば、会議議事録生成や、長い文書の要約・校正などです。既に一部AIが使われているこれら機能を、もっと手軽に、しかも高精度に活用できれば、ユーザ能力をより高度な処理へ使えます。

Summary:AmazonのMicrosoft 365移行が当然と考えるユーザ進化

AI激震を受ける側か、AI起因テクノロジ変化に追随できる側か
AI激震を受ける側か、AI起因テクノロジ変化に追随できる側か

高精度なAI訓練は、一国の消費電力を超える可能性もあるという記事があります。対策に、電力効率100倍の次世代ネットワークIWONや、生成AI対応済みCPUなども発表されています。

AIは、現在のテクノロジ全てに影響を与え、変化を起こす可能性があります。クラウド業界激震ニュースAmazonのMicrosoft 365移行は、AIによるテクノロジ変化の1つと言えます。

エンドユーザは、今後現れるAI起因テクノロジ激変を注意深く観察し、今回のAmazon Microsoft 365移行が当然と考える側への進化が必要です。

さもないと、AI時代遅れとなり、激震を常に受ける側になりかねません。

Afterword:AI苦手意識薄れる

AIのFuzzyさや、勝手にデータを利用されるのは嫌だ、という感覚がありました。

しかし、最近の技術資料にAI記述の無いものはありません。MCUとAI投稿で書いたように、仕組みよりその効果を活かせれば良い、と思うようになりつつあります。

また、目的取得手段として最初にAIを使うのも時短効果があります。短縮時間をより高度な思考へ繋げれば良いからです。

AIに洗脳された訳ではありません。しかし、筆者のAI苦手意識がだんだん薄れていくこの頃です。


Windows 11 22H2 Updateまとめ

現行Windows 11 22H2の9月27日(水曜)Updateは、多くの変更をPCへ加えました。例えば、下図エクスプローラのタブ化などです。Win11 Updateをまとめ、今秋Win11 23H2や次期Windows 12に備えます。

Windows 11 22H2 Update KB5030310前後のエクスプローラ変化(タブ化実装)
Windows 11 22H2 Update KB5030310前後のエクスプローラ変化(タブ化実装)

Summary:Windows 11 Updateまとめ

Win11 22H2 Updateには、基本的なUpdateと次期23H2プレビュー的なオプションUpdateの2種があります。その選択は、「利用可能になったらすぐに最新の更新プログラムを入手する」スイッチです。デフォルトはオフです。

このスイッチをオンにすると、詳細オプション>クリックで現れるオプションの更新プログラムで、プレビューオプション更新プログラムやドライバ更新プログラムなどがインストール可能になります。

Windows 11 Updateの最新の更新プログラムを入手するスイッチ(デフォルト:オフ)とオプション更新プログラム
Windows 11 Updateの最新の更新プログラムを入手するスイッチ(デフォルト:オフ)とオプション更新プログラム

注意が必要なのは、このプレビューオプション更新プログラムにはインストール後、PCトラブルが発生しても通常の更新プログラム削除と同じ方法では除去できない場合があることです。

例えば、最初のエクスプローラタブ化は、9月27日配布の累積更新プログラムKB5030310適用後に可能になります。しかし一部PCは、エクスプローラそのものが起動しないなどのトラブルも発生します。しかも、KB5030310削除は、次章で示すような手間がかかります。

従って、最新更新プログラム適用スイッチオンは、慎重にすべきです。安全側PC運用を行うなら、基本的Updateのみを行うオフをお勧めします。

※「最新の更新プログラム」とは、「通常の更新プログラムとオプション更新プログラム」の両方を示します。誤解が生じやすい表現で、かつ、オプション更新プログラムとは何かが判り難いので、上図にまとめました。

最新更新プログラム適用スイッチオンの魅力

最新更新プログラム適用スイッチのオン化は、ノートPCのドライバ更新などには役立ちます。

また、現行のWin11 22H2では、オプションの累積更新プログラムKB5030310により、Win11 23H2プレビュー機能、特に話題のAI Copilot機能なども部分的ですが有効になります。Win11 23H2のAI機能を先行して試したい方には、魅力があります。

KB5030310インストールで有効になるWindows Copilot機能
KB5030310インストールで有効になるWindows Copilot機能

ちなみに、弊社所有4台のWin 11 22H2中、KB5030310トラブルが発生したのは1台のみでした。スイッチオン/オフはいつでも変更可能ですが、インストール済みオプション更新プログラムは、スイッチオフに設定しても動作を続けます。

そこで、トラブル発生PCは、毎週火曜に行うバックアップを使ってオプション更新インストール前の9月26日へリカバリし、「LAN接続なしで起動」、スイッチをオフに設定後LAN接続、基本的Updateのみを適用し正常復活しました。

※LAN接続リカバリ起動では、KB5030310インストールが始まります。

トラブル発生PCは、今後安全側の最新更新プログラム適用スイッチオフで運用します。スイッチオンの他3PCとの運用差が判るので、重宝しています。

Windows 11 Update変遷

Win11 22H2のUpdate変遷は、10月18日ビジネス+IT記事から得られます。企業向け情報のようですが、多くの個人PC Update注意事項としても役立ちます。

記事記載のように、Win11 Updateは変更が多く複雑化しました。この複雑性が、今後のWin11にも継続するかも不明です。

記事後半の、Microsoftは事前にブルースクリーンなどのトラブル可能性を認識していて「エンドユーザのデバイスでテストしているではと勘繰ってしまう」は、前稿:Windows 11 23H2章の「Win11 23H2の異例提供方法は、2024年発売のWin 12機能テストという位置付け」とも合致しており全く同感です。

セキュリティ対策とOS機能追加を完全分離配布できればBetterですが、分離不能な面もあるでしょう。セキュリティ重視なら前稿のOSサブスクリプション提供も配布候補となりそうです。

Win11 23H2、Windows12対処

今秋Win11 23H2への更新、2024年予定Windows 12へのアップグレードに備え、現在のWin11 Updateを理解しておく必要があります。

Update PCトラブル発生時は、本稿で示したオプション更新Update前のバックアップ/リカバリや、場合によってはOS再インストールとなります。トラブル対処準備を忘れずに行いましょう!

Afterword:Windows Insider ProgramとKB5030310

開発者向けWindows Insider Programは、Microsoftが動作確認・保証は行わない先行プログラムです。これに参加する開発者は、Win11 23H2先行テストができます。

一方、KB5030310もWin11 23H2部分的先行プログラムです。Insider Programと似ていますが、動作確認済みと筆者を含めた一般ユーザは考えます。しかし、多くの不具合が報告されています。これが、150もの新機能提供KB5030310を、Win12機能テストなどと不審を抱かせる根拠です。

AI Copilotは、CUI、GUIに次ぐ第3の新しいPCインタフェースかもしれません。このAIベース新インタフェース完成に、Microsoftは開発者より一般ユーザレスポンスが欲しいハズです。新インタフェース実装Win12は、このインタフェースに最低でも1年の開発期間は必要でしょう。

MCU開発ツールの1つとしてWindowsを捉える筆者は、MicrosoftがWin12開発用としてWin11 23H2を考えてないことを祈るのみです😢。


Windows 12サブスクリプションor買い切り?

買い切り型Office 2021とサブスクリプション型Office 365 (Microsoft 365)
買い切り型Office 2021とサブスクリプション型Office 365 (Microsoft 365)

Microsoftソフトウェアの購入方法には、買い切り型と毎月定額使用料を支払うサブスクリプション型があります。

日本市場で優勢な買い切り型Office 2019のメインストリームが、今週10月10日に終了しました。今後は、延長サポートのみです。代替ソフトウェアは、買い切り型Office 2021、または、サブスクリプション型Office 365(=Microsoft 365)です。

本稿は、Windows 12やMicrosoft Officeの購入方法とセキュリティを考察します。

買い切り型Office 2019メインストリーム終了

買い切り型Office メインストリーム 延⻑サポート
Office 2019 終了:2023年10月10日 2年間:2025年10月14日
Office 2016 終了:2020年10月13日 5年間:2025年10月14日
Office 2021 2026年10月13日 予定なし

PCプレインストールOfficeなどOffice 2019のメインストリームは、10月10日に終了しました。メインストリーム中は、仕様や機能変更、セキュリティ更新がオンラインで提供されます。これに対し延長サポート中は、セキュリティ更新のみの提供です。

現状機能に不満が無い方は、延長サポート終了の2025年10月14日までOffice 2019を使用できます。同様に、Office 2016も延長サポート2025年10月14日まで使用可能です。

延長サポート短縮

メインストリーム終了後、延長サポートを5年間行うのがMicrosoftの過去慣例でした。

Office 2016は、この慣例に沿っています。しかし、Office 2019延長サポートは、2025年までの2年間に短縮されました。そして、Office 2019の買い切り型代替のOffice 2021は、延長サポートの予定がありません。

つまり、買い切り型Officeの全サービスは、2026年10月13日で終了します。

Microsoftは、買い切り型Officeの提供を止め、Office 2021メインストリーム終了の2026年10月13日以降は、サブスクリプション型Office 365へ全面移行したいのではないかと推測します。

2026年は買い取り型Officeからサブスクリプション型Officeへ移行必須
2026年は買い取り型Officeからサブスクリプション型Officeへ移行必須

Office 2019/2016延長サポート終了の2025年10月14日からOffice 2021メインストリーム終了の2026年10月13日までの1年間は、ユーザが買い切り型からサブスクリプション型へ移行する猶予期間と言えます。

Windows 11 23H2

2024年にWindows 12が新発売されるのは、確実なようです。Windows 12もまた、サブスクリプション型か、従来のWindows 11から無償アップグレードかの話題がありました。結局、サブスクリプション型は無さそうです。

一方、今秋配布Win11 23H2は、予想に反し150以上ものAI関連を含む大型機能追加が予定されています。しかし、これら追加機能は、初期状態では無効化されており、順次有効化されるという異例の方法で提供されます。

筆者は、このWin11 23H2の異例提供方法を、2024年発売のWin 12機能テストという位置付けと推測します。AI出力の妥当性や安定性も、このWin11 23H2で検証されるでしょう。

既に、Win11 23H2プレAI機能提供、Win11 22H2 累積更新プログラムKB5030310は、多くの不具合が報告されています。これらを解消し、安定/安心なAI新機能をWin11 23H2でテスト後に、改めて2024年秋にAI機能強化Win12として発売すると思います。

脚光を浴びているWin AI機能(Copilot)ですが、その安定化には、1年程度の実証テストは必要になるでしょう。また、ユーザ側のAI評価もこの実証には不可欠です。

Microsoftがこれらを試し、Win AI自身を成長させるには、人気が無いWin11最終版、Win11 23H2で1年テスト運用すると判断しても不思議ではありません。

つまり、Win11 23H2不具合を避けたいユーザは、現行のWin11 22H2を使い続け、来年秋にWin12へアップグレードするのも一案です。

サブスクリプション型Windows 12

サブスクリプション型Windows 12
サブスクリプション型Windows 12

Office 2021とOffice 365同様、サブスクリプション型Windows 12も、買い切り型Win12と並行して販売されるかもしれません。現行のWindows 365が、これに相当するか筆者は、判りません。

しかし、サブスクリプション型で個人向けWindows 12が提供されれば、常に最新セキュリティや新Win AI機能を安定提供できるなど、Microsoft/個人ユーザともにそのメリットは大きいと思います。

Summary:高セキュリティなサブスクリプション型

急増、急変するウイルスやサイバー攻撃に対し、セキュリティ対策は必須です。しかもその対策は、常に最新版がタイムリーに提供される必要があります。

しかし、買い切り型の現行Windowsは、毎月2回(第2/4水曜)のアップデートです(緊急アップデート除く)。しかも、そのアップデート適用は、ユーザ操作に任されています。

これがサブスクリプション型に変れば、常時、最新セキュリティ対策がMicrosoft側で実施できます。ウイルス蔓延やサイバー攻撃を防ぐ効果は大きいでしょう。

つまり、サブスクリプション型ソフトウェアは、買い切り型よりも高いセキュリティが期待できます。

セキュリティ脅威に対抗するには、端末セキュリティは、パスワードからパスキーへ、WindowsやOfficeなどのPC必須ソフトウェアは、買い取り型からオンライン接続サブスクリプション型へ移行するのは、自然な流れだと思います。


MCU AIトレーニング資料

STマイクロの日本語トレーニング資料(組込みAI編)
STマイクロの日本語トレーニング資料(組込みAI編)

STマイクロの日本語トレーニングサイト内に、9個の組込みAI資料を見つけたので紹介します。日本語のMCU AI資料は嬉しいです。STマイクロへのログインが必要ですが、どなたでも閲覧(PDFダウンロード)可能です。

MCU AIトレーニング資料8個の内容

トレーニング資料8個の内容です。1~8の内容に加えて10月3日に行われたウェビナー資料:コンピュータ・ビジョン編の計9個MCU AI資料が公開中です。

MCU AIトレーニング資料8個の内容
MCU AIトレーニング資料8個の内容

AI解説(Page 2)記載の8トレーニング資料の説明範囲:「AI基本概念には触れるが、AI、深層学習、Pythonプログラミングの詳細解説はしない」は、Edge AI/MLツールを利用しMCU開発を行う者に最適な内容だと思います(MCU AI現状と対策、1章:Edge MCI AI課題数参照)。

1~8資料は、読者のお好きな時間に読んでください。

本稿は、9個目のウェビナー資料:コンピュータ・ビジョン編から筆者印象に残った点をピックアップします。

コンピュータ・ビジョン編もくじ

コンピュータ・ビジョン編もくじ
コンピュータ・ビジョン編もくじ

ピックアップしたコンピュータ・ビジョン編のもくじです。コンピュータ・ビジョンとは、MCUが、AIを使って画像、動画、その他入力データから目的とする情報を抽出する手法です。

印象点が以下です。

  • Edge AI/ML MCU(Tiny ML Devices)は、2030年に25億台と予測(P4)
  • Edge AI/ML MCUは、クラウド接続無しで低レイテンシ(P9)
  • STM32MCUのAI開発ツールは、STM32Cube.AIとNanoEdgeStudioの2種類あり(P12)
  • 主要STM32汎用MCUは、AI開発ツール2種類両方が使える(P13)
  • STM32Cube.AIは、深層学習アプリケーションを簡単実現(P18)
    • ※NanoEdgeStudioは、前回投稿に記載中
    • ※深層学習とは、ニューラルネットワークによる機械学習手法

つまり、MCU開発者は、2030年の数年前までに、ソフトウェアで他社差別化できるEdge AI/ML(組込みAI)知識獲得と開発が必要と言えます。

Summary:STM32Cube.AIとNanoEdgeStudio差は継続調査

Edge AI/ML MCUが、クラウド接続不要でスタンドアロン動作であることは、大歓迎です。RTOSや高度セキュリティTrustZoneなどのネットワーク技術の必要性が低いからです。

従って、Edge AI/ML MCU開発は、ベアメタル開発の延長線上にあると言えます。25億台/2030年予測の内、Edge AI/ML MCU比率がどの程度かは不明です。しかし、RTOS/TrustZone MCU比率より多いことを筆者は期待します。

前回投稿のMCU AI開発ツール:NanoEdgeStudioと本稿のSTM32Cube.AIの特性差が何かは、現在不明です。もう少しAI/ML知識を獲得すれば、判ってくると思います。継続調査項目とします。

Afterword:判り難さは、馴染み無い用語起因

RTOS/TrustZone MCUよりもEdge AI/ML MCUの方が開発簡単とは言いません。

しかし、ベアメタル開発に近いのはEdge AI/ML MCU開発です。IoT MCUに必須なRTOS/TrustZoneは、AI/MLよりも馴染みが薄い用語が多く、しかも開発にその詳細理解も必須です。

一方、AI/MLは、AI解説編が示すようにAI/ML詳細理解よりMCU AIツールの効率的活用で十分開発できそうなことも理由です。

※望むらくは、AI/ML同様、RTOS/TrustZone開発支援ツールがあると嬉しいですね!

この意味でSTマイクロの組込みAI日本語資料は、MCU開発者に非常に役立ちます。是非一読(何度も読むこと)をお勧めします。馴染み無いAI/ML用語が、だんだん身近なります!

10月2日発表のWindows AI/CopilotもMCU AI/ML普及の追い風になるハズです。


MCU AI現状と対策

今秋リリースWindows 11 23H2は、AIによる作業支援:Copilot機能が追加される予定です。AIがより身近になるでしょう。

AIは、MCU開発へも押し寄せつつあります。ルネサス、STマイクロのEdge MCU AI現状と対策を示します。

MCU開発者に押しよせるAI/MLの風
MCU開発者に押しよせるAI/MLの風

Edge MCU AIとWindows AIの課題数

1: MCU開発へAIをどのように実装するか、2: 実装したAIをどのようにMCU製品メリットへ変えるか、そして、3: Edge MCU AI製品をどのように顧客に活用してもらうか、MCU開発者は、これら課題解決が必要です。

一方、Windows AIは、3:相当 のPCユーザとしてどのようにWindows AIを活用するかが課題です。

Edge MCU AIは、使うだけでなく開発も必要ですので課題の数が異なります。MCUベンダ各社は、AI MCUツールを発表しています。

本稿は、特に1:AIのMCU実装についてルネサス、STマイクロの現状とMCUソフトウェア開発者の対策を示します。

ルネサス:Reality AI Toolをe2 studioへ統合

2023年9月21日、ルネサスは、Edge AI専用ツール:Reality AIを、既存MCU開発環境:e2 studioへ統合しました。これにより、AIプロジェクトとe2 studio間のデータ共有が可能となり、開発効率が上がります。

動画はコチラ

STマイクロ:NanoEdge AI Studio

NanoEdge AI Studio Workflow(出展:NANOEDGE AI STUDIO V3)
NanoEdge AI Studio Workflow(出展:NANOEDGE AI STUDIO V3)

2023年8月3日、STマイクロは、Edge AI 専用ツール:NanoEdge AI StudioとST開発ボードを使って簡単・迅速にAI/ML:Machine Learning関連データを収集・検証し、機械学習アルゴリズムをわずか数ステップで生成できると発表しました。

動画はコチラ

AI/ML必然性

既存MCU開発環境へEdge AIツール出力をライブラリとして取込むことは、ルネサス/STマイクロ共に簡単です。

しかし、非力なMCUに最適なAI出力ライブラリを得ることが簡単か否かは、現在、筆者は分かりません。多分、この判断には、多少なりともAI/ML知識が必要になるでしょう。

AI/ML担当者とEdge MCU担当者、2人いれば問題は少ないです。しかし、Edge MCU開発者が両者を兼務することが、既存MCU IDEへAIツール統合の流れとマッチすることから必然だと思います。

ハードウェアとソフトウェア担当が別れるように、AI/MLとMCUソフトウェア担当が分離することを筆者は想定しにくいです。

Summary:急増Edge MCU AI対策

Edge MCU AI製品とAIなしのMCU製品を比較したSTマイクロの動画(7:34)は、興味深いです(リンク先下方に動画あり)。AI実装有無が、MCU製品の差別化要因になることを示しています。

また、Windows AI:Copilot機能の普及は、MCU製品顧客へも大きな影響を与えると思います。PCでのAI活用事例が多くなり、AIメリットを認識する顧客が増えるからです。

MCU開発者は、Windows AI普及に合わせて増加するであろうEdge AI/ML知識も備えておく必要があります。MCUベンダ各社は、Edge AI/MLセミナを活発化します。是非参加して、基礎知識を獲得しましょう!


STM32C0で最新32ビットMCU開発短期習得

STM32 Nucleoボード一覧(1M Flash以下 出展:STM32 MCU Developer Zone)
STM32 Nucleoボード一覧(1M Flash以下 出展:STM32 MCU Developer Zone)

STマイクロの1MバイトまでのFlash搭載STM32 Nucleo評価ボード一覧です(STM32 MCU Developer Zone掲載図から抜粋)。紺色のMainstream:汎用MCU評価ボードが多いことが判ります。

今回は、2023年3月発売の評価ボード:NUCLEO-C031C6を使って、最新Cortex-M系32ビットMCU開発を短期習得する方法を示します。

1. 短期習得に適すSTM32C0シリーズ

この評価ボードのMCU:STM32C031C6(Cortex-M0+/48MHz、Flash/32KB、RAM/12KB、LQFP48)は、STマイクロが8/16ビットMCU置換えを狙った新しい32ビットSTM32C0シリーズです。開発のし易さ、価格の低さ、入手性の良さが特徴です。

STM32C0シリーズの「C」は、Compact、またはCost-effectiveのCを表していると思います。同じLQFP48のSTM32G0シリーズとブロッグ図を比べると差分が判ります(「G」は、多分Generalを表す)。

STM32C031とSTM32G081の比較
STM32C031とSTM32G081の比較

どちらもCortex-M0+コア採用の汎用MCUです。違いは、STM32C0は、アナログや通信などの内蔵周辺回路、Flash/RAM容量を、8/16ビットMCU置換目的に必要最小限にし、G0比コストダウンを図っていることです。

つまり、STM32C0は、STM32汎用MCUシリーズの中で、最もBasicな周辺回路のみを備えたシリーズです。この周辺回路の少なさが、MCU開発をシンプルにし、短期習得に適す理由です。

2. 入手性・開発拡張性良いNUCLEO-C031C6評価ボード

NUCLEO-C031C6
NUCLEO-C031C6

STM32C0搭載の評価ボードNUCLEO-C031C6は、低価格で入手性が良く、ボード上にユーザLED/SW、拡張シールド接続用Arduinoコネクタ、デバッガ(ST-LINK/V2-1)が実装済みです。

関連投稿:Arduinoコネクタが評価ボードに多い理由

PCとUSB接続すれば、MCUプログラミングとデバッグ、PC Tera-Termで評価ボードとのVirtual-COM通信が可能です。Virtual-COMは、MCUでの様々な処理結果をPCで直接確認できるので便利です。

NUCLEO-C031C6が、最初の図で多くの汎用MCU評価ボードの一番下(Basic)であることもポイントです。

NUCLEO-C031C6で開発したHAL API利用ユーザソフトウェアは、MCU差に依存しない移植性の高さがありますので、処理性能不足時は、より上側の高性能ボードへユーザソフトウェア載せ替えも容易な訳です。

関連投稿:HALとMCUソフトウェア開発

3. サンプルコードが多いNUCLEO-C031C6評価ボード

MCUソフトウェア開発には、慣れが必要です。この慣れには、STM32C0シリーズサンプルコードを読み、かつ動作させるのが近道です。

NUCLEO-C031C6は、全73個のサンプルコード動作環境として使えます(2023年9月現在)。これは、他のSTM32C0評価ボードと比べ格段の多さです。

お勧めは、下図に示すHAL API利用の16個サンプルコードです。この16個HALサンプルコードだけを理解しても、STM32MCU開発初心者卒業と言えると思います。

NUCLEO-C031C6で動作するHAL APIサンプルコード(出展:AN5892)
NUCLEO-C031C6で動作するHAL APIサンプルコード(出展:AN5892)

初めはサンプルコードを詳しく理解する必要はありません。初期設定と無限ループの2つに分けて動作させれば、コード内容は自ずと判ってきます。ボード搭載デバッガは、ブレークポイント設定やRAM内容表示もできるので便利です。

関連投稿:組込み処理の基本のキ

4. 情報整理に役立つSTM32C0オンライントレーニング

STM32C0オンライントレーニングは、MCU開発情報の整理・習得確認に便利です。

但し、初めからこれらトレーニング資料を読むことはお勧めしません。おぼろげながらでも、開発全体像が見えた段階で、各資料読むと理解・整理が進むからです。前章サンプルコードを試した後がお勧めです。

サンプルコードやトレーニング資料は、エキスパートが作成します。残念ながらエキスパート作成資料は、初めての方には難解だと思います。

MCU習得も「習うより慣れろ」が当てはまります。案外簡単なことでも文章では難解さが強調されます。評価ボードとサンプルコードがあれば、とにかく動作が目視確認できます。

トレーニング資料は、動作目視後に頭の中を整理し、習得度を確認する際に便利と言えます。

Summary:STM32C0で最新32ビットMCU開発の短期習得

本稿は、最新汎用STM32C0を使って、回り道や障壁がなるべく低くなるMCU開発習得方法を示しました。

  1. 8/16ビット置換え用周辺回路厳選の低価格32ビットMCU:STM32C0
  2. デバッガとユーザLED/SW実装で入手性良いNUCLEO-C031C6評価ボード
  3. NUCLEO-C031C6で即実行できる多数の周辺回路サンプルコード
  4. 習得・情報整理に役立つSTM32C0オンライントレーニング

これらSTM32C0シリーズ特徴を持つ4つの開発環境を使うと、個人でも最新STマイクロ32ビットMCU開発の短期習得が簡単にできます。

Afterword:個人レベルスキル向上で老化日本対策

老化は、国レベルでも進行します。日本の少子・高齢化がもたらす2040年問題。全体同調意識の強い老化日本では、その対策は期待できません。

残る策は、個人レベルのスキル向上です。IoT MCU開発スキルは、激変技術世界でも生き残る有力策の1つと思います。


NTT Innovative Devices

2023年9月6日、IOWN光電融合技術の規格・設計・開発・製造・販売を行うデバイス製造新会社:NTT Innovative Devicesの記者会見がNTTブログに掲載されました。

新会社:NTT Innovative Devicesは、NTT研究所の光電融合部門と最先端光電子部品メーカ:NTTエレクトロニクスの2者を統合しました。

新会社NTT Innovative Devices(出展:記者会見記事)
新会社NTT Innovative Devices(出展:記者会見記事)

NTT Innovative Devicesは、光電融合デバイス市場をネットワークだけでなくコンピューティングへも広げること、そして次世代ネットワークの電力問題を解決するミッションを持ちます。

新会社NTT Innovative Devices

NTT Innovative Devices体制(出展:記者会見記事)
NTT Innovative Devices体制(出展:記者会見記事)

NTT Innovative Devicesは、光電融合デバイスの研究開発とデバイス製造、北米、欧州、ホンコンなど世界規模の販売が目標です。

会見で示された事業戦略も、実践的かつアグレッシブで、従来にない新しい研究・開発・製造・販売スタイルを持つ会社と言えます。

従来のNTTグループ企業とは異なる日本に固執しないビジネス展開が期待できそうです(関連投稿:日本固執Change)。

地球沸騰化の電力不足を救う光電融合デバイス

デジタル世界を支えるクラウドのデータ量がこのまま増え続けると、データセンター消費電力はさらに増加し、地球温暖化へ繋がります。参考資料:光電融合技術とは、2023年8月29日、NTTブログ。

国連グテーレス事務総長が示した危機感「地球沸騰化」は、絶対に避けなければなりません。

光電融合技術は、コンピュータやネットワーク内の電気処理と光処理を融合し、電力効率100倍、伝送容量125倍、エンドエンド遅延1/200が目標の革新的デバイス技術です(関連投稿:IOWN 1.0提供開始)。

IOWN特徴(出展:NTTサイト)
IOWN特徴(出展:NTTサイト)

Summary:低消費電力化はIoT MCUへも

個々の消費電力は僅かでも、世界中で莫大な投入数量が予想されるIoT MCU。

ネットワークによる電力不足や地球環境変化は、IoT MCU開発も影響を受ける可能性があります。MCU開発者は、処理効率だけでなく、低消費電力化を意識した開発も重要になりそうです。

コチラの投稿に、間欠的な無限ループ動作と空き時間SleepによりMCU消費電力を下げる基本動作を示しています。参考にしてください。

Afterword:今年の猛暑

今年の日本の夏は暑かった。未だ猛暑は続いていますが、異常気象は電力不足に直結します。

例えば、自動車排出ガス規制のように、地球規模のエネルギー危機は、我々MCU開発者へも低消費電力開発を義務化する動きに繋がるかもしれませんね。


HALとMCUソフトウェア開発

HAL:Hardware Abstraction Layer APIを使えば「MCUデバイスに依存しないソフトウェア開発」ができる。そこで、汎用MCUでプロトタイプソフトウェアを作り製品MCUを選択。これが、前投稿でした。
主題は、製品MCU選択方法です。

今回は、この方法の基になる「MCUデバイスに依存しないソフトウェア開発ができる」部分を、もっと具体的に説明します。

MCUソフトウェア開発の鍵HAL API

前投稿最後に示したSTM32デバイスとユーザアプリケーション移植性の両方を満たすHALスタック図を具体化します。

弊社STマイクロ関連テンプレートに採用したSTM32F0/F1/G0/G4デバイスとNucleo評価ボード、一般的なベアメタルソフトウェア開発を想定し作り直したHALスタック図が、下図です。UtilityやMiddlewareは使いませんので空白にしています。

User ApplicationとHAL間は、HALドライバを用います。例として、GPIO接続のLEDをトグル出力するHAL API関数:HAL_GPIO_TogglePin(LED_GPIO_Port, LED_Pin)で説明します。

ベアメタルソフトウェア開発のHALスタック図
ベアメタルソフトウェア開発のHALスタック図

HAL_GPIO_TogglePin(LED_GPIO_Port, LED_Pin)

STマイクロのHALドライバは、接頭語に必ずHAL_が付きます。ソース上も判別し易いです。

HAL_GPIO_TogglePin(xPort, yPin)は、MCU Port名xのPin番号yを使うGPIOに対して、トグル(HighからLow、またはLowからHigh)出力するドライバ関数です。

例えば、STM32G0評価ボード:Nucleo-G071RB実装ユーザLED:LD4は、PA5接続です。トグル出力は下記です。

HAL_GPIO_TogglePin(GPIOA, GPIO_PIN_5)   //物理GPIOポートA、5番ピンをトグル出力

STM32G4評価ボード:Nucleo-G474RE実装済みユーザLED:LD2も、同じくPA5接続ですので、全く同じHALソフトウェア記述で、ユーザLD2のトグル出力ができます。

Nucleo評価ボードBSP

Nucleo-G071RBとNucleo-G474REは、どちらも64ピンMCUパッケージで、たまたま同じ物理記述ポート名とピン番号が、ユーザLEDに接続済みでした。

しかし、一般的には開発MCUや評価ボードで異なるポートとピンへユーザLEDが接続されます。

そこで、物理記述GPIOAやGPIO_PIN_5と、評価ボードの論理記述LD2やLD4を結び付けるのが、BSP:Board Support Packageです。この結び付けにより、異なる物理記述ポート、ピン番であっても、同じ論理記述のDemonstrationやUser ApplicationでLEDを動作させることが可能になります。

具体例で示すとNucleo-G071RBのBSPは、STM32CubeIDEのmain.hに展開され、LD4関連は下記です。

#define LD4_GPIO_Port  GPIOA  //LD4_GPIO_Portを物理GPIOポートAと定義
#define LD4_Pin  GPIO_PIN_5     //LD4_Pinを物理5番ピンと定義

Nucleo-G474REのBSPは、LD2関連main.hが下記です。

#define LD2_GPIO_Port  GPIOA  // LD2_GPIO_Portを物理GPIOポートAと定義
#define LD2_Pin  GPIO_PIN_5     // LD2_Pinを物理5番ピンと定義

LD2とLD4の部分が異なります。BPSは、評価ボードのハードウェア毎に異なります。

各評価ボードのソースコードを読む時は、LD2やLD4と論理記述した方が、物理記述のGPIOAやGPIO_PIN_5よりも判り易いため、これらdefine文を使います。

評価ボード非依存ソフトウェアテクニック

評価ボード単位のソースコードを読む時は、実装中のLD2やLD4と論理記述した方が判り易いです。

では、様々な評価ボードで共通に動作するUser Applicationを開発する場合は、どうすれば良いのでしょうか?

答えは簡単です。論理記述をLD2やLD4から、より上位の論理記述へ結び付ければOKです。例えば、下記です。

#define BOARD_LED_PORT  LD4_GPIO_Port    //BOARD_LED_PORTをLD4_GPIO_Portと定義
#define BOARD_LED_PIN  LD4_Pin         //BOARD_LED_PINをLD4_Pinと定義

このように評価ボード単位のdefine文を、上位実装LEDや論理ピンへ再定義すれば評価ボード非依存のソフトウェアが開発できます。

define文は、開発者が、ソースコードを読み易くするための機能です。define文で再定義しても、コンパイル時に最終物理対象(GPIOAやGPIO_PIN_5)に置き換わるため、処理速度が遅くなるような弊害はありません。

STM32Cube MCU Packages Manager

さて、HALスタック図では1個のHALも、実はMCU毎に異なります。

このMCU毎に異なるHALを、STM32CubeIDEへ実装するツールが、STM32Cube MCU Packages Managerです。

MCU毎に異なるFirmware(HAL)をSTM32CubeIDEへ実装するSTM32Cube MCU Package Maneger
MCU毎に異なるFirmware(HAL)をSTM32CubeIDEへ実装するSTM32Cube MCU Package Maneger

STM32Cube MCU Packages Managerは、プロジェクトのハードウェア設定ファイル(icoファイル)を開いた状態で、Help>Manage Embedded Software Packagesで表示できます。上図は、STM32C0/F0/F1/G0/G4のPackage部分を抜粋しています。

このSTM32Cube MCU Packages Managerで、最新のFirmware Packageを開発に使うか、それとも、古いFirmware Packageを使うかが選択できます。上図は、STM32G0ソフトウェア開発に最新Firmware V1.6.1を開発に使うことを選択中の例です。

Firmware Package版数の訳

このMCU Firmware Packageが、HALの実体です。

例えば、STM32G0 Firmware V1.6.1は、旧Firmware V1.6.0と上位のUser Applicationに対しては同じHAL APIを提供しますが、その実体は、旧HALのバグ修正や販売中のSTM32G0 MCUに応じて中身が変わります。

つまり、このFirmware Packageが、MCU差や過去のHAL版に依存しないHAL APIを、User Applicationへ提供する仕組みそのものです。

MCU発売後、経過時間が長くなると、同一MCUでも多くのFirmware Package版が選択可能になります。

お勧めは、最新Firmwareです。

複数のFirmware版が存在する理由は、STマイクロがMCU供給を最低10年保証しているためです。新MCUパッケージ追加発売時は、新しいFirmware版で対応します。簡単に言うと、MCU開発履歴が版数に現れる訳です。

つまり、開発者が、顧客提供時Firmwareをそのまま継続開発に使いたい場合には、最新版だけでなく過去のFirmwareも選択肢になる訳です。

実際の選択は、icoファイルのProject Managerタブの一番下、Firmware Package Name and Versionで設定します。

Summary:HAL APIソフトウェア開発

BSPとMCU Firmwareによりハードウェア依存性が無いHAL APIsが提供
BSPとMCU Firmwareによりハードウェア依存性が無いHAL APIsが提供

MCUソフトウェアは、HAL APIを使うとMCUに依存しない移植性の高いUser Applicationソフトウェアの開発ができることを説明しました。

User ApplicationとHAL API間のハードウェア依存性を無くす手段として、評価ボード毎に異なるBSPや、MCU毎に異なるMCU Firmware Package(HAL)を用います。

汎用MCUを使ったHAL APIプロトタイプ開発ソフトウェアは、MCU変更に対して移植性が高いため、User Applicationソフトウェアの資産化も期待できます。

Afterword:MCU説明の難しさ

本稿の内容は、中級以上のMCU開発者にとっては、自明の理です。しかし、この自明の理を説明するのは、結構大変です。本稿も、説明不足の箇所が多々あります。

MCU開発では、この自明の理の部分が多いため、開発者レベルを上げる障壁は高くなります。例えて言うと、スマホが初めての方に、その取扱い方法を文書だけで説明するようなものです。

本稿は、STマイクロのHALを例に説明しました。これは、現在MCU毎に販売中の弊社STM32F0/F1/G0/G4テンプレートを、MCU共通のSTM32MCUテンプレートへ発展させる布石でもあります。

本稿内容が、すんなり判る開発者には、STM32共通MCUテンプレートは、多分不要(ご自分で開発できる)ですし、判らない方には、STM32共通テンプレートよりも個別STM32F0/F1/G0/G4テンプレートの方が使い易いと思っています。

今回のような長文は、筆者の苦手な分野です。が、時々は挑戦すべきと考えております。ご質問や判り難い箇所のご指摘も大歓迎です。読者の方々からのレスポンス、お待ちしております。



ソフトウェア視点のMCU選び方

MCU選び方をソフトウェア開発視点から示します。
具体例としてSTマイクロのSTM32MCUで説明しますが、他MCUベンダでも同様です。

Summary:HALドライバ+汎用MCUプロトタイプ開発で選定

例え同じベンダでも色々な内蔵ハードウェアと、処理性能、価格も異なるMCUは、製品MCUの選択肢が広すぎるのが難点です。

製品MCUハードウェア選定ミスを少なくし、かつ、ソフトウェア開発も効率的にできる方法として、汎用MCUを使いHALドライバで早期に製品プロトタイプ開発を行い評価する方法を示しました。

製品MCU選択肢の広さ

STマイクロのSTM32MCUポートフォリオ(出展:STM32ウェビナー資料)
STマイクロのSTM32MCUポートフォリオ(出展:STM32ウェビナー資料)

ベンダ例としてSTマイクロのCortex-Mコア系MCU選択肢の広さを示します。

STM32MCUポートフォリオを性能やシリーズ別に示したのが上図です。この図でターゲット製品のMCUシリーズを大まかに選定するのが、第1選定段階です。

第2段階では、各シリーズのFlash/RAM容量、内蔵ADCやUASRT数など製品時に必要になる周辺回路からハードウェア的に最適なMCUデバイスを選定します。

STM32MCU製品セレクタ例
STM32MCU製品セレクタ例

この選択方法は、MCU処理性能やソフトウェアを格納するFlashやRAM容量は、最終製品にならないと実際は判りません。しかし、周辺回路や動作電圧などのハードウェア条件は、明らかなのでこれらからMCU選定はできます。

但し、メインストリーム、つまり汎用MCUであっても、STM32C0、STM32F0/F1、STM32G0/G4シリーズと選択肢があり、処理性能も異なります。更に、ハイパフォーマンスSTM32H5/H7や、超低消費電力STM32U5などの汎用MCU比性能を極めたシリーズもあります。

これら多く広いMCU選択肢から、入手性やコストから製品MCUを決めるのが、一般的に用いられる「ハードウェア視点MCU選択方法」です。

HALドライバソフトウェア開発メリット

HALとは、Hardware Abstraction Layerドライバです。このハードウェアは、MCUを指します。つまり、MCU差を抽象化=隠して開発できるAPIを上位ユーザアプリケーションへ提供するのがHALです。

例えば、STM32C0でも、STM32G4でも同じHALドライバでGPIOアクセスができます。つまり、HALドライバを利用すれば、STM32C0とSTM32G4で同じアプリケーションが使える訳です。

従って、STM32C0で性能不足の場合には、開発ソフトウェアはそのままSTM32G4へ移植ができます。逆の性能過多の場合でも同様です。ユーザ開発アプリケーションのMCU間移植性が高いのがHAL利用ソフトウェアのメリットです。

HAL+汎用MCUプロトタイプ開発

汎用MCUを使って製品のプロトタイプ開発を行えば、製品化時、よりハイパフォーマンスMCUの必要性や、より低消費電力MCUの必要性が、使用した汎用MCUとの相対比較で可能です。

また、HALを使えば、プロトタイプ開発アプリケーションが製品MCU上でも動作します。

つまり、製品MCUのオーバー/アンダースペック選定ミスを減らす評価ができ、かつ、プロトタイプ開発アプリケーションの製品移植性も高いため、結果として効率的な製品開発が可能になるのが、「ソフトウェア視点MCU選択方法」です。

拡大MCUハードウェアとMCUソフトウェア移植性を満たすHAL

拡大STM32MCUデバイスとユーザアプリケーション移植性の両方を満たすHAL
拡大STM32MCUデバイスとユーザアプリケーション移植性の両方を満たすHAL

MCUベンダは、最初の図で示したように進化する半導体製造プロセスやよりアプリケーション寄りのコストパフォーマンス最適MCUデバイスを提供し続けます。

MCU製品開発側は、増え続けるMCUデバイス間のソフトウェア移植性や開発時間の短縮も必要です。

HALドライバは、これら進化・拡大するMCUハードウェアとMCUソフトウェア移植性要求を同時に満たす機能です。

HALによる汎用MCUプロトタイプ開発は、参考になるサンプルコードが多いため開発時間も少なく、開発アプリケーションがユーザ資産として多くのMCUでの活用も期待できます。

Afterword:汎用MCU選び方

汎用MCUも多くの選択肢があります。STマイクロのお勧めデバイスは、最新製造プロセスで入手性が良く低価格なSTM32G0/4シリーズ評価ボードです。

Flash/RAM容量も入手性優先で選定して構いません。容量不足時は、機能分割しプロトタイプ化すれば済むからです。

ソフトウェア視点MCU選択方法は、プロトタイプ開発が必要です。短期間で効率的に製品プロトタイプを仕上げ、このプロトタイプから製品MCU要求条件やソフトウェア動作ポイントなどを評価します。

プロトタイプと最終製品が近ければ近い程、これら評価精度は上がります。しかし、精度に拘る必要はありません。製品企画時に、とにかく製品のように動くプロトタイプを早く仕上げ、これから製品MCUを評価すれば、闇雲に選定するより良いからです。

MCU開発者は、手元にベンダ汎用MCUシリーズの評価ボードと弊社テンプレートがあれば、直ぐに製品のように動くプロトタイプが仕上がります。


パスワードとパスキー

パスワードからパスキーへ
パスワードからパスキーへ

最新Chrome 116は、パスワードマネジャーデザインが新しくなり、パスワードの保存と入力が容易になりました。そこで本稿では、「パスワード」と最近話題の「パスキー」の筆者現状理解を示します。

参考資料:
1. パスワードのない世界へのマイルストーン「パスキー」、2023年6月14日

2. AppleやGoogleが対応を進める「パスキー」とは、2023年8月7日

とにかくセキュリティ関連記事は、判り難いのでポイントを簡単にまとめました。

パスワード問題

どんなに複雑なパスワードでも、それを入力したのがユーザ本人かが確認できないこと、パスワードそのものがネットワーク上に流れ第3者が盗み見ることができること、この2点がパスワード問題。

パスキー解決策

パスワード問題解決のため、指紋認証などの本人確認機能を持つ端末(PC/スマホ)のログインにパスキーを使う。パスキーで本人認証後、ネットワークログイン時に送受する情報は、端末での本人認証結果と高度に暗号化された情報。これらは、第3者が盗み見ても本人成り済ましは不可能(に近い)。

パスキーは端末間の移行・同期可能

スマホ紛失やPC買換え時の利便性向上のため、アカウント名などのユーザ情報(クレデンシャル情報)をクラウドアカウントに紐づけることによりパスキー端末間同期が可能。現状対応クラウドは、Apple、Google、Microsoft。

クラウド利用により移行利便性も兼ね備えたパスキーは、パスワードに代わるログイン方法として有力。

パスキー運用ChatGPT回答

パスキー運用に関してEdgeのChatGPT(Bingチャット)でQ&Aを得ました。

Q1)パスキーを間違えたら?
A1)パスキーは、入力回数に制限あり。一定時間経過後、再入力可能。パスキーを忘れた時は、端末リセット必要。

Q2)複数端末で同じパスキーは使える?
A2)複数端末間で同じパスキーを使える。

Q3)パスキーを間違えてリセットした時の複数端末の影響?
A3)リセットは、その端末のみ。他の端末は影響なし。

つまり、複雑なパスワードの代りに、4桁または6桁のパスキーさえ覚えておけば、同じパスキーを複数端末で使ってもログインセキュリティは安心のようです。

Summary:パスワードからパスキーへ

クラウドアカウントを組み合わせたパスキーログイン方法
クラウドアカウントを組み合わせたパスキーログイン方法

例えパスワードマネジャーが使い易くなっても、パスワード自体の問題(本人未検証)解決にはなりません。

パスキーと本人認証端末、クラウドアカウントを組み合わせたパスキーログイン方式(本人検証結果+所持情報)は、パスワードレスアクセスとして期待できそうです。

Afterword:知識情報は4/6桁が限界?

パスキーが4/6桁なのは、指紋/顔認証などの本人検証が失敗した時の代替入力のためと思います。PC/スマホログインに指紋/顔認証が「先」で、認証失敗時にパスキー入力を「代り」に求めるからです。
スマホは、認証成功時でも定期的にパスキー入力を求め、パスキー知識情報を忘れないよう保全します。

個人が無理せず覚えられる数字は、この桁位でしょうか? IoT MCUデバイスなら桁数をもっと増やし、セキュリティレベルを上げることもできます。

パスキーの仕組みは、指紋/顔など変えようがない超重要認証データは端末のみに保存し、ネットワークログインは認証結果など漏れても支障が少ない情報で行うことでセキュリティを高く保つ、と筆者は理解しています。

但し、ネットワークログインは、当面使い慣れたパスワードも併用するでしょう。Chrome 116のパスワードマネジャーで、パスワード自体を強固にすることも必要です。