blob: ed78fd987fd9aa23932012ee7a559297e5ca6fe8 [file] [log] [blame]
MartinaHanusovaNXP11644b62021-04-22 10:16:47 +02001###############
Kevin Townsenda26983f2020-04-06 13:26:21 +02002LPCXpresso55S69
MartinaHanusovaNXP11644b62021-04-22 10:16:47 +02003###############
Kevin Townsenda26983f2020-04-06 13:26:21 +02004
MartinaHanusovaNXP11644b62021-04-22 10:16:47 +02005****************
61. Building TF-M
7****************
Kevin Townsenda26983f2020-04-06 13:26:21 +02008
MartinaHanusovaNXP8dfc2882021-04-29 16:53:49 +02009There are two options for the TF-M build - with or without secondary bootloader (BL2).
MartinaHanusovaNXP11644b62021-04-22 10:16:47 +020010
111.1 Building TF-M demo without BL2
12==================================
MartinaHanusovaNXP8dfc2882021-04-29 16:53:49 +020013To build S and NS application image for the LPCXpresso55S69, run the ``build_tfm_demo.py`` script in ``platform/ext/target/nxp/lpcxpresso55s69/scripts``
MartinaHanusovaNXP11644b62021-04-22 10:16:47 +020014
MartinaHanusovaNXP8dfc2882021-04-29 16:53:49 +020015Or do it manually using the following commands:
David Vinczeb56c5ad2020-10-08 15:50:46 +020016
17.. code:: bash
18
Kevin Peng23a583c2021-09-08 22:33:33 +080019 $ cmake -S . -B build -DTFM_PLATFORM=nxp/lpcxpresso55s69 -DTFM_TOOLCHAIN_FILE=toolchain_GNUARM.cmake -DTFM_PROFILE=profile_medium -DCMAKE_BUILD_TYPE=Relwithdebinfo -DBL2=OFF -DTFM_ISOLATION_LEVEL=2 -G"Unix Makefiles"
MartinaHanusovaNXP11644b62021-04-22 10:16:47 +020020 $ cd build && make install
David Vinczeb56c5ad2020-10-08 15:50:46 +020021
MartinaHanusovaNXP11644b62021-04-22 10:16:47 +0200221.2 Building TF-M demo with BL2
23===============================
24
MartinaHanusovaNXP8dfc2882021-04-29 16:53:49 +020025To build S and NS application along with a BL2 (bootloader) image for the
MartinaHanusovaNXP11644b62021-04-22 10:16:47 +020026LPCXpresso55S69 run the ``build_tfm_demo_bl2.py`` script in ``platform/ext/target/nxp/lpcxpresso55s69/scripts``
27
MartinaHanusovaNXP8dfc2882021-04-29 16:53:49 +020028Or do it manually using the following commands:
MartinaHanusovaNXP11644b62021-04-22 10:16:47 +020029
30.. code:: bash
MartinaHanusovaNXP535aefd2021-07-20 14:45:01 +020031
Kevin Peng23a583c2021-09-08 22:33:33 +080032 $ cmake -S . -B build -DTFM_PLATFORM=nxp/lpcxpresso55s69 -DTFM_TOOLCHAIN_FILE=toolchain_GNUARM.cmake -DTFM_PROFILE=profile_medium -DCMAKE_BUILD_TYPE=Relwithdebinfo -DTFM_ISOLATION_LEVEL=2 -G"Unix Makefiles"
MartinaHanusovaNXP11644b62021-04-22 10:16:47 +020033 $ cd build && make install
34
351.3 Building TF-M regression tests
36==================================
37
MartinaHanusovaNXP8dfc2882021-04-29 16:53:49 +020038To run the S and NS regression tests (``TEST_S=ON`` and ``TEST_NS=ON``), the
MartinaHanusovaNXP535aefd2021-07-20 14:45:01 +020039secondary image areas must be set to 0 (firmware updates are not possible).
MartinaHanusovaNXP11644b62021-04-22 10:16:47 +020040Use the ``build_tfm_regression.py`` script in ``platform/ext/target/nxp/lpcxpresso55s69/scripts``
41or do it manually using following commands:
42
43.. code:: bash
MartinaHanusovaNXP535aefd2021-07-20 14:45:01 +020044
Kevin Peng23a583c2021-09-08 22:33:33 +080045 $ cmake -S . -B build -DTFM_PLATFORM=nxp/lpcxpresso55s69 -DTFM_TOOLCHAIN_FILE=toolchain_GNUARM.cmake -DTFM_PROFILE=profile_medium -DCMAKE_BUILD_TYPE=Relwithdebinfo -DBL2=OFF -DTEST_S=ON -DTEST_NS=ON -DTFM_ISOLATION_LEVEL=2 -G"Unix Makefiles"
MartinaHanusovaNXP11644b62021-04-22 10:16:47 +020046 $ cd build && make install
MartinaHanusovaNXP535aefd2021-07-20 14:45:01 +020047
David Vinczeb56c5ad2020-10-08 15:50:46 +020048.. Note::
49
50 Currently ``Debug`` cannot be selected as build type and regression tests
51 cannot be run on the board without modifying the flash layout due to the
52 amount of available on-chip flash memory.
David Vinczeb56c5ad2020-10-08 15:50:46 +020053
MartinaHanusovaNXP8dfc2882021-04-29 16:53:49 +020054****************
552. Flashing TF-M
56****************
David Vinczeb56c5ad2020-10-08 15:50:46 +020057
MartinaHanusovaNXP8dfc2882021-04-29 16:53:49 +020058After generating the binaries, there are three options to flash them using:
MartinaHanusovaNXP535aefd2021-07-20 14:45:01 +020059 1) **External Segger J-Link flasher**
60 2) **On-board J-Link debugger** - with update of LPC-Link2 debugger to the Segger J-Link firmware
61 3) **PyOCD** - supports both DAPLink and J-Link interfaces. The LPCXpresso55S69 boards, by default, use DAPLink firmware.
MartinaHanusovaNXP8dfc2882021-04-29 16:53:49 +020062
632.1 Flashing with Segger J-Link
64===============================
65
MartinaHanusovaNXP11644b62021-04-22 10:16:47 +020066For command line flashing it is recommended to use external Segger J-Link flasher or to
67update the LPC-Link 2 debugger on the development board with the firmware provided by Segger,
68which makes the device behave as if there is an on-board J-Link debugger.
Kevin Townsenda26983f2020-04-06 13:26:21 +020069
MartinaHanusovaNXP11644b62021-04-22 10:16:47 +020070For onboard J-Link debugger option please follow this step:
Kevin Townsenda26983f2020-04-06 13:26:21 +020071
MartinaHanusovaNXP8dfc2882021-04-29 16:53:49 +0200722.1.1 Update the LPC-Link 2 to Segger J-Link
73--------------------------------------------
Kevin Townsenda26983f2020-04-06 13:26:21 +020074
75- Install a recent version of the `J-Link Software and Documentation
76 Pack <https://www.segger.com/downloads/jlink#J-LinkSoftwareAndDocumentationPack>`__.
MartinaHanusovaNXP11644b62021-04-22 10:16:47 +020077 Version **6.98b** was used with this guide.
Kevin Townsenda26983f2020-04-06 13:26:21 +020078
79- Update the on-board LPC-Link 2 to use the latest J-Link firmware,
80 following the instructions from Segger: `Getting Started with
MartinaHanusovaNXP11644b62021-04-22 10:16:47 +020081 LPC-Link2 <https://www.segger.com/products/debug-probes/j-link/models/other-j-links/lpc-link-2/>`__.
82- Link the DFU jumper (J4) and make power cycle
83- Flash the **NXP LPCXpresso On-Board** firmware image with ``lpcscrypt`` from the ``lpcscrypt_2.1.2_57/scripts`` folder as follows:
Kevin Townsenda26983f2020-04-06 13:26:21 +020084
MartinaHanusovaNXP535aefd2021-07-20 14:45:01 +020085.. tabs::
Kevin Townsenda26983f2020-04-06 13:26:21 +020086
MartinaHanusovaNXP535aefd2021-07-20 14:45:01 +020087 .. group-tab:: Linux
Kevin Townsenda26983f2020-04-06 13:26:21 +020088
MartinaHanusovaNXP535aefd2021-07-20 14:45:01 +020089 .. code-block:: bash
90
91 $ ./program_JLINK ../probe_firmware/LPCXpressoV2/Firmware_JLink_LPCXpressoV2_20190404.bin
92
93 .. group-tab:: Windows
94
95 .. code-block:: bash
96
97 $ program_JLINK ../probe_firmware/LPCXpressoV2/Firmware_JLink_LPCXpressoV2_20190404.bin
Kevin Townsenda26983f2020-04-06 13:26:21 +020098
MartinaHanusovaNXP8dfc2882021-04-29 16:53:49 +020099Then remove the link on the DFU jumper and power cycle.
Kevin Townsenda26983f2020-04-06 13:26:21 +0200100
MartinaHanusovaNXP8dfc2882021-04-29 16:53:49 +02001012.1.2 Flash images with ``JLinkCommander``
102------------------------------------------
Kevin Townsenda26983f2020-04-06 13:26:21 +0200103
MartinaHanusovaNXP8dfc2882021-04-29 16:53:49 +0200104To flash TF-M images use the flash scripts provided in ``platform/ext/target/nxp/lpcxpresso55s69/scripts`` folder:
MartinaHanusovaNXP535aefd2021-07-20 14:45:01 +0200105 - ``flash_JLink.py`` - for uploading image without BL2
106 - ``flash_bl2_JLink.py`` - for uploading image with BL2
107
MartinaHanusovaNXP8dfc2882021-04-29 16:53:49 +0200108Or you can do it manually according to paragraph ``2.1.2.1``.
MartinaHanusovaNXP11644b62021-04-22 10:16:47 +0200109
MartinaHanusovaNXP8dfc2882021-04-29 16:53:49 +02001102.1.2.1 Connect to the board using ``JLinkCommander``
111^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
MartinaHanusovaNXP11644b62021-04-22 10:16:47 +0200112
MartinaHanusovaNXP535aefd2021-07-20 14:45:01 +0200113.. tabs::
Kevin Townsenda26983f2020-04-06 13:26:21 +0200114
MartinaHanusovaNXP535aefd2021-07-20 14:45:01 +0200115 .. group-tab:: Linux
Kevin Townsenda26983f2020-04-06 13:26:21 +0200116
MartinaHanusovaNXP535aefd2021-07-20 14:45:01 +0200117 .. code-block:: bash
Kevin Townsenda26983f2020-04-06 13:26:21 +0200118
MartinaHanusovaNXP535aefd2021-07-20 14:45:01 +0200119 $ JLinkExe -device lpc55s69 -if swd -speed 2000 -autoconnect 1
Kevin Townsenda26983f2020-04-06 13:26:21 +0200120
MartinaHanusovaNXP535aefd2021-07-20 14:45:01 +0200121 SEGGER J-Link Commander V6.98b (Compiled Mar 12 2021 15:03:29)
122 DLL version V6.98b, compiled Mar 12 2021 15:02:22
Kevin Townsenda26983f2020-04-06 13:26:21 +0200123
MartinaHanusovaNXP535aefd2021-07-20 14:45:01 +0200124 Connecting to J-Link via USB...O.K.
125 Firmware: J-Link LPCXpresso V2 compiled Apr 4 2019 16:54:03
126 Hardware version: V1.00
127 S/N: 729458359
128 VTref=3.300V
129 Device "LPC55S69_M33_0" selected.
130 ...
131 Cortex-M33 identified.
132
133 .. group-tab:: Windows
134
135 .. code-block:: bash
136
137 $ JLink -device lpc55s69 -if swd -speed 2000 -autoconnect 1
138
139 SEGGER J-Link Commander V6.98b (Compiled Mar 12 2021 15:03:29)
140 DLL version V6.98b, compiled Mar 12 2021 15:02:22
141
142 Connecting to J-Link via USB...O.K.
143 Firmware: J-Link LPCXpresso V2 compiled Apr 4 2019 16:54:03
144 Hardware version: V1.00
145 S/N: 729458359
146 VTref=3.300V
147 Device "LPC55S69_M33_0" selected.
148 ...
149 Cortex-M33 identified.
MartinaHanusovaNXP11644b62021-04-22 10:16:47 +0200150
MartinaHanusovaNXP8dfc2882021-04-29 16:53:49 +02001512.1.2.2 Flash the built images
152^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
MartinaHanusovaNXP11644b62021-04-22 10:16:47 +0200153
MartinaHanusovaNXP535aefd2021-07-20 14:45:01 +0200154When BL2 is disabled, flash the generated hex secure and non-secure images:
Kevin Townsenda26983f2020-04-06 13:26:21 +0200155::
156
MartinaHanusovaNXP8dfc2882021-04-29 16:53:49 +0200157 J-Link> loadfile ${BUILD_DIR}/bl2.hex
158 J-Link> loadfile ${BUILD_DIR}/tfm_s_signed.bin 0x00008000
159 J-Link> loadfile ${BUILD_DIR}/tfm_ns_signed.bin 0x00030000
David Vinczeb56c5ad2020-10-08 15:50:46 +0200160
MartinaHanusovaNXP535aefd2021-07-20 14:45:01 +0200161If you built TF-M with the BL2 secondary bootloader, use following commands:
David Vinczeb56c5ad2020-10-08 15:50:46 +0200162::
163
MartinaHanusovaNXP535aefd2021-07-20 14:45:01 +0200164 J-Link> loadfile ${BUILD_DIR}/tfm_s.hex
165 J-Link> loadfile ${BUILD_DIR}/tfm_ns.hex
MartinaHanusovaNXP8dfc2882021-04-29 16:53:49 +0200166
1672.2 Flashing with PyOCD
168=======================
169PyOCD is an open source Python package for programming and debugging Arm Cortex-M microcontrollers using multiple supported types of USB debug probes.
170See: `PyOCD <https://pypi.org/project/pyocd/>`__
171
172To flash TF-M images with PyOCD you can use the flash scripts provided in ``platform/ext/target/nxp/lpcxpresso55s69/scripts`` folder:
MartinaHanusovaNXP535aefd2021-07-20 14:45:01 +0200173 - ``flash_PyOCD.py`` - for uploading image without BL2
174 - ``flash_bl2_PyOCD.py`` - for uploading image with BL2
175
MartinaHanusovaNXP8dfc2882021-04-29 16:53:49 +0200176You should get the following output (flashing without BL2):
MartinaHanusovaNXP11644b62021-04-22 10:16:47 +0200177::
Kevin Townsenda26983f2020-04-06 13:26:21 +0200178
MartinaHanusovaNXP535aefd2021-07-20 14:45:01 +0200179 $ python flash_PyOCD.py
180 0001749:INFO:eraser:Mass erasing device...
181 0001749:INFO:eraser:Erasing chip...
182 0001902:INFO:eraser:Done
183 0001902:INFO:eraser:Successfully erased.
184 [====================] 100%
185 0007694:INFO:loader:Erased 262144 bytes (8 sectors), programmed 203776 bytes (398 pages), skipped 0 bytes (0 pages) at 33.91 kB/s
186 [====================] 100%
187 0005187:INFO:loader:Erased 131072 bytes (4 sectors), programmed 121856 bytes (238 pages), skipped 0 bytes (0 pages) at 34.13 kB/s
MartinaHanusovaNXP8dfc2882021-04-29 16:53:49 +0200188
189
190Or do it manually according the following steps:
191
192If you built TF-M with the BL2 secondary bootloader, use the following commands:
193::
194
MartinaHanusovaNXP535aefd2021-07-20 14:45:01 +0200195 $ pyocd erase --mass -t LPC55S69
196 $ pyocd flash ${BUILD_DIR}/tfm_s.hex -t LPC55S69
197 $ pyocd flash ${BUILD_DIR}/tfm_ns.hex -t LPC55S69
MartinaHanusovaNXP8dfc2882021-04-29 16:53:49 +0200198
199When BL2 is disabled, flash the generated hex secure and non-secure images:
200::
201
MartinaHanusovaNXP535aefd2021-07-20 14:45:01 +0200202 $ pyocd erase --mass -t LPC55S69
203 $ pyocd flash ${BUILD_DIR}/bl2.hex -t LPC55S69
204 $ pyocd flash ${BUILD_DIR}/tfm_s_signed.bin --base-address 0x8000 -t LPC55S69
205 $ pyocd flash ${BUILD_DIR}/tfm_ns_signed.bin --base-address 0x30000 -t LPC55S69
MartinaHanusovaNXP8dfc2882021-04-29 16:53:49 +0200206
207.. Note::
208
209 At present, the reset target command does not seem to respond, so you can reset the device to start firmware execution via the physical RESET button (S4). There is sometimes also a stability issue with the flash erasing, so if the script freezes, it is needed to terminate the script, physically reset the target an rerun it again.
210
211.. Warning::
212
213 When using PyOCD on Windows, there might currently occur an issue with the ``libusb`` library. In that case, download the ``libusb`` library from `here <https://libusb.info/>`__ and copy .DLL file into the Python installation folder (next to python.exe)
Kevin Townsenda26983f2020-04-06 13:26:21 +0200214
MartinaHanusovaNXP11644b62021-04-22 10:16:47 +0200215************
2163. Debugging
217************
Kevin Townsenda26983f2020-04-06 13:26:21 +0200218
MartinaHanusovaNXP11644b62021-04-22 10:16:47 +02002193.1 Debugging with Segger Ozone
220===============================
Kevin Townsenda26983f2020-04-06 13:26:21 +0200221
222If you have a commercially licensed Segger J-Link, or if you meet the
223license terms for it's use, `Segger's cross-platform Ozone
224tool <https://www.segger.com/products/development-tools/ozone-j-link-debugger/>`__
225can be used to debug TF-M firmware images.
226
MartinaHanusovaNXP11644b62021-04-22 10:16:47 +0200227To debug, flash the BL2, S and NS firmware images using the ``flash.py``
Kevin Townsenda26983f2020-04-06 13:26:21 +0200228script or command-line options described earlier in this guide, and
229configure a new project on Ozone as follows:
230
231- Device: LPC55S69
232- Target Interface: SWD
233- Target Interface Speed: 2 MHz
234- Host Interface: USB
235- Program File: build/secure\_fw/tfm\_s.axf (etc.)
236
MartinaHanusovaNXP8dfc2882021-04-29 16:53:49 +0200237Once the project has been set up, and the firmware has previously been
Kevin Townsenda26983f2020-04-06 13:26:21 +0200238flashed to the board, connect to the target via:
239
240- Debug > Start Debug Session > Attach to a Running Program
241
242At this point, you can set a breakpoint somewhere in the code, such as
243in ``startup_LPC55S69_cm33_core0.s`` at the start of the
244``Reset_Handler``, or near a line like ``bl SystemInit``, or at
245another appropriate location, and reset the device to debug.
246
MartinaHanusovaNXP11644b62021-04-22 10:16:47 +02002473.2 Debugging with GDB
248======================
Kevin Townsenda26983f2020-04-06 13:26:21 +0200249
250 **NOTE**: If you are debugging, make sure to set the
MartinaHanusovaNXP8dfc2882021-04-29 16:53:49 +0200251 build type variable to ``-DCMAKE_BUILD_TYPE=Debug`` when
Kevin Townsenda26983f2020-04-06 13:26:21 +0200252 building TF-M so that debug information is available to GDB.
253
MartinaHanusovaNXP8dfc2882021-04-29 16:53:49 +0200254 **NOTE**: When debugging with the mbed-crypto library, it is needed to add an
Anton Komlevb8e3af02020-08-28 10:23:57 +0100255 additional ``-DMBEDCRYPTO_BUILD_TYPE=DEBUG`` compile-time switch.
Kevin Townsenda26983f2020-04-06 13:26:21 +0200256
257
MartinaHanusovaNXP11644b62021-04-22 10:16:47 +02002583.2.1 Start the GDB server, pointing to the secure application image:
259---------------------------------------------------------------------
MartinaHanusovaNXP8dfc2882021-04-29 16:53:49 +0200260You can use JLinkGDBServer or PyOCD server depending on the interface configured in the previous step.
261
MartinaHanusovaNXP535aefd2021-07-20 14:45:01 +0200262.. tabs::
MartinaHanusovaNXP8dfc2882021-04-29 16:53:49 +0200263
MartinaHanusovaNXP535aefd2021-07-20 14:45:01 +0200264 .. group-tab:: J-Link GDB server
Kevin Townsenda26983f2020-04-06 13:26:21 +0200265
MartinaHanusovaNXP535aefd2021-07-20 14:45:01 +0200266 .. code-block:: bash
MartinaHanusovaNXP8dfc2882021-04-29 16:53:49 +0200267
MartinaHanusovaNXP535aefd2021-07-20 14:45:01 +0200268 $ JLinkGDBServer -device lpc55s69 -if swd -speed 2000
MartinaHanusovaNXP8dfc2882021-04-29 16:53:49 +0200269
MartinaHanusovaNXP535aefd2021-07-20 14:45:01 +0200270 .. group-tab:: PyOCD GDB server
271
272 .. code:: bash
273
274 $ pyocd gdbserver -f 2000k -t LPC55S69
Kevin Townsenda26983f2020-04-06 13:26:21 +0200275
MartinaHanusovaNXP11644b62021-04-22 10:16:47 +02002763.2.2 Connecting to the GDB server
277----------------------------------
Kevin Townsenda26983f2020-04-06 13:26:21 +0200278
279In a separate terminal, start the GDB client in ``tui`` (text UI) mode:
280
281.. code:: bash
282
283 $ arm-none-eabi-gdb --tui secure_fw/tfm_s.axf
284
MartinaHanusovaNXP8dfc2882021-04-29 16:53:49 +0200285Then from the client connect to the remote GDB server that was started
Kevin Townsenda26983f2020-04-06 13:26:21 +0200286earlier:
287
MartinaHanusovaNXP535aefd2021-07-20 14:45:01 +0200288.. tabs::
Kevin Townsenda26983f2020-04-06 13:26:21 +0200289
MartinaHanusovaNXP535aefd2021-07-20 14:45:01 +0200290 .. group-tab:: J-Link GDB server
Kevin Townsenda26983f2020-04-06 13:26:21 +0200291
MartinaHanusovaNXP535aefd2021-07-20 14:45:01 +0200292 With ``JLinkGDBServer`` (default port 2331):
MartinaHanusovaNXP8dfc2882021-04-29 16:53:49 +0200293
MartinaHanusovaNXP535aefd2021-07-20 14:45:01 +0200294 .. code:: bash
MartinaHanusovaNXP8dfc2882021-04-29 16:53:49 +0200295
MartinaHanusovaNXP535aefd2021-07-20 14:45:01 +0200296 (gdb) target remote:2331
297 Remote debugging using :2331
298
299 .. group-tab:: PyOCD GDB server
300
301 With ``pyocd gdbserver`` (default port 3333):
302
303 .. code:: bash
304
305 (gdb) target remote:3333
306 Remote debugging using :3333
MartinaHanusovaNXP8dfc2882021-04-29 16:53:49 +0200307
Kevin Townsenda26983f2020-04-06 13:26:21 +0200308
MartinaHanusovaNXP11644b62021-04-22 10:16:47 +02003093.2.3 Reset and stop at ``main``
310--------------------------------
Kevin Townsenda26983f2020-04-06 13:26:21 +0200311
312Set a breakpoint at ``main()`` (found in ``tfm_core.c``), reset the
313device (``monitor reset``), and continue (``c``) execution.
314
315::
316
317 (gdb) break main
318 Breakpoint 1 at 0x10024220: file [path]/secure_fw/core/tfm_core.c, line 189.
319 (gdb) monitor reset
320 (gdb) c
321 Continuing.
322 Note: automatically using hardware breakpoints for read-only addresses.
323
324 Breakpoint 1, main ()
325 at [path]/secure_fw/core/tfm_core.c:189
Kevin Peng300c68d2021-08-12 17:40:17 +0800326 189 tfm_arch_init_secure_msp((uint32_t)&REGION_NAME(Image$$, ARM_LIB_STACK,
Kevin Townsenda26983f2020-04-06 13:26:21 +0200327
MartinaHanusovaNXP11644b62021-04-22 10:16:47 +02003283.2.4 Commonly used GDB commands
329--------------------------------
Kevin Townsenda26983f2020-04-06 13:26:21 +0200330
331You can start, step through, and analyse the code using some of the
332following GDB commands:
333
334+-------------------+---------------------------------------------------------+
335| GDB Command | Description |
336+===================+=========================================================+
337| ``next`` | Execute the next statement in the program |
338+-------------------+---------------------------------------------------------+
339| ``step`` | Step until new source line, entering called functions |
340+-------------------+---------------------------------------------------------+
341| ``until <n>`` | Run until source line ``n`` in the current file |
342+-------------------+---------------------------------------------------------+
343| ``info locals`` | Display the local variables and their current values |
344+-------------------+---------------------------------------------------------+
345| ``bt`` | Display a stack backtrace up to the current function |
346+-------------------+---------------------------------------------------------+
347| ``print <x>`` | Print the expression (ex. ``print my_var``) |
348+-------------------+---------------------------------------------------------+
349| ``x`` | Examine memory (ex. ``x/s *my_string``) |
350+-------------------+---------------------------------------------------------+
351
352From here, you should consult a tutorial or book on GDB to know how to debug
353common problems.
354
355--------------
356
MartinaHanusovaNXP8dfc2882021-04-29 16:53:49 +0200357*Copyright (c) 2021, NXP Semiconductors. All rights reserved.*
Kevin Townsenda26983f2020-04-06 13:26:21 +0200358*Copyright (c) 2020, Linaro. All rights reserved.*
Kevin Peng300c68d2021-08-12 17:40:17 +0800359*Copyright (c) 2020-2021, Arm Limited. All rights reserved.*
MartinaHanusovaNXP11644b62021-04-22 10:16:47 +0200360*SPDX-License-Identifier: BSD-3-Clause*