イライラさせる開発環境だぜ、これほんと…
こうした悩みを解決します。
modustoolboxとは
infinionのマイコンボード開発で用いる純正の統合開発環境です。
まあこれを使うあたり、組み込み初心者ではないでしょう。
でも、でもですよ、この開発環境設定がイライラさせるんですねえ、ほんとに。
久々に壁ドンしてしまいました(意味違う
これよくわからないのが、2台のパソコンにmodustoolbox入れたんですが、一方は問題なく動き、他方はエラーだらけとなり、一体なんなんでしょう。
以下私のつまずいた点。ubuntu22.04使ってます。
kitprog3が古い
modustoolboxで初めて書き込みしようとすると、確実にこのエラーが出ると思われます。
※バージョンやユーザ名は自分のに置き換えてくださいね
* KitProg3 firmware is out of date. Update to the latest detected version (2.60.1450)
* found in C:/Users/user/ModusToolbox/tools_3.2/../../../../Infineon/Tools/ModusToolboxProgtools-1.2.1/kp-firmware
* using fw-loader tool
開発環境のkitprog3は古いからfw-loaderを使って、kitprog3を最新版に更新して、と言われてます。
(なぜ最初から最新版入れて提供しないのか。。。)
ディレクトリの指定も4階層上がっててよく分かりませんが、つまるところ
C:/Infineon/Tools/ModusToolboxProgtools-1.2.1/kp-firmware
に移動して、ターミナルを開きます。
そして、
$ .\fw-loader --update-kp3
を実行すると、更新処理が始まります。
.\fw-loaderだけだとダメです。
オプション(今回だと–update-kp3)で実行コマンドを選択します。
The firmware update has completed successfully.
が出れば更新成功してます。
modustoolboxを開き直して、Runすると書き込みできるはずです。
bin/makeがない
modustoolboxでまずはLチカのサンプルコードもらおうと、
File -> New -> ModustoolboxApplication
と進むと、project creatorが表示されます。
そこには、githubから引っ張ってきたサンプルコードの一覧が列挙されます。
しかし、bin/makeがない、と赤字で表記されてサンプルコードが表示されない。
そもそもこのbinディレクトリはmodustoolbox/tools_x.x/modus-shellディレクトリにあるとのこと。
(x.xはバージョン情報、例えば、tools_3.1とかになってますよ、実際は。)
で、そこを見るとそもそもbinディレクトリがない。
modustoolboxには、CY_TOOLS_PATHS correctly?とか表示される。
どう調べても、それはすでに存在するプロジェクトで設定する内容で、bin/makeがないというエラーと関係がない。
純正環境がテキトーなこと言うんじゃないということと、そこまで言うならガイドを出せと言いたい。気が利かないエンジニアが作った開発環境だと思わせる。
けどまあ純正環境だからこそ、こんな動きが許されるというのだが。
あと、警告として、プロキシサーバー設定が云々とも書かれてますけど、これも関係ないです。
すみません、愚痴が長くなりましたが、結局どうすればよいかというと、modustoolbox/tools_x.x/modus-shellディレクトリにあるpostinstallを実行すればよいです。
//パスは基本的に→ ~/ModusToolbox/tools_3.1/modus-shell
$./postinstall
これによってbinディレクトリとその中のファイルがインストールされます。
これでサンプルコードが参照できるようになります。
Error: unable to find a matching CMSIS-DAP device
さて、サンプルコードも引っ張ってこれるようになったので、とりあえずボードに書いてみるか。
ビルドも通ったし、Runで書き込もうとすると、
Error: unable to find a matching CMSIS-DAP device
このように表示されて書き込みできません。おい、もう勘弁してくれよ…
これはケーブルの断線とかボードの故障によってmodustoolboxが認識できないことが疑われる、と。
で、それを確認するために、tools_x.x/modus-shell/binディレクトリのfw-loaderを実行しなさい、と。
$ ./fw-loader --device-list
ちゃんと認識できていれば上記コマンドでボード情報が表示される。
しかし、接続されたデバイスはないと言われる。なんでだよ…
Infineon Firmware Updater, Version: 3.5.0.2114
(C) Copyright 2018-2023 by Cypress Semiconductor Corporation (an Infineon company)
All Rights Reserved
Info: Start the API initialization
Info: The hardware initialization has completed in 252 ms
Error: No connected devices.
私の場合、これはopenocdがなかったために起こった問題でした。
$ sudo apt-get install openocd
openocdをインストールして、
$ ./fw-loader --device-list
再度デバイスリストを表示させたら、問題なく表示しました。
そしてmodustoolboxでrunするとこちらも問題なく書き込み動作できました。
まとめ
modustoolboxはクセあり環境、導入時要注意。(丸1日かかりました)
コメント