TI)CCS Cloud IDE

Texas InstrumentsのIDE:Code Composer Studioのクラウド版が、CCS Cloud IDEです。PCインストールの従来CCS Desktop IDE、CCS Cloud IDE、前回投稿Energia IDEの3 IDE比較が下記です。

CCS DesktopとCCS Cloud、Energia IDE比較(出典:TIサイト)
CCS DesktopとCCS Cloud、Energia IDE比較(出典:TIサイト)

CCS Cloud IDEの特徴

CCS Cloud IDEの動作環境は、ブラウザと専用アドオンだけです。CCS Cloud IDE単独で、コンパイル/プログラム/デバッグが可能です。

特筆すべきは、CCS Desktop IDEとEnergia IDE両方のプロジェクトをインポートできることです。つまり、いつでもどこででも、CCS DesktopプロジェクトやEnergia IDEスケッチ例を、CCS Cloud IDEを使ってプログラミングやデバッグができるのです。

働き方改革や仕事効率化に対する具体的方策の1つにこのCCS Cloud IDEが役立ちます。移動中や空き時間に、職場で引っかかったデバッグ内容やプログラミングに、新しい解決策やヒントを発見することは良くあります。CCS Cloud IDEを使えば、スマホやタブレットでヒントをスグに試せるのです。

CCS Cloud IDEの使い方

TI Cloud Development Environmentへアクセスします。左側に表示されるCloud Agentは、ターゲット評価ボードの接続を検出し、Resource Explorerで当該サンプルプロジェクトを表示してくれる便利な機能を提供します。ブラウザには、TICloudAgent Bridgeというアドオンを追加します。

TI Cloud Agent
TI Cloud Agent

9月26日投稿で用いたMSP-EXP432P401R LaunchPad 評価ボード(Cortex-M4F/48MHz、256KB/Flash、64KB/RAM)とEnergia IDEのFadeスケッチ例でCCS Cloud IDEの使い方を示します。

Cloud Agentとブラウザアドオンを追加後、MSP-EXP432P401R LaunchPadをPCへ接続すると、Cloud Agent が、1-Device Detectedへ変わります。Resource Explorerをクリックすると、CCS Desktop IDEとEnergia IDEで提供中のMSP-EXP432P401R LaunchPadサンプルプロジェクトや資料が参照できます。

MSP-EXP432P401R Device Detected
MSP-EXP432P401R Device Detected

Resource ExploreでEnergia IDEのFadeスケッチ例を選択した例が下図です。

Resource Explorer
Resource Explorer

Import to IDEクリックでFadeスケッチのソースコードがCCS Cloud IDEへ取り込まれます。Runクリックでコンパイル後、MSP-EXP432P401R LaunchPad評価ボードへダウンロードされ、Fade動作確認ができます。Energia IDEではできないBreakpoint設定などもCCS Cloud IDEでは可能です。

CCS Cloud IDEで実行中のFadeスケッチ例
CCS Cloud IDEで実行中のFadeスケッチ例

CCS Cloud IDEの活用

CCS Cloud IDEの使い方をEnergia IDEのFadeスケッチ例で示しました。CCS Desktop IDEの場合でも同じです。Import to IDE時のソースコードが、CCS Desktop IDEのサンプルプロジェクトへ変わるだけです。

一旦プロジェクトを取り込んでしまえば、CCS Cloud IDEの動作環境は完成です。次回からは、ログインのみでクラウドMCUプログラミングができます。

クラウドベースのCCS Cloud IDEは、比較表で示したように機能的にはEnergia IDEとCCS Desktopの中間です。MCUソフトウェア開発初心者が、Energia IDEで評価ボードサービスや周辺回路の動作確認後、次にデバッグへステップアップする場合に、CCS Cloud IDEは好適な環境です。

また、中級レベル開発者でも、通常のデバッグやコーティングなら、より高機能なCCS Desktop IDEを使うまでもなく、下図に抜粋したCCS Cloud IDEの使用頻度が高いタブとコマンドだけで十分プログラミングできるのも解ります。

CCS Cloud IDEから抜粋したタブとコマンド
CCS Cloud IDEから抜粋したタブとコマンド

CCS Cloud IDEが、ターゲットMCUソフトウェア開発に、十分なコンパイル/プログラム/デバッグ能力を持つクラウドMCU IDEであることがご理解頂けたと思います。

MSP-EXP432P401R LaunchPadの目的

MSP-EXP432P401R LaunchPadは、本稿で示したように、TIのCCS Desktop IDE、CCS Cloud IDE、Energia IDEの3 IDEを使ってソフトウェア開発ができます。

