Help us understand the problem. What is going on with this article?

micro:bitでWebUSBを使う

MakeCode for micro:bit のベータ版で、WebUSBが使えるようになったので、試してみました。詳細はこちら。

https://support.microbit.org/support/solutions/articles/19000084059-beta-testing-web-usb

この記事の内容確認は、全てMac上のGoogle Chromeで行いました。Windows 10環境で動作しない場合は、以下の情報を参考にしてください

https://support.microbit.org/support/solutions/articles/19000089574-beta-testing-mbed-driver-doesn-t-work-with-windows

DAPLinkバイナリのダウンロード

まず、micro:bitのDAPLinkファームウェアを最新版に更新します。WebUSBに対応したファームウェアバージョンは、v0249以降になります。

https://microbit.org/get-started/user-guide/firmware/

DAPLinkファームウェアの書き込み

続いて、このDAPLinkファームウェアをmicro:bitに書き込みます。

  • micro:bit 背面のリセットボタンを押しながら、USBケーブルでPCと接続する
  • MAINTENACE という名前のドライブがマウントされるので、0253_kl26z_microbit_0x8000.hex ファイルをコピーする

書き込みが終わるとUSBドライブはアンマウントられ、再びマウントされます。MICROBIT という名前のドライブがマウントされれば成功です。

MakeCode for micro:bit から使ってみる

これで準備が出来たので、MakeCodeからWebUSBの機能を使ってみます。

  • MakeCodeを開く
    https://makecode.microbit.org/

  • 設定(画面右上の歯車のアイコン)から、Pair deviceまたは「デバイスを接続する」を選択する

スクリーンショット 2018-09-18 10.54.50.png

  • 表示されたデバイスを選び、接続ボタンを押す

select.png

これでデバイスが設定されます。ダウンロードボタンを押すと、プログラムがファイルとしてダウンロードされるのではなく、デバイス側に直接書き込まれます。

以上!!

これだけだと、「デバイスに直接書き込めるので、ホストパソコン側にファイルが増えなくて便利」だけなのですが、WebUSBの機能を使ったNode.jsパッケージがArmから公開されています。

DAP.js を使う

DAP.jsは、CMSIS-DAP のJavaScriptインタフェースです。CMSIS-DAPを通じてArmマイコンをNode.jsや、WebUSBを使ってブラウザから制御することが出来ます。詳細は、DAP.jsリポジトリの説明をご覧下さい。

https://github.com/ARMmbed/dapjs/

以下は、WebUSBが有効なDAPLinkファームウェアが載ったmicro:bitを繋いで、examples/read-registers/ のサンプルコードを動作させた例です。

$ node webusb.js 
Select a device to read registers:
1: BBC micro:bit CMSIS-DAP
R0: 00000000
R1: 200021e4
R2: 00000000
R3: 00000000
R4: 00000018
R5: 20002ce4
R6: 200024d4
R7: 0002f10f
R8: 00000000
R9: 00000000
R10: 00000000
R11: 00000000
R12: 0002f299
R13: 20003fec
R14: 0002f2a7
R15: 0001a832

いかがでしょうか?Armマイコン(Cortex-M0)の汎用レジスタの内容が表示されています。
今までは、専用デバッガだったり、OpenOCD/pyOCDとGDB等のデバッグソフトウェアを組み合わせて使ったりしなければ、マイコンのデバッグ制御が出来ませんでした。WebUSBなDAPLinkファームウェアとDAP.jsの組み合わせで、一気に可能性が広がりそうです。
コアレジスタやメモリを操作するためのDAPにアクセスする機能は全て実装されているので、そのうちウェブブラウザ上でマイコンのデバッグが出来るようになるのかも知れませんね。

Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
Comments
No comments
Sign up for free and join this conversation.
If you already have a Qiita account
Why do not you register as a user and use Qiita more conveniently?
You need to log in to use this function. Qiita can be used more conveniently after logging in.
You seem to be reading articles frequently this month. Qiita can be used more conveniently after logging in.
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
ユーザーは見つかりませんでした