diff packages/hal/arm/pid/current/src/Notes_GDB_stub @ 76:435cced73e2f ecos-v1_3_1-release

eCos v1.3.1 merged from eCos master repository on 2000-03-27-23:22:51-BST
author jlarmour
date Tue, 28 Mar 2000 14:10:45 +0000
parents
children ff3f181b64bd
line wrap: on
line diff
new file mode 100644
--- /dev/null
+++ b/packages/hal/arm/pid/current/src/Notes_GDB_stub
@@ -0,0 +1,188 @@
+===========================================================================
+####COPYRIGHTBEGIN####
+                                                                          
+ -------------------------------------------                              
+ The contents of this file are subject to the Red Hat eCos Public License 
+ Version 1.1 (the "License"); you may not use this file except in         
+ compliance with the License.  You may obtain a copy of the License at    
+ http://www.redhat.com/                                                   
+                                                                          
+ Software distributed under the License is distributed on an "AS IS"      
+ basis, WITHOUT WARRANTY OF ANY KIND, either express or implied.  See the 
+ License for the specific language governing rights and limitations under 
+ the License.                                                             
+                                                                          
+ The Original Code is eCos - Embedded Configurable Operating System,      
+ released September 30, 1998.                                             
+                                                                          
+ The Initial Developer of the Original Code is Red Hat.                   
+ Portions created by Red Hat are                                          
+ Copyright (C) 1998, 1999, 2000 Red Hat, Inc.                             
+ All Rights Reserved.                                                     
+ -------------------------------------------                              
+                                                                          
+####COPYRIGHTEND####
+===========================================================================
+
+27 Oct 1999, revised on 2000.01.28
+
+How to build and install the GDB module on the PID
+
+Make GDB module
+~~~~~~~~~~~~~~~
+Configure and build using the 'stubs' template for the PID
+target. These are the necessary CLI instructions. It can also be done
+from the Configtool by selecting the appropriate templates.
+
+ % cd /tmp
+ % mkdir stubs
+ % cd stubs
+ % ecosconfig new pid stubs
+ % ecosconfig tree
+ % make
+
+This will install some files in ./install/bin:
+
+ cygmon.elf:   The built stubs image
+ cygmon.bin:   The image converted to binary (suitable for burning to ROM)
+ cygmon.img:   The relocated ELF image (suitable for FLASH writing, see below)
+
+
+Make FLASH tool
+~~~~~~~~~~~~~~~
+Make FLASH tool
+~~~~~~~~~~~~~~~
+
+Again, these are the necessary CLI instructions. It can also be done
+from the Configtool by selecting the appropriate templates, and
+enabling the option.
+
+ % cd /tmp
+ % mkdir pid-flash
+ % cd pid-flash
+ % ecosconfig new pid
+ % <edit ecos.ecc, enabling the CYGBLD_BUILD_FLASH_TOOL option:>
+      --- ecos.ecc.orig       Fri Jan 28 11:21:43 2000
+      +++ ecos.ecc            Fri Jan 28 11:22:01 2000
+      @@ -150,7 +150,7 @@
+       cdl_option CYGBLD_BUILD_FLASH_TOOL {
+      	   # Flavor: bool
+      	   # No user value, uncomment the following line to provide one.
+      -    # user_value 0
+      +    user_value 1
+      	   # value_source default
+      	   # Default value: 0
+      	   # Requires:  CYG_HAL_STARTUP == "RAM" 
+ % ecosconfig resolve
+ % ecosconfig tree
+ % make
+
+The flash tool is installed in ./install/bin
+
+
+Prepare board for eCos
+~~~~~~~~~~~~~~~~~~~~~~
+ 1. Set jumper 7-8 on LK6   [using the Angle code in the 16 bit EPROM]
+ 2. Set jumper 5-6 on LK6   [select 8bit ROM mode]
+ 3. Set jumper LK18         [ROM remap - this is also required for eCos]
+ 4. Set S1 to 0-0-1-1       [20MHz operation]
+
+
+Program FLASH
+~~~~~~~~~~~~~
+ 1. Download the image onto the PID board:
+      % cd /tmp
+      % arm-elf-gdb -nw stubs/install/bin/gdb_image.img
+
+  	(gdb) target rdi s=<serial device>
+ 	Angel Debug Monitor V1.04 (Advanced RISC Machines SDT 2.11a) for PID
+ 	Built with Serial(x1), Parallel, DCC
+ 	Rebuilt on Apr  7 1998 at 22:20:43
+ 	Serial Rate:   9600
+ 	Connected to ARM RDI target.
+  	(gdb) load
+ 	Loading section .rom_vectors, size 0x60 lma 0x60000
+ 	Loading section .text, size 0xeea8 lma 0x60060
+ 	Loading section .rodata, size 0x304c lma 0x6ef08
+ 	Loading section .data, size 0x7f8 lma 0x71f54
+ 	Start address 0x60060 , load size 75596
+ 	Transfer rate: 5548 bits/sec.
+  	(gdb) quit
+
+   This will download the stubs onto the board at 0x60000..0x80000
+
+   Use /dev/ttyS0, COM1 or similar for the <serial device> name.
+
+ 2. Now download the FLASH programmer tool
+      % arm-elf-gdb -nw pid-flash/install/bin/prog_flash.img
+
+ 	(gdb) target rdi s=<serial device>
+ 	Angel Debug Monitor V1.04 (Advanced RISC Machines SDT 2.11a) for PID
+ 	Built with Serial(x1), Parallel, DCC
+ 	Rebuilt on Apr  7 1998 at 22:20:43
+ 	Serial Rate:   9600
+ 	Connected to ARM RDI target.
+ 	(gdb) load
+ 	Loading section .rom_vectors, size 0x60 lma 0x4000
+ 	Loading section .text, size 0x4964 lma 0x4060
+ 	Loading section .rodata, size 0x384 lma 0x89c4
+ 	Loading section .data, size 0x28c lma 0x8d48
+ 	Start address 0x4060 , load size 20436
+ 	Transfer rate: 5449 bits/sec.
+ 	(gdb) cont
+
+ 3. The FLASH tool will output some text on the board serial port B at
+    38400 baud:
+
+       ARM eCos
+       FLASH here!
+       manuf: 8, device: 40
+       Error: Wrong Manufaturer: 08
+       ... Please change FLASH jumper
+
+ 4. This text is repeated until you remove the jumper 7-8 on LK6. Then
+    the output should be:
+
+       manuf: 1F, device: A4
+       AT29C040A recognised
+       About to program FLASH using data at 60000..80000
+       *** Press RESET now to abort!
+    
+ 5. You have about 10 seconds to abort the operation by pressing
+    reset. After this timeout, the FLASH programming happens:
+  
+      ...Programming FLASH
+      All done!
+
+ 6. Quit/kill the GDB process which will hang.
+
+ 7. Next time you reset the board, the stub will be in control, communicating
+    on serial port A at 38400 baud. See documentation for further details
+    on how to connect with GDB.
+
+
+
+Big-Endian operation
+~~~~~~~~~~~~~~~~~~~~
+
+  1) If the board is to be used in big-endian mode, the stub should be
+     configured for platform 'pidbe' instead of 'pid'.
+
+ 2a) If a big-endian rom controller is installed on the board, the
+     programming of a new stub into flash is covered in the ARM PID
+     manual.
+
+ 2b) If a big-endian rom controller is _not_ used, this is what you
+     must do:
+
+       1) Follow the above instructions (including jumper settings) ,
+          but instead of building and using the 'prog_flash' FLASH
+          tool, use the 'prog_flash_BE_image_LE_system' FLASH tool
+          (build it by enabling CYGBLD_BUILD_FLASH_TOOL_BE)
+
+       2) Instead of resetting the board after the FLASH has been
+          programmed, switch off the power and enable jumper LK4.
+
+     If you have to re-program the FLASH later, you can follow the
+     steps above again, but also disable jumper LK4 when changing the
+     other jumpers.