diff packages/hal/arm/aeb/current/misc/Notes @ 2:443894e2e912 ecos-v1_2_1-release

Block commit of eCos version 1.2.1
author jlarmour
date Tue, 11 May 1999 12:24:34 +0000
parents
children 18ee5a9c102e
line wrap: on
line diff
new file mode 100644
--- /dev/null
+++ b/packages/hal/arm/aeb/current/misc/Notes
@@ -0,0 +1,263 @@
+===========================================================================
+####COPYRIGHTBEGIN####
+
+-------------------------------------------
+The contents of this file are subject to the Cygnus eCos Public License
+Version 1.0 (the "License"); you may not use this file except in
+compliance with the License.  You may obtain a copy of the License at
+http://sourceware.cygnus.com/ecos
+
+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 Cygnus Operating System, released
+September 30, 1998.
+
+The Initial Developer of the Original Code is Cygnus.  Portions created
+by Cygnus are Copyright (C) 1998,1999 Cygnus Solutions.  All Rights Reserved.
+-------------------------------------------
+
+####COPYRIGHTEND####
+===========================================================================
+
+1999-01-05, revised 1999-03-11
+
+How to build and install the GDB module on the AEB-1
+====================================================
+
+Overview
+--------
+
+The ARM AEB-1 comes with tools in ROM.  These include a simple FLASH
+management tool and the Angel (R) monitor.  eCos for the ARM AEB-1
+comes with GDB stubs suitable for programming into the onboard FLASH.
+GDB is the preferred debug environment for eCos, but Angel must be
+used to initially install the GDB stubs.
+
+Once this bootstrapping is done, you can use GDB to load and debug
+programs on the AEB-1 board.
+
+The following steps will have you:
+
+* talk to the AEB-1 board with a terminal emulator (or a real
+  terminal!)
+
+* enable ARM's Angel ROM monitor
+
+* use GDB with Angel to download a configuration of eCos with GDB
+  stubs which will act as a ROM monitor
+
+* talk to the AEB-1 with a terminal emulator again, and tell it to
+  write the new module to flash
+
+* tell the board to use this new monitor, and then hook GDB up to it
+  for real debugging
+
+Talking to the board
+--------------------
+
+Connect a terminal or computer's serial port to the ARM AEB-1.  On a
+PC with a 9-pin serial port, you can use the cable shipped by ARM with
+no modification.
+
+Set the terminal or terminal emulator to 9600N1 (9600 baud, no parity,
+1 stop bit).
+
+Reset the board by pressing the little reset button on the top.  You
+will see the following text:
+
+	ARM Evaluation Board Boot Monitor 0.01 (19 APR 1998)
+	Press ENTER within 2 seconds to stop autoboot
+
+Press ENTER quickly, and you will get the boot prompt:
+
+	Boot:
+
+
+Downloading the GDB stubs
+-------------------------
+
+Run the angel monitor by typing the following at the Boot: prompt:
+
+    Boot: plugin angel
+    Boot: angel
+
+Then exit the terminal emulator and start up gdb with the GDB module:
+
+    $ arm-elf-gdb -nw loaders/arm-aeb/gdb_module.img
+    (gdb) set remotebaud 9600
+    (gdb) target rdi s=<YOUR SERIAL PORT>
+
+On Windows, the serial port could be com1, com2, etc.  On a UNIX or
+Linux system, the serial port would be /dev/cua0 or /dev/cua1.
+Examples are:
+
+    (gdb) target rdi s=com1
+    (gdb) target rdi s=/dev/cua0
+
+Finally, load the GDB stubs image:
+
+    (gdb) load
+    Loading section .rom_vectors, size 0x44 lma 0xc000
+    Loading section .text, size 0x3544 lma 0xc044
+    Loading section .rodata, size 0x164 lma 0xf588
+    Loading section .data, size 0x110 lma 0xf6ec
+    Start address 0xc044 , load size 14332
+    Transfer rate: 12739 bits/sec.
+
+(Note that the sizes may not exactly match the ones you see on your
+system.)
+
+Once the loading is done, quit GDB:
+
+    (gdb) quit
+
+
+Activating the GDB stubs
+------------------------
+
+Connect a terminal emulator to the board again, reset the board, and
+type enter within two seconds to get the Boot: prompt.  This is the
+same thing you did at the beginning of this procedure.
+
+Commit the GDB stubs module to flash:
+
+	Boot: flashwrite 4018000 C000 8000
+
+Verify that the eCos/"GDB stubs" module is now added in the list of
+modules in the board:
+
+	Boot: rommodules
+
+You should see the following output:
+
+	Header   Base     Limit
+	04000004 04000000 040034a8 BootStrap       1.00 (14 Aug 1998) 
+	04003a74 04003800 04003bc0 Production Test 1.00 (13 Aug 1998) 
+	0400e4f4 04004000 0400e60f Angel           1.02 (12 MAY 1998) 
+	0401ac00 04018000 0401aed8 eCos            1.2  (26 Feb 1999) GDB stubs
+
+Now make the eCos/"GDB stubs" module be the default monitor:
+
+	Boot: plugin eCos
+
+
+Running and debugging an application
+------------------------------------
+
+Configure eCos from scratch for the ARM AEB-1 platform, and build your
+application.  Remember that the AEB-1 board only has 128K of RAM.
+
+Exit from the terminal emulator (you will not need it anymore for
+normal operations), and run gdb:
+
+    $ arm-elf-gdb -nw executable
+    (gdb) set remotebaud 38400
+    (gdb) target remote <YOUR SERIAL PORT>
+    (gdb) load
+
+You can now run your program in the usual way under GDB'S control
+
+Notice that the GDB stub runs at 38400 baud.
+
+
+Building the GDB stubs
+----------------------
+
+We provide the GDB stubs image in the directory
+loaders/arm-aeb/gdb_module.img, but here are instructions on how to
+rebuild them if you should ever need to.
+
+1. Configure a minimal eCos system with all packages except 'infra'
+   disabled.  If you are doing manual configuration, you can do so
+   with
+
+   tcl /work2/ecc/ecc/pkgconf.tcl                                         \
+      --target=arm --platform=aeb --startup=stubs                         \
+      --disable CYGPKG_KERNEL --disable CYGPKG_UITRON                     \
+      --disable CYGPKG_LIBC --disable CYGPKG_LIBM                         \
+      --disable CYGPKG_ERROR --disable CYGPKG_IO                          \
+      --disable CYGPKG_IO_SERIAL --disable CYGPKG_DEVICES_WALLCLOCK       \
+      --disable CYGPKG_DEVICES_WATCHDOG
+
+   and if you are using the Configuration Tool GUI, you can select the
+   ARM AEB platform, with GDB stubs startup, and enable the HAL and
+   INFRA packages and disable all other packages.
+
+2. Edit <hal/hal.h> to enable GDB:
+    #define  CYGDBG_HAL_DEBUG_GDB_INCLUDE_STUBS
+    #undef   CYGDBG_HAL_DEBUG_GDB_BREAK_SUPPORT
+    #undef   CYGDBG_HAL_DEBUG_GDB_THREAD_SUPPORT
+
+   you can use the following patch:
+
+--- pkgconf/hal.h~      Wed Mar 10 13:08:58 1999
++++ pkgconf/hal.h       Thu Mar 11 15:53:16 1999
+@@ -356,9 +356,9 @@
+ 
+    }}CFG_DATA */
+ 
+-#undef   CYGDBG_HAL_DEBUG_GDB_INCLUDE_STUBS
++#define  CYGDBG_HAL_DEBUG_GDB_INCLUDE_STUBS
+ #undef   CYGDBG_HAL_DEBUG_GDB_BREAK_SUPPORT
+-#define  CYGDBG_HAL_DEBUG_GDB_THREAD_SUPPORT
++#undef   CYGDBG_HAL_DEBUG_GDB_THREAD_SUPPORT
+ 
+ /*
+  * NOTE:
+
+
+3. make misc
+
+The gdb_module.img file will be built in the directory
+hal/arm/aeb/current/misc
+
+
+Alternate way of loading the initial stubs
+------------------------------------------
+
+Using the AEB-1 module tool, install the GDB stubs from the provided
+".UU" file.
+
+>>> This is an annotated 'terminal' session with the AEB-1 monitor:
+
+ARM Evaluation Board Boot Monitor 0.01 (19 APR 1998)
+Press ENTER within 2 seconds to stop autoboot
+Boot: help
+Module is BootStrap       1.00 (14 Aug 1998)
+
+Help is available on:
+  Help          Modules       ROMModules    UnPlug        PlugIn
+  Kill          SetEnv        UnSetEnv      PrintEnv      DownLoad
+  Go            GoS           Boot          PC            FlashWrite
+  FlashLoad     FlashErase
+
+Boot: download c000
+Ready to download. Use 'transmit' option on terminal emulator to download file.
+
+ ... at this point, I told my terminal emulator (minicom) to download the ASCII file
+     gdb_module.img.UU (probably needs a different name on Win/NT)
+     I had to enter ^D when the download was complete to get the monitor to come back.
+
+Loaded file gdb_module.img.raw at address 0000c000, size = 13905
+
+Boot: flashwrite 4018000 c000 4000
+
+  As above, this command actually programs the FLASH.
+
+Boot: rommodules
+Header   Base     Limit
+04000004 04000000 040034a8 BootStrap       1.00 (14 Aug 1998)
+04003a74 04003800 04003bc0 Production Test 1.00 (13 Aug 1998)
+0400e4f4 04004000 0400e60f Angel           1.02 (12 MAY 1998)
+0401b608 04018000 0401b844 eCos            1.2  (26 Feb 1999) GDB stubs
+
+  This verifies that the eCos GDB stubs are available in FLASH.
+
+Boot: plugin ecos
+
+  This makes the eCos GDB stubs the default "monitor."  When reset the
+  AEB-1 will start the GDB stubs, after the initial 2 second escape
+  period.