 Tv

   ́AOpenOCD  DLL nbNijłB
   AO DLL uāAJTAGA_v^[̃hCo[݂̕Ă܂B

   JTAGA_v^[Ƃ̒ʐMWindowsėpUSB-CDCfoCXiVAʐMjōs܂B

 ݂̃Xe[^X

   eARMgpJTAGA_v^[삵Ă܂B

   - CQ-STARM (STM32)
   - CQ-FRK-NXP-ARM (LPC2388)
   - MARY (LPC1114)

   ʐMxFT2232pJTAGA_v^[ɔׂƒᑬłB


  * t@[EFȀ
  
  +----------------------------------------------+
  |          | t@[EFA(Hext@C) |
  +----------------------------------------------+
  | CQ-STARM       | CQ_STARM-3000.hex           |
  | STBee          | STBEE-3000.hex              |
  | STBeeMini      | STBEE_MINI-3000.hex         |
  +----------------------------------------------+
  | MARY           | MARY-0000.hex               |
  | CQ-FRK-NXP-ARM | LPC2388-0000.hex            |
  +----------------------------------------------+

 

  ^[Qbg}CR̎ނɍ킹āAcq-binary fBNgɂA
  start-stm32.bat   (STM32}CR̃fobOp) A
  start-fm3.bat     (FM3}CR̃fobOp) A
  start-lpc2388.bat (LPC2388}CR̃fobOp) ̂ǂꂩ
  WindowsDOSN邩AWindows̃GNXv[[璼
  _uNbNŋN܂B
  
  OpenOCDNƁADOSɂPOsx̃bZ[WOoāA^[Qbg
  }CRƐڑƂm点Ă܂B
  ڑ܂ȂꍇError̃bZ[WoĂ܂B

  pꃁbZ[WȂ̂ŕɂłAG[ꍇ͂̓e
  悭ǂł݂ĂB
  ̏ꍇ͔z~Xd̕sŃG[ɂȂ܂B

  ܂AOpenOCDlocalhost:3333(GDB)4444(telnet)Listen
  TCP/IPT[o[ƂĐU܂B

  NWindowst@CA[EH[ȂǂAOpenOCDIPڑoāA
  ubN邩邩[U[ɕĂ܂̂ŁAiŏ̂P񂾂łj
  IĂĂB

  OpenOCD́ADOSɃOprint邾́AȂR}hCc[
  ɉ߂܂̂ŁA[U[Rg[ꍇteratermȂǂtelnet[
  NāAlocalhost  4444ԃ|[g telnet Őڑ܂B
  
   ɐڑoĂ悤łAtelnet localhost:4444 ԂɐڑāAOpenOCD
   R}h (: scan_chain Ȃ) sĂ݂ĂB


 fBNg\

 cdclink --+- openocd -+  openocd.exe {  cdclink.dll ̃\[X.
                       |
                       +--helper\   wb_[t@C.
                       +--jtag\     wb_[t@C.
                       +--jimtcl\   wb_[t@C.
                       |
                       +--openocd_patch\  openocd{̑쐬p̉pb`.

 firmware -+-- stm32\ ----- CQ-STARMpfirmware\[X
           |
           +-- lpc2388\ --- CQ-FRK-NXP-ARM pfirmware\[X
           |
           +-- mary\ ------ MARYpfirmware\[X


 vO̍ărh@

   WindowsXPMinGW-gccRpCp openocd/ fBNgɂ makeĂB
   makeƁAcdclink.dll 쐬܂B

   openocd.exe{̂ărh@́AȉURLQƂĂB

-http://hp.vector.co.jp/authors/VA000177/html/2010-09.html
   
   ̉\[Xopenocd_patch/ fBNgɒuĂ܂B

   Linuxł̃rhIvV́AȊłB
   $ ./configure \
       --build=i686-pc-linux-gnu \
       --host=i586-mingw32msvc \
       --enable-maintainer-mode \
       --enable-dummy

   oオ openocd.exe {̂́AhCo[ƂāAfBNgɑ݂ 
   cdclink.dll NɌĂяo܂B

   (݂Ȃ΁AdummyhCo[݂̂gݍ܂܂)


 CZX

   OpenOCD̔zzCZXɏ܂B


 W]

   cdclink.dll t@C(͂)ւ邾ŁAfoCXT|[g\ɂȂ܂B
   iƂATtiny2313gpJTAGA_v^[ȂǂT|[go\܂j

   cdclink.dll ̃Gg[|CǵA
      DLL_int get_if_spec(struct jtag_command **q);
   łBstruct jtag_command **qqɂ́Aopenocd{̂jtag_command_queueƂ
   O[oϐ̃AhXn܂B
   ߂ĺA(intɂȂĂ܂) hCo[Lq\̂̃AhXɂȂ܂B





 JTAGR}h̒ǉƃvgRɂ

-hidcmd.h
 #define HIDASP_JTAG_WRITE	  0x18	//JTAG .
 #define HIDASP_JTAG_READ	  0x19	//JTAG ǂݏ.
-ǉĂ܂B

-HidReport̉Xg[(PC->AVR) TCY͍ő64oCg܂łł.
 +------+------+-------------------+------+-------------------+------+-------------+-----+
 | 0x18 | jcmd |  data           | jcmd |  data           | jcmd |  data     | 0x00|
 +------+------+-------------------+------+-------------------+------+-------------+-----+

--jcmd1oCg͈ȉ̂悤ɒ`îPj
 bit 7   6   5   4   3   2   1   0  
   +---+---+---+---+---+---+---+---+
   | 0 | b6| JTAG]bit(TDI̐)|   { JTAG]bit TDIrbgiLSBt@[Xgj  
   +---+---+---+---+---+---+---+---+
--- b6TDIo̍ŏIbitTMS1ɂȂ1 ȂȂ 0 F TMS͍ŏIbitȊO͏펞0

--jcmd1oCg͈ȉ̂悤ɒ`îQj
 bit 7   6   5   4   3   2   1   0  
   +---+---+---+---+---+---+---+---+
   | 1 |BITBANG](㑱byte)|   { BITBANG]񐔕(byte)̃f[^
   +---+---+---+---+---+---+---+---+
--BITBANGf[^̂P񕪂́ATCK=LOW̃TvTCK=HIGH̃TvpbNf[^B
 bit 7   6   5   4   3   2   1   0  
   +---+---+---+---+---+---+---+---+
   |TCK|TDI| - |TMS|TCK|TDI| - |TMS|  iʂSrbgŏɃZbgAɉʂSrbgZbg܂j
   +---+---+---+---+---+---+---+---+
--TCKωȂƂ́ATCKrbg𓯂lɂ܂B


-HidReport̓oXg[(AVR->PC) TCY͍ő64oCg܂. HIDASP_JTAG_READŝݐ܂Ԃԑ܂.
 +----------------------------------------+
 | JTAGMf[^(TDO̓ǂݎrbg)  |  iő64oCg܂Łj
 +----------------------------------------+
--rbgLSBt@[Xg. MꂽTDIrbgƂ̂܂ܑΉĂ܂.

----
̑⑫
 #define HIDASP_JTAG_READ	  0x19	//JTAG ǂݏ.
-sƂ́AHidReport̉Xg[(PC->AVR)PȌ`iPR}ĥ݁jɂ܂B
 +------+------+-------------------+------+
 | 0x19 | jcmd |  data           | 0x00 |
 +------+------+-------------------+------+
-jcmdBitBang[ĥƂ́Aԓf[^͂܂BJTAG(TDI)̂Ƃ̂(TDO)Ԃ܂B
-JTAGXg[ꍇ(56bitȏTDI𑗂TDO󂯎)́A56bitPʂɕ]܂B
-̏ꍇAŌ̃Xg[̍ŏIbit̂݁ATMS1ɂ鏈܂B(b6=1̃pPbgpӂ܂)


-armblaster̃t@[ărhƂ́ACodeSourcery G++ Lite gpĂB


 OpenOCD̊ȒPȎg 

-N܂Alocalhost:4444ԃ|[gtelnet(TeraTermȂǂg)qłB

-TeraTermAȉ̂悤ȃR}h^CvƁAʂ\܂B

|OpenOCDR}h|Ӗ|
|scan_chain		|ڑĂs`õXgB|
|reset halt		|^[QbgCPUHALT|
|reg			|^[QbgCPŨWX^|
|mdw AhX JEg|display memory words <addr> [count][_v|
|step			|botXebvs|
|flash write_image erase main.hex	|main.hexFLASH ROMɏ(̂܂CPUHALTɂĂ܂)|


 Ql(LINK)

OpenOCD܂ (kimura Lab)
-http://www.kimura-lab.net/wiki/index.php/OpenOCD%E3%81%8C%E5%8B%95%E3%81%8F%E3%81%BE%E3%81%A7

OpenOCD (xXgeNmW[)
-http://www.besttechnology.co.jp/modules/knowledge/?OpenOCD

OpenOCD{
-http://openocd.berlios.de/web/
