summaryrefslogtreecommitdiff
path: root/src/target/target.c
Commit message (Collapse)AuthorAgeFilesLines
* resume is now asynchronousoharboe2008-07-181-18/+4
| | | | git-svn-id: svn://svn.berlios.de/openocd/trunk@828 b42882b7-edfa-0310-969c-e2dbd0fdcd60
* 1. GDB will print cryptic error messages if it is not fed keep-alive packetsoharboe2008-07-181-1/+25
| | | | | | | | | | | | | | | | | | within the last 2000ms. To fix this, add keep_alive() if you are spending >1000ms in an algorithm thus holding up the server loop. target_call_timer_callbacks() invokes keep_alive(). 2. post_reset script is now executed at normal JTAG speed and not reset speed. 3. Resume is now synchronous again. Hopefully it will work this time. git-svn-id: svn://svn.berlios.de/openocd/trunk@826 b42882b7-edfa-0310-969c-e2dbd0fdcd60
* Charles Hardin <ckhardin@gmail.com> move tcl stuff nearer to where it belongs.oharboe2008-07-181-2/+359
| | | | git-svn-id: svn://svn.berlios.de/openocd/trunk@824 b42882b7-edfa-0310-969c-e2dbd0fdcd60
* - reverted resume_target to old behaviourntfreak2008-07-171-19/+0
| | | | git-svn-id: svn://svn.berlios.de/openocd/trunk@817 b42882b7-edfa-0310-969c-e2dbd0fdcd60
* better error messages for target event scripts.oharboe2008-07-161-39/+0
| | | | git-svn-id: svn://svn.berlios.de/openocd/trunk@810 b42882b7-edfa-0310-969c-e2dbd0fdcd60
* - only check normal resume, not debug resumentfreak2008-07-091-10/+12
| | | | git-svn-id: svn://svn.berlios.de/openocd/trunk@777 b42882b7-edfa-0310-969c-e2dbd0fdcd60
* - target_resume is now synchronous with 5sec timeoutntfreak2008-07-091-1/+23
| | | | git-svn-id: svn://svn.berlios.de/openocd/trunk@775 b42882b7-edfa-0310-969c-e2dbd0fdcd60
* tcl regression fixes.oharboe2008-07-081-1/+1
| | | | git-svn-id: svn://svn.berlios.de/openocd/trunk@774 b42882b7-edfa-0310-969c-e2dbd0fdcd60
* - removed target_process_events as only used in handle_resume_command and ↵ntfreak2008-07-081-9/+0
| | | | | | events will be called anyway by poll git-svn-id: svn://svn.berlios.de/openocd/trunk@772 b42882b7-edfa-0310-969c-e2dbd0fdcd60
* - fix pre_resume script not being calledntfreak2008-07-081-10/+4
| | | | git-svn-id: svn://svn.berlios.de/openocd/trunk@771 b42882b7-edfa-0310-969c-e2dbd0fdcd60
* reset event is synonym for post_reset event. oharboe2008-07-071-2/+9
| | | | git-svn-id: svn://svn.berlios.de/openocd/trunk@769 b42882b7-edfa-0310-969c-e2dbd0fdcd60
* - fixed build issues with win32ntfreak2008-07-061-1/+0
| | | | | | | - fixed build warnings for last commit - set svn props for last commit git-svn-id: svn://svn.berlios.de/openocd/trunk@760 b42882b7-edfa-0310-969c-e2dbd0fdcd60
* src/helper/configuration.hoharboe2008-07-061-66/+21
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | - Log output handlers now get a "const char *line" - Added "const" to parameter. src/helper/command.c src/helper/command.h - New function: 'command_output_text()' - Log output handlers now get a "const char *line" src/helper/options.c - Log output handlers now get a "const char *line" src/server/telnet_server.c - DO not transmit NULL bytes via TELNET. - Log output handlers now get a "const char *line" src/server/gdb_server.c - Log output handlers now get a "const char *line" *** THIS INCLUDES PORTIONS OF A PATCH FROM Oyvind sent previously to the mailing list for TCL users try src/target/target.c *** THIS INCLUDES PORTIONS OF A PATCH FROM Oyvind sent previously to the mailing list for TCL users try src/target/target.h *** THIS INCLUDES PORTIONS OF A PATCH FROM Oyvind sent previously to the mailing list for TCL users try src/openocd.c - **MAJOR** Work: New TCL/Jim function: mem2array - **MAJOR** Work: Redirect Tcl/Jim stdio output to remote users. - Previously: TCL output did not go to GDB. - Previously: TCL output did not go to TELNET - Previously: TCL output only goes to control console. - This fixes that problem. + Created callbacks: +openocd_jim_fwrite() +openocd_jim_fread() +openocd_jim_vfprintf() +openocd_jim_fflush() +openocd_jim_fgets() src/Makefile.am - New TCL files. - Future note: This should be more automated. As the list of 'tcl' files grows maintaning this list will suck. src/Jim.c - ** THIS INCLUDES A PREVIOUS PATCH I SENT EARLIER ** - that impliments many [format] specifies JIM did not support. - Jim_FormatString() - **MAJOR** work. - Previously only supported "%s" "%d" and "%c" - And what support existed had bugs. - NEW: *MANY* formating parameters are now supported. - TODO: The "precision" specifier is not supported. ** NEW ** This patch. - Jim_StringToWide() test if no conversion occured. - Jim_StringToIndex() test if no conversion occured. - Jim_StringToDouble() test if no conversion occured. ** NEW ** This Patch. Major Work. - Previously output from JIM did not get sent to GDB - Ditto: Output to Telnet session. - Above items are now fixed - By introducing callbacks new function pointers in the "interp" structure. - Helpers that call the callbacks. - New function: Jim_fprintf() - New function: Jim_vfprintf() - New function: Jim_fwrite() - New function: Jim_fread() - New function: Jim_fflush() - New function: Jim_fgets() By default: the output is to STDIO as previous. The "openocd.c" - redirects the output as needed. - Jim_Panic() - Send panic to both STDERR and the interps specified STDERR output as a 2nd choice. - Now JIM's "stdin/stdout/stderr" paramters are "void *" and are no longer "FILE *". src/Jim.h - **MAJOR** - New JIM STDIO callbacks in the "interp" structure. - change: "stdin/stdout/stderr" are now "void *" cookies. - New JIM stdio helper functions. git-svn-id: svn://svn.berlios.de/openocd/trunk@755 b42882b7-edfa-0310-969c-e2dbd0fdcd60
* - allocate target_type_t structure for each target, fixes issue when ↵ntfreak2008-07-021-1/+3
| | | | | | | | multiple targets of the same type are located on the jtag chain - Thanks Michel Pollet git-svn-id: svn://svn.berlios.de/openocd/trunk@738 b42882b7-edfa-0310-969c-e2dbd0fdcd60
* Fixed bogus error message and plugged memory leak for the case when there ↵oharboe2008-06-251-1/+3
| | | | | | was no reset script. git-svn-id: svn://svn.berlios.de/openocd/trunk@728 b42882b7-edfa-0310-969c-e2dbd0fdcd60
* added pre/post_reset scripts based on Pieter Conradie's ideas.oharboe2008-06-251-12/+31
| | | | git-svn-id: svn://svn.berlios.de/openocd/trunk@726 b42882b7-edfa-0310-969c-e2dbd0fdcd60
* - moved flash erase_check target code to target.cntfreak2008-05-271-0/+17
| | | | git-svn-id: svn://svn.berlios.de/openocd/trunk@694 b42882b7-edfa-0310-969c-e2dbd0fdcd60
* - fixed typo in wp commandntfreak2008-05-271-1/+1
| | | | git-svn-id: svn://svn.berlios.de/openocd/trunk@692 b42882b7-edfa-0310-969c-e2dbd0fdcd60
* moved srst_pulls_trst check into arm7_9_common.c. Not tested yet, if it is ↵oharboe2008-05-211-10/+0
| | | | | | broken it should "only" print bogus warnings or not print a warning when it should have. git-svn-id: svn://svn.berlios.de/openocd/trunk@670 b42882b7-edfa-0310-969c-e2dbd0fdcd60
* print out an error if srst_pulls_trst is not specified foroharboe2008-05-191-6/+17
| | | | | | e.g. at91fr40008. Could possibly show bogus false positives in log without any other side effects. git-svn-id: svn://svn.berlios.de/openocd/trunk@666 b42882b7-edfa-0310-969c-e2dbd0fdcd60
* Michael Fischer found and Edgar Grimberg fixed generic crash in timers ↵oharboe2008-05-191-11/+14
| | | | | | reproduceable with at91fr40008 git-svn-id: svn://svn.berlios.de/openocd/trunk@663 b42882b7-edfa-0310-969c-e2dbd0fdcd60
* Michael Fischer spotted a problem in the reset routines for srst_pulls_trst. ↵oharboe2008-05-091-0/+17
| | | | | | | | It is a bit of a mystery why this was only visible w/LPC2148. Embedded ICE registers are now set up after SRST pulls TRST. git-svn-id: svn://svn.berlios.de/openocd/trunk@650 b42882b7-edfa-0310-969c-e2dbd0fdcd60
* Added checks for target->type->read/write_memory, soft_reset_halt and ↵oharboe2008-04-151-0/+53
| | | | | | run_algorithm that the target has been examined. git-svn-id: svn://svn.berlios.de/openocd/trunk@581 b42882b7-edfa-0310-969c-e2dbd0fdcd60
* target read/write is no longer attempted for target_xxx() functions when the ↵oharboe2008-04-151-4/+49
| | | | | | target has not been examined(fails w/error). git-svn-id: svn://svn.berlios.de/openocd/trunk@580 b42882b7-edfa-0310-969c-e2dbd0fdcd60
* fixed gaffe for default examine implementationoharboe2008-04-111-0/+1
| | | | git-svn-id: svn://svn.berlios.de/openocd/trunk@567 b42882b7-edfa-0310-969c-e2dbd0fdcd60
* Reset wip. Just adding hooks. This is just to reduce the size of the actual ↵oharboe2008-04-111-25/+54
| | | | | | change, no change in behaviour. git-svn-id: svn://svn.berlios.de/openocd/trunk@565 b42882b7-edfa-0310-969c-e2dbd0fdcd60
* Wip - split target setup and target examinationoharboe2008-04-111-0/+7
| | | | git-svn-id: svn://svn.berlios.de/openocd/trunk@564 b42882b7-edfa-0310-969c-e2dbd0fdcd60
* added target->type->examine(). Eventually this will allow for bringing up ↵oharboe2008-04-111-1/+27
| | | | | | telnet/gdb *before* jtag chain has been validated + it might fix some reset halt problems seen as examine() needs to run after TRST has been asserted. git-svn-id: svn://svn.berlios.de/openocd/trunk@563 b42882b7-edfa-0310-969c-e2dbd0fdcd60
* - added "init" command. "init" and "reset" at end of startup script is ↵oharboe2008-04-091-33/+4
| | | | | | | | | | | | | | | equivalent to daemon_startup(still supported). - print warning if srst and trst change state at the same time when srst_and_trst is seperate - reset now performs a trst, examines and validates the jtag chain before targets assert reset - if startup fails to examine and validate the jtag chain, try a reset before trying again git-svn-id: svn://svn.berlios.de/openocd/trunk@552 b42882b7-edfa-0310-969c-e2dbd0fdcd60
* - only if "reset halt" or "reset init" are issued will the reset vector be ↵oharboe2008-04-071-2/+17
| | | | | | | | | | | set up - If communication fails during assert between assert/deassert and during assert, warnings are printed. The warning suggests using srst_only if the clock locks up as that would allow the reset vector to be set up before asserting reset. git-svn-id: svn://svn.berlios.de/openocd/trunk@544 b42882b7-edfa-0310-969c-e2dbd0fdcd60
* - the reset mode parameter is now DEPRECATED. It is implementedoharboe2008-04-041-3/+5
| | | | | | | | as an optional parameter with default reset_init. This is to streamline things w.r.t. the target library. git-svn-id: svn://svn.berlios.de/openocd/trunk@540 b42882b7-edfa-0310-969c-e2dbd0fdcd60
* - reverted some of the changes that possibly broke arm926ejs. Waitingoharboe2008-04-041-5/+4
| | | | | | | | for a bit more info before I can tell with confidence whether or not this would have any effect. - worked on error propagation and output for flash git-svn-id: svn://svn.berlios.de/openocd/trunk@539 b42882b7-edfa-0310-969c-e2dbd0fdcd60
* - Work on fixing erase check. Many implementations are plain broken.oharboe2008-04-031-15/+36
| | | | | | | | | | | | | | | | | | | | | | | | | | | Wrote a default flash erase check fn which uses CFI's target algorithm w/fallback to memory reads. - "flash info" no longer prints erase status as it is stale. - "flash erase_check" now prints erase status. erase check can take a *long* time. Work in progress - arm7/9 with seperate srst & trst now supports reset init/halt after a power outage. arm7/9 no longer makes any assumptions about state of target when reset is asserted. - fixes for srst & trst capable arm7/9 with reset init/halt - prepare_reset_halt retired. This code needs to be inside assert_reset anyway - haven't been able to get stm32 write algorithm to work. Fallback flash write does work. Haven't found a version of openocd trunk where this works. - added target_free_all_working_areas_restore() which can let be of restoring backups. This is needed when asserting reset as the target must be assumed to be an unknown state. Added some comments to working areas API - str9 reset script fixes - some guidelines - fixed dangling callbacks upon reset timeout git-svn-id: svn://svn.berlios.de/openocd/trunk@536 b42882b7-edfa-0310-969c-e2dbd0fdcd60
* optional count argument to mwXoharboe2008-04-021-12/+35
| | | | git-svn-id: svn://svn.berlios.de/openocd/trunk@532 b42882b7-edfa-0310-969c-e2dbd0fdcd60
* target_call_timer_callbacks_now() now invokes periodic callbacks immediatelyoharboe2008-03-311-8/+11
| | | | git-svn-id: svn://svn.berlios.de/openocd/trunk@529 b42882b7-edfa-0310-969c-e2dbd0fdcd60
* - rename log functions to stop conflicts under win32 (wingdi)ntfreak2008-03-251-50/+50
| | | | git-svn-id: svn://svn.berlios.de/openocd/trunk@523 b42882b7-edfa-0310-969c-e2dbd0fdcd60
* - armv7m control register now set as dirty when switching contextntfreak2008-03-211-1/+1
| | | | | | | - armv7m added core_mode to cortex_m3_debug_entry DEBUG msg - cortex_m3 changed WARNINGS to DEBUG msg in cortex_m3_resume git-svn-id: svn://svn.berlios.de/openocd/trunk@519 b42882b7-edfa-0310-969c-e2dbd0fdcd60
* added profile command. It was added to simplify evaluation by testers.oharboe2008-03-141-0/+188
| | | | git-svn-id: svn://svn.berlios.de/openocd/trunk@516 b42882b7-edfa-0310-969c-e2dbd0fdcd60
* - adds two speeds to jtag_speed. reset and post reset speed. Defaultoharboe2008-03-131-94/+54
| | | | | | | | | | is post reset = reset speed. - removed infinite loop's and exit()'s upon poor arm7/9 communication - cleaned up error messages a bit. Push ERROR() up into fn's that fail and can say something meaningful about what failed. git-svn-id: svn://svn.berlios.de/openocd/trunk@511 b42882b7-edfa-0310-969c-e2dbd0fdcd60
* - Fixed various error handling when looking for memory leaksoharboe2008-03-101-39/+44
| | | | | | | | | | | | | - Fixed memory leak in gdb_server.c - pushed "Error:" statements up into fn's that know something about what went wrong - load_image now fails if target_write_memory() fails - only issue an asynchronous halt() upon connect of GDB. Synchronous halt/reset doesn't really work as what's required to initialize the target might involve a special monitor sequence for the target in question - syntax error handling improved(fewer exit()'s) git-svn-id: svn://svn.berlios.de/openocd/trunk@482 b42882b7-edfa-0310-969c-e2dbd0fdcd60
* - Improves error handling upon GDB connectoharboe2008-03-071-15/+3
| | | | | | | | | | | | | | | | | | - switch to synchronous halt during connect. This fixes the bug where poll() was not invoked between halt() and servicing the 'g' register packet - halt() no longer returns error code when target is already halted, just logs a warning. Only the halt() implementation can say anything meaningful about why a halt() failed, so error messages are pushed up to halt() - fixed soft_reset_halt infinite loop bug in arm7_9_common.c. The rest of the implementations are still busted. - by using USER() instead of command_print() the log gets the source + line #. Nice. - no longer invoke exit() if soft_reset_halt fails. A reset can often fix the problem. git-svn-id: svn://svn.berlios.de/openocd/trunk@475 b42882b7-edfa-0310-969c-e2dbd0fdcd60
* warnings & comments fixes.oharboe2008-03-051-4/+2
| | | | git-svn-id: svn://svn.berlios.de/openocd/trunk@449 b42882b7-edfa-0310-969c-e2dbd0fdcd60
* * fixed malloc corruption in target->debug_reasonoharboe2008-03-051-2/+7
| | | | | | | | | | | | | | | * GDB remote server will now remain online even if the target is in a funny state, e.g. if it requires a reset, it is running while GDB is not in the continue or step packet, e.g. via monitor resume/halt commands in GDB script. * Added some _DEBUG_GDB_IO_ debug tools * Fixed a couple of GDB server lockups, e.g. when O packets detect a severed connection * added ACK upon connection (send +). * added keep-alive messages to reset so GDB protocol remains happy. * fixed crash when timing out connection to GDB git-svn-id: svn://svn.berlios.de/openocd/trunk@445 b42882b7-edfa-0310-969c-e2dbd0fdcd60
* Fixed GDB timeout crash - regression introduced back when ↵oharboe2008-03-041-2/+0
| | | | | | log_add/remove_callback was added. git-svn-id: svn://svn.berlios.de/openocd/trunk@442 b42882b7-edfa-0310-969c-e2dbd0fdcd60
* Tweaked logging output.oharboe2008-02-291-13/+0
| | | | | | TODO is retired(hopelessly out of date). git-svn-id: svn://svn.berlios.de/openocd/trunk@400 b42882b7-edfa-0310-969c-e2dbd0fdcd60
* - clean up target output strings a bitoharboe2008-02-291-9/+9
| | | | | | | | | - open_file_from_path() now uses logging feature - open_file_from_path() no longer uses paths for anything but "r" mode. Fixes bug waiting to happen. git-svn-id: svn://svn.berlios.de/openocd/trunk@389 b42882b7-edfa-0310-969c-e2dbd0fdcd60
* Michael Bruck:oharboe2008-02-291-0/+2
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | arm11 --- Added burst memory transfer mode This does not explicitly query command execution but rather uses a small delay produced by the FT2232 on certain TAP commands. A potential failure of this process is detected afterwards and the program terminates with an error. 'arm11 memwrite burst disable' can be used to switch this feature off. 'arm11 memwrite error_fatal disable' can be used to prevent the program to exit on an memory write error --- Added support for interrupt breaking via VCR register Use 'arm11 vcr' command to set. --- Cleaned up the handling of halt/resume/step/poll, target->state, target->debug_reason, target_call_event_callbacks() at least as far as I could guess the intended behaviour from other targets. Did some overall positive tests with GDB. --- Added support for breakpoints Hardware breakpoints only. All breakpoints will be treated as hardware breakpoints. All ARM11's seem to have at least 6 hardware breakpoints. --- Stepping over BKPT added Modification to PC without touching the target. --- Stepping over a B or BL to self will do nothing git-svn-id: svn://svn.berlios.de/openocd/trunk@385 b42882b7-edfa-0310-969c-e2dbd0fdcd60
* - convert all files to unix line-endingdrath2008-02-251-2332/+2332
| | | | git-svn-id: svn://svn.berlios.de/openocd/trunk@347 b42882b7-edfa-0310-969c-e2dbd0fdcd60
* From Michael Bruckoharboe2008-02-251-2332/+2332
| | | | | | | | | - bugfix in server.c - removed unused parameter from jtag_add_ir_scan et al. This wasn't necessary in hindsight but anyway. - arm11 source committed but not not in Makefile.am/target.c for now. git-svn-id: svn://svn.berlios.de/openocd/trunk@341 b42882b7-edfa-0310-969c-e2dbd0fdcd60
* - using ERROR_COMMAND_SYNTAX_ERROR to print syntax in a couple of placesoharboe2008-02-251-36/+5
| | | | | | | | | - some more flash cleanup of checking halted state - moved output handler into options.c - very slightly tweaked server.c to make it a bit more compatible with eCos - retired arch_state. Not quite sure how I managed to leave that out last time. git-svn-id: svn://svn.berlios.de/openocd/trunk@338 b42882b7-edfa-0310-969c-e2dbd0fdcd60