Lines Matching +full:serial +full:- +full:target

48 are enabled. This core dump data can be fed into a custom-made GDB server as
49 a remote target for GDB (and other GDB compatible debuggers). CPU registers,
61 to convert the serial console log into a binary file.
68 4. Start the debugger corresponding to the target architecture.
71 Developers for Intel ADSP CAVS 15-25 platforms using
73 ``xtensa-intel_apl_adsp`` toolchain of the SDK.
79 .. code-block:: devicetree
84 label = "coredump-partition";
90 -------
92 This example uses the log module backend tied to serial console.
95 This is the core dump log from the serial console, and is stored
100 Booting from ROM..*** Booting Zephyr OS build zephyr-v2.3.0-1840-g7bba91944a63 ***
105 E: PTE: Non-present
164 1. Run the core dump serial log converter:
166 .. code-block:: console
172 .. code-block:: console
178 .. code-block:: console
180 <path to SDK>/x86_64-zephyr-elf/bin/x86_64-zephyr-elf-gdb build/zephyr/zephyr.elf
184 .. code-block:: console
186 (gdb) target remote localhost:1234
190 .. code-block:: console
217 .. code-block:: console
232 ---------------------------------------
234 You can use ``target remote |`` to start the custom GDB server from inside
239 .. code-block:: console
241 <path to SDK>/x86_64-zephyr-elf/bin/x86_64-zephyr-elf-gdb build/zephyr/zephyr.elf
243 2. Inside GDB, start the GDB server using the ``--pipe`` option:
245 .. code-block:: console
247 …(gdb) target remote | ./scripts/coredump/coredump_gdbserver.py --pipe build/zephyr/zephyr.elf core…
254 architecture-specific block, zero or one threads metadata block(s),
259 -----------
263 .. list-table:: Core dump binary file header
265 :header-rows: 1
267 * - Field
268 - Data Type
269 - Description
270 * - ID
271 - ``char[2]``
272 - ``Z``, ``E`` as identifier of file.
273 * - Header version
274 - ``uint16_t``
275 - Identify the version of the header. This needs to be incremented
279 * - Target code
280 - ``uint16_t``
281 - Indicate which target (e.g. architecture or SoC) so the parser
283 * - Pointer size
284 - 'uint8_t'
285 - Size of ``uintptr_t`` in power of 2. (e.g. 5 for 32-bit,
286 6 for 64-bit). This is needed to accommodate 32-bit and 64-bit
287 target in parsing the memory block addresses.
288 * - Flags
289 - ``uint8_t``
290 -
291 * - Fatal error reason
292 - ``unsigned int``
293 - Reason for the fatal error, as the same in
297 Architecture-specific Block
298 ---------------------------
300 The architecture-specific block contains the byte stream of data specific
301 to the target architecture (e.g. CPU registers)
303 .. list-table:: Architecture-specific Block
305 :header-rows: 1
307 * - Field
308 - Data Type
309 - Description
310 * - ID
311 - ``char``
312 - ``A`` to indicate this is a architecture-specific block.
313 * - Header version
314 - ``uint16_t``
315 - Identify the version of this block. To be interpreted by the target
317 * - Number of bytes
318 - ``uint16_t``
319 - Number of bytes following the header which contains the byte stream
320 for target data. The format of the byte stream is specific to
321 the target and is only being parsed by the target parser.
322 * - Register byte stream
323 - ``uint8_t[]``
324 - Contains target architecture specific data.
327 ---------------------------
332 .. list-table:: Threads Metadata Block
334 :header-rows: 1
336 * - Field
337 - Data Type
338 - Description
339 * - ID
340 - ``char``
341 - ``T`` to indicate this is a threads metadata block.
342 * - Header version
343 - ``uint16_t``
344 - Identify the version of the header. This needs to be incremented
348 * - Number of bytes
349 - ``uint16_t``
350 - Number of bytes following the header which contains the byte stream
351 for target data.
352 * - Byte stream
353 - ``uint8_t[]``
354 - Contains data necessary for debugging threads.
357 ------------
362 .. list-table:: Memory Block
364 :header-rows: 1
366 * - Field
367 - Data Type
368 - Description
369 * - ID
370 - ``char``
371 - ``M`` to indicate this is a memory block.
372 * - Header version
373 - ``uint16_t``
374 - Identify the version of the header. This needs to be incremented
378 * - Start address
379 - ``uintptr_t``
380 - The start address of the memory region.
381 * - End address
382 - ``uintptr_t``
383 - The end address of the memory region.
384 * - Memory byte stream
385 - ``uint8_t[]``
386 - Contains the memory content between the start and end addresses.
388 Adding New Target
391 The architecture-specific block is target specific and requires new
392 dumping routine and parser for new targets. To add a new target,
395 #. Add a new target code to the ``enum coredump_tgt_code`` in
398 the newly introduced target code.
400 a target architecture block and call :c:func:`coredump_buffer_output`
408 #. Parse the architecture-specific block from
414 the new target.
427 .. doxygengroup:: arch-coredump