Skip to content
Snippets Groups Projects
  1. Jul 15, 2009
    • zwelch's avatar
      David Brownell <david-b@pacbell.net>: · 930269b4
      zwelch authored
      More instructions decoded:
      
      	A5.3.5 Load/store multiple 
      
      The preferred PUSH/POP syntax is shown when appropriate.
      
      
      git-svn-id: svn://svn.berlios.de/openocd/trunk@2539 b42882b7-edfa-0310-969c-e2dbd0fdcd60
      930269b4
    • zwelch's avatar
      David Brownell <david-b@pacbell.net>: · 421b8e13
      zwelch authored
      More instructions decoded:
      
      	A5.3.14 Multiply, and multiply accumulate 
      	A5.3.15 Long multiply, long multiply accumulate, divide
      
      The EABI requires *adjacent* register pairs, but the long multiply
      ops can use any pair of registers; interesting.
      
      
      git-svn-id: svn://svn.berlios.de/openocd/trunk@2538 b42882b7-edfa-0310-969c-e2dbd0fdcd60
      421b8e13
    • zwelch's avatar
      David Brownell <david-b@pacbell.net>: · 889bd3e7
      zwelch authored
      More Thumb2 32-bit opcode support:
      
      	 A5.3.10 Store single data item 
      
      Byte, word, halfword.  Offset, pre-index, post-index.  And
      a "make like you're unprivileged" option when using small
      immediate offsets.
      
      
      git-svn-id: svn://svn.berlios.de/openocd/trunk@2537 b42882b7-edfa-0310-969c-e2dbd0fdcd60
      889bd3e7
    • zwelch's avatar
      David Brownell <david-b@pacbell.net>: · 84e86e9a
      zwelch authored
      Print old-style Thumb NOP instructions as such.  (GCC uses "mov r8, r8"
      instead of the architected NOP which is new in Thumb2.)
      
      
      git-svn-id: svn://svn.berlios.de/openocd/trunk@2536 b42882b7-edfa-0310-969c-e2dbd0fdcd60
      84e86e9a
    • zwelch's avatar
      David Brownell <david-b@pacbell.net>: · d2088f0d
      zwelch authored
      Make disassembly of the Thumb load-literal instruction show the
      address of the literal being loaded (so users can avoid doing
      that math themselves).  Add and use an Align(PC,4) utility.
      
      
      git-svn-id: svn://svn.berlios.de/openocd/trunk@2535 b42882b7-edfa-0310-969c-e2dbd0fdcd60
      d2088f0d
    • zwelch's avatar
      David Brownell <david-b@pacbell.net>: · f163d000
      zwelch authored
      Make the Thumb2 disassembler handle more 32-bit instructions:
      
        A5.3.3 Data processing (plain binary immediate)
      
      These use mostly twelve bit literals, but there are also bitfield
      and saturated add primitives.
      
      
      git-svn-id: svn://svn.berlios.de/openocd/trunk@2534 b42882b7-edfa-0310-969c-e2dbd0fdcd60
      f163d000
    • zwelch's avatar
      David Brownell <david-b@pacbell.net>: · 0165ae44
      zwelch authored
      Make the Thumb2 disassembler handle more 32-bit instructions:
      
        A5.3.1 Data processing (modified immediate)
      
      My small sample shows GCC likes to use many of these instructions.
      
      
      git-svn-id: svn://svn.berlios.de/openocd/trunk@2533 b42882b7-edfa-0310-969c-e2dbd0fdcd60
      0165ae44
    • zwelch's avatar
      David Brownell <david-b@pacbell.net>: · 8b89224c
      zwelch authored
      Make the Thumb2 disassembler handle a bunch of 32-bit instructions:
      
        A5.3.4 Branches and miscellaneous control
       
      Note that this shifts some responsabililty out of helper functions,
      making the code and layout simpler for 32-bit decoders:  they only
      need to know how to format the instruction and its parameters.
      
      Also, technical note:  with this patch, Thumb1 decoders could now
      call the Thumb2 decoder if they wanted to get nicer treatment of
      the exiting 32-bit B/BLX instructions.
      
      
      git-svn-id: svn://svn.berlios.de/openocd/trunk@2532 b42882b7-edfa-0310-969c-e2dbd0fdcd60
      8b89224c
    • zwelch's avatar
      David Brownell <david-b@pacbell.net>: · b71e3aff
      zwelch authored
      Change layout of Thumb disassembly to work better with Thumb2:
      
       - Move opcode to the left, allowing space for four hex bytes:
          * after address, two spaces not one tab (taking 6 spaces)
          * after 2-byte opcode, four spaces before tab
       - Also, after opcode mnemonic use a tab not a space, to make
         operands line up
      
      Sample output (after some patches decoding a few 32-bit instructions):
      
      0x00003e5a  0xf4423200	ORR	r2, r2, #131072	; 0x20000
      0x00003e5e  0x601a    	STR 	r2, [r3, #0x0]
      0x00003e60  0x2800    	CMP	r0, #0x00
      0x00003e62  0xd1f3    	BNE	0x00003e4c
      0x00003e64  0xf008fa38	BL	0x0000c2d8
      
      The affected lines of code now wrap at sane margins too.
      
      
      git-svn-id: svn://svn.berlios.de/openocd/trunk@2531 b42882b7-edfa-0310-969c-e2dbd0fdcd60
      b71e3aff
    • zwelch's avatar
      David Brownell <david-b@pacbell.net>: · 309870e4
      zwelch authored
      Initial support for disassembling Thumb2 code.  This works only for
      Cortex-M3 cores so far.  Eventually other cores will also need Thumb2
      support ... but they don't yet support any kind of disassembly.
      
       - Update the 16-bit Thumb decoder:
       
           * Understand CPS, REV*, SETEND, {U,S}XT{B,H} opcodes added
             by ARMv6.  (It already seems to treat CPY as MOV.)
      
           * Understand CB, CBNZ, WFI, IT, and other opcodes added by
             in Thumb2.
      
       - A new Thumb2 instruction decode routine is provided.
       
           * This has a different signature:  pass the target, not the
             instruction, so it can fetch a second halfword when needed.  
             The instruction size is likewise returned to the caller.
      
           * 32-bit instructions are recognized but not yet decoded.
         
       - Start using the current "UAL" syntax in some cases.  "SWI" is
         renamed as "SVC"; "LDMIA" as "LDM"; "STMIA" as "STM".
      
       - Define a new "cortex_m3 disassemble addr count" command to give
         access to this disassembly.
      
      Sanity checked against "objdump -d" output; a bunch of the new
      instructions checked out fine.
      
      
      git-svn-id: svn://svn.berlios.de/openocd/trunk@2530 b42882b7-edfa-0310-969c-e2dbd0fdcd60
      309870e4
  2. Jun 23, 2009
  3. Jun 21, 2009
  4. Jun 18, 2009
  5. May 11, 2009
  6. Mar 24, 2009
  7. Mar 25, 2008
  8. Jun 24, 2007
  9. Jun 14, 2007
    • drath's avatar
      - added manpage for OpenOCD (thanks to Uwe Hermann) · 53d1f9b2
      drath authored
      - fixed bug in ARM926EJ-S cache handling that caused cache linefills to be disabled after first debug entry
      - added support for auto image type detection (thanks to Vincent Palatin)
      - further work on ETM trace decoding (tested with a ETB interface using an ETM in normal 16-bit port mode, still experimental)
      
      
      
      git-svn-id: svn://svn.berlios.de/openocd/trunk@169 b42882b7-edfa-0310-969c-e2dbd0fdcd60
      53d1f9b2
  10. May 29, 2007
    • drath's avatar
      - split fileio handling into fileio part and image handling · 237e8948
      drath authored
      - reworked etm/etb into a generic etm part with trace capture drivers (currently only etb supported)
      - added XScale debug handler binary to repository
      - added Thumb disassembling (thanks to Vincent Palatin for this patch)
      - added support for non-CFI compatible flashes to cfi driver (currently only SST39VFxxx devices supported)
      This checkin is experimental, not suitable for general use
      
      
      git-svn-id: svn://svn.berlios.de/openocd/trunk@155 b42882b7-edfa-0310-969c-e2dbd0fdcd60
      237e8948
  11. Mar 28, 2007
  12. Mar 26, 2007
  13. Jan 09, 2007
    • drath's avatar
      - disabled FT2232 debug output (that code should be fairly stable) · a4f2e1ea
      drath authored
      - fixed bug in jtag.c where JTAG command type was wrong for PATHMOVE commands
      - added lattice ISP cable (experimental)
      - properly initialize parallel port (clear tristate bit)
      - fixed jtag/Makefile.am that failed with some versions of autotools
      - print error number if read() in gdbserver.c failed on Windows
      - fixed handling of opcodes with bits 27-25 b011 (comment was correct, code had a bug)
      - added support for AT91SAM7SE internal flash
      
      
      git-svn-id: svn://svn.berlios.de/openocd/trunk@122 b42882b7-edfa-0310-969c-e2dbd0fdcd60
      a4f2e1ea
  14. Jul 17, 2006
  15. Jun 25, 2006
  16. Jun 16, 2006
  17. Jun 12, 2006
    • drath's avatar
      - the 'help' command now takes an optional argument to display help only on a... · b9628acc
      drath authored
      - the 'help' command now takes an optional argument to display help only on a certain command (thanks to Andrew Dyer for this enhancement)
      - OpenOCD now includes the ability to diassemble instructions on its own (only ARM for now, Thumb might follow). 
      The command is "armv4_5 disassemble <address> <count> ['thumb']" (thumb is currently unsupported).
      I've compared the produced disassembly against GDB/GNU Objdump output, and it seems to be correct, but there may still be some bugs left.
      
      
      git-svn-id: svn://svn.berlios.de/openocd/trunk@68 b42882b7-edfa-0310-969c-e2dbd0fdcd60
      b9628acc
Loading