VisualStudioCode(VScode)を使ったmbed-os5の開発
どんな内容?
platformIOというVisualStudioCode(vscode)用の拡張機能を用いて、mbed-os5の開発環境を作成します。
マイコン開発をvscodeを使って開発したい人には参考になると思います。
前提
自分が使っているマイコンはLPC1768搭載のものです
条件を同じにすると、チップの差による不具合は起きにくくなると思うので、よければ試してみてほしいです
手順
1. git導入
github:gitを使うためのサービスを提供してくれているサイト。運営はマイクロソフト
操作
git本体の導入は後日別記事を投稿いたしますので、そちらを参考にしてください
すでに自分のPCに導入されているかどうかは以下の手順で確認することができます
スタート+Rキーで「ファイル名を指定して実行」を開きそこに
cmd
と入力してコマンドプロンプトを起動。そこで
git
と入力してエラーが出なければ導入に成功しています。
2. VScodeでの操作
概要
vscodeにplatformIO IDEというvscodeでマイコン用プログラミングを行うための拡張機能を入れ、その拡張機能に対応したビルド環境を構築していきます。
ファイルの整理、加工はすでに私が行ったものを配布しているので、そちらをコピーしてもらう形になります。
操作
pythonが必要になるのでインストールしておく
先程と同様にスタート+Rキーで「ファイル名を指定して実行」を開き、そこに
cmd
と入力してコマンドプロンプトを起動。そこで
python
と入力してエラーが出なければ導入に成功しています。 これを行った場合、ターミナルがpythonコマンドを実行するようになってしまうので、
exit()
と入力して終了させる必要があります。
または、ターミナルを一度閉じてもう一度開いてもオッケーです。フォークの実行
以下のリンクからフォークを実行する
リポジトリURL (starしてくれると嬉しいです)
github.com
フォークとは、他人のリポジトリをもとに自分のリポジトリを作成することです。フォークしたリポジトリのクローン
スタート+Rを押し、cmd
コマンドでコマンドプロンプトを開く
cd C:\
でコマンドプロンプトの作業ディレクトリをCドライブ直下に移動
以下のコマンドを入力し、フォークしたリポジトリをCドライブ直下にクローンする
git clone フォークしてできたリポジトリのURL
これは必ずCドライブ直下にしてください。platform.iniという設定ファイル内でmbed-osパッケージの読み込み先がそこに指定されています
以降では作成したリポジトリの名前がmbed-osであると仮定して話を進めていきますpythonモジュールの導入
requirements.txtの内部に必要なPythonモジュールの一覧が記述されているので、
pip install -r requirements.txt
を実行してモジュールをインストールする
これは通常のモジュールの保存場所にインストールすればOKですgitのローカルリポジトリを保存するフォルダの作成
基本的には、ローカルリポジトリのコピー先は1つにまとめておくと良いです
このフォルダもできればCドライブ直下に作成することが望ましいです
日本語がフォルダパスに含まれると、一部ツールが機能しない可能性がありますテンプレートリポジトリをフォークする
以下のリンクからリポジトリをフォークしてください
github.comフォークしたリポジトリをクローンする
git clone フォークしてできたリポジトリのURL
を実行してリポジトリをクローンしてくださいクローンしたフォルダをvscodeで開く
クローンしてできたフォルダで右クリックをして、「Codeで開く」を押せば開くことができます
vscodeの画面の左上の ファイル→フォルダを開く からでも開くことができます拡張機能タブから必要な拡張機能をインストールする
左側の四角が4つ並んだようなデザインが拡張機能タブです
フィルタ(ろうとのマーク)から、"推奨"を選ぶと、.vscode/extentions.jsonに書かれている拡張機能をフィルタすることができます
そこに必要だと思われる拡張機能の設定しているのでインストールしてください
platformIOの設定を確認
左のリストからアリの顔のようなマークをクリックして拡張機能:platformIOIDEを起動します
少し待つと起動が終わるので、今開いているフォルダーがプロジェクトとして認識されているかを確認しましょう
されていない場合は、「pick a folder」をクリックして現在開いているフォルダーを選択し、vscodeを再起動すれば認識されるはずですplatformIOでの処理 platformIOを起動したあと、必要なファイルがコピーされるのを待ちます
先程クローンしたCドライブ直下のmbed-osを.pipフォルダにコピーしているのですが、ローカル内の処理なのに何故か時間がかかってしまいます
どうしようもないので待ちましょう
これで利用可能になります。お疲れ様でした
詳細な使い方については後日別記事を掲載したいと思います
追記 2023/06/20
最初にビルドを通す際に、不足しているpythonモジュールを求められます
しかし、そのままpip install コマンドを使用しても同様のエラーが発生してしまいます
これはplatformioが独自のフォルダ内のモジュールを参照しているためです
ちなみにそのフォルダのパスはC:\Users\〇〇\.platformio\penv\Lib\site-packages
なので、インストール時に
pip install モジュール名 -t C:\Users\〇〇\.platformio\penv\Lib\site-packages
として直接フォルダにモジュールをインストールするか、
インストールしたモジュールを上記フォルダにコピーする必要があります。
他人のモジュールをコピーしても一応稼働はしたので、一つ一つインストールするのがが手間ならば(pythonのモジュールエラーは1つずつしか表示されない)他人のモジュールをコピーさせてもらっても良いかもしれません。
(どんな問題が起こるかわからないので推奨はしません。よってココではモジュールの配布は行いません。)
まとめ、解説など
この記事を書いたわけ
大抵はマイコンの開発会社がIDE(統合開発環境)としてマイコン用のコンパイラを組み込んだものを配布していますが、正直使い勝手はまちまちです。
また、gitを使うのであればVScodeを使ったほうが楽なのは間違いありません(詳細は別記事にて)
現在のplatformIOではなぜかmbed-osはmbed-os6しか対応していません。
しかしmbed-os5とmbed-os6ではクラスや関数の構成が大きく変更されている関係で互換性が薄いです。
私は使用するライブラリの関係上mbed-os5が必要なので、本記事を作成することになりました。
(過去のバージョンのプラットフォームではmbed-os5のものもあったのですが、何故か利用できなくなっています)
解説
platformIO上では1つの作業場所をプロジェクトと呼ぶので、この場所はプロジェクトの保存場所でもあります
githubには過去のmbed-osも残っているので、自前で過去バージョン対応のプラットフォームを準備している
具体的な操作としては、公式が出しているmbed-osのバージョン5.15.9(OS5)に、platformIO用プラットフォームにするためのパッチを当てています
mbed-os github.com
パッチ
github.com
テンプレートリポジトリではplatformIO用に手を加えたものを登録しています
最初に入れたpythonはplatformIOがpythonベースで動いているためインストールしてもらいました
終わりに・改善点
通信量が少なく、かつリモートリポジトリに多くを保存しないような設計を行っいましたが、ローカル内(のはず)のコピーがかなり遅く感じました
githubのリポジトリの容量制限は原則存在しないので、リモートリポジトリにもう少しファイルを含めてみてもいいかもしれません
プライバシーポリシー
当ブログにおける個人情報の取扱いについて、以下のとおりにプライバシーポリシーを定めます。
運営者情報
運営者:KOOMA
ブログURL:https://kooma05.hatenablog.com/
お問い合わせ:https://forms.gle/NoW7mm58ATeJR9zh8
個人情報の利用目的
当ブログでは、メールでのお問い合わせやコメントの際に、お名前(ハンドルネーム)・メールアドレス等の個人情報をご登録いただく場合があります。
これらの個人情報は、質問に対する回答や必要な情報をご連絡するために利用し、それ以外の目的では利用しません。
個人情報の第三者への開示
個人情報は適切に管理し、以下に該当する場合を除いて第三者に開示することはありません。
・本人のご了解がある場合
・法令等への協力のため、開示が必要となる場合
個人情報の開示・訂正・追加・削除・利用停止
個人情報の開示・訂正・追加・削除・利用停止をご希望の場合には、ご本人であることを確認したうえで、速やかに対応致します。
Cookieについて
当ブログでは、一部のコンテンツにおいてCookieを利用しています。
Cookieとは、webコンテンツへのアクセスに関する情報であり、お名前・メールアドレス・住所・電話番号は含まれません。
また、お使いのブラウザ設定からCookieを無効にすることが可能です。
広告の配信について
当サイトは第三者配信の広告サービス(A8.net)を利用しています。
広告配信事業者は、過去にアクセスしたサイトの情報に基づきユーザーの興味に応じた広告を表示するためにCookie(クッキー)を使用することがあります。
また、第三者がコンテンツおよび宣伝を提供し、訪問者から直接情報を収集し、訪問者のブラウザにCookie(クッキー)を設定したりこれを認識したりする場合があります。
なお、Cookie(クッキー)を無効にする設定に関する詳細は
にてご確認ください。
アクセス解析ツールについて
当ブログでは、Google Inc.が提供するアクセス解析ツール「Googleアナリティクス」を利用しています。
Googleアナリティクスは、トラフィックデータの収集のためにCookieを使用しています。このトラフィックデータは匿名で収集されており、個人を特定するものではありません。この機能はCookieを無効にすることで収集を拒否することが出来ます。
Googleアナリティクスの詳細は
Terms of Service | Google Analytics – Google
をご覧ください。
当ブログへのコメントについて
当ブログでは、スパム・荒らしへの対応として、コメントの際に使用されたIPアドレスを記録しています。
これはブログの標準機能としてサポートされている機能で、スパム・荒らしへの対応以外にこのIPアドレスを使用することはありません。
また、以下の内容を含むコメントは運営者の裁量によって削除することがあります。
・特定の自然人または法人を誹謗し、中傷するもの
・極度にわいせつな内容を含むもの
・禁制品の取引に関するものや、他者を害する行為の依頼など、法律によって禁止されている物品、行為の依頼や斡旋などに関するもの
・その他、公序良俗に反し、または管理人によって承認すべきでないと認められるもの
著作権について
当ブログで掲載している画像の著作権・肖像権等は各権利所有者に帰属します。権利を侵害する目的ではありません。
記事の内容や掲載画像等に問題がある場合、各権利所有者様本人が直接メールでご連絡下さい。本人確認後、対応致します。
また、当ブログのコンテンツ(記事・画像・その他プログラム)について、許可なく転載することを禁じます。引用の際は、当ブログへのリンクを掲載するとともに、転載であることを明記してください。
免責事項
当ブログからリンクやバナーなどによって他のサイトに移動した場合、移動先サイトで提供される情報、サービス等について一切の責任を負いません。
当ブログのコンテンツについて、可能な限り正確な情報を掲載するよう努めていますが、誤情報が入り込んだり、情報が古くなっている場合があります。当ブログに掲載された内容によって生じた損害等の一切の責任を負いかねますのでご了承ください。
プライバシーポリシーの変更について
当ブログは、個人情報に関して適用される日本の法令を遵守するとともに、本ポリシーの内容を適宜見直しその改善に努めます。
修正された最新のプライバシーポリシーは常に本ページにて開示されます。
初出掲載:2023年5月24日
最終更新:2023年5月24日