指定されたファイルをNucleo STM32仮想ドライブにコピーするために、次のWindowsバッチスクリプトを作成しました。
@echo off
for /f %%D in ('%SystemRoot%\System32\wbem\WMIC.exe volume get DriveLetter^, Label ^| find "NODE_F446RE"') do set nucleo_drive=%%D
rem echo Nucleo drive: %nucleo_drive%
IF EXIST %nucleo_drive%\DETAILS.TXT (
IF EXIST %1 (
@echo on
xcopy %1 %nucleo_drive%
@echo off
echo Copied %1 on nucleo
) ELSE (
echo Binary %1 not found. Run `mingw32-make` in this directory to compile the project.
)
) ELSE (
echo Nucleo drive not found. If needed, edit the `find "NODE_F446RE"` part of this script to refference your nucleo volume name.
)
Nucleoのドライブは仮想ファイルドライブです。互換性のあるバイナリをコピーすると、実際の Nucleo プロセッサでバイナリがフラッシュされ、再起動されます。私はbashスクリプトを使用してLinux、特にUbuntuで同じことをしたいのですが、互換性が優れています。
パスにNucleoが表示されていることがわかります/media/MY_USERNAME/NODE_F446RE
。しかし、私はLinuxの経験がほとんどありません。これは標準パスですか?ファイルをにコピーできますか/media/%username%/NODE_F446RE
?
それとも、リムーバブルデバイスパスを取得するより良い方法があります(たとえば、より多くのボリュームがある場合は最初のボリューム、Nucleoはそうではありません)。
答え1
/media/$username/NODE_F446RE
コンピュータに表示されるこの特定のリムーバブルデバイスを信頼できます。これはLinuxの世界では一般的ではありませんが(最近)Ubuntuおよび今日の他のほとんどのディストリビューションには、/media
ユーザー名、ファイルシステムラベルがあります。
固定パスを保証する他の方法がありますが、デフォルト設定ですでに使用しているのと同じメカニズムを再生成するだけです(USB 2)。特定のデバイスが取り付けられている場所を見つけるにはいくつかの方法があります(既知の/dev/disks
特性を使用してデバイスを見つけ、または/proc/mounts
またはdf
を使用してfindmnt
デバイスがインストールされている場所を見つけます)。ただし、コンピュータではそのデバイスは必要ありません。したがって、他の人の環境で動作するものを作成する必要がない限り、他の方法を見る必要はありません。