TinyCLR OS 環境構築方法
.NET MicroFrameworkが実質開発ストップしていますが、GHI Electronicsが分岐してシンプルにして(?)TinyCLR OSとして整備しているようです。
まだアルファ版ではありますが、現在公開されているTinyCLR OSの環境構築が上手くできたので、手順を書き留めておきます。
TinyCLRは未だアルファ版なので、リンクが切れたり手順が変更になったりする可能性があります。ご了承ください。
わたしの環境
作業前の、わたしのパソコン環境は次のとおりです。
- Surface Pro 4
- Windows 10 1703(15063.483)
- Visual Studio 2017 15.2(26430.15)
使用するデバイスはSTM32F4 Discoveryです。
- STM32F4 Discovery(STM32F407)
また、STM32F4 Discoveryに書き込むときに使用するdfu-utilは既にセットアップされていました。
必要なファイルをダウンロード
必要なファイルは次の3つです。
VisualStudio拡張
GHIElectronics.TinyCLR.VisualStudio.0.5.0.vsixです。
Tiny CLR Release Notesの0.5.0 on 2017-07-07をクリックした先のページでここからダウンロードできます。
ファームウェア
TinyCLR_Firmware.0.5.0.zipです。
Tiny CLR Release Notesの0.5.0 on 2017-07-07をクリックした先のページでここからダウンロードできます。
Windows用デバイスドライバ
GHI_TinyCLR_Interface.zipです。
フォーラムの回答からダウンロードできます。
VisualStudio拡張をインストール
GHIElectronics.TinyCLR.VisualStudio.0.5.0.vsixをダブルクリックで起動します。あとは画面の指示に従えばOKです。
Visual Studio 2015も入っていたのに、Visual Studio 2017しか表示されていないので、どうやらVisual Studio 2017にしか対応していないようです。
インストール完了後、Visual Studioの拡張機能と更新プログラムで確認すると、TinyCLR OS Project Systemが追加されたことがわかります。
プロジェクトの新規作成画面には、TinyCLRが追加されています。
デバイスとの接続方法はUSB/Serial/TCPIP。このあたりはNETMFのままですね。
ファームウェアをデバイスにインストール
ここのやり方が分からず苦労しました。
STM32F4 Discoveryは、TinyCLR_Firmware.0.5.0.zipに含まれている、GHI Bootloader(FEZ Bootloader.2.0.3.dfu)をdfu-utilなどでフラッシュメモリに書き込み、そしてTeraTermなどでGHI Bootloaderに接続してファームウェア(FEZ Firmware.0.5.0.glb)を転送します。
GHI Bootloaderの書き込み
STM32F4 DiscoveryをDFUモードで立ち上げます。下図のように、ボードの裏にあるJP2のジャンパーピンを外して、BOOT0とVDDを短絡します。
そして、パソコンとUSB接続します。
ここはちょっとコツが必要で、STM32 DiscoveryのminiUSB(CN1)とmicroUSB(CN5)をUSB-HUBに接続しておき、USB-HUBをパソコンに接続して、両方のUSBを同時に接続しないといけないようです。(都市伝説なのかも?)
デバイスマネージャにSTM32 BOOTLOADERが表示されれば成功です。
そして、dfu-utilなどを使って、FEZ Bootloader.2.0.3.dfuをフラッシュメモリに書き込んでください。
C:\>dfu-util -l dfu-util 0.9 Copyright 2005-2009 Weston Schmidt, Harald Welte and OpenMoko Inc. Copyright 2010-2016 Tormod Volden and Stefan Schmidt This program is Free Software and has ABSOLUTELY NO WARRANTY Please report bugs to http://sourceforge.net/p/dfu-util/tickets/ Found DFU: [0483:df11] ver=2200, devnum=7, cfg=1, intf=0, path="1-1.4", alt=3, name="@Device Feature/0xFFFF0000/01*004 e", serial="3259375D3036" Found DFU: [0483:df11] ver=2200, devnum=7, cfg=1, intf=0, path="1-1.4", alt=2, name="@OTP Memory /0x1FFF7800/01*512 e,01*016 e", serial="3259375D3036" Found DFU: [0483:df11] ver=2200, devnum=7, cfg=1, intf=0, path="1-1.4", alt=1, name="@Option Bytes /0x1FFFC000/01*016 e", serial="3259375D3036" Found DFU: [0483:df11] ver=2200, devnum=7, cfg=1, intf=0, path="1-1.4", alt=0, name="@Internal Flash /0x08000000/04*016Kg,01*064Kg,07*128Kg", serial="3259375D3036" C:\>dfu-util -a 0 -D "FEZ Bootloader.2.0.3.dfu" dfu-util 0.9 Copyright 2005-2009 Weston Schmidt, Harald Welte and OpenMoko Inc. Copyright 2010-2016 Tormod Volden and Stefan Schmidt This program is Free Software and has ABSOLUTELY NO WARRANTY Please report bugs to http://sourceforge.net/p/dfu-util/tickets/ Match vendor ID from file: 0483 Match product ID from file: 0000 Opening DFU capable USB device... ID 0483:df11 Run-time device DFU version 011a Claiming USB DFU Interface... Setting Alternate Setting #0 ... Determining device status: state = dfuERROR, status = 10 dfuERROR, clearing status Determining device status: state = dfuIDLE, status = 0 dfuIDLE, continuing DFU mode device DFU version 011a Device returned transfer size 2048 DfuSe interface name: "Internal Flash " file contains 1 DFU images parsing DFU image 1 image for alternate setting 0, (1 elements, total size = 14744) parsing element 1, address = 0x08000000, size = 14736 Download [=========================] 100% 14736 bytes Download done. done parsing DfuSe file C:\>
書き込みが完了したら、パソコンからUSB-HUBを外してJP2のジャンパーピンを元に戻します。
ファームウェアの書き込み
再び、USB-HUBをパソコンに接続すると、COMが2つ表示されるので、下の方にTeraTermで接続します。
COMが1つしか表示されないときは、GHI Bootloaderがすでにフラッシュメモリに存在するプログラムを起動しています。 このような場合は、PA15をGNDに繋ぎながらパソコンに接続すると、プログラム起動を抑止してCOMが2つ表示されます。
TeraTermで接続したGHI Bootloaderで、Uを入力してからFEZ Firmware.0.5.0.glbをXMODEMで送信します。送信のときに、オプションの1Kにチェックを付けてください。
HI Electronics, LLC Bootloader ------------------------------- OK. Are you sure (Y/N)? Waiting... CCCCCCCCCCCCCCCCCCCCCCCCCCCCC OK.
再び、USB-HUBを外して、USB-HUBをパソコンに接続すると、FEZという不明なデバイスが表示されればOKです。
Windows用デバイスドライバをインストール
GHI_TinyCLR_Interface.zipを適当なフォルダに解凍しておき、さきほどのFEZという不明なデバイスどのドライバ更新でzip解凍先を指定します。
FEZのビックリマークが消えればOKです。
Visual Studioから認識できるか確認
適当にTinyCLRプロジェクトを新規作成して、プロジェクトのプロパティにあるDeviceにFEZ_FEZと表示されれば、デバイスがきちんと認識できています。
最後に
とりあえずデバイスをセットアップすることができました。
次は、GPIOのやり方を確認したいと思います。