開発ソフトウェアは、MSP432テンプレートです。本ブログカテゴリと、その生産物の関係が下図です。

MCUカテゴリーと生産物
MCUカテゴリーと生産物

MSP432テンプレートを開発するために選んだ、個人でも入手性が良く低価格な評価ボードが、MSP-EXP432P401R LaunchPadです。

既に各1000円(税込)販売中のテンプレートは、コチラをご覧ください。テンプレートのメリットやアプリケーション開発手順なども記載中です。

P.S.:ついでにカテゴリ:LibreOfficeの生産物が下図です。こちらは、無償です。

LibreOfficeカテゴリーと生産物
LibreOfficeカテゴリーと生産物

Sony)SPRESENSEオープンプラットフォーム開発環境

2019年9月、Sony)IoT向けMPU:SPRESENSE開発環境は、オープンプラットフォーム:Arduino IDEとSDK:Software Development Kitの2段構えにしたという記事が掲載されました。

オープンプラットフォームArduino IDEとSDKの2段構え開発環境(出典:記事)
オープンプラットフォームArduino IDEとSDKの2段構え開発環境(出典:記事)

本稿は、このオープンプラットフォーム開発環境の目的について、記事内に判り易い説明があったので紹介します。

MPU:Sony)SPRESENSE

Sony版ArduinoボードのSPRESENSEは、ARM Cortex-M4F/156MHzを6個(!)搭載したマルチコアMPUです。Raspberry Pi 4でお馴染みのMPU:Micro Processor UnitやArduinoなどのSingle Board Computerは、オープンプラットフォームと呼ばれ、仕様公開が特徴です。

Cortex-M4Fコア6個から構成されるSPRESENSE(出典:Sonyサイト)
Cortex-M4Fコア6個から構成されるSPRESENSE(出典:Sonyサイト)

最近になってCortex-M4とCortex-M0+のディアルコアが出始めた新世代MCU開発にも参考になる開発環境があるかも(?)と思い記事を読みました。

全コアが同等機能を持つシステムをSMP:Symmetric Multi-Processing、一方、一部コアの機能が異なるのはASMP:Asymmetric Multi-Processingと呼びます。SPRESENSEは、1個のメインコアが全体を管理し、残り5個のサブコアへのメッセージ送信でタスク指示するASMPです。ASMPは、組込みシステムへの最適化などに向いているそうです(関連記事:ASMPのアーキテクチャを学ぶ)。

実装コア数は違いますが、新世代ディアル/マルチコアMCUもアーキテクチャはASMPになると思います。新世代MCU:Micro Controller Unitとアーキテクチャは同じ、MCUも仕様公開されていますので、SPRESENSEと新世代MCUの環境は、同じ(近い)と言えます。

MCUとMPUのデバイス差は、弊社固定ページにもありますのでご覧ください。

オープンプラットフォーム開発環境の目的

記事では、“ArduinoやRaspberry Piなどの「オープンプラットフォームユーザ」は、このデバイスを使ったら、どんな面白い商品を作れるかというチャレンジからベンダー製品を使い始める”とあります。このチャレンジ判断に適しているのが、Arduino IDE開発環境です。

「MCUユーザ」は、“ベンダー製品を手に取るとき、既にユースケースが決まっていて、MCUラインナップの中でユースケースにフィットするメモリサイズや処理性能デバイスを選ぶ”のだそうです。コスト最重視の従来MCU製品では、当然の選択方法です。

つまり、誰でも簡単に「デバイスを使って得られるサービスや機能にフォーカス」したのがArduino IDEで、どのように作ったか、その性能などを明らかにする一般的なIDEとは、その目的が異なるのです。

どうしても処理ソースコードや使用メモリ量などの(HowやWhere、Why)に目が行く筆者とは、オープンプラットフォームユーザの視点(What)が違うことが記事から理解できました。

例えば、マルチコアのサンプルアプリケーション実行は、Arduino IDEを使えば、開発環境セットアップに25分、プログラム実行に5分、合わせて作業時間30分で完成するそうです(関連記事より)。

デバイスで出来ることを、「すぐに試し判る」のがオープンプラットフォーム:Arduino IDEの目的です。

IoT MCUセキュリティ実装判断にArduino IDE環境

記事を読んだ後、IoT MCUのセキュリティ実装に関して、Arduino IDE(的)環境が適すと思いました。

セキュリティ機能は、セキュリティ専門家が開発したソースコード(ライブラリ)に対して、実装担当のMCU開発者が工夫をこらす余地はありません(頑張ってコード改良や開発しても、時間の無駄になる可能性大です)。

