?? target-setup.sgml
字號:
<PARA> Make an empty directory to contain the build tree,and cd into it </PARA></LISTITEM><LISTITEM><PARA>Enter the command:</PARA><PROGRAMLISTING>$ ecosconfig new pid</PROGRAMLISTING></LISTITEM><LISTITEM><PARA>Edit the file ecos.ecc and enable the option CYGBLD_BUILD_FLASH_TOOLby uncommenting its user_value property and setting itto 1.</PARA></LISTITEM><LISTITEM><PARA>Enter the commands:</PARA><PROGRAMLISTING>$ ecosconfig resolve</PROGRAMLISTING><PARA>[there will be some output]</PARA><PROGRAMLISTING>$ ecosconfig tree$ make</PROGRAMLISTING></LISTITEM><LISTITEM><PARA>When the build completes, the FLASH tool image file canbe found in the bin/ subdirectory of the install tree,with the prefix "prog_flash"</PARA></LISTITEM></ORDEREDLIST></SECT3><SECT3><TITLE>Prepare the Board for FLASH Programming</TITLE><PARA>Each time a new image is to be programmed in the FLASH, thejumpers on the board must be set to allow Angel to run:</PARA><ORDEREDLIST><LISTITEM><PARA> Set jumper 7-8 on LK6 [using the Angel codein the 16 bit EPROM]</PARA></LISTITEM><LISTITEM><PARA>Set jumper 5-6 on LK6 [select 8bit ROM mode]</PARA></LISTITEM><LISTITEM><PARA>Set jumper LK18 [ROM remap - this isalso required for eCos]</PARA></LISTITEM><LISTITEM><PARA>Set S1 to 0-0-1-1 [20MHz operation]</PARA></LISTITEM><LISTITEM><PARA>Open jumper LK4 [enable little-endian operation]Attach a serial cable from Serial A on the PID board to connector1 on the development system. This is the cable through which thebinaries will be downloaded. Attach a serial cable from Serial Bon the PID board to connector 2 on the development system (or anysystem that will work as a terminal). Through this cable, the FLASHtool will write its instructions (at 38400 baud).</PARA></LISTITEM></ORDEREDLIST></SECT3><SECT3><TITLE>Program the FLASH</TITLE><ORDEREDLIST><LISTITEM><PARA>Download the FLASH ROM image onto the PID board. Forexample. for the GDB stubs image:<PROGRAMLISTING>bash$ arm-elf-gdb -nw gdb_module.imgGNU gdb 4.18-DEVTOOLSVERSIONCopyright 1998 Free Software Foundation, Inc.GDB is free software, covered by the GNU General Public License,and you are welcome to change it and/or distribute copiesof it under certain conditions. Type "show copying" to see the conditions.There is absolutely no warranty for GDB. Type "show warranty" for details.This GDB was configured as "--host=i586-pc-cygwin32 --target=arm-elf".(no debugging symbols found)...(gdb) target rdi s=com1Angel Debug Monitor for PID (Built with Serial(x1), Parallel, DCC) 1.00(Advanced RISC Machines SDT 2.10)Angel Debug Monitor rebuilt on Jan 20 1997 at 02:33:43Connected to ARM RDI target.(gdb) loadLoading section .rom_vectors, size 0x44 lma 0x60000Loading section .text, size 0x1f3c lma 0x60044Loading section .rodata, size 0x2c lma 0x61f80Loading section .data, size 0x124 lma 0x61facStart address 0x60044 , load size 8400Transfer rate: 5169 bits/sec.(gdb) q The program is running. Exit anyway? (y or n) y </PROGRAMLISTING><NOTE><PARA> On a UNIX or Linux system, the serial port must be /dev/ttyS0 instead of COM1. You need to make sure that the /dev/ttyS0 fileshave the right permissions:<SCREEN>$ su Password: # chmod o+rw /dev/ttyS0* # exit </SCREEN>If you are programming the GDB stub image, it will now be locatedat 0x60000..0x64000. If you are programming the Cygmon ROM Monitor,it will be located at 0x60000..0x80000.</PARA></NOTE></PARA></LISTITEM><LISTITEM><PARA>Now download the FLASH programmer tool</PARA><PROGRAMLISTING>bash$ arm-elf-gdb prog_flash.img GNU gdb 4.18-DEVTOOLSVERSIONCopyright 1998 Free Software Foundation, Inc.GDB is free software, covered by the GNU General Public License,and you are welcome to change it and/or distributecopies of it under certain conditions. Type "show copying" to seethe conditions. There is absolutely no warranty for GDB. Type "showwarranty" for details.This GDB was configured as "--host=i586-pc-cygwin32 --target=arm-elf".(gdb) target rdi s=com1Angel Debug Monitor for PID (Built with Serial(x1), Parallel, DCC) 1.00(Advanced RISC Machines SDT 2.10)Angel Debug Monitor rebuilt on Jan 20 1997 at 02:33:43Connected to ARM RDI target.(gdb) loadLoading section .rom_vectors, size 0x44 lma 0x40000Loading section .text, size 0x44a4 lma 0x40044Loading section .rodata, size 0x318 lma 0x444e8Loading section .data, size 0x1c8 lma 0x44800Start address 0x40044 , load size 18888Transfer rate: 5596 bits/sec.(gdb) c</PROGRAMLISTING></LISTITEM><LISTITEM><PARA>The FLASH tool will output some text on the board serialport B at 38400 baud:</PARA><PROGRAMLISTING>ARMeCosFLASH here!manuf: 8, device: 40Error: Wrong Manufaturer: 08... Please change FLASH jumper</PROGRAMLISTING></LISTITEM><LISTITEM><PARA>This text is repeated until you remove the jumper 7-8on LK6. Then the output will be:</PARA><PROGRAMLISTING>manuf: 1F, device: A4AT29C040A recognisedAbout to program FLASH using data at 60000..64000*** Press RESET now to abort!</PROGRAMLISTING></LISTITEM><LISTITEM><PARA> You have about 10 seconds to abort the operation by pressingreset. After this timeout, the FLASH programming happens:</PARA><SCREEN>...Programming FLASH All done!</SCREEN></LISTITEM><LISTITEM><PARA>Quit/kill the GDB process, which will hang.</PARA></LISTITEM><LISTITEM><PARA>Next time you reset the board, the stub will be in control,communicating on Serial A at 38400 baud.</PARA></LISTITEM></ORDEREDLIST><NOTE><PARA>If you do not have two serial ports available on your hostcomputer, you may still verify the FLASH programming completed successfullyby quitting/killing the GDB process after running "c" instep 2 above. Then switch the serial cable on the PID from SerialA to Serial B and run a terminal emulator on the host computer.In a few seconds you should see the the repeated text describedin step 2 above and you may continue the remaining steps as normal.</PARA></NOTE></SECT3><SECT3><TITLE>Programming the FLASH for big-endian mode</TITLE><PARA>The process is almost identical to the previous instructionswhich apply to a PID board running in little-endian mode only.</PARA><PARA>The only adjustments to make are that if programming a <EMPHASIS>GDB</EMPHASIS> stubROM image (or CygMon ROM monitor image), you must enable the option "UseBig-endian mode" in the <EMPHASIS>eCos Configuration Tool</EMPHASIS> (CYGHWR_HAL_ARM_BIGENDIANif using ecosconfig and editing ecos.ecc).</PARA><PARA>When programming the FLASH there are two options:</PARA><ORDEREDLIST><LISTITEM><PARA>Program FLASH using the little-endian FLASH tool. Afterpowering off, replace the ROM controller with the special big-endianversion which can be acquired from ARM. (This has not been testedby Red Hat).</PARA></LISTITEM><LISTITEM><PARA>Use a special big-endian version of the FLASH tool whichbyte-swaps all the words as they are written to the FLASH.</PARA></LISTITEM></ORDEREDLIST><PARA>Build this tool by enabling the "Build flash programming toolfor BE images on LE boards" option (CYGBLD_BUILD_FLASH_TOOL_BE),resulting in a utility with the prefix "prog_flash_BE_image_LE_system"which should be used instead of "prog_flash".</PARA><PARA>Note that there is a limitation to this method: no sub-worddata can be read from the ROM. To work around this, the .rodatasection is folded into the .data section and thus copied to RAMbefore the system starts.</PARA><PARA>Given that Thumb instructions are 16 bit, it is not possibleto run ROM-startup Thumb binaries on the PID board using this method.</PARA><PARA>When the image has been programmed, power off the board, andset jumper LK4 to enable big-endian operation.</PARA></SECT3></SECT2><SECT2><TITLE>Installing the Stubs into ROM</TITLE><ORDEREDLIST><LISTITEM><PARA>Program the binary image file gdb_module.bininto ROM referring to the instructions of your ROM programmer.</PARA></LISTITEM><LISTITEM><PARA>Plug the ROM into socket U12 and install jumper LK6 pins7-8 to enable the ROM.</PARA></LISTITEM></ORDEREDLIST></SECT2></SECT1><SECT1 id="setup-arm-aeb1"><TITLE><!-- <index></index> -->ARM AEB-1 Hardware Setup</TITLE><SECT2><TITLE>Overview</TITLE><PARA>The ARM AEB-1 comes with tools in ROM. These include a simpleFLASH management tool and the Angel® monitor. eCos forthe ARM AEB-1 comes with GDB stubs suitable for programming intothe onboard FLASH. GDB is the preferred debug environment for GDB,and while Angel provides a subset of the features in the eCos GDBstub, Angel is unsupported.</PARA><PARA>Both eCos and the stubs support both Revision B and RevisionC of the AEB-1 board. Stub ROM images for both types of board canbe found in the loaders/arm-aeb directory under the rootof your eCos installation. You can select which board you are usingby selecting either the aeb or aebC platform by selecting the appropriateplatform HAL in the <EMPHASIS>eCos Configuration Tool</EMPHASIS>.</PARA><PARA>The GDB stub can be downloaded to the board for programmingin the FLASH using the board's on-board ROM monitor:</PARA><ORDEREDLIST><LISTITEM><PARA>talk to the AEB-1 board with a terminal emulator (ora real terminal!)</PARA></LISTITEM><LISTITEM><PARA>use the board's rom menu to download a UU-encodedversion of the GDB stubs which will act as a ROM monitor</PARA></LISTITEM><LISTITEM><PARA>tell the board to use this new monitor, and then hookGDB up to it for real debugging</PARA></LISTITEM></ORDEREDLIST></SECT2><SECT2><TITLE>Talking to the Board</TITLE><PARA>Connect a terminal or computer's serial port to theARM AEB-1. On a PC with a 9-pin serial port, you can use the cableshipped by ARM with no modification. </PARA><PARA>Set the terminal or terminal emulator to 9600N1 (9600 baud,no parity, 1 stop bit). </PARA><PARA>Reset the board by pressing the little reset button on thetop. You will see the following text: </PARA><PROGRAMLISTING> ARM Evaluation Board Boot Monitor 0.01 (19 APR 1998) Press ENTER within 2 seconds to stop autoboot</PROGRAMLISTING><PARA>Press ENTER quickly, and you will get the boot prompt: </PARA><PROGRAMLISTING> Boot:</PROGRAMLISTING></SECT2><SECT2><TITLE>Downloading the Stubs via the Rom Menu</TITLE><PARA>Using the AEB-1 rom menu to download the GDB stubs from theprovided ".UU" file.</PARA><NOTE><PARA>This is an annotated 'terminal' sessionwith the AEB-1 monitor:</PARA></NOTE><PROGRAMLISTING>+Boot: helpModule is BootStrap 1.00 (14 Aug 1998)</PROGRAMLISTING><PROGRAMLISTING>Help is available on:</PROGRAMLISTING><PROGRAMLISTING>Help Modules ROMModules UnPlug PlugInKill SetEnv UnSetEnv PrintEnv DownLoadGo GoS Boot PC FlashWriteFlashLoad FlashErase</PROGRAMLISTING><PROGRAMLISTING>Boot: download c000Ready to download. Use 'transmit' option on terminalemulator to download file.</PROGRAMLISTING><PROGRAMLISTING>... at this point, download the ASCII file "loaders/arm-aeb/ gdb_module.img.UU". The details of this operation differ depending on which terminal emulator is used. It may be necessary to enter "^D" (control+D) when the download completes to get the monitor to return to command mode. </PROGRAMLISTING><PROGRAMLISTING>Loaded file gdb_module.img.bin at address0000c000, size = 19392 </PROGRAMLISTING></SECT2><SECT2><TITLE>Activating the GDB Stubs</TITLE><PARA>Commit the GDB stubs module to FLASH: </PARA><PROGRAMLISTING> Boot: flashwrite 4018000 C000 8000 </PROGRAMLISTING><PARA>Verify that the eCos/"GDB stubs" module is now addedin the list of modules in the board: </PARA><PROGRAMLISTING> Boot: rommodules </PROGRAMLISTING><PARA>You should see output similar to the following: </PARA><PROGRAMLISTING> 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) 0401c810 04018000 0401cbc0 eCos 1.3 (27 Jan 2000)GDB stubs </PROGRAMLISTING><PARA>Now make the eCos/"GDB stubs" module be the defaultmonitor: </PARA><PROGRAMLISTING> Boot: plugin eCos </PROGRAMLISTING><NOTE><PARA>Since the GDB stubs are always linked at the same address(0x4018000), the operation of writing to the FLASH and selectingthe stubs as default monitor is an idempotent operation. You candownload a new set of stubs following the same procedure - you donot have to unregister or delete anything.</PARA></NOTE></SECT2>
?? 快捷鍵說明
復(fù)制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -