summaryrefslogtreecommitdiff
path: root/src/helper/startup.tcl
Commit message (Collapse)AuthorAgeFilesLines
* remove unknown handlerZachary T Welch2009-11-281-2/+2
| | | | | | | | | | | | | | Updates command registration to provide top-level handlers for all commands, rather than falling back onto the 'unknown' command. Instead, that same handler is registered for placeholders, providing the same functionality under the root verb command name instead. This permits users to implement their own 'unknown' function, and it resolves some mind-bending breakage related to function object lookup while recursing. Changes 'ocd_bounce' to call 'ocd_command' and 'ocd_help' from the wrapper directly, rather than bouncing through their wrappers. This prevents endless recursion caused by the above changes, whereby the 'command' wrapper's type check would blow the stack to hell and gone.
* improve command handler wrapper scriptZachary T Welch2009-11-281-0/+24
| | | | | | | | | | Adds 'ocd_bouncer' in startup.tcl that is called as a helper for all command handlers, shrinking the embedded C wrapper to a mere stub. Jim handlers are called directly, simple handlers get called with the wrapper to capture and discard their output on error, and placeholders call help directly (though the unknown handler still does this too). It attempts to improve the quality of the error messages as well.
* improve usage and help command outputZachary T Welch2009-11-241-34/+0
| | | | | Rewrite formatting code in C, removing last remenants of TCL help code. Sinificantly improves the readability by using smarter indent and wrap.
* allow scripts to update usage informationZachary T Welch2009-11-241-3/+4
| | | | | | The add_usage_text command uses the same C handler, which was updated to support its new polymorphic role. This patch updates the two script commands that needed this support: 'find' and 'script'.
* rewrite 'unknown' command dispatching in CZachary T Welch2009-11-241-17/+0
| | | | | Rewrite the magical 'unknown' command in C as a Jim handler, allowing it to dispatch commands to any level in the tree.
* improve startup tcl scriptsZachary T Welch2009-11-241-4/+0
| | | | | Fix a couple of layering violations missed in the last round. Add missing comment headers.
* add add_help_text command handlerZachary T Welch2009-11-201-15/+1
| | | | | | | | | | Rewrite means for scripts to register help text for commands. These cause the new commands to be stored in the command heirarchy, with built-in commands; however, they will never be invoked there because they do not receive a command handler. The same trick is used for the Jim commands. Remove the old helpers that were used to register commands.
* improve 'help' commandZachary T Welch2009-11-201-18/+0
| | | | | | | | | | | Rewrites 'help' command in C, using new 'cmd_help' for display. Adds the built-in 'help' COMMAND_HANDLER to provide better output than the TCL-based script command (e.g. heirarchical listing of commands). The help string is stored in the command structure, though it conitnues to be pushed into the Jim environment. The current idiomatic usage suggests the addition of a usage field as well, to provide two levels of detail for users to consume (i.e. terse usage list, or verbose help).
* factor help script command into partsZachary T Welch2009-11-201-28/+34
| | | | | | | | Creates a helper function, cmd_help, which displays the help string for a single command. Presently, it is called from the loop in help. The routine has been extended to allow indentation of command groups, so an improved help command can improve the display of information.
* split startup.tcl file across modulesZachary T Welch2009-11-181-230/+1
| | | | | | | Moves definitions for each layer into their own file, eliminating layering violations in the built-in TCL code. Updates src/Makefile.am rules to include all files in the final startup.tcl input file, and others Makefile.am rules to distribute the new files in our packages.
* ARM: "armv4_5" command prefix becomes "arm"David Brownell2009-11-161-0/+9
| | | | | | | | | | Rename the "armv4_5" command prefix to straight "arm" so it makes more sense for newer cores. Add a simple compatibility script. Make sure all the commands give the same "not an ARM" diagnostic message (and fail properly) when called against non-ARM targets. Signed-off-by: David Brownell <dbrownell@users.sourceforge.net>
* wrap help commandZachary T Welch2009-11-111-9/+17
| | | | Use continuation characters to wrap the help command into 80 columns.
* doc updates to match "help" betterDavid Brownell2009-10-141-52/+5
| | | | | | | | | | | | | | | | | | | This makes the documentation a closer match to "help" output: - "pathmove" somehow was not documented in the User's Guide - "jtag_nsrst_assert_width" and "jtag_ntrst_assert_width" are new; both needed descriptions. - Removed two undocumented and fairly useless script mechanisms: * production/production_info/production_test ... using it, requires replacing everything; so having it adds no value. * cpu ... way out of date; hopeless to keep that current Note that anyone using that "production" stuff already defines their own procedures, and can keep using them with no change. Signed-off-by: David Brownell <dbrownell@users.sourceforge.net>
* add overridable Tcl "init_reset"David Brownell2009-10-081-8/+22
| | | | | | | | | | | This abstracts the "jtag arp_init-reset" call into a method called from OpenOCD startup and reset processing. Platforms which have different requirements for how such hard resets must be performed can now override "init_reset" instead of needing to rebuild custom hacked versions of the server. Signed-off-by: David Brownell <dbrownell@users.sourceforge.net>
* Introduced jtag_init and "jtag arp_init" to allow target scripts more ↵oharboe2009-10-061-0/+10
| | | | | | control over how OpenOCD starts up and initializes the target. git-svn-id: svn://svn.berlios.de/openocd/trunk@2805 b42882b7-edfa-0310-969c-e2dbd0fdcd60
* Start handling the (second) SRST stage of reset better:dbrownell2009-09-231-6/+11
| | | | | | | | | | | make sure that when there are two or more targets, their various pre/post event reports are correctly ordered. Previously, only the first target always saw its "pre" method before SRST was asserted or deasserted. git-svn-id: svn://svn.berlios.de/openocd/trunk@2753 b42882b7-edfa-0310-969c-e2dbd0fdcd60
* Remove annoying end-of-line whitespace from most src/*dbrownell2009-09-211-20/+20
| | | | | | | files; omitted src/httpd git-svn-id: svn://svn.berlios.de/openocd/trunk@2742 b42882b7-edfa-0310-969c-e2dbd0fdcd60
* Tweak TCL reset script ... mostly improving descriptions ofdbrownell2009-09-181-12/+27
| | | | | | | the various steps, but also calling [target names] only once. git-svn-id: svn://svn.berlios.de/openocd/trunk@2726 b42882b7-edfa-0310-969c-e2dbd0fdcd60
* error message upon recursive invocation of reset from reset event handlersoharboe2009-09-141-0/+22
| | | | git-svn-id: svn://svn.berlios.de/openocd/trunk@2707 b42882b7-edfa-0310-969c-e2dbd0fdcd60
* Dirk Behme <dirk.behme@googlemail.com> Fix typo in help text. It has to be ↵oharboe2009-08-301-1/+1
| | | | | | 'production_test' instead of 'production' here. git-svn-id: svn://svn.berlios.de/openocd/trunk@2654 b42882b7-edfa-0310-969c-e2dbd0fdcd60
* David Brownell <david-b@pacbell.net> start phasing out integers as target IDsoharboe2009-08-301-1/+1
| | | | git-svn-id: svn://svn.berlios.de/openocd/trunk@2650 b42882b7-edfa-0310-969c-e2dbd0fdcd60
* Jonas Horberg [jhorberg@sauer-danfoss.com]ntfreak2009-08-181-9/+0
| | | | | | Change jtag_rclk behaviour so it can be called before the interface init function git-svn-id: svn://svn.berlios.de/openocd/trunk@2590 b42882b7-edfa-0310-969c-e2dbd0fdcd60
* delete long retired commented out code (daemon_startup)oharboe2009-07-071-4/+0
| | | | git-svn-id: svn://svn.berlios.de/openocd/trunk@2487 b42882b7-edfa-0310-969c-e2dbd0fdcd60
* David Brownell <david-b@pacbell.net>:zwelch2009-06-071-5/+23
| | | | | | | | | | | | | | | Let disabled targets be ignored during normal operation: - In target_examine(), ignore disabled TAPs - Reset handling must not poke at them either: * fail $target_name arp_* operations on disabled TAPs * in startup.tcl, don't even issue the arp_* wait ops ZW: removed superfluous braces from the patch to target.c. git-svn-id: svn://svn.berlios.de/openocd/trunk@2100 b42882b7-edfa-0310-969c-e2dbd0fdcd60
* less weird error messages for unknown commands. Check if command exists ↵oharboe2009-05-181-3/+4
| | | | | | before trying it. git-svn-id: svn://svn.berlios.de/openocd/trunk@1810 b42882b7-edfa-0310-969c-e2dbd0fdcd60
* zy1000 1.49 snapshotoharboe2009-02-171-0/+8
| | | | git-svn-id: svn://svn.berlios.de/openocd/trunk@1374 b42882b7-edfa-0310-969c-e2dbd0fdcd60
* Rick Altherr <kc8apf@kc8apf.net> retire obsolete syntaxoharboe2008-11-271-44/+0
| | | | git-svn-id: svn://svn.berlios.de/openocd/trunk@1190 b42882b7-edfa-0310-969c-e2dbd0fdcd60
* execute reset init upon power restore / srst deassertoharboe2008-11-101-0/+20
| | | | git-svn-id: svn://svn.berlios.de/openocd/trunk@1150 b42882b7-edfa-0310-969c-e2dbd0fdcd60
* minor cleanupoharboe2008-11-101-16/+3
| | | | git-svn-id: svn://svn.berlios.de/openocd/trunk@1149 b42882b7-edfa-0310-969c-e2dbd0fdcd60
* fix telnet async messages. retired telnet_async command - no user ↵oharboe2008-11-051-15/+0
| | | | | | serviceable parts inside. git-svn-id: svn://svn.berlios.de/openocd/trunk@1135 b42882b7-edfa-0310-969c-e2dbd0fdcd60
* cpu help command wipoharboe2008-11-041-1/+40
| | | | git-svn-id: svn://svn.berlios.de/openocd/trunk@1131 b42882b7-edfa-0310-969c-e2dbd0fdcd60
* Added telnet_async command to enable/disable asynchronousoharboe2008-10-311-0/+16
| | | | | | messages. git-svn-id: svn://svn.berlios.de/openocd/trunk@1117 b42882b7-edfa-0310-969c-e2dbd0fdcd60
* Kees Jongenburger <kees.jongenburger@gmail.com> - fix typooharboe2008-10-271-1/+1
| | | | git-svn-id: svn://svn.berlios.de/openocd/trunk@1106 b42882b7-edfa-0310-969c-e2dbd0fdcd60
* - fix native mingw build if gettimeofday not defined.ntfreak2008-10-241-75/+69
| | | | | | - reformat whitespace in startup.tcl git-svn-id: svn://svn.berlios.de/openocd/trunk@1101 b42882b7-edfa-0310-969c-e2dbd0fdcd60
* gdb_report_data_abort now ignores all target read errors, including address ↵oharboe2008-10-241-8/+8
| | | | | | space wraps. Hopefully works around problems in 6.8 git-svn-id: svn://svn.berlios.de/openocd/trunk@1099 b42882b7-edfa-0310-969c-e2dbd0fdcd60
* load and verify are now synonymous to load/verify_imageoharboe2008-10-221-0/+9
| | | | git-svn-id: svn://svn.berlios.de/openocd/trunk@1092 b42882b7-edfa-0310-969c-e2dbd0fdcd60
* added help on production proc'soharboe2008-10-161-0/+20
| | | | git-svn-id: svn://svn.berlios.de/openocd/trunk@1072 b42882b7-edfa-0310-969c-e2dbd0fdcd60
* reset cleanup. Remove obsolete events that are not needed for compatibility.oharboe2008-10-141-7/+3
| | | | git-svn-id: svn://svn.berlios.de/openocd/trunk@1053 b42882b7-edfa-0310-969c-e2dbd0fdcd60
* Fixed gaffes in reset script handling + improved erroroharboe2008-10-131-40/+40
| | | | | | | | messages a bit. The file and line # of the syntax error in a reset script is now printed. git-svn-id: svn://svn.berlios.de/openocd/trunk@1042 b42882b7-edfa-0310-969c-e2dbd0fdcd60
* Duane Ellis: added missing invocation of reset-initoharboe2008-10-011-1/+2
| | | | git-svn-id: svn://svn.berlios.de/openocd/trunk@1013 b42882b7-edfa-0310-969c-e2dbd0fdcd60
* Duane Ellis: target_process_reset is now implemented in tcl. This allows ↵oharboe2008-09-121-0/+87
| | | | | | better control from target configuration scripts. git-svn-id: svn://svn.berlios.de/openocd/trunk@984 b42882b7-edfa-0310-969c-e2dbd0fdcd60
* Duane Ellis: "target as an [tcl] object" feature.oharboe2008-09-011-8/+30
| | | | git-svn-id: svn://svn.berlios.de/openocd/trunk@975 b42882b7-edfa-0310-969c-e2dbd0fdcd60
* STR912 uses RCLK if availableoharboe2008-08-251-1/+11
| | | | git-svn-id: svn://svn.berlios.de/openocd/trunk@967 b42882b7-edfa-0310-969c-e2dbd0fdcd60
* very slightly improved error message for not being able to find scriptsoharboe2008-07-221-1/+1
| | | | git-svn-id: svn://svn.berlios.de/openocd/trunk@854 b42882b7-edfa-0310-969c-e2dbd0fdcd60
* restart is a per-target actionoharboe2008-07-211-2/+6
| | | | git-svn-id: svn://svn.berlios.de/openocd/trunk@853 b42882b7-edfa-0310-969c-e2dbd0fdcd60
* Allows config scripts to override handling of 'R'(restart) GDB packet.oharboe2008-07-211-0/+5
| | | | git-svn-id: svn://svn.berlios.de/openocd/trunk@852 b42882b7-edfa-0310-969c-e2dbd0fdcd60
* - jtag_khz/speed are now single parameter only. These are usedoharboe2008-07-211-16/+4
| | | | | | | | | | | | | | | | | | | | | from pre/post_reset event scripts. Adding the second parameter was a mistake seen in retrospect. this gives precise control in post_reset for *when* the post reset speed is set. The pre_reset event was added *after* the second parameter to jtag_khz/speed - the target implementations no longer gets involved in the reset mode scheme. Either they reset a target into a halted mode or not. target_process_reset() detects if the reset halt failed or not. - tcl target event names are now target_N_name. Mainly internal at this early stage, but best to get the naming right now. - added hardcoded reset modes from gdb_server.c. I don't know precisely what these defaults should be or if it should be made configurable. Perhaps some hardcoded defaults will do for now and it can be made configurable later. - bugfix in cortex_m3.c for reset_run_and_xxx? - issue syntax error upon obsolete argument in target command instead of printing message that will surely drown in the log git-svn-id: svn://svn.berlios.de/openocd/trunk@849 b42882b7-edfa-0310-969c-e2dbd0fdcd60
* openocd@duaneellis.com fix naming confusion. Use ocd_ prefix for ocd API ↵oharboe2008-07-201-11/+11
| | | | | | consistently. git-svn-id: svn://svn.berlios.de/openocd/trunk@839 b42882b7-edfa-0310-969c-e2dbd0fdcd60
* throw exception upon syntax error.oharboe2008-07-191-1/+1
| | | | git-svn-id: svn://svn.berlios.de/openocd/trunk@838 b42882b7-edfa-0310-969c-e2dbd0fdcd60
* daemon_startup is now retired in favour of adding "init" and "reset ↵oharboe2008-07-191-0/+4
| | | | | | halt/init/run" to the end of the config file/openocd command line. git-svn-id: svn://svn.berlios.de/openocd/trunk@835 b42882b7-edfa-0310-969c-e2dbd0fdcd60