あれ!? MCC Content Manager が起動しないよ

久しぶりにMPLABを使おうと思ったら、、、なぜかMCCが使えなかった。

こんにちは、ITマスターの佐藤です。

今週はいきなり残念なメッセージが表示されて試行錯誤に二日間を費やしました。

MCC Content Manager Wizard

The selected device is not supported by any of the content types

事の始まり

最近はお手軽マイコンボードに手を出してPICから遠ざかっていたので久しぶりに触ってみようかと。。。しかし二年以上触ってなかったので新しいバージョンの操作を覚える意味でも新しい環境へとアップデートしたのが大きな間違いでした。
PIC16F18325の新規プロジェクトを作ってヘッダーファイルを作るためにMCCを起動したのですが、なぜかサポートしていないという表示。。。
公式サイトのドキュメントには確かにサポート対象と書かれてあるのにですよ。
release_notes_pic10_pic12_pic16_pic18_v1_81_7.pdf

公式サイトは、ここ

※最終的にとりあえず起動することはできました。それを書き留めたいと思います。(しかし、納得はしていない。これは不具合なのか。それとも、そもそも手順が違うのか)

前提条件

Windows 10 Pro
MPLAB X IDE Version 5.50
MPLAB Code Configurator Version 5.0.0 (Core v5.3.0)

直ぐには見つからなかった

問題に遭遇したときはGoogle先生に聞けは大抵のことはすぐに解決すると高を括っておりました。しかし海外サイトを検索してもこれぞという解は見つかりません。
幾つか参考になりそうな情報はあれど解決に結びつくような感じがしない。参考になりそうな情報をもとに試行錯誤して何度も失敗しました。

とりあえず試してみたこと(失敗例)

失敗1)Pluginsのライブラリを追加してみた(ライブラリ入れないとダメなんじゃねぇの!と思ったので)

MCC公式ページからデバイスのライブラリがダウンロードできるのでメニューから Tools -> Options 、Pluginsのアイコンをクリック、MCCのオプションページの下の方に追加のボタンがあるのでそこから入れてみた。しかし、結果は同じでダメでした。寧ろやらない方が良い操作だったような感じです。

失敗2)設定ファイルとか、いろいろ修正してみた。(なんとなくそう思ったので)

インターネット上から最新情報が取得できないのではなかろうか。という推測をもとにあちこち設定を変更して確認してみた。が、結果はカイゼンせず。しまいには、Project ResoucesのGenerateボタンをクリックしたら終わらなくなり、やむを得ない強制終了したら設定が壊れたらしくMCCをクリックしても設定ファイルが間違っていると叱られ全く動かなくなった。 終わった・・・・。

失敗3)関係ツールをすべてクリーンインストールしてみた。(アップグレードしたから古い設定が悪さするんじゃねぇの!?と思ったので)

失敗2のダメージもあり、環境自体に不安が増しました。
現状何が入っていたかといえば、MPLAB Xの5.45と5.50、およびコンパイラのXC8、XC16、XC32がそれぞれ複数バージョン入っていた。
きっとすべて消せばきれいな体に戻れるはず。しかし、結果はダメでした。

・・・・・このあたりで1日目が終わった。

クリーンな環境で慎重に進める

海外のサイトでCoreを古いバージョンに戻せば改善するかもしれないという記事を発見し、早速試してみることに。

さて、どこでCoreを変更すれば良いのか!?マニュアルを見るとMCCのメニューから変更できることが分かった。

はい、そのMCCが起動しないわけですよね。
失敗4)MCCが起動しないとCoreは変更できない

MCCはどうやったら起動できるの!?

まずは、「これのMCCを起動したい」から「どうやったらMCCを起動できる」に方向転換

ツール(MCC)をリリースしたチームも全く動かないものを世に出すとは思えないので、きっと動く条件があるはず!
そう考え方を変え、MCCが動く条件とは何かを探すことにした。「選択したデバイスは非サポート」と言われたのでサポートされているデバイスを探すことに

1つ1つ探せば良いのだが、やらないよね。

MCCの使い方の情報を探し、実際に動かした(動画など)を探した結果、数個目にヒットした。

あ!動いた

PIC16F18875というデバイスを選択するとMCCが起動するじゃありませんか。この表示が見たかったわけですよ。

あまり欲張らず、先に進める。(詳しいWizardの操作は割愛)

動きましたよ。 (動くことがわかるだけでちょっと安心するね。)

特定のPICでMCCが動くことは確認できたのだが、目的はPIC16F18325

きっとPIC16F18325(以後18325と書くよ)でも動かすための手順が見つかるはず。(何となくそう思った)

昨日試せなかったCoreのバージョンを変更する件。試せます。

さっそく

Core Versions[MCC]のタブの中にCoreの表示があり、初期の状態ではCore v5.3.0以外は全て[Available for download.]と表示されています。

Core名称の上でマウスを右クリックするとメニューが表示されるのでSwitch Core Versionを選択します。

構成ファイルがロードできなかったのでバックアップしてから構成を作りますか?と聞かれたらYesを選びます。(兎に角ダメもとで先に進む)

Coreのインストールと変更が成功しました。

Coreのバージョンが変更されたことが分かります。MCCは問題なく動いています。

プロジェクトのDashboardのPacksをクリックしてDeviceを変更します。

Deviceを18325にします。18875の構成ファイルを無理やり18325へロードするためにYesを選びます。

PIC16F18325でMCCが使えるようになった

MCCが閉じてしまいますが、再度MCCを起動すると同様のメッセージが表示されるのでYesを選びます。互換性のない設定など複数の警告が表示されますが、MCCは起動されますので構成を変更できます。(構成を変更すると構成ファイルが変更および保存され次回から警告が表示されなくなりました。)

まとめ

  • MCCが起動できるDeviceの種類を見つける。(今回はPIC16F18875が使えました)
  • MCCが起動できるDeviceでプロジェクトを作成する。
  • MCCを起動し、Coreのバージョンをダウングレードする。(今回は、Core v5.3.0からv5.2.1へダウングレードしました)
  • プロジェクトのDeviceを本来使いたいものへ変更する。(今回はPIC16F18325へ変更しました)
  • MCCを再度起動し、構成を変更する。

補足情報

ダウングレードしたCoreバージョンをデフォルトに設定できないのか

MPLAB Xのバージョンに紐づいているらしく。Coreを削除してもMPLABを起動した際に初期化されてしまいました。
これは出来ないと考えるとが妥当なようです。

MCCからGenerateしたソースはXC8コンパイルが通らない。

噂では、MCCが生成するソースコードはC standardがC99に対応していないらしい。XC8のGlobal OptionsでC90へ変更すればコンパイルできるようになりました。実際のところは深くは調べておりません。


以上、同じような問題で困っている方の参考になれば幸いです。