要は、目的のセキュリティ機能が、使用予定のIoT MCUへ実装できるか、将来追加の可能性があるセキュリティ実装に対して余力/余裕はあるか、が判れば十分です。

これを判断するには、Arduino IDEと同じような開発環境が適すと思います。IoT MCUへのセキュリティ実装や機能更新は、必須になりつつあります(前回投稿参照)。苦労して開発したIoT MCUであっても、セキュリティ機能が実装できなければ、全く役立たなくなるのです。

従って、多くのセキュリティライブラリから目的の機能を選び、簡単にIoT MCUへ実装し、動作確認できるArduino IDE(的)開発環境にも、これからのMCU開発者は慣れていることが必要だと思います。

TI)MSP432P401R評価ボード:MSP-EXP432P401R LaunchPad

Texas Instrument)MCU:MSP432P401R(ARM Cortex-M4F、48MHz、浮動小数点ユニット、DSPアクセラレーション、256KB/Flash、64KB/RAM)搭載の評価ボード:MSP-EXP432P401R LaunchPad™は、TI純正無償IDE:CCSコードサイズ制限のため、Cortex-M4カテゴリデバイスとして採用失敗したと投稿しました。

しかし、MSP-EXP432P401R LaunchPadの開発環境には、Arduino IDEによく似たEnergia IDEもあります。このEnergia IDEの詳細や、MSP-EXP432P401R LaunchPad™での使い方が分かりましたら投稿します。

Energia IDE(出典:Energiaサイト)
Energia IDE(出典:Energiaサイト)

P.S.:2019/3Q発売予定のPSoC 4000S/4100S専用タッチUIテンプレート開発も遅れが発生しており、上述MSP432P401RのCortex-M4カテゴリ採用失敗等々…トラブル続きです。猛暑でPC(と筆者)の調子が悪いのが、諸悪の根源だと思います😭。
本稿のEnergia IDEが、MSP432P401R採用失敗の挽回策になれば嬉しいのですが、暫くEnergia IDEを使ってから判断したいと考えています。

ARM Cortex-M4ベンダと評価ボード(選択失敗談)

本稿は、模索中のCortex-M4評価ボード選択の失敗談です。

初心者・中級者のMCU習得・開発を支援するのが本ブロブの目標です。手段として、個人でも入手性の良い低価格MCU評価ボードを使い、効率良く具体的にポイントを把握できる記事作成を心掛けています。

先日のIoT市場を狙うデュアルコアMCUで、本ブログでこれまで取り上げてきたMCUコア以外にARM Cortex-M4開発経験がIoT要件になる可能性を示しました。そこで、新たにCortex-M4カテゴリをブログに加えたいと考えているのですが、今日現在、適当な評価ボードや開発環境が見つかっておりません。

ARM Cortex-M4カテゴリ

Cortex-M4カテゴリは、急増するIoT開発に対する個人レベルでの先行準備的な位置付けです。

ARM Cortex-M0/M0+/M3コアやルネサスS1/S2/S3コア習得が初級レベルの方は、開発障壁が少し高いかもしれません。なぜなら、Cortex-M4コアの知識ベースはCortex-M0/M0+/M3だからです。この高さ軽減のため、過去のブログ関連投稿をリンク付けします。

中級レベルの方は、Cortex-M4の高いMCU能力を、Cortexコア間のアプリケーション移植やRTOS活用への発展、IoTで高度化するセキュリティ機能の実装などに意識してCortex-M4カテゴリ記事をご覧頂ければ役立つと思います。

32ビットMCUベンダシェアと本ブログカテゴリ

2018年の32ビットMCUベンダシェアが、6月7日投稿InfineonのCypress買収で示されています(下図右側)。

買収成立時の自動車と32ビットMCUシェア(出典:EE Times記事)
買収成立時の自動車と32ビットMCUシェア(出典:EE Times記事)

上位5ベンダ(Runesas、NXP、STM、Cypress、TI)と、本ブログカテゴリとの関係が下表です。

例えば、NXPのLPCマイコンでCortex-M0+記事であれば、MCUカテゴリはLPCマイコン、32ビットコアカテゴリはCortex-M0+などとカテゴリが重複する場合もあります。ただ、本ブログのカテゴリ記事数(n)がベンダシェアや、Cortexコアの人気傾向を示しており、32ビットMCUベンダシェアともほぼ一致します。

2018年MCU上位5ベンダと本ブログカテゴリの関係
MCUベンダ(シェア順) MCUカテゴリ 32ビットコアカテゴリ
Runesas RL78マイコン なし
NXP LPCマイコン/Kinetisマイコン Cortex-M0/M0+/M3/M23マイコン
STM STM32マイコン Cortex-M0/M0+/M3マイコン
Cypress PSoC/PRoCマイコン Cortex-M0/M0+マイコン
Texas Instruments なし なし

※Cypress+Infineonは買収成立と仮定

ルネサスMCUは16ビットコア(S1/S2/S3)のみ掲載中です。理由は、同社32ビットコアMCU開発環境が、コンパイラ1ライセンス当たり10万円程度と高価で、個人レベルでのライセンス購入が困難なため、本ブログ対象外としたからです。

MCUベンダシェアとカテゴリとを俯瞰すると、Texas Instrument(以下TI)とCortex-M4カテゴリがないことが解ります。※32ビットMCUコアでNon ARM系のRunesasを除くと、事実上Cortexコアのみで、その中で記載が無いメジャーMCUコアがCortex-M4です。

そこで、TIのARM Cortex-M4Fマイコン、MSP432の評価ボードを調査しました。

ARM Cortex-M4F搭載MSP432評価ボード

MSP-EXP432P401R LaunchPad Kitとブロック図
MSP-EXP432P401R LaunchPad Kitとブロック図

低消費電力MSP432P401R(ARM Cortex-M4F、48MHz、浮動小数点ユニット、DSPアクセラレーション、256KB/Flash、64KB/RAM)搭載の評価ボード:SimpleLink™ LaunchPad™です(TIは評価ボードをローンチパッドと呼びます)。Digi-KeyMouser秋月電子(秋月電子は在庫限りRev 1.0 (Black)、2100円)で低価格購入可能です。

他社ARM MCU評価ボードで一般的に用いられるArduinoコネクタ増設ではなく、BoosterPack(ブースタパック)と呼ぶTI独自拡張コネクタでBLEやWi-Fi機能を追加します。また、SimpleLink AcademyトレーニングというWebベースの教材などもあります。

MSP432評価ボード単体では、情報量の多さ、価格ともに魅力的です。Cortex-M4クラスの評価ボードでも、Cortex-M0/M0+/M3プラスアルファの低価格で入手できるのには驚きました。プロトタイプ開発は全てCortex-M4で行い、製品時Cortex-M0/M0+/M3を選択する方法もありだと思います。Cortex-M4とM4Fの違いは、本稿PS:パート2動画で解ります。

MSP432P401Rの開発環境は、TI純正無償Code Composer Studio(CCS)です。但し、無償版CCSはMSP432利用時32KBコードサイズ制限付きです。当面32KBでも十分ですが、制限解除には有償版(サブスクリプション)が必要です。

低価格評価ボードがあるのに開発環境に個人での使用に障害がある事象は、Runesas 32ビットMCUと同じです。

以上から本ブログのCortex-M4カテゴリに、TI:MSP-EXP432P401R LaunchPad を使うのは、有償開発環境の点から断念しました(NXP/STM/Cypressは、無償版でもコードサイズ制限無しです)。

まとめ

2018年32ビットMCUベンダシェアから本ブログ記事を俯瞰した結果、Cortex-M4カテゴリとベンダのTexas Instrumentが欠けていることが解り、ARM Cortex-M4F搭載のTI)MSP432P401R評価ボードMSP-EXP432P401R LaunchPad導入を検討しましたが、無償CCSコードサイズ制限のため採用を見合わせました。

勤めている企業の取引の関係でベンダや開発に使うMCUは、既に決まっていることが多いです。しかし、開発者個人レベルでは、ポケットマネーの範囲内で、ベンダもMCU選択も自由です。

ARM Cortex-M4 MCU開発経験はIoT普及期には必須になる可能性があります。普及期への先行準備、また、仕事以外のMCUを手掛けることによる視野拡大、リスク回避手段に適当なCortex-M4評価ボードを選択し、Cortex-M4カテゴリ投稿を計画しています。初回は、Cortex-M4評価ボード選択の失敗談となりました。

PS:TIサイトに下記MSP432日本語版トレーニング動画(要ログイン)があります。ARM Cortex-M4Fを使ったMSP432の全体像が効率的に把握できます。

タイトル 所要時間
パート 1 : MSP432 概要 09:24
パート 2 : ARM Cortex-M4F コア 08:12
パート 3 : 電源システム 05:25
パート 4 : クロック・システム、メモリ 07:53
パート 5 : デジタル・ペリフェラルとアナログ・ペリフェラル 10:07
パート 6 : セキュリティ 05:15
パート 7 : ソフトウェア 07:29
パート 8 : MSP430 から MSP432 05:06