The main OpenOCD web site is available at @uref{http://openocd.berlios.de/web/}.
+@section Coding Style
+@cindex Coding Style
+
+The following rules try to describe formatting and naming conventions that should be
+followed to make the whole OpenOCD code look more consistent. The ultimate goal of
+coding style should be readability, and these rules may be ignored for a particular
+(small) piece of code if that makes it more readable.
+
+@subsection Formatting rules:
+@itemize @bullet
+@item remove any trailing white space
+@item use TAB characters for indentation, not spaces
+@item displayed TAB width is 4 characters
+@item make sure NOT to use DOS '\r\n' line feeds
+@item do not add more than 2 empty lines to source files
+@item do not add trailing empty lines to source files
+@item do not use C++ style comments (//)
+@item lines may be reasonably wide - there's no anachronistic 80 characters limit
+@end itemize
+
+@subsection Naming rules:
+@itemize @bullet
+@item identifiers use lower-case letters only
+@item identifiers consisting of multiple words use underline characters between consecutive words
+@item macros use upper-case letters only
+@item structure names shall be appended with '_s'
+@item typedefs shall be appended with '_t'
+@end itemize
+
+@subsection Function calls:
+@itemize @bullet
+@item function calls have no space between the functions name and the parameter
+list: my_func(param1, param2, ...)
+@end itemize
+
@node Building
@chapter Building
@cindex building OpenOCD
In the OpenOCD case, this generally refers to @b{a small adapater} one
attaches to your computer via USB or the Parallel Printer Port. The
execption being the Zylin ZY1000 which is a small box you attach via
-an ethernet cable.
+an ethernet cable. The Zylin ZY1000 has the advantage that it does not
+require any drivers to be installed on the developer PC. It also has
+a built in web interface. It supports RTCK/RCLK or adaptive clocking
+and has a built in relay to power cycle targets remotely.
@section Choosing a Dongle
@section Stand alone Systems
@b{ZY1000} See: @url{http://www.zylin.com/zy1000.html} Technically, not a
-dongle, but a standalone box.
+dongle, but a standalone box. The ZY1000 has the advantage that it does
+not require any drivers installed on the developer PC. It also has
+a built in web interface. It supports RTCK/RCLK or adaptive clocking
+and has a built in relay to power cycle targets remotely.
@section USB FT2232 Based
OpenOCD can handle certain target requests, currently debugmsg are only supported for arm7_9 and cortex_m3.
See libdcc in the contrib dir for more details.
@itemize @bullet
-@item @b{target_request debugmsgs} <@var{enable}|@var{disable}>
+@item @b{target_request debugmsgs} <@var{enable}|@var{disable}|@var{charmsg}>
@cindex target_request debugmsgs
-@*Enable/disable target debugmsgs requests. debugmsgs enable messages to be sent to the debugger while the target is running.
+@*Enable/disable target debugmsgs requests. debugmsgs enable messages to be sent to the debugger while the target is running. @var{charmsg} receives messages if Linux kernel ``Kernel low-level debugging via EmbeddedICE DCC channel'' option is enabled.
@end itemize
@node JTAG Commands