background image

G D B   S E R V E R   F O R   A R M ,   X S C A L E   A N D   C O R T E X  

U S E R   M A N U A L

 

Debugging Embedded Linux 

 
This is an example of loading a Linux kernel to RAM. 

... 
(gdb) # Reset the processor and stop it. 
(gdb) # Use the delayed (-d option) monitor command 
(gdb) # that will be executed by the next 'continue'. 
(gdb) monitor -d reset /halt 
Command delayed. 
(gdb) c 
Continuing. 
 
(gdb) # Set a breakpoint at the kernel entry point. 
(gdb) hbreak *0x90008000 
Hardware assisted breakpoint 5 at 0x90008000 
(gdb) c 
Continuing. 
Breakpoint 5, 0x90008000 in ?? () 
 
(gdb) # Load the kernel image linked to a virtual address 
(gdb) # (0xC000_0000 for the ARM architecture). 
(gdb) # Offset the virtual address so that the code is loaded 

(gdb) # at a physical RAM address (here, 0x9000_0000). 
(gdb) monitor set verify-memory 1 
(gdb) load L:/Linux/ltib/rpm/BUILD/linux/vmlinux 0xD0000000 
Loading section .text.head, size 0x240 lma 0x90008000 
Loading section .init, size 0x1edc0 lma 0x90008240 
Loading section .text, size 0x34f5b8 lma 0x90027000 
Loading section .text.init, size 0xd4 lma 0x903765b8 
Loading section __ksymtab, size 0x53b8 lma 0x90377000 
Loading section __ksymtab_gpl, size 0x1d90 lma 0x9037c3b8 
Loading section __kcrctab, size 0x29dc lma 0x9037e148 
Loading section __kcrctab_gpl, size 0xec8 lma 0x90380b24 
Loading section __ksymtab_strings, size 0xf86c lma 0x903819ec 
Loading section __param, size 0xda8 lma 0x90391258 
Loading section .data, size 0x265a8 lma 0x90392000 
Loading section .init.rodata, size 0x100 lma 0x903b85a8 
Start address 0xc0008000, load size 3865908 
Transfer rate: 158 KB/sec, 15779 bytes/write. 
Warning: the current language does not match this frame. 
 
(gdb) # The start address is in the virtual memory. 
(gdb) # Change it to the physical memory address where 
(gdb) # the code has been loaded. 
(gdb) p /x $pc 
$9 = 0xc0008000 
(gdb) set $pc=0x90008000 
(gdb) p /x $pc 
$10 = 0x90008000 
 
(gdb) # Examine the kernel_entry() parameters. 
(gdb) p /x $r0 
$11 = 0x0 

13

 

Summary of Contents for GDB Server

Page 1: ...SIGNUM SY STEMS CORPORATION GDB Server for ARM XScale and Cortex User Manual Server series...

Page 2: ...tion of such revision or changes WARRANTY Signum Systems warrants to the original purchaser that this product is free of defects in material and workmanship and performs to applicable published Signum...

Page 3: ...the Server 3 Usage 3 Emulation Parameter File 5 Macro Initialization Files 5 Board and CPU Customization 6 Loading to Flash 6 Configuring the Debugger 7 GNU GDB Debugger 7 Code Sourcery G IDE 8 Using...

Page 4: ...er emulator tandem requires a license If your emulator does not have it an external license file must be obtained from Signum Systems Once received the Jxxxxx Gdb lic file needs to be placed in the di...

Page 5: ...finition files boards par ini CPU and target specific parameter and board initialization files targets def Peripheral register definition files Drivers USB JTAGjet USB driver TABLE 1 The contents of t...

Page 6: ...will make the license available to all your Signum applications To make the license available exclusively to the Signum GDB server put the license file in the directory where you installed SigGdbServ...

Page 7: ...T H A N O R F L A S H A T 0 X A 0 0 0 _ 0 0 0 0 sigGdbServer cpu iMX31 init flash cfi 0xA000_0000 ram 16k 0x1FFF_C000 C O N N E C T T O T H E L U M I N A R Y M I C R O L M 3 S X X X P R O C E S S O R...

Page 8: ...SB S16 SW S32 SD addr value OR value with memory at addr S8 SB S16 SW S32 SD addr value AND value with memory at addr S8 SB S16 SW S32 SD addr value XOR value with memory at addr D8 DB D16 DW D32 DD...

Page 9: ...figure the GDB server for several microcontrollers with internal flash memory are shown on page 4 The current version of the server supports the following flash types external CFI compatible NOR flash...

Page 10: ...ecting to the server on the local machine gdb target remote localhost 2000 The server will report a successful connection If GDB can read an XML target description from a target the server will load t...

Page 11: ...t simultaneously The server may also be started directly from the GDB debugger using a pipe So started SigGdbServer receives commands from the debugger on its standard input and sends answers on its s...

Page 12: ...g External Embedded Server and connection parameters 3 JTAGjet GDB Server ver 1 06 and earlier require the verbose resume mode to be disabled Add the following command to your gdbinit file set remote...

Page 13: ...e described in section Loading to Flash page 6 The set verify memory command controls memory verification by the server after writing As write operations involving 4 or less bytes may be attempts to a...

Page 14: ...nual for the format description If the file name extension or the file path matches its default value it can be omitted The default extension of the register definition file is def and the default fil...

Page 15: ...command gdb set var CP15 CONTROL 0x51078 Alternatively coprocessor registers may be accessed using one of the monitor commands See Table 2 on page 5 for a list of available commands For instance gdb...

Page 16: ...ead size 0x240 lma 0x90008000 Loading section init size 0x1edc0 lma 0x90008240 Loading section text size 0x34f5b8 lma 0x90027000 Loading section text init size 0xd4 lma 0x903765b8 Loading section __ks...

Page 17: ...Set a hardware breakpoint at start_kernel gdb hbreak start_kernel Hardware assisted breakpoint 6 at 0xc00087b0 file init main c line 547 gdb c Continuing Breakpoint 6 start_kernel at init main c 547 5...

Reviews: