kazutakoLAB -かずタコの電子工作部屋-

電子工作や趣味のあれこれ

STmicro純正のSTMマイコンIDE ”Cube IDE” を導入したら補完が使えなかった話

皆さんお久しぶりです。

夏休みに入り、遊びすぎて研究が滞っているかずタコです。

やる気スイッチは大学4年間で壊れてしまったようです(他人事)。

しかしそのおかげ(?)でひと夏の思い出もたくさんでき、青春も今だけだなんだからと自分を納得させている次第です。うんうん。

 

 

倒立振子に関しては現在やる気が沸き上がってこない状態なので、ちょっと放置しています。しかし何か作業はしなければなぁと思っていた矢先、研究室の後輩から

「Cube IDE試してみましょうよ」

とお誘いを受けました。

 

Cube IDEというのは、STM系のマイコン開発のためのいわゆる統合開発環境です。

ArduinoでいうArduinoIDEの事ですね(まんま)。

↓ 公式ページです

https://www.st.com/ja/development-tools/stm32cubeide.html

 

当初、自分のSTMマイコン開発環境は

CubeMX+SW4STM32

でした。前者でセットアップのコードを吐いて、後者でプログラミング、ビルド、書き込み、デバッグといった使い方です。

この辺のソフトに関する情報は検索すればいくらでも出てくるので、私が再度書く必要もないでしょう。

 

んで、CubeIDEは上の二つのソフトを一つにまとめた素敵ソフトになります。しかも公式ということで安心です(SW4STM32は公式ではありませんでした)

 

このソフト、今年の4月末辺りにはリリースされていたようなんですが、恥ずかしながら全く知りませんでした。

ざっと調べた感じかなり使いやすそうだったので、(というか使用感がほとんど変わらないようだったので)後輩君に流されるまま導入してみました。

 

Cube IDEの導入

導入は非常に簡単で、先のリンクに飛んで[ソフトウェア入手]押したら、

自分の環境にあったインストーラをダウンロード、実行するだけです。

一つ難点を上げるとしたら、ページがやけに重いことでしょうか。家でも研究室でも、自分のPCでも後輩君のでも遅かったので、これはサイト側の問題でしょう。

この辺は特に詰まることもないと思うので流します。

 

Cube IDE初回起動と使用感

初回起動時はワークスペースを聞かれます(毎回聞いてもらうこともできます)。

この時、ディレクトリのパスに2バイト文字が入ってると後悔する、はずです。

というのも、CubeMXでは2バイト文字がパスにいるとエラーを吐いていましたので、たぶんこいつも同じ仕様だと思ったからです(未検証)。

 

ここで、以前SW4STM32で使っていたワークスペースを指定すると、以下のように聞かれます。

f:id:kazutako_lab:20190815113434p:plain

古いバージョンのソフト用だからアップデートするよ、古いソフトでは使えなくなるよ。とのことです。

万が一CubeIDEに欠陥があったときに戻せるように、ワークスペースごとバックアップを取っておいた方がいいかもしれません。

 

起動時間は結構早いです(SW4STM32比べ)。どちらも同じECLIPSEベースのはずなんですがなんでこんなに違うのか。

 

起動するとホーム画面が表示されます。一度作業したワークスペースだといきなり編集画面に行くみたいです。

f:id:kazutako_lab:20190815113810p:plain

ECLIPSEベースなだけあって、SW4STM32と見た目に大差はなさそうです。

 

新しいプロジェクトを作りたかったら二つある大きなボタンの左を押すと、CubeMXで見たようなボードセレクタが起動します。

その後ボードか石を選択すると、これまたCubeMXで見たようなピンアサイン設定画面が起動します。使用感は以前のものとほとんど変わりません。

一つのソフトで初期化コード生成から書き込みまでできてしまうのはやっぱり素晴らしいですね。

 

そして遭遇した補完できないバグ

先のホーム画面が表示され、私は初めに右のボタンを押してプロジェクトのインポートをしようと思いました。すると、

f:id:kazutako_lab:20190815114845p:plain

もうインポートされているよという表示が。

 

なるほど、起動時に聞いたんだからそうだよなと思いそのままプログラム編集画面に行きました。ぱっと見使い方はSW4STM32と変わらなさそうだったのでいきなりコード書き始めようと思ったんですが

f:id:kazutako_lab:20190819183757p:plain



あれ、補完が使えない。

 

一度プログラムをビルドしてもダメでした。

あれれ?と思い、新しいプロジェクトを作ってLチカプログラムを書こうとしても同様に補完が出ない症状。

 

なんだ補完ないのか?と思ったんですが同じように作業していた後輩君にはきちんと補完の候補が出ていました。なぜだ…

 

解決と原因

調べてみると、ECLIPSE側の設定で補完機能での候補が選択できるということが分かりました。

上のリンクはJavaのものですが、たぶんC++でも一緒だろうと思い試してみました

 

手順としては、メニューバーの[Window]→[Preference]→[C/C++]→[Editer]→[Content Assist]→[Advanced]で以下の画面にたどり着きます。

f:id:kazutako_lab:20190819155348p:plain

なんかチェック外れてる…

[Restore Defaults]を押すと赤線部チェックが入ったので、どうもデフォルト設定ではここのチェックは入ってるはずなんです。

首をかしげながら適用して編集画面に戻ると…

 

f:id:kazutako_lab:20190819183654p:plain

お~補完できてる!
やはり先ほどのチェックボックスが原因でした。

 

とりあえず以上の方法で補完は使えるようになりましたが、なんでこんなことになったのかが謎でした。

いろいろテストしてみましたが、どうも

「古いソフトで作ったコード」をインポートする際の手順

が原因っぽいです。

具体的には、初回起動時に聞かれた古いワークスペースのアップデート。

あれを経てインポートするとなぜか先のように補完のチェックが外れるようです。

初見は焦りましたが、一度設定を変更してしまえば二回目以降は普通に補完ができるようです。

 

どうしてこうなるのかという根本の原因は謎ですが、問題が起こる手順と解決策が分かったのでとりあえずよしとすることにしました。

IDE自体はすごく使いやすそうなので、また何か分かったら記事にしようと思います。

それでは今日はこの辺で。