doc: fix several typos in openocd.texi
Mostly trivial fixes spotted by spell checker One fix s/are/is/ No changes in the content of the document Change-Id: Ic2d8696860c540e901e8c5190f8f1e7dce80545f Signed-off-by: Antonio Borneo <borneo.antonio@gmail.com> Reviewed-on: http://openocd.zylin.com/4402 Tested-by: jenkins Reviewed-by: Tomas Vanek <vanekt@fbl.cz>riscv-compliance
parent
087a162e3c
commit
aba11ae6e2
148
doc/openocd.texi
148
doc/openocd.texi
|
@ -578,7 +578,7 @@ produced, PDF schematics are easily found and it is easy to make.
|
||||||
@url{http://www.latticesemi.com/lit/docs/@/devtools/dlcable.pdf}
|
@url{http://www.latticesemi.com/lit/docs/@/devtools/dlcable.pdf}
|
||||||
|
|
||||||
@item @b{flashlink}
|
@item @b{flashlink}
|
||||||
@* From ST Microsystems;
|
@* From STMicroelectronics;
|
||||||
@* Link: @url{http://www.st.com/internet/com/TECHNICAL_RESOURCES/TECHNICAL_LITERATURE/DATA_BRIEF/DM00039500.pdf}
|
@* Link: @url{http://www.st.com/internet/com/TECHNICAL_RESOURCES/TECHNICAL_LITERATURE/DATA_BRIEF/DM00039500.pdf}
|
||||||
|
|
||||||
@end itemize
|
@end itemize
|
||||||
|
@ -1036,7 +1036,7 @@ that the @code{reset-init} event handler does.
|
||||||
Likewise, the @command{arm9 vector_catch} command (or
|
Likewise, the @command{arm9 vector_catch} command (or
|
||||||
@cindex vector_catch
|
@cindex vector_catch
|
||||||
its siblings @command{xscale vector_catch}
|
its siblings @command{xscale vector_catch}
|
||||||
and @command{cortex_m vector_catch}) can be a timesaver
|
and @command{cortex_m vector_catch}) can be a time-saver
|
||||||
during some debug sessions, but don't make everyone use that either.
|
during some debug sessions, but don't make everyone use that either.
|
||||||
Keep those kinds of debugging aids in your user config file,
|
Keep those kinds of debugging aids in your user config file,
|
||||||
along with messaging and tracing setup.
|
along with messaging and tracing setup.
|
||||||
|
@ -1127,7 +1127,7 @@ handling issues like:
|
||||||
@itemize @bullet
|
@itemize @bullet
|
||||||
|
|
||||||
@item @b{Watchdog Timers}...
|
@item @b{Watchdog Timers}...
|
||||||
Watchog timers are typically used to automatically reset systems if
|
Watchdog timers are typically used to automatically reset systems if
|
||||||
some application task doesn't periodically reset the timer. (The
|
some application task doesn't periodically reset the timer. (The
|
||||||
assumption is that the system has locked up if the task can't run.)
|
assumption is that the system has locked up if the task can't run.)
|
||||||
When a JTAG debugger halts the system, that task won't be able to run
|
When a JTAG debugger halts the system, that task won't be able to run
|
||||||
|
@ -1464,7 +1464,7 @@ While the default is normally provided by the chip manufacturer,
|
||||||
board files may need to distinguish between instances of a chip.
|
board files may need to distinguish between instances of a chip.
|
||||||
@item @code{ENDIAN} ...
|
@item @code{ENDIAN} ...
|
||||||
By default @option{little} - although chips may hard-wire @option{big}.
|
By default @option{little} - although chips may hard-wire @option{big}.
|
||||||
Chips that can't change endianness don't need to use this variable.
|
Chips that can't change endianess don't need to use this variable.
|
||||||
@item @code{CPUTAPID} ...
|
@item @code{CPUTAPID} ...
|
||||||
When OpenOCD examines the JTAG chain, it can be told verify the
|
When OpenOCD examines the JTAG chain, it can be told verify the
|
||||||
chips against the JTAG IDCODE register.
|
chips against the JTAG IDCODE register.
|
||||||
|
@ -1875,9 +1875,9 @@ Target config files can either be ``linear'' (script executed line-by-line when
|
||||||
configuration stage, @xref{configurationstage,,Configuration Stage},) or they can contain a special
|
configuration stage, @xref{configurationstage,,Configuration Stage},) or they can contain a special
|
||||||
procedure called @code{init_targets}, which will be executed when entering run stage
|
procedure called @code{init_targets}, which will be executed when entering run stage
|
||||||
(after parsing all config files or after @code{init} command, @xref{enteringtherunstage,,Entering the Run Stage}.)
|
(after parsing all config files or after @code{init} command, @xref{enteringtherunstage,,Entering the Run Stage}.)
|
||||||
Such procedure can be overriden by ``next level'' script (which sources the original).
|
Such procedure can be overridden by ``next level'' script (which sources the original).
|
||||||
This concept faciliates code reuse when basic target config files provide generic configuration
|
This concept facilitates code reuse when basic target config files provide generic configuration
|
||||||
procedures and @code{init_targets} procedure, which can then be sourced and enchanced or changed in
|
procedures and @code{init_targets} procedure, which can then be sourced and enhanced or changed in
|
||||||
a ``more specific'' target config file. This is not possible with ``linear'' config scripts,
|
a ``more specific'' target config file. This is not possible with ``linear'' config scripts,
|
||||||
because sourcing them executes every initialization commands they provide.
|
because sourcing them executes every initialization commands they provide.
|
||||||
|
|
||||||
|
@ -2053,7 +2053,7 @@ Once OpenOCD has entered the run stage, a number of commands
|
||||||
become available.
|
become available.
|
||||||
A number of these relate to the debug targets you may have declared.
|
A number of these relate to the debug targets you may have declared.
|
||||||
For example, the @command{mww} command will not be available until
|
For example, the @command{mww} command will not be available until
|
||||||
a target has been successfuly instantiated.
|
a target has been successfully instantiated.
|
||||||
If you want to use those commands, you may need to force
|
If you want to use those commands, you may need to force
|
||||||
entry to the run stage.
|
entry to the run stage.
|
||||||
|
|
||||||
|
@ -2213,7 +2213,7 @@ The default behaviour is @option{enable}.
|
||||||
@end deffn
|
@end deffn
|
||||||
|
|
||||||
@deffn {Command} gdb_save_tdesc
|
@deffn {Command} gdb_save_tdesc
|
||||||
Saves the target descripton file to the local file system.
|
Saves the target description file to the local file system.
|
||||||
|
|
||||||
The file name is @i{target_name}.xml.
|
The file name is @i{target_name}.xml.
|
||||||
@end deffn
|
@end deffn
|
||||||
|
@ -2424,7 +2424,7 @@ Engine) mode built into many FTDI chips, such as the FT2232, FT4232 and FT232H.
|
||||||
The driver is using libusb-1.0 in asynchronous mode to talk to the FTDI device,
|
The driver is using libusb-1.0 in asynchronous mode to talk to the FTDI device,
|
||||||
bypassing intermediate libraries like libftdi or D2XX.
|
bypassing intermediate libraries like libftdi or D2XX.
|
||||||
|
|
||||||
Support for new FTDI based adapters can be added competely through
|
Support for new FTDI based adapters can be added completely through
|
||||||
configuration files, without the need to patch and rebuild OpenOCD.
|
configuration files, without the need to patch and rebuild OpenOCD.
|
||||||
|
|
||||||
The driver uses a signal abstraction to enable Tcl configuration files to
|
The driver uses a signal abstraction to enable Tcl configuration files to
|
||||||
|
@ -2552,7 +2552,7 @@ Get the value of a previously defined signal.
|
||||||
Configure TCK edge at which the adapter samples the value of the TDO signal
|
Configure TCK edge at which the adapter samples the value of the TDO signal
|
||||||
|
|
||||||
Due to signal propagation delays, sampling TDO on rising TCK can become quite
|
Due to signal propagation delays, sampling TDO on rising TCK can become quite
|
||||||
peculiar at high JTAG clock speeds. However, FTDI chips offer a possiblity to sample
|
peculiar at high JTAG clock speeds. However, FTDI chips offer a possibility to sample
|
||||||
TDO on falling edge of TCK. With some board/adapter configurations, this may increase
|
TDO on falling edge of TCK. With some board/adapter configurations, this may increase
|
||||||
stability at higher JTAG clocks.
|
stability at higher JTAG clocks.
|
||||||
@itemize @minus
|
@itemize @minus
|
||||||
|
@ -2702,7 +2702,7 @@ SEGGER J-Link family of USB adapters. It currently supports JTAG and SWD
|
||||||
transports.
|
transports.
|
||||||
|
|
||||||
@quotation Compatibility Note
|
@quotation Compatibility Note
|
||||||
SEGGER released many firmware versions for the many harware versions they
|
SEGGER released many firmware versions for the many hardware versions they
|
||||||
produced. OpenOCD was extensively tested and intended to run on all of them,
|
produced. OpenOCD was extensively tested and intended to run on all of them,
|
||||||
but some combinations were reported as incompatible. As a general
|
but some combinations were reported as incompatible. As a general
|
||||||
recommendation, it is advisable to use the latest firmware version
|
recommendation, it is advisable to use the latest firmware version
|
||||||
|
@ -2970,10 +2970,10 @@ This is a driver that supports multiple High Level Adapters.
|
||||||
This type of adapter does not expose some of the lower level api's
|
This type of adapter does not expose some of the lower level api's
|
||||||
that OpenOCD would normally use to access the target.
|
that OpenOCD would normally use to access the target.
|
||||||
|
|
||||||
Currently supported adapters include the ST STLINK and TI ICDI.
|
Currently supported adapters include the ST ST-LINK and TI ICDI.
|
||||||
STLINK firmware version >= V2.J21.S4 recommended due to issues with earlier
|
ST-LINK firmware version >= V2.J21.S4 recommended due to issues with earlier
|
||||||
versions of firmware where serial number is reset after first use. Suggest
|
versions of firmware where serial number is reset after first use. Suggest
|
||||||
using ST firmware update utility to upgrade STLINK firmware even if current
|
using ST firmware update utility to upgrade ST-LINK firmware even if current
|
||||||
version reported is V2.J21.S4.
|
version reported is V2.J21.S4.
|
||||||
|
|
||||||
@deffn {Config Command} {hla_device_desc} description
|
@deffn {Config Command} {hla_device_desc} description
|
||||||
|
@ -3131,7 +3131,7 @@ Parameters are currently the same as "jtag newtap" but this is
|
||||||
expected to change.
|
expected to change.
|
||||||
@end deffn
|
@end deffn
|
||||||
@deffn Command {swd wcr trn prescale}
|
@deffn Command {swd wcr trn prescale}
|
||||||
Updates TRN (turnaraound delay) and prescaling.fields of the
|
Updates TRN (turnaround delay) and prescaling.fields of the
|
||||||
Wire Control Register (WCR).
|
Wire Control Register (WCR).
|
||||||
No parameters: displays current settings.
|
No parameters: displays current settings.
|
||||||
@end deffn
|
@end deffn
|
||||||
|
@ -3433,7 +3433,7 @@ haven't seen hardware with such a bug, and can be worked around).
|
||||||
|
|
||||||
@item
|
@item
|
||||||
The @var{gates} tokens control flags that describe some cases where
|
The @var{gates} tokens control flags that describe some cases where
|
||||||
JTAG may be unvailable during reset.
|
JTAG may be unavailable during reset.
|
||||||
@option{srst_gates_jtag} (default)
|
@option{srst_gates_jtag} (default)
|
||||||
indicates that asserting SRST gates the
|
indicates that asserting SRST gates the
|
||||||
JTAG clock. This means that no communication can happen on JTAG
|
JTAG clock. This means that no communication can happen on JTAG
|
||||||
|
@ -3472,7 +3472,7 @@ Possible @var{srst_type} driver modes for the system reset signal (SRST)
|
||||||
are the default @option{srst_open_drain}, and @option{srst_push_pull}.
|
are the default @option{srst_open_drain}, and @option{srst_push_pull}.
|
||||||
Most boards connect this signal to a pullup, and allow the
|
Most boards connect this signal to a pullup, and allow the
|
||||||
signal to be pulled low by various events including system
|
signal to be pulled low by various events including system
|
||||||
powerup and pressing a reset button.
|
power-up and pressing a reset button.
|
||||||
@end itemize
|
@end itemize
|
||||||
@end deffn
|
@end deffn
|
||||||
|
|
||||||
|
@ -3641,7 +3641,7 @@ That declaration order must match the order in the JTAG scan chain,
|
||||||
both inside a single chip and between them.
|
both inside a single chip and between them.
|
||||||
@xref{faqtaporder,,FAQ TAP Order}.
|
@xref{faqtaporder,,FAQ TAP Order}.
|
||||||
|
|
||||||
For example, the ST Microsystems STR912 chip has
|
For example, the STMicroelectronics STR912 chip has
|
||||||
three separate TAPs@footnote{See the ST
|
three separate TAPs@footnote{See the ST
|
||||||
document titled: @emph{STR91xFAxxx, Section 3.15 Jtag Interface, Page:
|
document titled: @emph{STR91xFAxxx, Section 3.15 Jtag Interface, Page:
|
||||||
28/102, Figure 3: JTAG chaining inside the STR91xFA}.
|
28/102, Figure 3: JTAG chaining inside the STR91xFA}.
|
||||||
|
@ -4278,7 +4278,7 @@ To avoid being confused by the variety of ARM based cores, remember
|
||||||
this key point: @emph{ARM is a technology licencing company}.
|
this key point: @emph{ARM is a technology licencing company}.
|
||||||
(See: @url{http://www.arm.com}.)
|
(See: @url{http://www.arm.com}.)
|
||||||
The CPU name used by OpenOCD will reflect the CPU design that was
|
The CPU name used by OpenOCD will reflect the CPU design that was
|
||||||
licenced, not a vendor brand which incorporates that design.
|
licensed, not a vendor brand which incorporates that design.
|
||||||
Name prefixes like arm7, arm9, arm11, and cortex
|
Name prefixes like arm7, arm9, arm11, and cortex
|
||||||
reflect design generations;
|
reflect design generations;
|
||||||
while names like ARMv4, ARMv5, ARMv6, ARMv7 and ARMv8
|
while names like ARMv4, ARMv5, ARMv6, ARMv7 and ARMv8
|
||||||
|
@ -4327,7 +4327,7 @@ On more complex chips, the work area can become
|
||||||
inaccessible when application code
|
inaccessible when application code
|
||||||
(such as an operating system)
|
(such as an operating system)
|
||||||
enables or disables the MMU.
|
enables or disables the MMU.
|
||||||
For example, the particular MMU context used to acess the virtual
|
For example, the particular MMU context used to access the virtual
|
||||||
address will probably matter ... and that context might not have
|
address will probably matter ... and that context might not have
|
||||||
easy access to other addresses needed.
|
easy access to other addresses needed.
|
||||||
At this writing, OpenOCD doesn't have much MMU intelligence.
|
At this writing, OpenOCD doesn't have much MMU intelligence.
|
||||||
|
@ -4744,7 +4744,7 @@ bank'', and the GDB flash features be enabled.
|
||||||
@xref{gdbconfiguration,,GDB Configuration}.
|
@xref{gdbconfiguration,,GDB Configuration}.
|
||||||
@end enumerate
|
@end enumerate
|
||||||
|
|
||||||
Many CPUs have the ablity to ``boot'' from the first flash bank.
|
Many CPUs have the ability to ``boot'' from the first flash bank.
|
||||||
This means that misprogramming that bank can ``brick'' a system,
|
This means that misprogramming that bank can ``brick'' a system,
|
||||||
so that it can't boot.
|
so that it can't boot.
|
||||||
JTAG tools, like OpenOCD, are often then used to ``de-brick'' the
|
JTAG tools, like OpenOCD, are often then used to ``de-brick'' the
|
||||||
|
@ -4821,7 +4821,7 @@ but most don't bother.
|
||||||
@anchor{flashprogrammingcommands}
|
@anchor{flashprogrammingcommands}
|
||||||
|
|
||||||
One feature distinguishing NOR flash from NAND or serial flash technologies
|
One feature distinguishing NOR flash from NAND or serial flash technologies
|
||||||
is that for read access, it acts exactly like any other addressible memory.
|
is that for read access, it acts exactly like any other addressable memory.
|
||||||
This means you can use normal memory read commands like @command{mdw} or
|
This means you can use normal memory read commands like @command{mdw} or
|
||||||
@command{dump_image} with it, with no special @command{flash} subcommands.
|
@command{dump_image} with it, with no special @command{flash} subcommands.
|
||||||
@xref{memoryaccess,,Memory access}, and @ref{imageaccess,,Image access}.
|
@xref{memoryaccess,,Memory access}, and @ref{imageaccess,,Image access}.
|
||||||
|
@ -4838,7 +4838,7 @@ chips consume target address space. They implicitly refer to the current
|
||||||
JTAG target, and map from an address in that target's address space
|
JTAG target, and map from an address in that target's address space
|
||||||
back to a flash bank.
|
back to a flash bank.
|
||||||
@comment In May 2009, those mappings may fail if any bank associated
|
@comment In May 2009, those mappings may fail if any bank associated
|
||||||
@comment with that target doesn't succesfuly autoprobe ... bug worth fixing?
|
@comment with that target doesn't successfully autoprobe ... bug worth fixing?
|
||||||
A few commands use abstract addressing based on bank and sector numbers,
|
A few commands use abstract addressing based on bank and sector numbers,
|
||||||
and don't depend on searching the current target and its address space.
|
and don't depend on searching the current target and its address space.
|
||||||
Avoid confusing the two command models.
|
Avoid confusing the two command models.
|
||||||
|
@ -4984,7 +4984,7 @@ See @command{flash info} for a list of protection blocks.
|
||||||
@deffn Command {flash padded_value} num value
|
@deffn Command {flash padded_value} num value
|
||||||
Sets the default value used for padding any image sections, This should
|
Sets the default value used for padding any image sections, This should
|
||||||
normally match the flash bank erased value. If not specified by this
|
normally match the flash bank erased value. If not specified by this
|
||||||
comamnd or the flash driver then it defaults to 0xff.
|
command or the flash driver then it defaults to 0xff.
|
||||||
@end deffn
|
@end deffn
|
||||||
|
|
||||||
@anchor{program}
|
@anchor{program}
|
||||||
|
@ -5011,8 +5011,8 @@ The @var{virtual} driver defines one mandatory parameters,
|
||||||
@end itemize
|
@end itemize
|
||||||
|
|
||||||
So in the following example addresses 0xbfc00000 and 0x9fc00000 refer to
|
So in the following example addresses 0xbfc00000 and 0x9fc00000 refer to
|
||||||
the flash bank defined at address 0x1fc00000. Any cmds executed on
|
the flash bank defined at address 0x1fc00000. Any command executed on
|
||||||
the virtual banks are actually performed on the physical banks.
|
the virtual banks is actually performed on the physical banks.
|
||||||
@example
|
@example
|
||||||
flash bank $_FLASHNAME pic32mx 0x1fc00000 0 0 0 $_TARGETNAME
|
flash bank $_FLASHNAME pic32mx 0x1fc00000 0 0 0 $_TARGETNAME
|
||||||
flash bank vbank0 virtual 0xbfc00000 0 0 0 \
|
flash bank vbank0 virtual 0xbfc00000 0 0 0 \
|
||||||
|
@ -5047,7 +5047,7 @@ like AM29LV010 and similar types.
|
||||||
@item @var{x16_as_x8} ... when a 16-bit flash is hooked up to an 8-bit bus.
|
@item @var{x16_as_x8} ... when a 16-bit flash is hooked up to an 8-bit bus.
|
||||||
@item @var{bus_swap} ... when data bytes in a 16-bit flash needs to be swapped.
|
@item @var{bus_swap} ... when data bytes in a 16-bit flash needs to be swapped.
|
||||||
@item @var{data_swap} ... when data bytes in a 16-bit flash needs to be
|
@item @var{data_swap} ... when data bytes in a 16-bit flash needs to be
|
||||||
swapped when writing data values (ie. not CFI commands).
|
swapped when writing data values (i.e. not CFI commands).
|
||||||
@end itemize
|
@end itemize
|
||||||
|
|
||||||
To configure two adjacent banks of 16 MBytes each, both sixteen bits (two bytes)
|
To configure two adjacent banks of 16 MBytes each, both sixteen bits (two bytes)
|
||||||
|
@ -5184,7 +5184,7 @@ flash bank $_FLASHNAME lpcspifi 0x14000000 0 0 0 $_TARGETNAME
|
||||||
@cindex STMicroelectronics Serial Memory Interface
|
@cindex STMicroelectronics Serial Memory Interface
|
||||||
@cindex SMI
|
@cindex SMI
|
||||||
@cindex stmsmi
|
@cindex stmsmi
|
||||||
Some devices form STMicroelectronics (e.g. STR75x MCU family,
|
Some devices from STMicroelectronics (e.g. STR75x MCU family,
|
||||||
SPEAr MPU family) include a proprietary
|
SPEAr MPU family) include a proprietary
|
||||||
``Serial Memory Interface'' (SMI) controller able to drive external
|
``Serial Memory Interface'' (SMI) controller able to drive external
|
||||||
SPI flash devices.
|
SPI flash devices.
|
||||||
|
@ -5284,7 +5284,7 @@ with the target using SWD.
|
||||||
|
|
||||||
The @var{ambiqmicro} driver reads the Chip Information Register detect
|
The @var{ambiqmicro} driver reads the Chip Information Register detect
|
||||||
the device class of the MCU.
|
the device class of the MCU.
|
||||||
The Flash and Sram sizes directly follow device class, and are used
|
The Flash and SRAM sizes directly follow device class, and are used
|
||||||
to set up the flash banks.
|
to set up the flash banks.
|
||||||
If this fails, the driver will use default values set to the minimum
|
If this fails, the driver will use default values set to the minimum
|
||||||
sizes of an Apollo chip.
|
sizes of an Apollo chip.
|
||||||
|
@ -5315,8 +5315,8 @@ Erase device pages.
|
||||||
@end deffn
|
@end deffn
|
||||||
@deffn Command {ambiqmicro program_otp} <bank> <offset> <count>
|
@deffn Command {ambiqmicro program_otp} <bank> <offset> <count>
|
||||||
Program OTP is a one time operation to create write protected flash.
|
Program OTP is a one time operation to create write protected flash.
|
||||||
The user writes sectors to sram starting at 0x10000010.
|
The user writes sectors to SRAM starting at 0x10000010.
|
||||||
Program OTP will write these sectors from sram to flash, and write protect
|
Program OTP will write these sectors from SRAM to flash, and write protect
|
||||||
the flash.
|
the flash.
|
||||||
@end deffn
|
@end deffn
|
||||||
@end deffn
|
@end deffn
|
||||||
|
@ -5326,7 +5326,7 @@ the flash.
|
||||||
@cindex at91samd
|
@cindex at91samd
|
||||||
All members of the ATSAMD, ATSAMR, ATSAML and ATSAMC microcontroller
|
All members of the ATSAMD, ATSAMR, ATSAML and ATSAMC microcontroller
|
||||||
families from Atmel include internal flash and use ARM's Cortex-M0+ core.
|
families from Atmel include internal flash and use ARM's Cortex-M0+ core.
|
||||||
This driver uses the same cmd names/syntax as @xref{at91sam3}.
|
This driver uses the same command names/syntax as @xref{at91sam3}.
|
||||||
|
|
||||||
@deffn Command {at91samd chip-erase}
|
@deffn Command {at91samd chip-erase}
|
||||||
Issues a complete Flash erase via the Device Service Unit (DSU). This can be
|
Issues a complete Flash erase via the Device Service Unit (DSU). This can be
|
||||||
|
@ -5351,7 +5351,7 @@ Shows or sets the EEPROM emulation size configuration, stored in the User Row
|
||||||
of the Flash. When setting, the EEPROM size must be specified in bytes and it
|
of the Flash. When setting, the EEPROM size must be specified in bytes and it
|
||||||
must be one of the permitted sizes according to the datasheet. Settings are
|
must be one of the permitted sizes according to the datasheet. Settings are
|
||||||
written immediately but only take effect on MCU reset. EEPROM emulation
|
written immediately but only take effect on MCU reset. EEPROM emulation
|
||||||
requires additional firmware support and the minumum EEPROM size may not be
|
requires additional firmware support and the minimum EEPROM size may not be
|
||||||
the same as the minimum that the hardware supports. Set the EEPROM size to 0
|
the same as the minimum that the hardware supports. Set the EEPROM size to 0
|
||||||
in order to disable this feature.
|
in order to disable this feature.
|
||||||
|
|
||||||
|
@ -5411,7 +5411,7 @@ currently (6/22/09) recognizes the AT91SAM3U[1/2/4][C/E] chips. Note
|
||||||
that the driver was orginaly developed and tested using the
|
that the driver was orginaly developed and tested using the
|
||||||
AT91SAM3U4E, using a SAM3U-EK eval board. Support for other chips in
|
AT91SAM3U4E, using a SAM3U-EK eval board. Support for other chips in
|
||||||
the family was cribbed from the data sheet. @emph{Note to future
|
the family was cribbed from the data sheet. @emph{Note to future
|
||||||
readers/updaters: Please remove this worrysome comment after other
|
readers/updaters: Please remove this worrisome comment after other
|
||||||
chips are confirmed.}
|
chips are confirmed.}
|
||||||
|
|
||||||
The AT91SAM3U4[E/C] (256K) chips have two flash banks; most other chips
|
The AT91SAM3U4[E/C] (256K) chips have two flash banks; most other chips
|
||||||
|
@ -5471,14 +5471,14 @@ This command shows/sets the slow clock frequency used in the
|
||||||
@cindex at91sam4
|
@cindex at91sam4
|
||||||
All members of the AT91SAM4 microcontroller family from
|
All members of the AT91SAM4 microcontroller family from
|
||||||
Atmel include internal flash and use ARM's Cortex-M4 core.
|
Atmel include internal flash and use ARM's Cortex-M4 core.
|
||||||
This driver uses the same cmd names/syntax as @xref{at91sam3}.
|
This driver uses the same command names/syntax as @xref{at91sam3}.
|
||||||
@end deffn
|
@end deffn
|
||||||
|
|
||||||
@deffn {Flash Driver} at91sam4l
|
@deffn {Flash Driver} at91sam4l
|
||||||
@cindex at91sam4l
|
@cindex at91sam4l
|
||||||
All members of the AT91SAM4L microcontroller family from
|
All members of the AT91SAM4L microcontroller family from
|
||||||
Atmel include internal flash and use ARM's Cortex-M4 core.
|
Atmel include internal flash and use ARM's Cortex-M4 core.
|
||||||
This driver uses the same cmd names/syntax as @xref{at91sam3}.
|
This driver uses the same command names/syntax as @xref{at91sam3}.
|
||||||
|
|
||||||
The AT91SAM4L driver adds some additional commands:
|
The AT91SAM4L driver adds some additional commands:
|
||||||
@deffn Command {at91sam4l smap_reset_deassert}
|
@deffn Command {at91sam4l smap_reset_deassert}
|
||||||
|
@ -5492,7 +5492,7 @@ Command is used internally in event event reset-deassert-post.
|
||||||
@cindex atsamv
|
@cindex atsamv
|
||||||
All members of the ATSAMV, ATSAMS, and ATSAME families from
|
All members of the ATSAMV, ATSAMS, and ATSAME families from
|
||||||
Atmel include internal flash and use ARM's Cortex-M7 core.
|
Atmel include internal flash and use ARM's Cortex-M7 core.
|
||||||
This driver uses the same cmd names/syntax as @xref{at91sam3}.
|
This driver uses the same command names/syntax as @xref{at91sam3}.
|
||||||
@end deffn
|
@end deffn
|
||||||
|
|
||||||
@deffn {Flash Driver} at91sam7
|
@deffn {Flash Driver} at91sam7
|
||||||
|
@ -5877,7 +5877,7 @@ lpc2900 read_custom 0 /path_to/customer_info.bin
|
||||||
|
|
||||||
The index sector of the flash is a @emph{write-only} sector. It cannot be
|
The index sector of the flash is a @emph{write-only} sector. It cannot be
|
||||||
erased! In order to guard against unintentional write access, all following
|
erased! In order to guard against unintentional write access, all following
|
||||||
commands need to be preceeded by a successful call to the @code{password}
|
commands need to be preceded by a successful call to the @code{password}
|
||||||
command:
|
command:
|
||||||
|
|
||||||
@deffn Command {lpc2900 password} bank password
|
@deffn Command {lpc2900 password} bank password
|
||||||
|
@ -5979,7 +5979,7 @@ Full erase, single and block writes are supported for both main and info regions
|
||||||
There is additional not memory mapped flash called "Userflash", which
|
There is additional not memory mapped flash called "Userflash", which
|
||||||
also have division into regions: main and info.
|
also have division into regions: main and info.
|
||||||
Purpose of userflash - to store system and user settings.
|
Purpose of userflash - to store system and user settings.
|
||||||
Driver has special commands to perform operations with this memmory.
|
Driver has special commands to perform operations with this memory.
|
||||||
|
|
||||||
@example
|
@example
|
||||||
flash bank $_FLASHNAME niietcm4 0 0 0 0 $_TARGETNAME
|
flash bank $_FLASHNAME niietcm4 0 0 0 0 $_TARGETNAME
|
||||||
|
@ -6183,7 +6183,7 @@ All members of the SiM3 microcontroller family from Silicon Laboratories
|
||||||
include internal flash and use ARM Cortex-M3 cores. It supports both JTAG
|
include internal flash and use ARM Cortex-M3 cores. It supports both JTAG
|
||||||
and SWD interface.
|
and SWD interface.
|
||||||
The @var{sim3x} driver tries to probe the device to auto detect the MCU.
|
The @var{sim3x} driver tries to probe the device to auto detect the MCU.
|
||||||
If this failes, it will use the @var{size} parameter as the size of flash bank.
|
If this fails, it will use the @var{size} parameter as the size of flash bank.
|
||||||
|
|
||||||
@example
|
@example
|
||||||
flash bank $_FLASHNAME sim3x 0 $_CPUROMSIZE 0 0 $_TARGETNAME
|
flash bank $_FLASHNAME sim3x 0 $_CPUROMSIZE 0 0 $_TARGETNAME
|
||||||
|
@ -6505,7 +6505,7 @@ Standard driver @option{str9x} programmed via the str9 core. Normally used for
|
||||||
flash programming as it is faster than the @option{str9xpec} driver.
|
flash programming as it is faster than the @option{str9xpec} driver.
|
||||||
@item
|
@item
|
||||||
Direct programming @option{str9xpec} using the flash controller. This is an
|
Direct programming @option{str9xpec} using the flash controller. This is an
|
||||||
ISC compilant (IEEE 1532) tap connected in series with the str9 core. The str9
|
ISC compliant (IEEE 1532) tap connected in series with the str9 core. The str9
|
||||||
core does not need to be running to program using this flash driver. Typical use
|
core does not need to be running to program using this flash driver. Typical use
|
||||||
for this driver is locking/unlocking the target and programming the option bytes.
|
for this driver is locking/unlocking the target and programming the option bytes.
|
||||||
@end enumerate
|
@end enumerate
|
||||||
|
@ -6658,7 +6658,7 @@ geared for newer MLC chips may correct 4 or more errors for
|
||||||
every 512 bytes of data.
|
every 512 bytes of data.
|
||||||
|
|
||||||
You will need to make sure that any data you write using
|
You will need to make sure that any data you write using
|
||||||
OpenOCD includes the apppropriate kind of ECC. For example,
|
OpenOCD includes the appropriate kind of ECC. For example,
|
||||||
that may mean passing the @code{oob_softecc} flag when
|
that may mean passing the @code{oob_softecc} flag when
|
||||||
writing NAND data, or ensuring that the correct hardware
|
writing NAND data, or ensuring that the correct hardware
|
||||||
ECC mode is used.
|
ECC mode is used.
|
||||||
|
@ -6831,7 +6831,7 @@ if @command{nand raw_access} was used to disable hardware ECC.
|
||||||
@itemize @bullet
|
@itemize @bullet
|
||||||
@item no oob_* parameter
|
@item no oob_* parameter
|
||||||
@*File has only page data, which is written.
|
@*File has only page data, which is written.
|
||||||
If raw acccess is in use, the OOB area will not be written.
|
If raw access is in use, the OOB area will not be written.
|
||||||
Otherwise, if the underlying NAND controller driver has
|
Otherwise, if the underlying NAND controller driver has
|
||||||
a @code{write_page} routine, that routine may write the OOB
|
a @code{write_page} routine, that routine may write the OOB
|
||||||
with hardware-computed ECC data.
|
with hardware-computed ECC data.
|
||||||
|
@ -6884,7 +6884,7 @@ can be compared against the contents produced from @command{nand dump}.
|
||||||
|
|
||||||
@b{NOTE:} This will not work when the underlying NAND controller
|
@b{NOTE:} This will not work when the underlying NAND controller
|
||||||
driver's @code{write_page} routine must update the OOB with a
|
driver's @code{write_page} routine must update the OOB with a
|
||||||
hardward-computed ECC before the data is written. This limitation may
|
hardware-computed ECC before the data is written. This limitation may
|
||||||
be removed in a future release.
|
be removed in a future release.
|
||||||
@end deffn
|
@end deffn
|
||||||
|
|
||||||
|
@ -7022,7 +7022,7 @@ main area and spare area (@option{biswap}), defaults to off.
|
||||||
nand device mx35.nand mxc imx35.cpu mx35 hwecc biswap
|
nand device mx35.nand mxc imx35.cpu mx35 hwecc biswap
|
||||||
@end example
|
@end example
|
||||||
@deffn Command {mxc biswap} bank_num [enable|disable]
|
@deffn Command {mxc biswap} bank_num [enable|disable]
|
||||||
Turns on/off bad block information swaping from main area,
|
Turns on/off bad block information swapping from main area,
|
||||||
without parameter query status.
|
without parameter query status.
|
||||||
@end deffn
|
@end deffn
|
||||||
@end deffn
|
@end deffn
|
||||||
|
@ -7117,13 +7117,13 @@ Write the binary file @var{filename} to mflash bank @var{num}, starting at
|
||||||
@chapter Flash Programming
|
@chapter Flash Programming
|
||||||
|
|
||||||
OpenOCD implements numerous ways to program the target flash, whether internal or external.
|
OpenOCD implements numerous ways to program the target flash, whether internal or external.
|
||||||
Programming can be acheived by either using GDB @ref{programmingusinggdb,,Programming using GDB},
|
Programming can be achieved by either using GDB @ref{programmingusinggdb,,Programming using GDB},
|
||||||
or using the cmds given in @ref{flashprogrammingcommands,,Flash Programming Commands}.
|
or using the commands given in @ref{flashprogrammingcommands,,Flash Programming Commands}.
|
||||||
|
|
||||||
@*To simplify using the flash cmds directly a jimtcl script is available that handles the programming and verify stage.
|
@*To simplify using the flash commands directly a jimtcl script is available that handles the programming and verify stage.
|
||||||
OpenOCD will program/verify/reset the target and optionally shutdown.
|
OpenOCD will program/verify/reset the target and optionally shutdown.
|
||||||
|
|
||||||
The script is executed as follows and by default the following actions will be peformed.
|
The script is executed as follows and by default the following actions will be performed.
|
||||||
@enumerate
|
@enumerate
|
||||||
@item 'init' is executed.
|
@item 'init' is executed.
|
||||||
@item 'reset init' is called to reset and halt the target, any 'reset init' scripts are executed.
|
@item 'reset init' is called to reset and halt the target, any 'reset init' scripts are executed.
|
||||||
|
@ -7216,7 +7216,7 @@ Intent:
|
||||||
@itemize @bullet
|
@itemize @bullet
|
||||||
@item @b{Source Of Commands}
|
@item @b{Source Of Commands}
|
||||||
@* OpenOCD commands can occur in a configuration script (discussed
|
@* OpenOCD commands can occur in a configuration script (discussed
|
||||||
elsewhere) or typed manually by a human or supplied programatically,
|
elsewhere) or typed manually by a human or supplied programmatically,
|
||||||
or via one of several TCP/IP Ports.
|
or via one of several TCP/IP Ports.
|
||||||
|
|
||||||
@item @b{From the human}
|
@item @b{From the human}
|
||||||
|
@ -7384,7 +7384,7 @@ Also, it can't work until an interrupt is issued.
|
||||||
|
|
||||||
A more complete workaround is to not use that operation while you
|
A more complete workaround is to not use that operation while you
|
||||||
work with a JTAG debugger.
|
work with a JTAG debugger.
|
||||||
Tasking environments generaly have idle loops where the body is the
|
Tasking environments generally have idle loops where the body is the
|
||||||
@emph{wait for interrupt} operation.
|
@emph{wait for interrupt} operation.
|
||||||
(On older cores, it is a coprocessor action;
|
(On older cores, it is a coprocessor action;
|
||||||
newer cores have a @option{wfi} instruction.)
|
newer cores have a @option{wfi} instruction.)
|
||||||
|
@ -7552,7 +7552,7 @@ binary file named @var{filename}.
|
||||||
|
|
||||||
@deffn Command {fast_load}
|
@deffn Command {fast_load}
|
||||||
Loads an image stored in memory by @command{fast_load_image} to the
|
Loads an image stored in memory by @command{fast_load_image} to the
|
||||||
current target. Must be preceeded by fast_load_image.
|
current target. Must be preceded by fast_load_image.
|
||||||
@end deffn
|
@end deffn
|
||||||
|
|
||||||
@deffn Command {fast_load_image} filename address [@option{bin}|@option{ihex}|@option{elf}|@option{s19}]
|
@deffn Command {fast_load_image} filename address [@option{bin}|@option{ihex}|@option{elf}|@option{s19}]
|
||||||
|
@ -7570,7 +7570,7 @@ separately.
|
||||||
Load image from file @var{filename} to target memory offset by @var{address} from its load address.
|
Load image from file @var{filename} to target memory offset by @var{address} from its load address.
|
||||||
The file format may optionally be specified
|
The file format may optionally be specified
|
||||||
(@option{bin}, @option{ihex}, @option{elf}, or @option{s19}).
|
(@option{bin}, @option{ihex}, @option{elf}, or @option{s19}).
|
||||||
In addition the following arguments may be specifed:
|
In addition the following arguments may be specified:
|
||||||
@var{min_addr} - ignore data below @var{min_addr} (this is w.r.t. to the target's load address + @var{address})
|
@var{min_addr} - ignore data below @var{min_addr} (this is w.r.t. to the target's load address + @var{address})
|
||||||
@var{max_length} - maximum number of bytes to load.
|
@var{max_length} - maximum number of bytes to load.
|
||||||
@example
|
@example
|
||||||
|
@ -7741,7 +7741,7 @@ Declares the ETM associated with @var{target}, and associates it
|
||||||
with a given trace port @var{driver}. @xref{traceportdrivers,,Trace Port Drivers}.
|
with a given trace port @var{driver}. @xref{traceportdrivers,,Trace Port Drivers}.
|
||||||
|
|
||||||
Several of the parameters must reflect the trace port capabilities,
|
Several of the parameters must reflect the trace port capabilities,
|
||||||
which are a function of silicon capabilties (exposed later
|
which are a function of silicon capabilities (exposed later
|
||||||
using @command{etm info}) and of what hardware is connected to
|
using @command{etm info}) and of what hardware is connected to
|
||||||
that port (such as an external pod, or ETB).
|
that port (such as an external pod, or ETB).
|
||||||
The @var{width} must be either 4, 8, or 16,
|
The @var{width} must be either 4, 8, or 16,
|
||||||
|
@ -8063,7 +8063,7 @@ Supervisor Call vector by OpenOCD.
|
||||||
|
|
||||||
@deffn Command {arm semihosting_cmdline} [@option{enable}|@option{disable}]
|
@deffn Command {arm semihosting_cmdline} [@option{enable}|@option{disable}]
|
||||||
@cindex ARM semihosting
|
@cindex ARM semihosting
|
||||||
Set the command line to be passed to the debuggee.
|
Set the command line to be passed to the debugger.
|
||||||
|
|
||||||
@example
|
@example
|
||||||
arm semihosting_cmdline argv0 argv1 argv2 ...
|
arm semihosting_cmdline argv0 argv1 argv2 ...
|
||||||
|
@ -8274,7 +8274,7 @@ mini-IC is marked valid, which makes the CPU fetch all exception
|
||||||
handlers from the mini-IC, ignoring the code in RAM.
|
handlers from the mini-IC, ignoring the code in RAM.
|
||||||
|
|
||||||
To address this situation, OpenOCD provides the @code{xscale
|
To address this situation, OpenOCD provides the @code{xscale
|
||||||
vector_table} command, which allows the user to explicity write
|
vector_table} command, which allows the user to explicitly write
|
||||||
individual entries to either the high or low vector table stored in
|
individual entries to either the high or low vector table stored in
|
||||||
the mini-IC.
|
the mini-IC.
|
||||||
|
|
||||||
|
@ -8675,7 +8675,7 @@ otherwise fallback to @option{vectreset}.
|
||||||
@end itemize
|
@end itemize
|
||||||
Using @option{vectreset} is a safe option for all current Cortex-M cores.
|
Using @option{vectreset} is a safe option for all current Cortex-M cores.
|
||||||
This however has the disadvantage of only resetting the core, all peripherals
|
This however has the disadvantage of only resetting the core, all peripherals
|
||||||
are uneffected. A solution would be to use a @code{reset-init} event handler to manually reset
|
are unaffected. A solution would be to use a @code{reset-init} event handler to manually reset
|
||||||
the peripherals.
|
the peripherals.
|
||||||
@xref{targetevents,,Target Events}.
|
@xref{targetevents,,Target Events}.
|
||||||
@end deffn
|
@end deffn
|
||||||
|
@ -9125,7 +9125,7 @@ Command options:
|
||||||
@item @option{-tap @var{tapname}} ignore IR and DR headers and footers
|
@item @option{-tap @var{tapname}} ignore IR and DR headers and footers
|
||||||
specified by the SVF file with HIR, TIR, HDR and TDR commands;
|
specified by the SVF file with HIR, TIR, HDR and TDR commands;
|
||||||
instead, calculate them automatically according to the current JTAG
|
instead, calculate them automatically according to the current JTAG
|
||||||
chain configuration, targetting @var{tapname};
|
chain configuration, targeting @var{tapname};
|
||||||
@item @option{[-]quiet} do not log every command before execution;
|
@item @option{[-]quiet} do not log every command before execution;
|
||||||
@item @option{[-]nil} ``dry run'', i.e., do not perform any operations
|
@item @option{[-]nil} ``dry run'', i.e., do not perform any operations
|
||||||
on the real interface;
|
on the real interface;
|
||||||
|
@ -9690,18 +9690,18 @@ holds one of the following values:
|
||||||
|
|
||||||
@itemize @bullet
|
@itemize @bullet
|
||||||
@item @b{cygwin} Running under Cygwin
|
@item @b{cygwin} Running under Cygwin
|
||||||
@item @b{darwin} Darwin (Mac-OS) is the underlying operating sytem.
|
@item @b{darwin} Darwin (Mac-OS) is the underlying operating system.
|
||||||
@item @b{freebsd} Running under FreeBSD
|
@item @b{freebsd} Running under FreeBSD
|
||||||
@item @b{openbsd} Running under OpenBSD
|
@item @b{openbsd} Running under OpenBSD
|
||||||
@item @b{netbsd} Running under NetBSD
|
@item @b{netbsd} Running under NetBSD
|
||||||
@item @b{linux} Linux is the underlying operating sytem
|
@item @b{linux} Linux is the underlying operating system
|
||||||
@item @b{mingw32} Running under MingW32
|
@item @b{mingw32} Running under MingW32
|
||||||
@item @b{winxx} Built using Microsoft Visual Studio
|
@item @b{winxx} Built using Microsoft Visual Studio
|
||||||
@item @b{ecos} Running under eCos
|
@item @b{ecos} Running under eCos
|
||||||
@item @b{other} Unknown, none of the above.
|
@item @b{other} Unknown, none of the above.
|
||||||
@end itemize
|
@end itemize
|
||||||
|
|
||||||
Note: 'winxx' was choosen because today (March-2009) no distinction is made between Win32 and Win64.
|
Note: 'winxx' was chosen because today (March-2009) no distinction is made between Win32 and Win64.
|
||||||
|
|
||||||
@quotation Note
|
@quotation Note
|
||||||
We should add support for a variable like Tcl variable
|
We should add support for a variable like Tcl variable
|
||||||
|
@ -9782,7 +9782,7 @@ See an example application here:
|
||||||
@cindex adaptive clocking
|
@cindex adaptive clocking
|
||||||
@*
|
@*
|
||||||
|
|
||||||
In digital circuit design it is often refered to as ``clock
|
In digital circuit design it is often referred to as ``clock
|
||||||
synchronisation'' the JTAG interface uses one clock (TCK or TCLK)
|
synchronisation'' the JTAG interface uses one clock (TCK or TCLK)
|
||||||
operating at some speed, your CPU target is operating at another.
|
operating at some speed, your CPU target is operating at another.
|
||||||
The two clocks are not synchronised, they are ``asynchronous''
|
The two clocks are not synchronised, they are ``asynchronous''
|
||||||
|
@ -9910,7 +9910,7 @@ Make sure you have Cygwin installed, or at least a version of OpenOCD that
|
||||||
claims to come with all the necessary DLLs. When using Cygwin, try launching
|
claims to come with all the necessary DLLs. When using Cygwin, try launching
|
||||||
OpenOCD from the Cygwin shell.
|
OpenOCD from the Cygwin shell.
|
||||||
|
|
||||||
@item @b{Breakpoint Issue} I'm trying to set a breakpoint using GDB (or a frontend like Insight or
|
@item @b{Breakpoint Issue} I'm trying to set a breakpoint using GDB (or a front-end like Insight or
|
||||||
Eclipse), but OpenOCD complains that "Info: arm7_9_common.c:213
|
Eclipse), but OpenOCD complains that "Info: arm7_9_common.c:213
|
||||||
arm7_9_add_breakpoint(): sw breakpoint requested, but software breakpoints not enabled".
|
arm7_9_add_breakpoint(): sw breakpoint requested, but software breakpoints not enabled".
|
||||||
|
|
||||||
|
@ -9950,7 +9950,7 @@ stackframes have been processed. By pushing zeros on the stack, GDB
|
||||||
gracefully stops.
|
gracefully stops.
|
||||||
|
|
||||||
@b{Debugging Interrupt Service Routines} - In your ISR before you call
|
@b{Debugging Interrupt Service Routines} - In your ISR before you call
|
||||||
your C code, do the same - artifically push some zeros onto the stack,
|
your C code, do the same - artificially push some zeros onto the stack,
|
||||||
remember to pop them off when the ISR is done.
|
remember to pop them off when the ISR is done.
|
||||||
|
|
||||||
@b{Also note:} If you have a multi-threaded operating system, they
|
@b{Also note:} If you have a multi-threaded operating system, they
|
||||||
|
@ -10026,8 +10026,8 @@ particular order?
|
||||||
Yes; whenever you have more than one, you must declare them in
|
Yes; whenever you have more than one, you must declare them in
|
||||||
the same order used by the hardware.
|
the same order used by the hardware.
|
||||||
|
|
||||||
Many newer devices have multiple JTAG TAPs. For example: ST
|
Many newer devices have multiple JTAG TAPs. For example:
|
||||||
Microsystems STM32 chips have two TAPs, a ``boundary scan TAP'' and
|
STMicroelectronics STM32 chips have two TAPs, a ``boundary scan TAP'' and
|
||||||
``Cortex-M3'' TAP. Example: The STM32 reference manual, Document ID:
|
``Cortex-M3'' TAP. Example: The STM32 reference manual, Document ID:
|
||||||
RM0008, Section 26.5, Figure 259, page 651/681, the ``TDI'' pin is
|
RM0008, Section 26.5, Figure 259, page 651/681, the ``TDI'' pin is
|
||||||
connected to the boundary scan TAP, which then connects to the
|
connected to the boundary scan TAP, which then connects to the
|
||||||
|
@ -10110,7 +10110,7 @@ those commands is the word ``for'', another command is ``if''.
|
||||||
|
|
||||||
@section Per Rule #1 - All Results are strings
|
@section Per Rule #1 - All Results are strings
|
||||||
Every Tcl command results in a string. The word ``result'' is used
|
Every Tcl command results in a string. The word ``result'' is used
|
||||||
deliberatly. No result is just an empty string. Remember: @i{Rule #1 -
|
deliberately. No result is just an empty string. Remember: @i{Rule #1 -
|
||||||
Everything is a string}
|
Everything is a string}
|
||||||
|
|
||||||
@section Tcl Quoting Operators
|
@section Tcl Quoting Operators
|
||||||
|
@ -10127,7 +10127,7 @@ three primary quoting constructs, the [square-brackets] the
|
||||||
|
|
||||||
By now you should know $VARIABLES always start with a $DOLLAR
|
By now you should know $VARIABLES always start with a $DOLLAR
|
||||||
sign. BTW: To set a variable, you actually use the command ``set'', as
|
sign. BTW: To set a variable, you actually use the command ``set'', as
|
||||||
in ``set VARNAME VALUE'' much like the ancient BASIC langauge ``let x
|
in ``set VARNAME VALUE'' much like the ancient BASIC language ``let x
|
||||||
= 1'' statement, but without the equal sign.
|
= 1'' statement, but without the equal sign.
|
||||||
|
|
||||||
@itemize @bullet
|
@itemize @bullet
|
||||||
|
@ -10173,7 +10173,7 @@ the normal way.
|
||||||
|
|
||||||
As a script is parsed, each (multi) line in the script file is
|
As a script is parsed, each (multi) line in the script file is
|
||||||
tokenised and according to the quoting rules. After tokenisation, that
|
tokenised and according to the quoting rules. After tokenisation, that
|
||||||
line is immedatly executed.
|
line is immediately executed.
|
||||||
|
|
||||||
Multi line statements end with one or more ``still-open''
|
Multi line statements end with one or more ``still-open''
|
||||||
@{curly-braces@} which - eventually - closes a few lines later.
|
@{curly-braces@} which - eventually - closes a few lines later.
|
||||||
|
@ -10244,7 +10244,7 @@ MyCommand( Jim_Interp *interp,
|
||||||
@end example
|
@end example
|
||||||
|
|
||||||
Real Tcl is nearly identical. Although the newer versions have
|
Real Tcl is nearly identical. Although the newer versions have
|
||||||
introduced a byte-code parser and intepreter, but at the core, it
|
introduced a byte-code parser and interpreter, but at the core, it
|
||||||
still operates in the same basic way.
|
still operates in the same basic way.
|
||||||
|
|
||||||
@subsection FOR command implementation
|
@subsection FOR command implementation
|
||||||
|
@ -10257,7 +10257,7 @@ In Tcl there are two underlying C helper functions.
|
||||||
Remember Rule #1 - You are a string.
|
Remember Rule #1 - You are a string.
|
||||||
|
|
||||||
The @b{first} helper parses and executes commands found in an ascii
|
The @b{first} helper parses and executes commands found in an ascii
|
||||||
string. Commands can be seperated by semicolons, or newlines. While
|
string. Commands can be separated by semicolons, or newlines. While
|
||||||
parsing, variables are expanded via the quoting rules.
|
parsing, variables are expanded via the quoting rules.
|
||||||
|
|
||||||
The @b{second} helper evaluates an ascii string as a numerical
|
The @b{second} helper evaluates an ascii string as a numerical
|
||||||
|
@ -10352,7 +10352,7 @@ it reads a file and executes as a script.
|
||||||
@}
|
@}
|
||||||
$_TARGETNAME configure -event FOO someproc
|
$_TARGETNAME configure -event FOO someproc
|
||||||
#2 Good - no variables
|
#2 Good - no variables
|
||||||
$_TARGETNAME confgure -event foo "this ; that;"
|
$_TARGETNAME configure -event foo "this ; that;"
|
||||||
#3 Good Curly Braces
|
#3 Good Curly Braces
|
||||||
$_TARGETNAME configure -event FOO @{
|
$_TARGETNAME configure -event FOO @{
|
||||||
puts "Time: [date]"
|
puts "Time: [date]"
|
||||||
|
@ -10371,7 +10371,7 @@ command.
|
||||||
@*There are 4 examples:
|
@*There are 4 examples:
|
||||||
@enumerate
|
@enumerate
|
||||||
@item The TCLBODY is a simple string that happens to be a proc name
|
@item The TCLBODY is a simple string that happens to be a proc name
|
||||||
@item The TCLBODY is several simple commands seperated by semicolons
|
@item The TCLBODY is several simple commands separated by semicolons
|
||||||
@item The TCLBODY is a multi-line @{curly-brace@} quoted string
|
@item The TCLBODY is a multi-line @{curly-brace@} quoted string
|
||||||
@item The TCLBODY is a string with variables that get expanded.
|
@item The TCLBODY is a string with variables that get expanded.
|
||||||
@end enumerate
|
@end enumerate
|
||||||
|
|
Loading…
Reference in New Issue