====CMSIS-DAP adapter==== {{http://farm9.staticflickr.com/8517/8592715488_459a05261d.jpg}} ===CMSIS-DAPとは=== 最近、ARMはCMSISレイヤに新しいコンポーネントを追加しました。 CMSIS-DAPです。\\ \\ これはターゲットのデバッグアクセスポート(DAP)への標準化されたアクセス方法を提供するものです。CMSIS-DAPは、インターフェースチップに実装されます。インターフェースチップはUSBを通じてデバッガを走らせているホストコンピュータに接続され、JTAG (Joint Test Action Group)かSWD (Serial Wire Debug)を通じてターゲットデバイスに接続されます。JTAGとSWDはターゲットをデバッグするために用いられる一般的な方法です。 ===アダプタを作った理由=== ARMのCortexをターゲットとした開発を行う際、Keil MDKを使うと高効率のバイナリを出力できるうえ、デバッグを行うことができます。\\ MDKはホビーユーザーにとってかなり高価な開発ツールなのですが、バイナリサイズが32KBまでと制限されているものの無償版、MDK-Liteが存在します。Cortex-M0程度のCPUを使う場合、このコンパイラで十分な開発を行うことができるはずです。\\ \\ 開発したコードをCPUに転送したり、デバッグを行うためにはデバッグアダプタが必要となります。\\ このデバッグアダプタをオープンソースハードウェアで用意したいと思い、NXPの[[http://www.lpcware.com/content/nxpfile/an11321-porting-cmsis-dap-debugger-cortex-m0-platform|AN11321]]をベースに作成しました。 ===特徴=== * SWDコネクタのpin 1から3.3Vを供給 * LPC11U37F/401を使用 * Dangerous Prototypesの[[http://dangerousprototypes.com/docs/Sick_of_Beige_compatible_cases|Sick of Beige]]互換サイズ * 安価でケースが付属 * OSHW, ハック可能 ===回路図=== {{:cmsis-dap_adaoter_sch.png?direct&800}}\\ JTAG2コネクタは搭載しているLPC11U37F/401へのSWDアクセス用です。\\ ファームウェアはISPモードに投入してUSBから書き込むことができますので、特に必要ありません。 ===ファームウェア=== AN11321のコードをベースに修正しました。AN11321のコードにはバグがあり、PDFでは触れられていない74LVC125などのバッファを使うことを前提としたコードになっています。\\ ご自身でビルドをしたい場合、[[http://www.lpcware.com/content/nxpfile/an11321-porting-cmsis-dap-debugger-cortex-m0-platform|AN11321: Porting the CMSIS-DAP debugger to the Cortex-M0 platform (Rev. 1 — 30 January 2013)]]をダウンロードし、[[https://gist.github.com/ytsuboi/5291057|gistにある私のパッチを当て]]、gpio.cとgpio.hは[[http://www.lpcware.com/content/nxpfile/sample-code-bundle-lpc11uxx-peripherals-using-keils-mdk-arm-0|Sample Code Bundle for LPC11Uxx Peripherals using Keil's MDK-ARM]]から入手してください。