You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardExpand all lines: docs/en/api-guides/tools/idf-monitor.rst
+33-33Lines changed: 33 additions & 33 deletions
Original file line number
Diff line number
Diff line change
@@ -4,64 +4,64 @@ IDF Monitor
4
4
5
5
:link_to_translation:`zh_CN:[中文]`
6
6
7
-
The IDF monitor tool is mainly a serial terminal program which relays serial data to and from the target device's serial port. It also provides some IDF-specific features.
7
+
IDF Monitor is mainly a serial terminal program which relays serial data to and from the target device's serial port. It also provides some IDF-specific features.
8
8
9
-
This tool can be launched from an IDF project by running ``idf.py monitor``.
9
+
IDF Monitor can be launched from an IDF project by running ``idf.py monitor``.
10
10
11
11
Keyboard Shortcuts
12
12
==================
13
13
14
14
For easy interaction with IDF Monitor, use the keyboard shortcuts given in the table.
15
15
16
-
.. list-table::
17
-
:header-rows: 1
18
-
:widths: 15 25 55
19
-
16
+
.. list-table::
17
+
:header-rows: 1
18
+
:widths: 15 25 55
19
+
20
20
* - Keyboard Shortcut
21
21
- Action
22
-
- Description
22
+
- Description
23
23
* - Ctrl+]
24
24
- Exit the program
25
-
-
25
+
-
26
26
* - Ctrl+T
27
27
- Menu escape key
28
-
- Press and follow it by one of the keys given below.
28
+
- Press and follow it by one of the keys given below.
29
29
* - * Ctrl+T
30
30
- Send the menu character itself to remote
31
-
-
31
+
-
32
32
* - * Ctrl+]
33
33
- Send the exit character itself to remote
34
-
-
34
+
-
35
35
* - * Ctrl+P
36
36
- Reset target into bootloader to pause app via RTS line
37
-
- Resets the target, into bootloader via the RTS line (if connected), so that the board runs nothing. Useful when you need to wait for another device to startup.
37
+
- Resets the target, into bootloader via the RTS line (if connected), so that the board runs nothing. Useful when you need to wait for another device to startup.
38
38
* - * Ctrl+R
39
39
- Reset target board via RTS
40
-
- Resets the target board and re-starts the application via the RTS line (if connected).
40
+
- Resets the target board and re-starts the application via the RTS line (if connected).
41
41
* - * Ctrl+F
42
42
- Build and flash the project
43
-
- Pauses idf_monitor to run the project ``flash`` target, then resumes idf_monitor. Any changed source files are recompiled and then re-flashed. Target ``encrypted-flash`` is run if idf_monitor was started with argument ``-E``.
43
+
- Pauses idf_monitor to run the project ``flash`` target, then resumes idf_monitor. Any changed source files are recompiled and then re-flashed. Target ``encrypted-flash`` is run if idf_monitor was started with argument ``-E``.
44
44
* - * Ctrl+A (or A)
45
45
- Build and flash the app only
46
-
- Pauses idf_monitor to run the ``app-flash`` target, then resumes idf_monitor. Similar to the ``flash`` target, but only the main app is built and re-flashed. Target ``encrypted-app-flash`` is run if idf_monitor was started with argument ``-E``.
46
+
- Pauses idf_monitor to run the ``app-flash`` target, then resumes idf_monitor. Similar to the ``flash`` target, but only the main app is built and re-flashed. Target ``encrypted-app-flash`` is run if idf_monitor was started with argument ``-E``.
47
47
* - * Ctrl+Y
48
48
- Stop/resume log output printing on screen
49
-
- Discards all incoming serial data while activated. Allows to quickly pause and examine log output without quitting the monitor.
49
+
- Discards all incoming serial data while activated. Allows to quickly pause and examine log output without quitting the monitor.
50
50
* - * Ctrl+L
51
51
- Stop/resume log output saved to file
52
-
- Creates a file in the project directory and the output is written to that file until this is disabled with the same keyboard shortcut (or IDF Monitor exits).
52
+
- Creates a file in the project directory and the output is written to that file until this is disabled with the same keyboard shortcut (or IDF Monitor exits).
53
53
* - * Ctrl+I (or I)
54
54
- Stop/resume printing timestamps
55
55
- IDF Monitor can print a timestamp in the beginning of each line. The timestamp format can be changed by the ``--timestamp-format`` command line argument.
56
56
* - * Ctrl+H (or H)
57
57
- Display all keyboard shortcuts
58
-
-
58
+
-
59
59
* - * Ctrl+X (or X)
60
60
- Exit the program
61
-
-
61
+
-
62
62
* - Ctrl+C
63
63
- Interrupt running application
64
-
- Pauses IDF monitor and run GDB_ project debugger to debug the application at runtime. This requires :ref:CONFIG_ESP_SYSTEM_GDBSTUB_RUNTIME option to be enabled.
64
+
- Pauses IDF Monitor and run GDB_ project debugger to debug the application at runtime. This requires :ref:CONFIG_ESP_SYSTEM_GDBSTUB_RUNTIME option to be enabled.
65
65
66
66
Any keys pressed, other than ``Ctrl-]`` and ``Ctrl-T``, will be sent through the serial port.
67
67
@@ -72,7 +72,7 @@ IDF-specific features
72
72
Automatic Address Decoding
73
73
~~~~~~~~~~~~~~~~~~~~~~~~~~
74
74
75
-
Whenever ESP-IDF outputs a hexadecimal code address of the form ``0x4_______``, IDF Monitor uses addr2line_ to look up the location in the source code and find the function name.
75
+
Whenever ESP-IDF outputs a hexadecimal code address of the form ``0x4_______``, IDF Monitor uses ``addr2line_`` to look up the location in the source code and find the function name.
76
76
77
77
.. highlight:: none
78
78
@@ -184,31 +184,31 @@ To decode each address, IDF Monitor runs the following command in the background
184
184
185
185
Set environment variable ``ESP_MONITOR_DECODE`` to ``0`` or call idf_monitor.py with specific command line option: ``idf_monitor.py --disable-address-decoding`` to disable address decoding.
186
186
187
-
Reset of the chip target on connect
187
+
Target Reset on Connection
188
188
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
189
-
The reset of the target chip is performed using DTR and RTS serial lines. For preventing the reset of the target on idf monitor startup call idf_monitor.py with specific command line option: ``idf_monitor.py --no-reset``.
189
+
190
+
By default, IDF Monitor will reset the target when connecting to it. The reset of the target chip is performed using the DTR and RTS serial lines. To prevent IDF Monitor from automatically resetting the target on connection, call IDF Monitor with the ``--no-reset`` option (e.g., ``idf_monitor.py --no-reset``).
190
191
191
192
.. note::
192
193
193
-
The same behavior can be achieved using ``idf.py monitor`` interface with specific command line option: ``--no-reset``. To prevent the reset on startup is required to call the command with explicitly set port ``idf.py monitor --no-reset -p [PORT]``
194
+
The ``--no-reset`` option applies the same behavior even when connecting IDF Monitor to a particular port (e.g., ``idf.py monitor --no-reset -p [PORT]``).
194
195
195
196
196
197
Launching GDB with GDBStub
197
198
~~~~~~~~~~~~~~~~~~~~~~~~~~
198
199
199
-
By default, if esp-idf crashes, the panic handler prints relevant registers and the stack dump (similar to the ones above) over the serial port. Then it resets the board.
200
+
GDBStub is a useful runtime debugging feature that runs on the target and connects to the host over the serial port to receive debugging commands. GDBStub supports commands such as reading memory and variables, examining call stack frames etc. Although GDBStub is less versatile than JTAG debugging, it does not require any special hardware (such as a JTAG to USB bridge) as communication is done entirely over the serial port.
200
201
201
-
Furthermore, the application can be configured to run GDBStub in the background and handle the Ctrl+C event from the monitor.
202
+
A target can be configured to run GDBStub in the background by setting the :ref:`CONFIG_ESP_SYSTEM_PANIC` to ``GDBStub on runtime``. GDBStub will run in the background until a ``Ctrl+C`` message is sent over the serial port and causes the GDBStub to break (i.e., stop the execution of) the program, thus allowing GDBStub to handle debugging commands.
202
203
203
-
Optionally, the panic handler can be configured to run GDBStub, the tool which can communicate with GDB_ project debugger. GDBStub allows to read memory, examine call stack frames and variables, etc. It is not as versatile as JTAG debugging, but this method does not require any special hardware.
204
+
Furthermore, the panic handler can be configured to run GDBStub on a crash by setting the :ref:`CONFIG_ESP_SYSTEM_PANIC` to ``GDBStub on panic``. When a crash occurs, GDBStub will output a special string pattern over the serial port to indicate that it is running.
204
205
205
-
To enable GDBStub on panic, open the project configuration menu (``idf.py menuconfig``) and set :ref:`CONFIG_ESP_SYSTEM_PANIC` to ``GDBStub on panic`` or set :ref:`CONFIG_ESP_SYSTEM_PANIC` to ``GDBStub on runtime``.
206
+
In both cases (i.e., sending the ``Ctrl+C`` message, or receiving the special string pattern), IDF Monitor will automatically launch GDB in order to allow the user to send debugging commands. After GDB exits, the target is reset via the RTS serial line. If this line is not connected, users can reset their target (by pressing the board's Reset button).
206
207
207
-
In this case, if the panic handler or Ctrl+C command is triggered, as soon as IDF Monitor sees that GDBStub has loaded, it automatically pauses serial monitoring and runs GDB with necessary arguments. After GDB exits, the board is reset via the RTS serial line. If this line is not connected, please reset the board manually by pressing its Reset button.
208
-
209
-
In the background, IDF Monitor runs the following command::
208
+
.. note::
209
+
In the background, IDF Monitor runs the following command to launch GDB::
210
210
211
-
{IDF_TARGET_TOOLCHAIN_PREFIX}-gdb -ex "set serial baud BAUD" -ex "target remote PORT" -ex interrupt build/PROJECT.elf :idf_target:`Hello NAME chip`
211
+
{IDF_TARGET_TOOLCHAIN_PREFIX}-gdb -ex "set serial baud BAUD" -ex "target remote PORT" -ex interrupt build/PROJECT.elf :idf_target:`Hello NAME chip`
212
212
213
213
214
214
Output Filtering
@@ -227,7 +227,7 @@ Your app tags must not contain spaces, asterisks ``*``, or colons ``:`` to be co
227
227
228
228
If the last line of the output in your app is not followed by a carriage return, the output filtering might get confused, i.e., the monitor starts to print the line and later finds out that the line should not have been written. This is a known issue and can be avoided by always adding a carriage return (especially when no output follows immediately afterwards).
229
229
230
-
Examples Of Filtering Rules:
230
+
Examples of Filtering Rules:
231
231
~~~~~~~~~~~~~~~~~~~~~~~~~~~~
232
232
233
233
- ``*`` can be used to match any tags. However, the string ``PRINT_FILTER="*:I tag1:E"`` with regards to ``tag1`` prints errors only, because the rule for ``tag1`` has a higher priority over the rule for ``*``.
Copy file name to clipboardExpand all lines: docs/en/api-reference/storage/fatfs.rst
+1-1Lines changed: 1 addition & 1 deletion
Original file line number
Diff line number
Diff line change
@@ -135,7 +135,7 @@ For an example, see :example:`storage/fatfsgen`.
135
135
FatFs Partition Analyzer
136
136
------------------------
137
137
138
-
We provide a partition analyzer for FatFs (:component_file:`fatfsparse.py<fatfs/fatfsparse.py>`). The tool is still in active progress and provides only restricted functionality.
138
+
We provide a partition analyzer for FatFs (:component_file:`fatfsparse.py<fatfs/fatfsparse.py>`). The tool is still in active progress and provides only restricted functionality.
139
139
140
140
It is only guaranteed that the tool is able to analyze images generated by FatFs partition generator (:component_file:`fatfsgen.py<fatfs/fatfsgen.py>`) (without support for wear levelling and long names) and generate the folder structure on host with the same name as a FatFs volume label.
0 commit comments