You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@nuttx.apache.org by xi...@apache.org on 2020/02/09 04:40:22 UTC
[incubator-nuttx] branch master updated: boards: sabre-6quad: Add
QEMU instructions to README.txt
This is an automated email from the ASF dual-hosted git repository.
xiaoxiang pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/incubator-nuttx.git
The following commit(s) were added to refs/heads/master by this push:
new cf1180e boards: sabre-6quad: Add QEMU instructions to README.txt
cf1180e is described below
commit cf1180e7f1d5ca7991bcf2e01aa4ecb9fd4582c2
Author: Masayuki Ishikawa <ma...@gmail.com>
AuthorDate: Sun Feb 9 09:39:18 2020 +0900
boards: sabre-6quad: Add QEMU instructions to README.txt
Signed-off-by: Masayuki Ishikawa <Ma...@jp.sony.com>
---
boards/arm/imx6/sabre-6quad/README.txt | 80 ++++++++++++++++++++++++++++++++++
1 file changed, 80 insertions(+)
diff --git a/boards/arm/imx6/sabre-6quad/README.txt b/boards/arm/imx6/sabre-6quad/README.txt
index f2f43cb..294e195 100644
--- a/boards/arm/imx6/sabre-6quad/README.txt
+++ b/boards/arm/imx6/sabre-6quad/README.txt
@@ -586,6 +586,86 @@ A: Yes with the following modifications to the procedure above.
gdb> mon reg pc 0x10800040
gdb> s
+
+Debugging with QEMU
+================================
+
+The nuttx ELF image can be debugged with QEMU.
+
+1. Before debugging, following change (enabling wfi instruction in up_idle)
+ is recommended to reduce CPU usage on host PC.
+
+diff --git a/arch/arm/src/common/up_idle.c b/arch/arm/src/common/up_idle.c
+index 45fab0b7c6..c54c1178a1 100644
+--- a/arch/arm/src/common/up_idle.c
++++ b/arch/arm/src/common/up_idle.c
+@@ -71,7 +71,7 @@ void up_idle(void)
+
+ /* Sleep until an interrupt occurs to save power */
+
+-#if 0
++#if 1
+ asm("WFI"); /* For example */
+ #endif
+ #endif
+
+2. Also, to debug the nuttx (ELF) with symbols, following change must
+ be applied to defconfig.
+
+diff --git a/boards/arm/imx6/sabre-6quad/configs/nsh/defconfig b/boards/arm/imx6/sabre-6quad/configs/nsh/defconfig
+index b15becbb51..3ad4d13ad7 100644
+--- a/boards/arm/imx6/sabre-6quad/configs/nsh/defconfig
++++ b/boards/arm/imx6/sabre-6quad/configs/nsh/defconfig
+@@ -21,11 +21,12 @@ CONFIG_ARCH_STACKDUMP=y
+ CONFIG_BOARD_LOOPSPERMSEC=99369
+ CONFIG_BOOT_RUNFROMSDRAM=y
+ CONFIG_BUILTIN=y
++CONFIG_DEBUG_FULLOPT=y
++CONFIG_DEBUG_SYMBOLS=y
+ CONFIG_DEV_ZERO=y
+
+
+3. Run QEMU
+
+ Run qemu with following options, these options do not load nuttx.
+ Instead, just stops the emulated CPU like "reset halt" with OpenOCD.
+
+ $ qemu-system-arm -M sabrelite -smp 4 -nographic -s -S
+
+ NOTE: -smp 4 option should be used for both nsh configuration
+ (non-SMP) and smp configuration (regardless of CONFIG_SMP_NCPUS)
+
+ To quit QEMU, type Ctrl-A + X
+
+3. Run gdb, connect to QEMU, load nuttx and continue
+
+ $ arm-none-eabi-gdb ./nuttx
+ (gdb) target extended-remote :1234
+ Remote debugging using :1234
+ 0x00000000 in ?? ()
+ (gdb) load nuttx
+ Loading section .text, size 0x17f6b lma 0x10800000
+ Loading section .ARM.exidx, size 0x8 lma 0x10817f6c
+ Loading section .data, size 0x98 lma 0x10817f74
+ Start address 0x10800040, load size 98315
+ Transfer rate: 8728 KB/sec, 1927 bytes/write.
+ (gdb) c
+ Continuing.
+ ^C
+ Thread 1 received signal SIGINT, Interrupt.
+ up_idle () at common/up_idle.c:78
+ 78 }
+ (gdb) where
+ #0 up_idle () at common/up_idle.c:78
+ #1 0x10801ba4 in nx_start () at init/nx_start.c:874
+ #2 0x00000000 in ?? ()
+ (gdb) info threads
+ Id Target Id Frame
+ * 1 Thread 1 (CPU#0 [halted ]) up_idle () at common/up_idle.c:78
+ 2 Thread 2 (CPU#1 [halted ]) 0x00000000 in ?? ()
+ 3 Thread 3 (CPU#2 [halted ]) 0x00000000 in ?? ()
+ 4 Thread 4 (CPU#3 [halted ]) 0x00000000 in ?? ()
+
SMP
===