Mercurial > ecos-v2_0-branch
changeset 798:7d416c5f88a7
* doc/sgml/tutorials/*: Remove obsolete tutorial documentation source
from the eCos 2.0 release branch.
| author | jld |
|---|---|
| date | Tue, 22 Apr 2003 19:26:19 +0000 |
| parents | d834d1945648 |
| children | 0db7ff500f45 |
| files | doc/sgml/tutorials/.cvsignore doc/sgml/tutorials/ChangeLog doc/sgml/tutorials/ecos-tutorial.sgml doc/sgml/tutorials/makefile doc/sgml/tutorials/pix/ARMStartup01.gif doc/sgml/tutorials/pix/ARMStartup01.png doc/sgml/tutorials/pix/ARMstartup.gif doc/sgml/tutorials/pix/MNstart.gif doc/sgml/tutorials/pix/TXstart.gif doc/sgml/tutorials/pix/arrow.gif doc/sgml/tutorials/pix/botclear.gif doc/sgml/tutorials/pix/build-dialog.gif doc/sgml/tutorials/pix/build-lib.gif doc/sgml/tutorials/pix/build-lib01.gif doc/sgml/tutorials/pix/build-lib01.png doc/sgml/tutorials/pix/build-process.gif doc/sgml/tutorials/pix/build-processalt.gif doc/sgml/tutorials/pix/build-processalt.png doc/sgml/tutorials/pix/build-processxx.gif doc/sgml/tutorials/pix/build-tests01.gif doc/sgml/tutorials/pix/build-tests01.png doc/sgml/tutorials/pix/build-tools.gif doc/sgml/tutorials/pix/build-tools.png doc/sgml/tutorials/pix/build-tools01.gif doc/sgml/tutorials/pix/build-tools01.png doc/sgml/tutorials/pix/buildready.gif doc/sgml/tutorials/pix/configtool.gif doc/sgml/tutorials/pix/configtool01.gif doc/sgml/tutorials/pix/configtool01.png doc/sgml/tutorials/pix/during-build.gif doc/sgml/tutorials/pix/ecos.gif doc/sgml/tutorials/pix/initial.gif doc/sgml/tutorials/pix/menu-build-library.gif doc/sgml/tutorials/pix/menu-build-tests.gif doc/sgml/tutorials/pix/program-menu-shot.gif doc/sgml/tutorials/pix/save-dialog01.gif doc/sgml/tutorials/pix/save-dialog01.png doc/sgml/tutorials/pix/selecttests.gif doc/sgml/tutorials/pix/supp_newcase.gif doc/sgml/tutorials/pix/supp_newcase.png doc/sgml/tutorials/pix/supp_profile.gif doc/sgml/tutorials/pix/supp_profile.png doc/sgml/tutorials/pix/supp_welcome.gif doc/sgml/tutorials/pix/supp_welcome.png doc/sgml/tutorials/pix/templates.gif doc/sgml/tutorials/pix/templates01.gif doc/sgml/tutorials/pix/templates01.png doc/sgml/tutorials/pix/twothreads.gif doc/sgml/tutorials/pix/twothreads2.gif doc/sgml/tutorials/pix/twothreads2.png doc/sgml/tutorials/pix/user-tools.gif doc/sgml/tutorials/pix/user-tools01.gif doc/sgml/tutorials/pix/user-tools01.png |
| diffstat | 53 files changed, 0 insertions(+), 10856 deletions(-) [+] |
line wrap: on
line diff
deleted file mode 100644 --- a/doc/sgml/tutorials/.cvsignore +++ /dev/null @@ -1,1 +0,0 @@ -*.html \ No newline at end of file
deleted file mode 100644 --- a/doc/sgml/tutorials/ChangeLog +++ /dev/null @@ -1,134 +0,0 @@ -2002-12-01 Nick Garnett <nickg@ecoscentric.com> - - * ecos-tutorial.sgml: Expanded "i386 PC Hardware Setup" section to - include information about FLOPPY and GRUB booting, and to add a - section about debugging standalone applications. - -2002-10-15 Iztok Zupet <iz@vsr.si> - - * ecos-tutorial.sgml: pictures (gif==>png) - * pix/*.png: generated from gifs with gimp - * makefile: defined MAIN_PDF - -2002-09-23 Andrew Lunn <andrew.lunn@ascom.ch> - - * .cvsignore: Ignore the generated html files. - -2002-05-20 Jonathan Larmour <jlarmour@redhat.com> - - * ecos-tutorial.sgml: RHEPL -> GPL. A few minor other tweaks, but - resisted fixing more. - -2002-03-11 Hugo Tyson <hmt@redhat.com> - - * ecos-tutorial.sgml: Document Cirrus/Maverick EP7312 at all, as - part of adding notes about the 90MHz option that some boards have. - -2002-02-14 Julian Smart <julians@redhat.com> - - * ecos-tutorial.sgml: Added some spacing, created new GIFs for - Configuration Tool, altered text to reflect presence of tool - on both platforms. - -2002-02-05 Jonathan Larmour <jlarmour@redhat.com> - - * ecos-tutorial.sgml: add id tags to all sect1 stuff. - -2002-01-06 Mark Galassi <rosalia@galassi.org> - - * ecos-tutorial.sgml: more corrections based on a visual scan - through the document. Looks good. - -2002-01-05 Mark Galassi <rosalia@galassi.org> - - * ecos-tutorial.sgml: shortened an id attribute so that - docbook2html does not complain on redhat. - - * ecos-tutorial.sgml: finished adding all the conditional text, - and it validates. Things remaining to be done: (1) visual-check - HTML for new stuff, (2) normalize it. - -2002-01-04 Mark Galassi <rosalia@galassi.org> - - * ecos-tutorial.sgml: put in a lot more of the conditional text. - Some is still missing. Also restored some conditional figures. - - * ecos-tutorial.sgml: put in more conditional text, up to the - package description. - - * ecos-tutorial.sgml: added the class="monospaced" attribute to - the <literallayout> tags for the real time characterization - appendices. - - * ecos-tutorial.sgml: restored a bunch of the conditional text. - There is probably still some more. - -2001-12-22 Jonathan Larmour <jlarmour@redhat.com> - - * ecos-tutorial.sgml: Move all pictures to pix/ subdirectory. - Fix copyright year format. - Give every chapter/part an ID. And some sect1's (not finished). - A few other tagging fixes. - -2001-12-17 Mark Galassi <rosalia@galassi.org> - - * ecos-tutorial.sgml: renormalized. since this can be tricky I - tagged this directory before committing with the tag - "before-new-normalization". - - * ecos-tutorial.sgml: yay: imported all the missing hardware setup - sections from the FrameMaker docs. This somehow had gotten lost - the first time. - - * ecos-tutorial.sgml: little typo fix in the copyright notice. - - * ecos-tutorial.sgml: added legal stuff and contact information. - -2001-12-16 Mark Galassi <rosalia@galassi.org> - - * ecos-tutorial.sgml: added some preface material ("contact Red - Hat" and legal stuff) that Jonathan sent. - - * ecos-tutorial.sgml: put titles on all the board-specific real - time characterization appendices. - -2001-12-10 Mark Galassi <rosalia@galassi.org> - - * ecos-tutorial.sgml: reintroduced the appendices. They need more - work from me. - -2001-11-28 Jonathan Larmour <jlarmour@redhat.com> - - * ecos-tutorial.sgml: Get it to verify. - -2001-11-21 Mark Galassi <rosalia@galassi.org> - - * foreword.sgml: new file with Paul Beskeen's foreword. - - * ecos-tutorial.sgml: added the documentation roadmap chapter and - added inclusion of foreword.sgml. - - * ecos-tutorial.sgml: took care of all the <programlisting> and - cross-reference issues. This is mostly complete now. - -2001-11-20 Mark Galassi <rosalia@galassi.org> - - * ecos-tutorial.sgml: lots more work to clean it up, including - reinstating the table. - -2001-11-16 Mark Galassi <rosalia@galassi.org> - - * ecos-tutorial-not-normalized.sgml: this is the one I was editing - before. It is now deprecated. - - * ecos-tutorial.sgml: now this is the new normalized document - produced with: - -sgmlnorm -d -m -n ecos-tutorial-not-normalized.sgml > ecos-tutorial.sgml - - * ecos-tutorial.sgml (monitor): have done a lot of the fixup. - -2001-10-29 Mark Galassi <rosalia@galassi.org> - - * replaced graphic11.cgm with graphic11.cgm.bz2 which is *way* - smaller.
deleted file mode 100644 --- a/doc/sgml/tutorials/ecos-tutorial.sgml +++ /dev/null @@ -1,10666 +0,0 @@ -<!DOCTYPE BOOK PUBLIC "-//OASIS//DTD DocBook V3.1//EN" [ - -<!-- Begin Document Specific Declarations --> - -<?Fm: Validation Off> -<!ENTITY foreword SYSTEM "foreword.sgml"> - -<!ENTITY ui "µITRON"> -<!ENTITY cygnus-full "Cygnus Solutions"> -<!ENTITY cygnus-legal-notice SYSTEM "CYGNUS-TERMS"> -<!ENTITY cygnus-ecos-license SYSTEM "cygnus-ecos-license.sgml"> -<!ENTITY send-pr SYSTEM "send-pr.sgml"> -<!ENTITY version CDATA "2.0.x"> -<!ENTITY Version CDATA "v2_0_x"> -<!NOTATION cgm SYSTEM> -<!NOTATION PNG SYSTEM "PNG"> -<!ENTITY graphic1 SYSTEM "pix/configtool01.png" NDATA png> -<!ENTITY graphic2 SYSTEM "pix/templates01.png" NDATA png> -<!ENTITY graphic3 SYSTEM "pix/ARMStartup01.png" NDATA png> -<!ENTITY graphic4 SYSTEM "pix/build-lib01.png" NDATA png> -<!ENTITY graphic5 SYSTEM "pix/save-dialog01.png" NDATA png> -<!ENTITY graphic6 SYSTEM "pix/build-tools01.png" NDATA png> -<!ENTITY graphic7 SYSTEM "pix/user-tools01.png" NDATA png> -<!ENTITY graphic8 SYSTEM "pix/build-tests01.png" NDATA png> -<!ENTITY graphic9 SYSTEM "pix/twothreads2.png" NDATA png> -<!ENTITY figure-welcome-page-entity SYSTEM "pix/supp_welcome.png" NDATA png> -<!ENTITY figure-new-case-web-page-entity SYSTEM "pix/supp_newcase.png" NDATA png> -<!ENTITY figure-case-profile-entity SYSTEM "pix/supp_profile.png" NDATA png> -<!ENTITY figure-build-process-entity SYSTEM "pix/build-processalt.png" NDATA png> -<!-- End Document Specific Declarations --> - -]> - - -<BOOK ID="ECOS-TUTORIAL"> -<BOOKINFO> -<TITLE>eCos Tutorial</TITLE> -<COPYRIGHT> -<YEAR>1998</YEAR> -<YEAR>1999</YEAR> -<YEAR>2000</YEAR> -<YEAR>2001</YEAR> -<YEAR>2002</YEAR> -<HOLDER>Red Hat, Inc.</HOLDER> -</COPYRIGHT> -<LEGALNOTICE> -<TITLE>Documentation licensing terms</TITLE> -<PARA>This material may be distributed only subject to the terms -and conditions set forth in the Open Publication License, v1.0 -or later (the latest version is presently available at -<ULINK URL="http://www.opencontent.org/openpub/">http://www.opencontent.org/openpub/</ULINK>).</PARA> -<PARA>Distribution of the work or derivative of the work in any -standard (paper) book form is prohibited unless prior -permission is obtained from the copyright holder.</PARA> -</LEGALNOTICE> -<LEGALNOTICE> -<TITLE>Trademarks</TITLE> -<PARA>Red Hat, the Red Hat Shadow Man logo®, eCos™, RedBoot™, -GNUPro®, and Insight™ are trademarks of Red Hat, Inc. </PARA> -<PARA>Sun Microsystems® and Solaris® are registered trademarks of -Sun Microsystems, Inc. </PARA> -<PARA>SPARC® is a registered trademark of SPARC International, Inc., and -is used under license by Sun Microsystems, Inc. </PARA> -<PARA>Intel® is a registered trademark of Intel Corporation.</PARA> -<PARA>Motorola™ is a trademark of Motorola, Inc.</PARA> -<PARA>ARM® is a registered trademark of Advanced RISC Machines, Ltd.</PARA> -<PARA>MIPS™ is a trademark of MIPS Technologies, Inc.</PARA> -<PARA>Toshiba® is a registered trademark of the Toshiba Corporation.</PARA> -<PARA>NEC® is a registered trademark if the NEC Corporation.</PARA> -<PARA>Cirrus Logic® is a registered trademark of Cirrus Logic, Inc.</PARA> -<PARA>Compaq® is a registered trademark of the Compaq Computer Corporation.</PARA> -<PARA>Matsushita™ is a trademark of the Matsushita Electric Corporation.</PARA> -<PARA>Samsung® and CalmRISC™ are trademarks or registered trademarks -of Samsung, Inc. </PARA> -<PARA>Linux® is a registered trademark of Linus Torvalds. </PARA> -<PARA>UNIX® is a registered trademark of The Open Group. </PARA> -<PARA>Microsoft®, Windows®, and Windows NT® are registered trademarks -of Microsoft Corporation, Inc. </PARA> -<PARA>All other brand and product names, trademarks, and copyrights are the -property of their respective owners. </PARA> -</LEGALNOTICE> -<LEGALNOTICE> -<TITLE>Warranty</TITLE> -<PARA> eCos is free software; you can redistribute it and/or modify it under - the terms of the GNU General Public License as published by the Free - Software Foundation; either version 2 or (at your option) any later version, - although individual files may be covered by exceptions to this licence. -</PARA> -<PARA> - eCos is distributed in the hope that it will be useful, but WITHOUT ANY - WARRANTY; without even the implied warranty of MERCHANTABILITY or - FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License - for more details; this is supplied in an appendix to this manual. -</PARA> -</LEGALNOTICE> -</BOOKINFO> -<PART ID="PRELIMINARIES"> -<TITLE>Preliminaries</TITLE> -<PREFACE ID="CONTACTING-REDHAT"> -<TITLE>How to Contact Red Hat</TITLE> -<PARA><ADDRESS>Red Hat Corporate Headquarters - <STREET>2600 Meridian Parkway</STREET> - <CITY>Durham</CITY><STATE>NC</STATE> <POSTCODE>27713</POSTCODE> <COUNTRY> USA</COUNTRY> - Telephone (toll free): <PHONE>+1 888 REDHAT 1 (+1 888 733 4281)</PHONE> - Telephone (main line): <PHONE>+1 919 547 0012 </PHONE> - Telephone (FAX line): <FAX>+1 919 547 0024 </FAX></ADDRESS> - Website: <ULINK URL="http://www.redhat.com/">http://www.redhat.com/ - </ULINK></PARA> -</PREFACE> -<PREFACE ID="FOREWORD"> -<TITLE>Foreword</TITLE> -<PARA>Welcome to the latest release of Red Hat eCos(TM) - the Embedded - Configurable Operating System.</PARA> - -<!-- ==================================================== --> - -<SECT1 ID="FOREWORD-WHATS-NEW"> -<TITLE>What's New?</TITLE> -<PARA>In the fourth major public release of eCos, starting with -version 1.4, we have added a wealth of new features, enhancements, -and have further extended the target platform coverage.</PARA> -<PARA>Major new elements include: </PARA> -<ITEMIZEDLIST> -<LISTITEM> -<PARA>Package management that supports the extension of eCos - functionality via third party add-on packages.</PARA> -</LISTITEM> -<LISTITEM> -<PARA>A standardized configuration save file format that is -human readable and editable, and compatible between both GUI and -command line configuration tools.</PARA> -</LISTITEM> -<LISTITEM> -<PARA>Enhanced web based help and component documentation system -integrated into the GUI configuration tool.</PARA> -</LISTITEM> -<LISTITEM> -<PARA>The Component Definition Language (CDL) has been radically -revised and has now been implemented as a TCL extension for maximum -flexibility. CDL is now fully documented in the Component Writers -Guide.</PARA> -</LISTITEM> -<LISTITEM> -<PARA>Template support for straightforward control of multiple -configuration elements, which can be used to provide easy access -to standard eCos configurations such as a debug stub boot ROM.</PARA> -</LISTITEM> -<LISTITEM> -<PARA>Best of all, the source of the new configuration tools -and underlying libCDL technology has been open sourced under the -GNU Public License (GPL).</PARA> -</LISTITEM> -</ITEMIZEDLIST> -<PARA>A companion beta version of the eCos TCP/IP stack -has been released in conjunction with this release. The stack is -derived from the OpenBSD source base and provides UDP, TCP, ICMP, -BOOTP and DHCP protocol support on an IPv4 standards base. Device -driver support for Cirrus Logic EP72xx evaluation boards, Motorola -MBX, and StrongARM EBSA285 with Intel 82559 is included. The stack -and ethernet core support are distributed as configurable eCos packages. Platform -ethernet device drivers are distributed with the associated platform -HAL, but are naturally not useful without the ethernet core support -package.</PARA> -<PARA>A PCI bus support library has also been added that provides -generic PCI bus based device initialization, discovery, and configuration. -The library has been ported to both the VR4300 DDB-VRC4373 and StrongARM -EBSA285 development boards.</PARA> -<PARA>eCos also contains support for the POSIX Specification (ISO/IEC -9945-1)[POSIX]. This support follows EL/IX -level 1 in the functionality supplied [ELIX].</PARA> -<PARA>POSIX support is divided between the POSIX and the FILEIO -packages. The POSIX package provides support for threads, signals, -synchronization, timers and message queues. The FILEIO package provides -support for file and device I/O. The two packages may be -used together or separately, depending on configuration.</PARA> -<PARA>Also supplied with eCos is RedBoot; the standard bootstrap -and debugging environment for embedded systems from Red Hat. It -provides a wide set of tools for downloading and executing programs -on embedded target systems, as well as tools for manipulating the -target system's environment.</PARA> -<PARA>RedBoot's capabilities include: </PARA> -<ITEMIZEDLIST> -<LISTITEM> -<PARA>Serial and network (Ethernet) based debugging</PARA> -</LISTITEM> -<LISTITEM> -<PARA>FLASH management </PARA> -</LISTITEM> -<LISTITEM> -<PARA>Simple command line interface, available via serial or -Ethernet </PARA> -</LISTITEM> -<LISTITEM> -<PARA>Configurable and extensible, specifically adapted to the -target environment</PARA> -</LISTITEM> -</ITEMIZEDLIST> -<PARA>New architectures and platforms added in this release include: - </PARA> -<ITEMIZEDLIST> -<LISTITEM> -<PARA>ARM Thumb</PARA> -</LISTITEM> -<LISTITEM> -<PARA>ARM9</PARA> -</LISTITEM> -<LISTITEM> -<PARA>Cirrus Logic CL-PS7111 and EP72xx</PARA> -</LISTITEM> -<LISTITEM> -<PARA>Cogent CMA222 and CMA230 ARM boards</PARA> -</LISTITEM> -<LISTITEM> -<PARA>Hitachi SH3</PARA> -</LISTITEM> -<LISTITEM> -<PARA>Intel StrongARM</PARA> -</LISTITEM> -<LISTITEM> -<PARA>Intel x86 PC</PARA> -</LISTITEM> -<LISTITEM> -<PARA>Matsushita AM33</PARA> -</LISTITEM> -<LISTITEM> -<PARA>Motorola MBX evaluation board</PARA> -</LISTITEM> -<LISTITEM> -<PARA>NEC MIPS VR4300</PARA> -</LISTITEM> -<LISTITEM> -<PARA>NEC V8xx</PARA> -</LISTITEM> -</ITEMIZEDLIST> -<PARA>For further details of all the changes see the NEWS file in -the eCos sources.</PARA> -<PARA>Red Hat is dedicated to continued enhancement and maintenance -of the eCos system. Developers can look forward to upcoming releases -that further expand the architectural and board coverage, extend -the functionality of the TCP/IP stack, add a Linux version -of the GUI configuration tool, and add major new features such as a -Linux/Posix compatibility layer based on the upcoming EL/IX -standard - see <ULINK URL="http://sources.redhat.com/elix/">http://sources.redhat.com/elix/</ULINK> -for more details.</PARA> -</SECT1> - -<!-- ==================================================== --> - -<SECT1 ID="FOREWORD-ECOS-IN-A-NUTSHELL"> -<TITLE>eCos in a Nutshell</TITLE> -<PARA>eCos is an open source, configurable, portable, and - royalty-free embedded real-time operating system. The - following text expands on these core aspects that define - eCos.</PARA> -<PARA>eCos is provided as an open source runtime system - supported by the Red Hat GNUPro and GNU open source - development tools. Developers have full and unfettered access - to all aspects of the runtime system. No parts of it are - proprietary or hidden, and you are at liberty to examine, add - to, and modify the code as you deem necessary. These rights - are granted to you and protected by the Red Hat eCos Public - License (RHEPL). It also grants you the right to freely - develop and distribute applications based on eCos. You are not - expected or required to make your embedded applications or any - additional components that you develop freely available, - although we do require that you make publicly available any - modifications to the eCos code itself. Red Hat of course - welcomes all contributions back to eCos such as board ports, - device drivers and other components, as this helps the growth - and development of eCos, and is of benefit to the entire eCos - community.</PARA> -<PARA>One of the key technological innovations in eCos is our - configuration system. The configuration system allows the - application writer to impose their requirements on the - run-time components, both in terms of their functionality and - implementation, whereas traditionally the operating system has - constrained the application's own implementation. Essentially, - this enables eCos developers to create their own - application-specific operating system and makes eCos suitable - for a wide range of embedded uses. Configuration also ensures - that the resource footprint of eCos is minimized as all - unnecessary functionality and features are removed. The - configuration system also presents eCos as a component - architecture. This provides a standardized mechanism for - component suppliers to extend the functionality of eCos and - allows applications to be built from a wide set of optional - configurable run-time components. Components can be provided - from a variety of sources including: the standard eCos - release; commercial third party developers; open source - contributors; or additional optional components from Red - Hat.</PARA> -<PARA>The royalty-free nature of eCos means that you can develop -and deploy your application using the standard eCos release without -incurring any royalty charges. In addition, there are no up-front -license charges for the eCos runtime source code and associated -tools. We provide, without charge, everything necessary for basic embedded -applications development.</PARA> -<PARA>eCos is designed to be portable to a wide range of target -architectures and target platforms including 16, 32, and 64 bit -architectures, MPUs, MCUs and DSPs. The eCos kernel, libraries and -runtime components are layered on the Hardware Abstraction Layer -(HAL), and thus will run on any target once the HAL and relevant -device drivers have been ported to the target's processor -architecture and board. Currently eCos supports a large range of -different target architectures (ARM, Hitachi SH3, Intel x86, MIPS, -Matsushita AM3x, Intel StrongARM, NEC V850, Motorola PowerPC, and -SPARC) including many of the popular variants of these architectures -and evaluation boards. Many new ports are in development and will -be released as they become available.</PARA> -<PARA>eCos has been designed to support applications with real-time -requirements, providing features such as full preemptability, minimal -interrupt latencies, and all the necessary synchronization primitives, -scheduling policies, and interrupt handling mechanisms needed for -these type of applications. eCos also provides all the functionality -required for general embedded application support including device -drivers, memory management, exception handling, C, math libraries, -etc. In addition to runtime support, the eCos system includes all -the tools necessary to develop embedded applications, including -eCos software configuration and build tools, and GNU based compilers, -assemblers, linkers, debuggers, and simulators.</PARA> -<PARA>To get the most out of eCos you should visit the eCos open -source developers site: <ULINK URL="http://sources.redhat.com/ecos/">http://sources.redhat.com/ecos/</ULINK></PARA> -<PARA>The site is dedicated to the eCos developer community and - contains a rich set of resources including news, FAQ, online - documentation, installation guide, discussion and announcement - mailing lists, online problem report form, and runtime and - development tools downloads. We also support anonymous CVS and - WEBCVS access to provide you with direct access to the very - latest eCos source base. Complementing the open source - developers site is an eCos product site, featuring news, press - releases, details of our commercial engineering and support - services, products, and third party partner offerings. This is - located at <ULINK URL="http://www.redhat.com/embedded/technologies/ecos/">http://www.redhat.com/embedded/technologies/ecos/</ULINK></PARA> -<PARA>We have released eCos as open source software because we - believe that this is the most effective software development - model, and that it provides the greatest benefit to the embedded - developer community as a whole. As part of this endeavor, we - seek the input and participation of eCos developers in its - continuing evolution. Participation can take many forms - including:</PARA> -<ITEMIZEDLIST> -<LISTITEM> -<PARA>providing us with feedback on how eCos might be made more -useful to you - by taking part in the ongoing mailing list discussions -and by submitting problem reports covering bugs, documentation issues, -and missing features</PARA> -</LISTITEM> -<LISTITEM> -<PARA>contributing bug fixes and enhancement patches</PARA> -</LISTITEM> -<LISTITEM> -<PARA>contributing new code including device drivers, board -ports, libraries, and other runtime components</PARA> -</LISTITEM> -</ITEMIZEDLIST> -<PARA>Our long term aim is to make eCos a rich and ubiquitous standard -infrastructure for the development of deeply embedded applications. -This will be achieved in part by Red Hat's own efforts, -but also with the assistance of the eCos developer community cooperating -to improve eCos for all. I would like to take this opportunity to -extend our thanks to the many eCos developers who have already contributed -feedback, ideas, patches, and code that have augmented and improved this -release.</PARA> -<PARA>On behalf of the eCos team, welcome to the eCos developer - community.</PARA> -<LITERALLAYOUT><EMPHASIS ROLE="strong">Paul Beskeen, -Director of Engineering, eCos -November 2000</EMPHASIS></LITERALLAYOUT> -</SECT1> -</PREFACE><!-- Keep this comment at the end of the file -Local variables: -mode: sgml -sgml-omittag:nil -sgml-shorttag:t -sgml-namecase-general:t -sgml-general-insert-case:lower -sgml-minimize-attributes:nil -sgml-always-quote-attributes:t -sgml-indent-step:2 -sgml-indent-data:t -sgml-parent-document:("ecos-tutorial.sgml" "book" "preface") -sgml-exposed-tags:nil -sgml-local-catalogs:nil -sgml-local-ecat-files:nil -End: ---> -<CHAPTER ID="DOCUMENTATION-ROADMAP"> -<TITLE>Documentation Roadmap</TITLE> - -<!-- ==================================================== --> - -<SECT1 ID="GETTING-STARTED-WITH-ECOS"> -<TITLE>Getting Started with eCos</TITLE> -<VARIABLELIST> -<VARLISTENTRY> -<TERM><EMPHASIS>Release Notes</EMPHASIS></TERM> -<LISTITEM> -<PARA>Description of this release. </PARA> -</LISTITEM> -</VARLISTENTRY> -<VARLISTENTRY> -<TERM><EMPHASIS>Installation Guide</EMPHASIS></TERM> -<LISTITEM> -<PARA>Hardware and software installation instructions, - including instructions on how to execute some prebuilt - tests to verify the installation.</PARA> -</LISTITEM> -</VARLISTENTRY> -<VARLISTENTRY> -<TERM><EMPHASIS>Programming Tutorial</EMPHASIS></TERM> -<LISTITEM> -<PARA>A tutorial that gets you started running programs with - <EMPHASIS>eCos</EMPHASIS>.</PARA> -</LISTITEM> -</VARLISTENTRY> -<VARLISTENTRY> -<TERM><EMPHASIS>Appendixes</EMPHASIS></TERM> -<LISTITEM> -<PARA>Extra information about the licensing terms - for <EMPHASIS>eCos</EMPHASIS>.</PARA> -</LISTITEM> -</VARLISTENTRY> -</VARIABLELIST> -</SECT1> - -<!-- ==================================================== --> - -<SECT1 ID="ECOS-USERS-GUIDE"> -<TITLE>eCos User's Guide</TITLE> -<VARIABLELIST> -<VARLISTENTRY> -<TERM><EMPHASIS>The eCos Configuration Tool</EMPHASIS></TERM> -<LISTITEM> -<PARA>A description of all features of the Configuration Tool. </PARA> -</LISTITEM> -</VARLISTENTRY> -<VARLISTENTRY> -<TERM><EMPHASIS>Programming concepts and - techniques</EMPHASIS></TERM> -<LISTITEM> -<PARA>An explanation of the - <EMPHASIS>eCos</EMPHASIS> programming cycle, and a - description of some debugging facilities that - <EMPHASIS>eCos</EMPHASIS> offers. </PARA> -</LISTITEM> -</VARLISTENTRY> -<VARLISTENTRY> -<TERM><EMPHASIS>Configuration and the Package - Repository</EMPHASIS></TERM> -<LISTITEM> -<PARA>Information on how to configure - <EMPHASIS>eCos</EMPHASIS> manually, including a reference - on the ecosconfig command, memory layouts, and information - on how to manage a package repository using the - <EMPHASIS>eCos Package Administration Tool</EMPHASIS>. - </PARA> -</LISTITEM> -</VARLISTENTRY> -</VARIABLELIST> -</SECT1> - -<!-- ==================================================== --> - -<SECT1 ID="ECOS-REFERENCE-MANUAL"> -<TITLE>eCos Reference Manual</TITLE> -<VARIABLELIST> -<VARLISTENTRY> -<TERM><EMPHASIS>Preliminaries</EMPHASIS></TERM> -<LISTITEM> -<PARA>An overview of the <EMPHASIS>eCos</EMPHASIS> - kernel and configurability system.</PARA> -</LISTITEM> -</VARLISTENTRY> -<VARLISTENTRY> -<TERM><EMPHASIS>Kernel APIs</EMPHASIS></TERM> -<LISTITEM> -<PARA>In-depth description of - <EMPHASIS>eCos</EMPHASIS>"s native C kernel API, the - µITRON API, the ISO standard C - library, and the <EMPHASIS>eCos</EMPHASIS> Hardware - Abstraction Layer (HAL). Important considerations are - given for programming the <EMPHASIS>eCos</EMPHASIS> - kernel. The semantics for each kernel function are - described, including how they are affected by - configuration. </PARA> -</LISTITEM> -</VARLISTENTRY> -<VARLISTENTRY> -<TERM><EMPHASIS>eCos Device Drivers</EMPHASIS></TERM> -<LISTITEM> -<PARA>A description of the philosophy behind - <EMPHASIS>eCos</EMPHASIS> device drivers, as well as a - presentation of the C language API for using the current - device drivers. </PARA> -</LISTITEM> -</VARLISTENTRY> -<VARLISTENTRY> -<TERM><EMPHASIS>The ISO Standard C and Math Libraries</EMPHASIS></TERM> -<LISTITEM> -<PARA><EMPHASIS>eCos</EMPHASIS> comes with an - implementation of the ISO C library specification. This - section gives details about the implementation, lists the - few functions that are not yet implemented, and gives a - complete reference for configuring the C library. - </PARA> -</LISTITEM> -</VARLISTENTRY> -</VARIABLELIST> -</SECT1> -</CHAPTER> -</PART> -<PART ID="RELEASE-NOTES"> -<TITLE>Release Notes</TITLE> -<PARTINTRO> -<PARA>This release of eCos supports the following - architectures:</PARA> -<ITEMIZEDLIST> -<LISTITEM> -<PARA>Matsushita MN10300 (AM31) </PARA> -</LISTITEM> -<LISTITEM> -<PARA>Matsushita AM33 </PARA> -</LISTITEM> -<LISTITEM> -<PARA>Toshiba TX39 (MIPS R3900 derivative) </PARA> -</LISTITEM> -<LISTITEM> -<PARA>Toshiba TX49 (MIPS R4900 derivative)</PARA> -</LISTITEM> -<LISTITEM> -<PARA>PMC-Sierra RM7000A (MIPS IV ISA) </PARA> -</LISTITEM> -<LISTITEM> -<PARA>Motorola PowerPC MPC823, MPC850, and MPC860</PARA> -</LISTITEM> -<LISTITEM> -<PARA>Fujitsu SPARClite MB86831, MB86832, and MB86833</PARA> -</LISTITEM> -<LISTITEM><!-- <conditionaltext> --> -<PARA>Advanced RISC Machines ARM7 and ARM9 -(including Thumb support on the appropriate cores)</PARA> -</LISTITEM> -<LISTITEM> -<PARA>Intel StrongARM </PARA> -</LISTITEM> -<LISTITEM> -<PARA><!-- <conditionaltext> -->Intel XScale</PARA> -</LISTITEM> -<LISTITEM> -<PARA>MIPS 4Kc and 5Kc -</PARA> -</LISTITEM> -<LISTITEM> -<PARA>NEC VR4100</PARA> -</LISTITEM> -<LISTITEM> -<PARA>NEC VR4300</PARA> -</LISTITEM> -<LISTITEM> -<PARA>Hitachi SH3</PARA> -</LISTITEM> -<LISTITEM> -<PARA>Hitachi SH4</PARA> -</LISTITEM> -<LISTITEM> -<PARA>NEC V850 family (SA1 and SB1)</PARA> -</LISTITEM> -<LISTITEM> -<PARA>i386 PC and compatibles</PARA> -</LISTITEM> -<LISTITEM> -<PARA><!-- <conditionaltext> -->Linux i386—synthetic Linux target </PARA> -</LISTITEM> -</ITEMIZEDLIST> -<PARA>and <!-- <index></index> -->supports the following target platforms:<!-- <conditionaltext> --></PARA> -<ITEMIZEDLIST> -<LISTITEM> -<PARA>Matsushita MN10300 stdevall (AM31)</PARA> -</LISTITEM> -<LISTITEM> -<PARA>Matsushita STB System reference Board (AM33)</PARA> -</LISTITEM> -<LISTITEM> -<PARA>Toshiba JMR3904 (TX39)</PARA> -</LISTITEM> -<LISTITEM> -<PARA>Toshiba REF4955 (TX49)</PARA> -</LISTITEM> -<LISTITEM> -<PARA>Momentum Computer Inc. Ocelot (PMC-Sierra RM7000A)</PARA> -</LISTITEM> -<LISTITEM> -<PARA>Cogent CMA 101/102 evaluation boards with a CMA287-23 -(MPC823), CMA287-50 (MPC850), or CMA 286-60 (MPC860) daughterboard </PARA> -</LISTITEM> -<LISTITEM> -<PARA>Motorola MBX860 </PARA> -</LISTITEM> -<LISTITEM> -<PARA>Motorola FADS (MPC860) This board is not supported by -Red Hat. See the file <FILENAME>hal/powerpc/fads/</FILENAME>&Version;/README -<FILENAME> </FILENAME> for details.</PARA> -</LISTITEM> -<LISTITEM> -<PARA>Fujitsu SPARClite Evaluation Board (SPARClite MB86831, -MB86832, and MB86833)</PARA> -</LISTITEM> -<LISTITEM> -<PARA><!-- <conditionaltext> -->ARM PID (ARM7/ARM7t/ARM9)</PARA> -</LISTITEM> -<LISTITEM> -<PARA>ARM AEB-1 (revision B and C) evaluation boards</PARA> -</LISTITEM> -<LISTITEM> -<PARA>Cirrus Logic CL-PS7111 (ARM710A CPU) evaluation board, -also known as EB7111</PARA> -</LISTITEM> -<LISTITEM> -<PARA>Cirrus Logic EP7209, EP7211 and EP7212 development boards -(ARM720T CPU) also known as EDB7209, EDB7211 and EDB7212 respectively. -</PARA></LISTITEM> -<LISTITEM><PARA> Cirrus Logic EP7312 development board (ARM720T CPU core) -also known as EDB7312 “Maverick” -</PARA></LISTITEM> -<LISTITEM> -<PARA>Cogent CMA 101/102 evaluation boards with CMA230 -(ARM7tdmi) and CMA222 (ARM710) daughterboards —support -for this platform is still “beta”</PARA> -</LISTITEM> -<LISTITEM> -<PARA>ARM Evaluator7T</PARA> -</LISTITEM> -<LISTITEM> -<PARA>Intel StrongARM SA110 EBSA-285 evaluation board</PARA> -</LISTITEM> -<LISTITEM> -<PARA>Intel StrongARM SA1100 Evaluation Platform (Brutus)</PARA> -</LISTITEM> -<LISTITEM> -<PARA>Intel StrongARM SA1100 Multimedia Board</PARA> -</LISTITEM> -<LISTITEM> -<PARA>Intel StrongARM SA1110 Microprocessor Evaluation Platform -(Assabet)</PARA> -</LISTITEM> -<LISTITEM> -<PARA>Compaq iPAQ PocketPC (Intel StrongARM SA1110)</PARA> -</LISTITEM> -<LISTITEM> -<PARA>Bright Star Engineering nanoEngine and commEngine (Intel -StrongARM SA1110)</PARA> -</LISTITEM> -<LISTITEM> -<PARA><!-- <conditionaltext> -->Intel XScale IQ80310 Software Development -and Processor Evaluation Kit</PARA> -</LISTITEM> -<LISTITEM> -<PARA>MIPS Malta and Atlas boards</PARA> -</LISTITEM> -<LISTITEM> -<PARA>NEC DDB-VRC4373 (VR4300)</PARA> -</LISTITEM> -<LISTITEM> -<PARA>NEC V850 Cosmo evaluation boards (CEB-V850/SA1 -and CEB-V850/SB1)</PARA> -</LISTITEM> -<LISTITEM> -<PARA>Hitachi EDK7708</PARA> -</LISTITEM> -<LISTITEM> -<PARA>Hitachi HS7729PCI</PARA> -</LISTITEM> -<LISTITEM> -<PARA>Hitachi Solution Engine 77x9</PARA> -</LISTITEM> -<LISTITEM> -<PARA>Hitachi Solution Engine 7751</PARA> -</LISTITEM> -<LISTITEM> -<PARA>CQ SH-3 evaluation board (CqREEK 7708)</PARA> -</LISTITEM> -<LISTITEM> -<PARA>CQ SH-4 evaluation board (7750)</PARA> -</LISTITEM> -<LISTITEM> -<PARA>Standard PC motherboard</PARA> -</LISTITEM> -<LISTITEM> -<PARA><!-- <conditionaltext> -->Linux (i386) - synthetic Linux target (i386 -and compatibles)</PARA> -</LISTITEM> -</ITEMIZEDLIST> -<PARA>This release also <!-- <index></index> -->supports the following host -operating systems: </PARA> -<ITEMIZEDLIST> -<LISTITEM> -<PARA><!-- <conditionaltext> -->UNIX (Redhat Linux, and Solaris - are the only tested UNIX variants). </PARA> -</LISTITEM> -<LISTITEM> -<PARA>Microsoft® Windows NT®, Windows 95®, -Windows 98®, Windows 2000®. Note that support -for Windows 95, 98 and 2000 is still “beta”. </PARA> -</LISTITEM> -</ITEMIZEDLIST> -</PARTINTRO> -<CHAPTER ID="NOTATION-AND-CONVENTIONS"> -<TITLE>Notation and Conventions</TITLE> -<PARA><!-- <conditionaltext> -->Since there are many supported target architectures, -notation conventions are used in this manual to avoid repeating -instructions that are very similar. </PARA> - -<!-- ==================================================== --> - -<SECT1 ID="GDB-AND-GCC-COMMAND-NOTATION"><!-- <index></index> --><!-- <xref> --> -<TITLE>GDB and <!-- <index></index> --> -GCC Command Notation</TITLE> -<PARA>Cross-development commands like <COMMAND>gcc</COMMAND> and <COMMAND>gdb</COMMAND> will -be shown without prefixed information about the platform for which -you are cross-compiling. You need to add the necessary prefix before -you execute the commands, so instead of simply typing <COMMAND>gcc</COMMAND> and <COMMAND>gdb</COMMAND>, -as illustrated in the various example in this manual, use: - -<COMMAND>arm-elf-gcc/thumb-elf-gcc </COMMAND>and<COMMAND> arm-elf-gdb/thumb-elf-gdb </COMMAND>for -ARM, Thumb and Intel StrongARM -<COMMAND>xscale-elf-gcc</COMMAND> and <COMMAND>xscale-elf-gdb</COMMAND> for -Intel XScale -<COMMAND>mips64vr4300-elf-gcc </COMMAND>and<COMMAND> mips64vr4300-elf-gdb </COMMAND>for -MIPS vr4300 -<COMMAND>mips64vr4100el-elf-gcc </COMMAND>and<COMMAND> mips64vr4100el-elf-gdb </COMMAND>for -MIPS vr4100 -<COMMAND>mips-tx39-elf-gcc </COMMAND>and<COMMAND> mips-tx39-elf-gdb </COMMAND>for -MIPS tx39 -<COMMAND>mips-tx49-elf-gcc </COMMAND>and<COMMAND> mips-tx49-elf-gdb </COMMAND>for -MIPS tx49 -<COMMAND>mipsisa32-elf-gcc</COMMAND> and <COMMAND>mipsisa32-elf-gdb</COMMAND> for -PMC-Sierra RM7000A, MIPS 4Kc & 5Kc, -<COMMAND>mn10300-elf-gcc </COMMAND>and<COMMAND> mn10300-elf-gdb </COMMAND>for -MN10300 -<COMMAND>powerpc-eabi-gcc </COMMAND>and<COMMAND> powerpc-eabi-gdb </COMMAND>for -PowerPC -<COMMAND>sh-elf-gcc </COMMAND>and<COMMAND> sh-elf-gdb </COMMAND>for -SH -<COMMAND>sparclite-elf-gcc </COMMAND>and<COMMAND> sparclite-elf-gdb </COMMAND>for -SPARClite -<COMMAND>v850-elf-gcc </COMMAND>and<COMMAND> v850-elf-gdb </COMMAND>for -NEC V850 -<COMMAND>i386-elf-gcc </COMMAND>and<COMMAND> i386-elf-gdb -for standard PC -i686-pc-linux-gnu-gcc</COMMAND> and <COMMAND>i686-pc-linux-gnu-gdb </COMMAND>for -Synthetic Linux.</PARA> -<PARA>Note that the GCC cross compiler generates executable - files with the <FILENAME>.exe</FILENAME> suffix on Windows, - but not on UNIX. The suffix <FILENAME>.exe</FILENAME> will - be omitted from executable file names, so you will see - <FILENAME>hello</FILENAME> instead of - <FILENAME>hello.exe</FILENAME>.</PARA> -</SECT1> - -<!-- ==================================================== --> - -<SECT1 ID="DIRECTORY-AND-FILE-SYSTEM-CONVENTIONS"><!-- <index></index> --> -<TITLE>Directory and File System Conventions</TITLE> -<PARA>The default directory for installing eCos on Windows (usually <FILENAME>C:/Program Files/Red Hat/eCos</FILENAME>) is different -from that on UNIX (usually <FILENAME>/usr/local/ecos-1.5.x</FILENAME>). -Since many command line examples in the tutorials use these paths, -this default (base) directory will be cited as <EMPHASIS>BASE_DIR</EMPHASIS>.</PARA> -<PARA>Windows and UNIX have a similar file system syntax, but the -MS-DOS command interpreter on Windows uses the backslash character -(\) as a path separator, while UNIX and POSIX shells (including -the Cygwin bash shell for windows) use the forward slash (/).</PARA> -<PARA>This document will use the POSIX shell convention of forward -slashes throughout.</PARA> -</SECT1> - -<!-- ==================================================== --> - -<SECT1 ID="VERSION-CONVENTIONS"> -<TITLE>Version Conventions</TITLE> -<PARA>This manual outlines the features of eCos version 1.5.x. -The initial release version was 1.4, and additional 1.4 releases -will incorporate one or more additional numbers, represented in -this manual by “x”. Please note the exact version -number of the version that you are using, because it is incorporated -in certain file paths.</PARA> -</SECT1> -</CHAPTER> -<CHAPTER ID="RELEASE-OVERVIEW"> -<TITLE><!-- <index></index> -->Release Overview</TITLE> -<PARA>The Embedded Configurable Operating System (eCos) software -consists of <!-- <conditionaltext> --> -a set of tools and a run-time environment -for developing embedded applications. It is a configurable, open -source framework that allows you to build a run-time system that -closely matching the needs of your application. </PARA> -<PARA>eCos is aimed at embedded software developers who use architectures -with tight memory constraints, who want a portable framework for -developing their applications.</PARA> -<PARA>If you want to start programming eCos immediately, see <XREF LINKEND="INSTALLATION-GUIDE"> and <XREF LINKEND="PROGRAMMING-TUTORIAL">. </PARA> - -<!-- ==================================================== --> - -<SECT1 ID="HARDWARE-ABSTRACTION"> -<TITLE>Hardware Abstraction</TITLE> -<PARA>eCos includes a <!-- <index></index> -->Hardware Abstraction Layer -(HAL) that hides the specific features of each supported CPU and -platform, so that the kernel and other run-time components can be -implemented in a portable fashion. </PARA> -<PARA>The eCos HAL has now been ported to numerous architectures, -and to one synthetic target, Linux i386. Notes on porting the HAL -to new platforms are provided in the <EMPHASIS>eCos</EMPHASIS> Reference -Manual under Kernel porting notes in The eCos Hardware Abstraction -Layer section. </PARA> -</SECT1> - -<!-- ==================================================== --> - -<SECT1 ID="EMBEDDED-KERNEL"> -<TITLE><!-- <index></index> -->Embedded Kernel</TITLE> -<PARA>The core of eCos is a full-featured, flexible, and configurable -embedded kernel. </PARA> -<PARA>The kernel provides, among other features, multi-threading, -a choice of schedulers, a full set of synchronization primitives, -memory allocation primitives, and thread manipulation functions -(see the <EMPHASIS>eCos</EMPHASIS> Reference Manual for the full -kernel API).</PARA> -<PARA>The kernel is designed such that some parts of it can be changed -or replaced without affecting other kernel components. </PARA> -<PARA>The following is a partial list of <!-- <index></index> --><!-- --> -kernel features:</PARA> -<ITEMIZEDLIST> -<LISTITEM> -<PARA>choice of memory allocation algorithm </PARA> -</LISTITEM> -<LISTITEM> -<PARA>choice of scheduling algorithm</PARA> -</LISTITEM> -<LISTITEM> -<PARA>a rich set of synchronization primitives </PARA> -</LISTITEM> -<LISTITEM> -<PARA>timers, counters, and alarms </PARA> -</LISTITEM> -<LISTITEM> -<PARA>interrupt handling</PARA> -</LISTITEM> -<LISTITEM> -<PARA>exception handling</PARA> -</LISTITEM> -<LISTITEM> -<PARA>cache control </PARA> -</LISTITEM> -<LISTITEM> -<PARA>thread support </PARA> -</LISTITEM> -<LISTITEM> -<PARA>kernel support for multi-threaded debugging with GDB</PARA> -</LISTITEM> -<LISTITEM> -<PARA>trace buffers</PARA> -</LISTITEM> -<LISTITEM> -<PARA>infrastructure and instrumentation </PARA> -</LISTITEM> -</ITEMIZEDLIST> -<PARA>The kernel API and configuration are described in the - <CITETITLE>eCos Reference Manual</CITETITLE>. </PARA> -</SECT1> - -<!-- ==================================================== --> - -<SECT1 ID="CONFIGURABILITY"> -<TITLE><!-- <index></index> -->Configurability</TITLE> - -<PARA>The eCos kernel and other components can be configured in -great detail at compile time, which avoids the need to add unwanted -code to the library to be linked with your application code. There -is no performance penalty for configuration.</PARA> - -<PARA><!-- <conditionaltext> --> -Configuration is fine-grained, so that very -small details of eCos' behavior can be tuned by selecting -different configuration options</PARA> - -<PARA>eCos is organized as a component architecture, with a language -to describe the constraints between the components and individual -configuration options. These constraints are necessary to resolve -inconsistent configurations, such as disabling the code which handles -the real-time clock, while enabling per-thread timers.</PARA> - -<PARA><!-- <index></index> -->The designer of a component or general-purpose -library should write configurable code using a <!-- <index></index> -->component -definition language (CDL). Once that has been done there is no additional -burden on the end user (i.e. an embedded systems developer), who -will be able to use eCos' graphical Configuration Tool -to configure the kernel and basic libraries without needing to understand -how the configuration infrastructure works.</PARA> - -<PARA>A tutorial explaining how to configure eCos is located in <XREF LINKEND="CONFIGURING-AND-BUILDING-ECOS-FROM-SOURCE">. -The <EMPHASIS>eCos</EMPHASIS> User's Guide has more detailed -information on running the <EMPHASIS>Configuration Tool</EMPHASIS> and -CDL. </PARA> -</SECT1> - -<!-- ==================================================== --> - -<SECT1 ID="UITRON-AND-OTHER-OPERATING-SYSTEMS"> -<TITLE>µITRON and Other Operating Systems</TITLE> - -<PARA>eCos' configurability is the key to simulating different -operating systems by using compatibility layers on top of eCos' kernel, -because the semantics of basic kernel functions can be configured -to match the semantics of other operating systems.</PARA> - -<PARA>The specification for the µITRON -operating system has been implemented on top of eCos. µITRON -is configured by selecting appropriate options in the kernel (a -real-time clock, the <OPTION>mlqueue</OPTION> scheduler, -and no timeslicing); and writing a thin layer to map the µITRON -system calls.</PARA> - -<PARA>The µITRON port implements the -complete µITRON 3.02 “Standard -functionality” (level S) specification, as well as some -of the “Extended” (level E) functions. The µITRON -implementation is described in more detail in the eCos Reference -Manual. </PARA> -</SECT1> - -<!-- ==================================================== --> - -<SECT1 ID="ISO-C-LIBRARY"> -<TITLE><!-- <index></index> -->ISO C Library</TITLE> -<PARA>The <!-- <index></index> -->ISO C and <!-- <index></index> -->math library shipped -with eCos was written to be configurable and tightly integrated -with the kernel and the HAL.</PARA> -<PARA>By carefully selecting configuration options in the C library, -you can significantly reduce the size of the final executable image. </PARA> -</SECT1> - -<!-- ==================================================== --> - -<SECT1 ID="SERIAL-DEVICE-DRIVERS"> -<TITLE>Serial Device Drivers</TITLE> -<PARA>eCos provides <!-- <index></index> -->serial device drivers for all -supported eCos platforms, with the exception of the i386 Linux synthetic -target and most simulator platforms. The serial drivers provide -an API (documented in the eCos Reference Manual) to control serial -ports directly. The standard <!-- <index></index> -->I/O library -can be configured to use them as a transport layer.</PARA> -</SECT1> - -<!-- ==================================================== --> - -<SECT1 ID="MONITOR-IMAGE"> -<TITLE><!-- <xref> -->Monitor Image</TITLE> -<SECT2> -<TITLE>RedBoot</TITLE> -<PARA>The new standard bootstrap and debugging environment for Red -Hat embedded systems is RedBoot, a configurable and extensible command -line application which provides serial and network debugging and -FLASH management. Based on the eCos HAL, RedBoot supports eCos, -GNUPro applications and embedded Linux systems on a wide range of -architectures, including ARM, MIPS, MN10300, PowerPC, SHx, v850 and -x86.</PARA> -<PARA>Redboot provides a GDB stub allowing debugging with the GDB -debugger, and is supplied as a standalone application with the eCos -distribution. See also the <EMPHASIS>RedBoot User's Guide</EMPHASIS>.</PARA> -<PARA>RedBoot is recommended for all platforms. Only those platforms -mentioned below where there is (presently) no RedBoot support, should -CygMon or bare GDB stubs be used.</PARA> -</SECT2> -<SECT2> -<TITLE>CygMon</TITLE> -<PARA></PARA> -<PARA><!-- <conditionaltext> --> -eCos ships with a <EMPHASIS><!-- <index></index> -->CygMon <!-- <index></index> --></EMPHASIS>ROM -monitor for the MN10300, TX39, SPARClite, EP7209, EP7211 and EP7212 Development -Boards. This includes a <!-- <index></index> -->GDB stub, thus allowing GDB -to be used to debug eCos applications on these evaluation boards. For -the Brutus board, two stubs are provided: one with the high FLASH portion -and the other with the low FLASH portion. In addition to shipping -the actual ROM, the image of that ROM is provided in case you need -to burn identical copies for additional boards (see <XREF LINKEND="TARGET-SETUP">). </PARA><!-- <conditionaltext> --> -<NOTE> -<PARA>The TCP stack in the SPARClite version of CygMon uses timer1 -of the 86940 as a freerunning millisecond counter. This means timer1 -cannot be used by the application.</PARA> -</NOTE> -<PARA>For the MN10300, TX39 and SPARClite port of CygMon, the source -code to it is included as part of the GNUPro package, so that you -may recompile it as described in the GNUPro documentation. -For the port of CygMon to the EP7211 and -EP7212 Development Boards, the source code to CygMon is included -as an integral part of eCos. See <XREF LINKEND="setup-arm-ep7212"> for -information on how to rebuild CygMon for the EP7211.Please note that releases of CygMon previous to the one currently -supplied with eCos are incompatible with eCos.</PARA> -</SECT2> -<SECT2> -<TITLE><!-- <conditionaltext> -->GDB -Stubs</TITLE> -<PARA>For the AM33 STB and MN10300 stdeval1, PowerPC MBX860, PowerPC -Cogent, EBSA 285, EDK7708, CQ7708, CQ7750, -VRC4373, -and ARM PID, ARM Cogent, ARM AEB, Cirrus Logic EDB7211 and EDB7209/7212, -TX39 jmr3904, CEB-V850/SA1 -and CEB-V850/SB1 targets, the ROM images include a GDB -stub. This allows GDB to connect to the board and download eCos -programs. </PARA> -<PARA>For the TX49 REF4955, eCos ships with a GDB stub image in -SREC format which must be programmed into the board’s FLASH -memory.</PARA> -<PARA>For the AM33 STB, ARM AEB-1 EBSA 285, SA1100 (Brutus) and -SA1110 (Assabet), the ROM image includes a GDB stub that can be -installed in the FLASH ROM on the board.</PARA> -<PARA>No monitor image is required for the synthetic Linux target.</PARA><!-- -<PARA>For the !- <conditionaltext> ->ARM PID, ARM Cogent, ARM AEB, Cirrus -Logic EDB7211 and EDB7209/7212 !- <conditionaltext> -> targets, -the ROM images include a GDB stub. This allows GDB to connect to -the board and download eCos programs. </PARA> -<PARA> !- <conditionaltext> ->For the !- <conditionaltext> -->ARM AEB-1 !- <conditionaltext> ->, -SA1100 (Brutus) and SA1110 (Assabet), the ROM image includes a GDB -stub that can be installed in the FLASH ROM on the board.</PARA> -<NOTE> -<PARA>When an eCos program is run on ARM or SH3 boards, the GDB -stub in ROM does not provide thread debugging or asynchronous GDB -interrupt support. If you require full debugging capabilities, you -must include GDB stub support when configuring eCos.</PARA> -</NOTE> -<PARA>No monitor image is required for the synthetic Linux -target.</PARA> ---> -</SECT2> -</SECT1> - -<!-- ==================================================== --> - -<SECT1 ID="TESTS-AND-EXAMPLES"> -<TITLE>Tests and Examples</TITLE> -<PARA>Test suites are included for every portion of eCos shipped -in this release. These are brief programs that test the behavior -of most system calls and libraries in eCos. <XREF LINKEND="TEST-SUITES"> describes -how to build and run these test suites.</PARA> -<PARA>The last chapters of <XREF LINKEND="PROGRAMMING-TUTORIAL"> provide examples -that guide you the steps required for running eCos applications, -starting from a “Hello world” program and then -moving on to more complex programs that use additional kernel features. </PARA> -</SECT1> - -<!-- ==================================================== --> - -<SECT1 ID="GNU-TOOLS-AND-THEIR-DOCUMENTATION"> -<TITLE>GNU Tools and their Documentation</TITLE> -<PARA>Red Hat's <!-- <index></index> -->GNUPro Toolkit, which includes -the <!-- <index></index> -->GCC and <!-- <index></index> -->G++ compilers -and the <!-- <index></index> -->GDB debugger, is needed to build eCos applications. -It is bundled with the CD-ROM distribution of the eCos <!-- <index></index> -->Developer's -Kit, and is also available on the <!-- <index></index> -->net at -<ULINK URL="http://sources.redhat.com/ecos/">http://sources.redhat.com/ecos/</ULINK> - </PARA> -<PARA>Online HTML versions of the full GNUPro documentation are -included with eCos, as well as a specific GNUPro tools reference -guide for your hardware architecture, customized for use with eCos. -The full GNUPro documentation can also be found on the web at: - <ulink url="http://www.redhat.com/support/manuals/gnupro.html">http://www.redhat.com/support/manuals/gnupro.html</ulink></PARA> -<NOTE> -<PARA>The Linux synthetic i386 target is an exception, as there -is (currently) no GNUPro manual. However, the GNUPro source archive -contains documentation for the tools. This documentation is usually -also included as part of a default Red Hat Linux installation, accessible -with the <PRODUCTNAME>info</PRODUCTNAME> program.</PARA> -</NOTE> -</SECT1> - -<!-- ==================================================== --> - -<SECT1 ID="ECOS-DOCUMENTATION"> -<TITLE>eCos Documentation</TITLE> -<PARA>The eCos documentation set includes Getting Started with <EMPHASIS>eCos</EMPHASIS>, -the <EMPHASIS>eCos</EMPHASIS> User's Guide, the <EMPHASIS>eCos</EMPHASIS> Reference -Manual, and a <EMPHASIS>GNUPro</EMPHASIS> Reference Manual for your specific -architecture.</PARA> -<PARA>For users of the eCos Net releases, these are available online -in HTML format at - <ULINK URL="http://sources.redhat.com/ecos/">http://sources.redhat.com/ecos/</ULINK></PARA> -</SECT1> -</CHAPTER> -<CHAPTER ID="PACKAGE-CONTENTS"> -<TITLE><!-- <index></index> -->Package Contents</TITLE> - -<!-- ==================================================== --> - -<SECT1> -<TITLE><!-- <conditionaltext> --><!-- <index></index> -->eCos Net Release</TITLE> -<PARA>The eCos Net Release consists of the archive files for - GNUPro and eCos, which are located on the Red Hat eCos web - site: <ULINK URL="http://sources.redhat.com/ecos/">http://sources.redhat.com/ecos/</ULINK></PARA> -<PARA>The eCos Net Release, because it is digitally distributed -only, does not provide <!-- <conditionaltext> -->ROM images for the various development -boards. However, the <!-- <conditionaltext> -->ROM images for the supported hardware -platforms are included in the distribution, so you can burn your -own <!-- <conditionaltext> -->Flash ICs to work with eCos. </PARA> -<PARA>HTML versions of the GNUPro and eCos manuals are included -in the distribution, and are also available online.</PARA> -</SECT1> - -<!-- ==================================================== --> - -<SECT1 id="ecos-developers-kit"> -<TITLE>eCos Developer’s Kit</TITLE> -<PARA>If you have a CD distribution of the eCos - Developer’s Kit, you will find the following items in - your package:</PARA> -<ITEMIZEDLIST> -<LISTITEM> -<PARA>A card to request printed eCos documentation (Getting -Started with <EMPHASIS>eCos</EMPHASIS>, the eCos User’s -Guide, and the <EMPHASIS>eCos</EMPHASIS> Reference Manual), and -the complete GNUPro documentation suite, including an eCos-specific -reference manual for your architecture.</PARA> -<PARA>With this card you can also request a copy of a book by Dr. -Ken Sakamura: <CITETITLE>µITRON 3.0 An Open and -Portable Real-Time Operating System for Embedded - Systems</CITETITLE>.</PARA> -</LISTITEM> -<LISTITEM> -<PARA>eCos version 1.5.x CD-ROM with source code and precompiled -binaries.</PARA> -</LISTITEM> -</ITEMIZEDLIST> -<SECT2> -<TITLE>MN10300 Package</TITLE> -<PARA>The MN10300 package contains eCos-specific -monitor PROMs for the Matsushita stdeval1 evaluation board. There -are no extras for the Matsushita AM33 System Reference Board in -the Developers’ Kit.</PARA> -</SECT2> -<SECT2> -<TITLE>TX39 Package</TITLE> -<PARA>The <!-- <index></index> --> TX39 package contains eCos-specific monitor -PROMs for the Toshiba JMR3904 evaluation board. </PARA> -</SECT2> -<SECT2> -<TITLE>TX49 Package</TITLE> -<PARA>The TX49 package does not contain anything in addition to -the installation CD.</PARA> -</SECT2> -<SECT2> -<TITLE>PowerPC Package</TITLE> -<PARA>The <!-- <index></index> -->PowerPC package contains an eCos-specific -PROM for either the Motorola PowerPC MBX860 evaluation board or -the Cogent evaluation board.</PARA> -<PARA>The PROM for the Cogent board can be used in all three types -of daughterboards (CMA287-50, CMA287-23 and CMA286-60).</PARA> -</SECT2> -<SECT2> -<TITLE>SPARClite Package</TITLE> -<PARA>The <!-- <index></index> -->SPARClite package contains an eCos-specific -monitor PROM for the Fujitsu SPARClite Evaluation Board. </PARA> -</SECT2> -<SECT2> -<TITLE><!-- <conditionaltext> -->ARM Package</TITLE> -<PARA>The <!-- <index></index> -->ARM package contains an eCos-specific PROM -for the PID evaluation board or the Cogent evaluation board. This -PROM contains a Thumb-aware stub. There are no extras for the AEB-1, -EDB7111 or EDB7211 boards in the Developer's Kit.</PARA> -</SECT2> -<SECT2> -<TITLE>StrongARM Package</TITLE> -<PARA>The <!-- <index></index> -->StrongARM package contains no extras for -any StrongARM boards in the developers’ kit.</PARA> -</SECT2> -<SECT2> -<TITLE>VR4100 Package</TITLE> -<PARA>The <!-- <index></index> -->VR4100 package contains no extras in the -developers’ kit.</PARA> -</SECT2> -<SECT2> -<TITLE>VR4300 Package</TITLE> -<PARA>The <!-- <index></index> -->VR4300 package contains an eCos-specific -PROM for the NEC VRC4373 evaluation board.</PARA> -</SECT2> -<SECT2> -<TITLE>CEB-V850 Package</TITLE> -<PARA>The <!-- <index></index> -->CEB-V850 package contains no extras in -the developers’ kit.</PARA> -</SECT2> -<SECT2> -<TITLE>SH3 Package</TITLE> -<PARA>The <!-- <index></index> -->SH package contains both big-endian and -little-endian versions of the eCos stub PLCC ROM for the Hitachi -SH3 EDK7708 board.</PARA> -<PARA>For the CQ CQ7708 board, a GDB stub image suitable for programming -into ROM or EPROM is provided.</PARA> -</SECT2> -</SECT1> -</CHAPTER> -<CHAPTER ID="SYSTEM-REQUIREMENTS"><!-- <conditionaltext> --> -<TITLE><!-- <index></index> -->System Requirements</TITLE> - -<!-- ==================================================== --> - -<SECT1 id="system-requirements-required"> -<TITLE>Required</TITLE> -<ITEMIZEDLIST> -<LISTITEM> -<PARA><!-- <conditionaltext> -->Standard Intel - architecture PC running Linux (tested on Red Hat Linux distributions -5.0-7.0), and English or Japanese versions of Microsoft Windows -NT version 4.0 (service pack 3 or above must be installed), Windows -95, Windows 98, or Windows 2000. Other versions of Red Hat distributions, -or Linux distributions from other vendors should work as well. </PARA> -</LISTITEM> -<LISTITEM> -<PARA>Windows NT users must install Internet - Explorer 4.0 or later, since this will ensure correct - operation of the <EMPHASIS>Configuration - Tool</EMPHASIS> . </PARA> -<PARA><TRADEMARK>Sun</TRADEMARK><!-- <fmsymbol>`</fmsymbol> --> workstation running Solaris 2.5.1 -or later for the <TRADEMARK>SPARC</TRADEMARK><!-- <fmsymbol>`</fmsymbol> -->.</PARA> -<PARA>Support for any platform except for Windows NT 4.0, Solaris -2.5.1 and Linux is beta. In particular, rebuilding the GNUPro compiler -toolchain is only supported and tested on Windows NT 4.0, Solaris -2.5.1, and Red Hat Linux. </PARA> -</LISTITEM> -<LISTITEM> -<PARA>Enough <!-- <index></index> --> -disk space for the installed distribution. The eCos installation -process will detail the various components of eCos and the GNUPro -toolkit that can be installed, and their disk space requirements.</PARA> -</LISTITEM> -<LISTITEM> -<PARA>64MB of RAM and a 350MHz or faster Pentium processor.</PARA><!-- <conditionaltext> --> -</LISTITEM> -</ITEMIZEDLIST> -<PARA>If you are downloading the eCos Net Release distribution from -Red Hat's <ULINK URL="http://sources.redhat.com/">sources.redhat.com</ULINK> site, you will also need space -to store that image and to compile GNUPro and eCos from source.</PARA> -<PARA>If you will be using the <!-- <index></index> -->MN10300 stdeval1 board, -you will also need: </PARA> -<ITEMIZEDLIST> -<LISTITEM> -<PARA>One 16550-based serial port on the PC</PARA> -</LISTITEM> -<LISTITEM> -<PARA>A Matsushita MN10300 standard evaluation board with eCos - CygMon Debug PROMs -installed</PARA> -</LISTITEM> -<LISTITEM> -<PARA>One standard modem (straight connection) serial cable -to connect the serial port on the PC to the evaluation board. An -optional second serial cable can be used for diagnostic I/O. </PARA> -</LISTITEM> -</ITEMIZEDLIST> -<PARA>If you will be using the AM33 <!-- <index></index> -->STB system reference -board, you will also need: </PARA> -<ITEMIZEDLIST> -<LISTITEM> -<PARA>One 16550-based serial port on the PC</PARA> -</LISTITEM> -<LISTITEM> -<PARA>A Matsushita AM33 STB System Reference Board, with the -ability to download using the JTAG debugger. To enable debugging -using GDB, the eCos “GDB stubs ROM” will need to have -been programmed into the Flash ROM.</PARA> -</LISTITEM> -<LISTITEM> -<PARA>Connection to the host computer should be made using a -null modem RS232 serial cable. A gender changer may also be required. </PARA> -</LISTITEM> -</ITEMIZEDLIST> -<PARA>If you will be using the <!-- <index></index> -->TX39 JMR3904 board, -you will also need: </PARA> -<ITEMIZEDLIST> -<LISTITEM> -<PARA>One 16550-based serial port on the PC</PARA> -</LISTITEM> -<LISTITEM> -<PARA>JMR-TX3904 RISC Processor Reference Board with eCos -<PRODUCTNAME> CygMon Debug </PRODUCTNAME>EPROMs installed</PARA> -</LISTITEM> -<LISTITEM> -<PARA>A null modem cable to connect the serial port on the PC -to the evaluation board </PARA> -</LISTITEM> -</ITEMIZEDLIST> -<PARA>If you will be using the TX49 REF4955 board, you will also -need:</PARA> -<ITEMIZEDLIST> -<LISTITEM> -<PARA>One 16550-based serial port on the PC</PARA> -</LISTITEM> -<LISTITEM> -<PARA>TX49 REF4955 board with eCos GDB stubs programmed into -the FLASH</PARA> -</LISTITEM> -</ITEMIZEDLIST> -<PARA>If you will be using the <!-- <index></index> -->PowerPC Cogent board, -you will also need: </PARA> -<ITEMIZEDLIST> -<LISTITEM> -<PARA>One 16550-based serial port on the PC</PARA> -</LISTITEM> -<LISTITEM> -<PARA>Cogent CMA101/102 evaluation board with a CMA287-23 -(MPC823), CMA287-50 (MPC850), or CMA286-60 (MPC860) daughterboard -and eCos “GDB stubs” ROM -installed. Information and online manuals for the Cogent board can -be found at <ULINK URL="http://www.cogcomp.com/">http://www.cogcomp.com/</ULINK>. </PARA> -</LISTITEM> -<LISTITEM> -<PARA>Serial cable to connect the serial port on the PC to the -RJ-11 serial I/O connector, P12 (CMA101) or P3 (CMA102), -on the evaluation board.</PARA> -</LISTITEM> -</ITEMIZEDLIST> -<PARA>If you will be using the<!-- <index></index> --> PowerPC MBX860 board, -you will also need:</PARA> -<ITEMIZEDLIST> -<LISTITEM> -<PARA>One 16550-based serial port on the PC</PARA> -</LISTITEM> -<LISTITEM> -<PARA>Motorola PowerPC MBX860 evaluation board and eCos -<PRODUCTNAME> “</PRODUCTNAME>GDB stubs” ROM installed.</PARA> -</LISTITEM> -<LISTITEM> -<PARA>Suitable serial cable to connect the serial port on the -PC to the SMC1/COM1 connector on the evaluation board.</PARA> -</LISTITEM> -</ITEMIZEDLIST> -<PARA>If you will be using the Fujitsu <!-- <index></index> -->SPARClite -Evaluation Board, you will also need: </PARA> -<ITEMIZEDLIST> -<LISTITEM> -<PARA>One 16550-based serial port on the PC (only required if -using the serial connection).</PARA> -</LISTITEM> -<LISTITEM> -<PARA>Fujitsu SPARClite Evaluation Board with a CygMon ROM - installed. - </PARA> -</LISTITEM> -<LISTITEM> -<PARA>Null modem cable to connect the serial port on the PC -to the CON1 serial I/O connector on the evaluation board.</PARA> -</LISTITEM> -<LISTITEM> -<PARA>An ethernet connection between the PC and the evaluation -board (possibly via a LAN). The ethernet connection is not necessary -if you have a serial connection, but it does improve download speeds -immensely.</PARA> -</LISTITEM> -</ITEMIZEDLIST> -<PARA><!-- <conditionaltext> -->If you will be using the <!-- <index></index> -->ARM -PID evaluation board, you will also need: </PARA> -<ITEMIZEDLIST> -<LISTITEM> -<PARA>One (16550 based) serial port on the PC</PARA> -</LISTITEM> -<LISTITEM> -<PARA>ARM PID evaluation board with eCos - -GDB stubs ROM installed, or GDB stubs programmed in the FLASH ROM -(see <XREF LINKEND="setup-arm-pid">). </PARA> -</LISTITEM> -<LISTITEM> -<PARA>Null modem cable to connect the serial port on the PC -to the SerialA serial I/O connector on the evaluation board.</PARA> -</LISTITEM> -</ITEMIZEDLIST> -<PARA>If you will be using the <!-- <index></index> -->ARM AEB-1 evaluation -board, you will also need: </PARA> -<ITEMIZEDLIST> -<LISTITEM> -<PARA>One (16550 based) serial port on the PC</PARA> -</LISTITEM> -<LISTITEM> -<PARA>ARM AEB-1 evaluation board with eCos -GDB stubs ROM image installed in the FLASH ROM. </PARA> -</LISTITEM> -<LISTITEM> -<PARA>Null modem cable to connect the serial port on the PC -to the serial I/O connector on the evaluation board.</PARA> -</LISTITEM> -</ITEMIZEDLIST> -<PARA>If you will be using the <!-- <index></index> -->ARM Evaluator-7T evaluation -board, you will also need: </PARA> -<ITEMIZEDLIST> -<LISTITEM> -<PARA>One (16550 based) serial port on the PC</PARA> -</LISTITEM> -<LISTITEM> -<PARA>ARM E7T evaluation board with RedBoot image installed -in the FLASH ROM. </PARA> -</LISTITEM> -<LISTITEM> -<PARA>Null modem cable to connect the serial port on the PC -to the serial I/O connector on the evaluation board.</PARA> -</LISTITEM> -</ITEMIZEDLIST> -<PARA>If you will be using the <!-- <index></index> -->Cogent CMA230 evaluation -board, you will also need: </PARA> -<ITEMIZEDLIST> -<LISTITEM> -<PARA>One (16550 based) serial port on the PC</PARA> -</LISTITEM> -<LISTITEM> -<PARA>Cogent CMA101/102 evaluation board with a CMA -(ARM7tdmi) daughterboard and eCos - -GDB stubs ROM installed. Information and online manuals for the -Cogent board can be found at <ulink url="http://www.cogcomp.com/">http://www.cogcomp.com/</ulink> - </PARA> -</LISTITEM> -<LISTITEM> -<PARA>Serial cable to connect the serial port on the PC to the -RJ-11 serial I/O connector, P11 (CMA101) or P3 (CMA102), -on the evaluation board.</PARA> -</LISTITEM> -</ITEMIZEDLIST> -<PARA>If you will be using the <!-- <index></index> -->Cirrus Logic CL-PS7111 -Evaluation Board, you will also need:</PARA> -<ITEMIZEDLIST> -<LISTITEM> -<PARA>One 16550-based serial port on the PC.</PARA> -</LISTITEM> -<LISTITEM> -<PARA>A Cirrus Logic CL-PS7111 Evaluation Board with an eCos -GDB stubs ROM image installed in the FLASH ROM.</PARA> -</LISTITEM> -<LISTITEM> -<PARA>Custom cable that is supplied with the CL-PS7111 Evaluation -Board connected from a serial port on the PC to the serial I/O -connector labelled “Serial Port 1”.</PARA> -</LISTITEM> -</ITEMIZEDLIST> -<PARA>If you will be using the <!-- <index></index> -->Cirrus Logic EP7209, -EP7211 or EP7212 Development Boards, you will also need:</PARA> -<ITEMIZEDLIST> -<LISTITEM> -<PARA>One 16550-based serial port on the PC.</PARA> -</LISTITEM> -<LISTITEM> -<PARA>A Cirrus Logic ARM EP7211 or EP7212 Development Board, -with either a RedBoot, CygMon or GDB stub ROM image installed in -the FLASH ROM.</PARA> -</LISTITEM> -<LISTITEM> -<PARA>If connecting with a serial cable, use a null modem cable -to connect the serial port on the PC to the serial I/O -connector labelled “UART 1” on the EP7211 Development -Board, and “Serial Port 0” on the EP7209 and EP7212 -Development Boards. A gender changer may also be required.</PARA> -</LISTITEM> -</ITEMIZEDLIST> -<PARA>If you will be using the Cirrus Logic -<!-- <index></index> -->EP7312 Development Boards, you will also need: -</PARA> -<ITEMIZEDLIST> -<LISTITEM> -<PARA>One 16550-based serial port on the PC.</PARA> -</LISTITEM> -<LISTITEM> -<PARA>A Cirrus Logic ARM EP7312 Development System -with RedBoot installed in -the FLASH ROM.</PARA> -</LISTITEM> -<LISTITEM> -<PARA>If connecting with a serial cable, use a null modem cable -to connect the serial port on the PC to either serial I/O -connector on the EP7312 Development Board. -A gender changer may also be required.</PARA> -<PARA>Alternatively you can connect using the standard ethernet -connector on the board. -</PARA> -</LISTITEM> -</ITEMIZEDLIST> -<PARA>If you will be using the <!-- <index></index> -->Intel StrongARM EBSA-285 -evaluation board, you will also need: </PARA> -<ITEMIZEDLIST> -<LISTITEM> -<PARA>Intel StrongARM EBSA-285 evaluation board with RedBoot -or eCos GDB stubs ROM image installed -in the FLASH ROM. </PARA> -</LISTITEM> -</ITEMIZEDLIST> -<PARA>If serial debugging is to be used:</PARA> -<ITEMIZEDLIST> -<LISTITEM> -<PARA>One (16550 based) serial port on the PC</PARA> -</LISTITEM> -<LISTITEM> -<PARA>Null modem cable to connect the serial port on the PC -to the serial I/O connector on the evaluation board. A -gender changer may also be required.</PARA> -</LISTITEM> -</ITEMIZEDLIST> -<PARA>If network debugging is to be used:</PARA> -<ITEMIZEDLIST> -<LISTITEM> -<PARA>Suitable network interface card on the development PC -and connecting cables</PARA> -</LISTITEM> -</ITEMIZEDLIST> -<PARA>If you will be using the Bright Star Engineering commEngine -or nanoEngine boards, you will also need: </PARA> -<ITEMIZEDLIST> -<LISTITEM> -<PARA>BSE commEngine or nanoEngine board with RedBoot image -installed in the FLASH ROM. </PARA> -</LISTITEM> -</ITEMIZEDLIST> -<PARA>If serial debugging is to be used:</PARA> -<ITEMIZEDLIST> -<LISTITEM> -<PARA>One (16550 based) serial port on the PC</PARA> -</LISTITEM> -<LISTITEM> -<PARA>Null modem cable to connect the serial port on the PC -to the serial I/O connector on the evaluation board. A -gender changer may also be required.</PARA> -</LISTITEM> -</ITEMIZEDLIST> -<PARA>If network debugging is to be used:</PARA> -<ITEMIZEDLIST> -<LISTITEM> -<PARA>Suitable network interface card on the development PC -and connecting cables</PARA> -</LISTITEM> -</ITEMIZEDLIST> -<PARA>If you will be using the Intel SA1100 Evaluation Platform -(Brutus), you will need:</PARA> -<ITEMIZEDLIST> -<LISTITEM> -<PARA>One 16550-based serial port on the PC</PARA> -</LISTITEM> -<LISTITEM> -<PARA>Intel SA1100 board with RedBoot, CygMon or eCos GDB stubs -programmed into the FLASH</PARA> -</LISTITEM> -</ITEMIZEDLIST> -<PARA>If you will be using the Intel SA1100 Multimedia Board, you -will need:</PARA> -<ITEMIZEDLIST> -<LISTITEM> -<PARA>One 16550-based serial port on the PC</PARA> -</LISTITEM> -<LISTITEM> -<PARA>Intel SA1100MM board with RedBoot installed into FLASH</PARA> -</LISTITEM> -</ITEMIZEDLIST> -<PARA>If you will be using the Intel SA1110 Evaluation Platform -(Assabet), you will need:</PARA> -<ITEMIZEDLIST> -<LISTITEM> -<PARA>Intel SA1110 board with RedBoot, CygMon, or eCos GDB stubs -programmed into the FLASH</PARA> -</LISTITEM> -</ITEMIZEDLIST> -<PARA>If serial debugging is to be used:</PARA> -<ITEMIZEDLIST> -<LISTITEM> -<PARA>One 16550-based serial port on the PC</PARA> -</LISTITEM> -</ITEMIZEDLIST> -<PARA>If network debugging is to be used:</PARA> -<ITEMIZEDLIST> -<LISTITEM> -<PARA>A Compact Flash ethernet card for the platform for use -with network debugging under RedBoot</PARA> -</LISTITEM> -<LISTITEM> -<PARA>A suitable network interface card on the development PC -and connecting cables</PARA> -</LISTITEM> -</ITEMIZEDLIST> -<PARA>If you will be using the Compaq iPAQ PocketPC, you will need:</PARA> -<ITEMIZEDLIST> -<LISTITEM> -<PARA>Compaq iPAQ with RedBoot programmed into the FLASH</PARA> -</LISTITEM> -</ITEMIZEDLIST> -<PARA>If serial debugging is to be used:</PARA> -<ITEMIZEDLIST> -<LISTITEM> -<PARA>One 16550-based serial port on the PC</PARA> -</LISTITEM> -<LISTITEM> -<PARA>Cradle or cable to connect to the host PC</PARA> -</LISTITEM> -</ITEMIZEDLIST> -<PARA>If network debugging is to be used:</PARA> -<ITEMIZEDLIST> -<LISTITEM> -<PARA>A Compact Flash ethernet card for the platform for use -with network debugging under RedBoot</PARA> -</LISTITEM> -<LISTITEM> -<PARA>Cradle and connectors for the CF ethernet card.</PARA> -</LISTITEM> -<LISTITEM> -<PARA>A suitable network interface card on the development PC -and connecting cables</PARA> -</LISTITEM> -</ITEMIZEDLIST> -<PARA>If you will be using the <!-- <index></index> -->Intel XScale IQ80310 -Evaluation Kit, you will also need: </PARA> -<ITEMIZEDLIST> -<LISTITEM> -<PARA>Intel IQ80310 board with RedBoot installed in the FLASH. </PARA> -</LISTITEM> -</ITEMIZEDLIST> -<PARA>If serial debugging is to be used:</PARA> -<ITEMIZEDLIST> -<LISTITEM> -<PARA>One (16550 based) serial port on the PC</PARA> -</LISTITEM> -<LISTITEM> -<PARA>Null modem cable to connect the serial port on the PC -to the serial I/O connector on the evaluation board. A -gender changer may also be required.</PARA> -</LISTITEM> -</ITEMIZEDLIST> -<PARA>If network debugging is to be used:</PARA> -<ITEMIZEDLIST> -<LISTITEM> -<PARA>Suitable network interface card on the development PC -and connecting cables</PARA> -</LISTITEM> -</ITEMIZEDLIST> -<PARA>If you will be using the <!-- <index></index> -->NEC VRC4373 evaluation -board, you will also need: </PARA> -<ITEMIZEDLIST> -<LISTITEM> -<PARA>One (16550 based) serial port on the PC</PARA> -</LISTITEM> -<LISTITEM> -<PARA>NEC4373 evaluation board with eCos<PRODUCTNAME> “</PRODUCTNAME>GDB -stubs” ROM installed. </PARA> -</LISTITEM> -<LISTITEM> -<PARA>Straight-thru cable to connect the serial port on the -PC to the serial I/O connector J1 on the evaluation board</PARA> -</LISTITEM> -</ITEMIZEDLIST> -<PARA>If you will be using the <!-- <index></index> -->Momentum Computer -Inc. PMC-Sierra RM7000A based Ocelot board, you will also need: - </PARA> -<ITEMIZEDLIST> -<LISTITEM> -<PARA>One (16550 based) serial port on the PC</PARA> -</LISTITEM> -<LISTITEM> -<PARA>Ocelot board with RedBoot image installed in FLASH ROM. </PARA> -</LISTITEM> -<LISTITEM> -<PARA>Null modem cable to connect the serial port on the PC -to the serial I/O connector on the evaluation board. A -gender changer may also be required.</PARA> -</LISTITEM> -</ITEMIZEDLIST> -<PARA>If you will be using the <!-- <index></index> -->Hitachi EDK7708 board, -you will also need: </PARA> -<ITEMIZEDLIST> -<LISTITEM> -<PARA>One (16550 based) serial port on the PC</PARA> -</LISTITEM> -<LISTITEM> -<PARA>Hitachi EDK7708 board with a SH3/7708 CPU and -eCos<PRODUCTNAME> “</PRODUCTNAME>GDB stubs” installed in -FLASH. </PARA> -</LISTITEM> -<LISTITEM> -<PARA>Serial cable (provided with the board) to connect the -serial port on the board.</PARA> -</LISTITEM> -</ITEMIZEDLIST> -<PARA>If you will be using the SH3 CQ7708 board, you will also - need:</PARA> -<ITEMIZEDLIST> -<LISTITEM> -<PARA>One 16550-based serial port on the PC.</PARA> -</LISTITEM> -<LISTITEM> -<PARA>CQ CQ7708 board with a SH3/7708 CPU and eCos -GDB stubs installed.</PARA> -</LISTITEM> -</ITEMIZEDLIST> -<PARA>If you will be using the SH3 HS7729 board, you will also - need:</PARA> -<ITEMIZEDLIST> -<LISTITEM> -<PARA>One 16550-based serial port on the PC.</PARA> -</LISTITEM> -<LISTITEM> -<PARA>Hitachi HS7729PCI board with a SH3/7729 CPU and -RedBoot installed.</PARA> -</LISTITEM> -</ITEMIZEDLIST> -<PARA>If you will be using the SH3 SE77x9 board, you will also - need:</PARA> -<ITEMIZEDLIST> -<LISTITEM> -<PARA>One 16550-based serial port on the PC.</PARA> -</LISTITEM> -<LISTITEM> -<PARA>Hiatchi Solution Engine 7709/7729 board with -a SH3/7709 or SH3/7729 CPU and RedBoot installed.</PARA> -</LISTITEM> -</ITEMIZEDLIST> -<PARA>If you will be using the SH4 SE7751 board, you will also - need:</PARA> -<ITEMIZEDLIST> -<LISTITEM> -<PARA>One 16550-based serial port on the PC.</PARA> -</LISTITEM> -<LISTITEM> -<PARA>Hitachi Solution Engine 7751 board with a SH4/7751 -CPU and RedBoot installed.</PARA> -</LISTITEM> -</ITEMIZEDLIST> -<PARA>If you will be using the SH4 CQ7750 board, you will also - need:</PARA> -<ITEMIZEDLIST> -<LISTITEM> -<PARA>One 16550-based serial port on the PC.</PARA> -</LISTITEM> -<LISTITEM> -<PARA>CQ CQ7750 board with a SH4/7750 CPU and eCos -GDB stubs installed.</PARA> -</LISTITEM> -</ITEMIZEDLIST> -<PARA>If you will be using the <!-- <index></index> -->NEC V850 Cosmo Evaluation -Board, you will also need:</PARA> -<ITEMIZEDLIST> -<LISTITEM> -<PARA>NEC CEB-V850/SA1 or NEC CEB-V850/SB1 -board with eCos GDB stubs installed in the EPROM.</PARA> -</LISTITEM> -<LISTITEM> -<PARA>Serial cable to connect the serial port on the PC to the -DB-9 connector on the CEB-V850</PARA> -</LISTITEM> -</ITEMIZEDLIST> -<PARA>If using the NEC V850 I.C.E. kit for development, you will -also need:</PARA> -<ITEMIZEDLIST> -<LISTITEM> -<PARA>a PC running Microsoft Windows, to run the Windows-only -NEC software</PARA> -</LISTITEM> -<LISTITEM> -<PARA>The -<filename>v850ice.exe</filename> -”libremote” application to provide an interface -between the NEC software and the GDB debugger.</PARA> -</LISTITEM> -</ITEMIZEDLIST> -<PARA>If you will be using an x86 board, you will also need:</PARA> -<ITEMIZEDLIST> -<LISTITEM> -<PARA>A standard PC motherboard with an i386 or better processor -and a 3.5” floppy disk drive. Optionally, a color text-mode-only -display card with monitor or keyboard may also be provided. Any -standard PC will provide all the hardware required to run eCos. </PARA> -</LISTITEM> -</ITEMIZEDLIST> -<PARA>If serial debugging is to be used:</PARA> -<ITEMIZEDLIST> -<LISTITEM> -<PARA>A null modem cable to connect the COM1 port on the target -motherboard to a serial port on the host system.</PARA> -</LISTITEM> -</ITEMIZEDLIST> -<PARA>If network debugging is to be used:</PARA> -<ITEMIZEDLIST> -<LISTITEM> -<PARA>Suitable network interface card on the development PC -and connecting cables</PARA> -</LISTITEM> -<LISTITEM> -<PARA>An Intel i82559 based PCI ethernet card (for example an -Intel EtherExpress Pro 10/100) may be installed for use -by the eCos network stack or for network debugging.</PARA> -</LISTITEM> -</ITEMIZEDLIST> -<PARA><!-- <conditionaltext> -->If you will be using the <!-- <index></index> -->Linux -synthetic target, you will also need: </PARA> -<ITEMIZEDLIST> -<LISTITEM> -<PARA>An x86 PC with an installed Linux distribution (tested -with Red Hat Linux distributions 5.0 - 7.0). </PARA> -</LISTITEM> -</ITEMIZEDLIST> -</SECT1> - -<!-- ==================================================== --> - -<SECT1 id="system-requirements-recommended"> -<TITLE>Recommended</TITLE> -<ITEMIZEDLIST> -<LISTITEM> -<PARA>A Pentium II computer and 64MB or more of RAM are recommended -for best build performance.</PARA> -</LISTITEM> -</ITEMIZEDLIST> -<PARA>The system has been tested only in the recommended configuration -above, although other configurations are expected to work.</PARA> -</SECT1> -</CHAPTER> -<CHAPTER ID="REPORTING-PROBLEMS"> -<TITLE>Reporting Problems</TITLE> -<PARA>Reporting bugs and other problems is very important: it allows -Red Hat to solve your problem quickly, and improves the eCos product. -The effort you make in reporting problems is appreciated.</PARA> -<PARA>To submit a <!-- <index></index> -->problem report, please use the -web interface. If you have a CD distribution of the eCos Developer's -Kit, you should use the address: <ulink - url="http://support.cygnus.com/">http://support.cygnus.com/</ulink></para> -<PARA>You will need a login name and an ID, provided by your administrator.</PARA> -<PARA>If you are using the eCos Net release you should use the address -<ULINK URL="http://sources.redhat.com/ecos/problemreport.html">http://sources.redhat.com/ecos/problemreport.html</ULINK></PARA> - -<!-- ==================================================== --> - -<SECT1 id="known-bugs"> -<TITLE>Known Bugs in eCos and GNUPro</TITLE> -<PARA>Before filing bug reports, however, please read the README -provided with this release. It describes known problems and possible -workarounds in eCos or with the GNUPro Toolkit. The file is at the -base of the distribution.</PARA> -</SECT1> - -<!-- ==================================================== --> - -<SECT1 id="report-problems"> -<TITLE>How to Report Problems</TITLE> -<PARA><!-- <xref> -->For documentation discussing methods of reporting on, -editing and querying, see the following Accessing Red Hat Web Support -to Report Problems, or Additional Options in this chapter.</PARA> -<PARA>This documentation serves only as a guide and it is not meant -to supercede the Help documentation on the Web Support site.<!-- <xref> --> We -have tried to make our software as trouble-free as possible. If -you do encounter problems, we'd like to diagnose and fix -the problem as quickly as possible. </PARA> -<SECT2> -<TITLE><!-- <xref> --><!-- <xref> --><!-- <xref> --><!-- <xref> -->Accessing Red Hat Web Support to -Report Problems</TITLE> -<PARA><!-- <xref> -->If you have a CD distribution, use the following instructions -to access the Red Hat Support website.</PARA> -<ITEMIZEDLIST> -<LISTITEM> -<PARA><!-- <xref> --><!-- <xref> -->Use the following URL in your web browser's -address or location dialog box.<!-- <xref> --> -<ulink url="http://support.cygnus.com/">http://support.cygnus.com/</ulink></para> -</LISTITEM> -<LISTITEM> -<PARA><!-- <xref> -->Click on the Case Management System icon, enter -your ID and password, and the Welcome page will be displayed<!-- <conditionaltext> -->.<XREF LINKEND="FIGURE-WELCOME-PAGE"></PARA> -</LISTITEM> -</ITEMIZEDLIST> -<FIGURE ID="FIGURE-WELCOME-PAGE"> -<TITLE>Welcome page for the Red Hat web support site</TITLE> -<GRAPHIC ENTITYREF="figure-welcome-page-entity"></GRAPHIC> -</FIGURE> -<PARA><!-- <conditionaltext> --><!-- <xref> -->Access the Welcome page at any time -by using the <GUIBUTTON>Welcome</GUIBUTTON> link (in the -navigation bar on the left side of each Web Support page).</PARA> -<PARA>If you have the CD distribution, your details will have been -entered in the database, and will be displayed on the Welcome page. -If you wish to alter these details, select the Profile link in the -navigation bar on the left side of the page.</PARA> -<ITEMIZEDLIST> -<LISTITEM> -<PARA><!-- <xref> -->Use the links included in the navigation bar on -the left side of the page to perform any of the following Red Hat -Web Support activities.</PARA> -</LISTITEM> -<LISTITEM> -<PARA><GUIBUTTON><!-- <xref> -->New Case</GUIBUTTON> -(see <XREF LINKEND="SUBMITTING-A-SUPPORT-REQUEST">, <!-- <conditionaltext> --><XREF LINKEND="FIGURE-WELCOME-PAGE">, and the Red Hat Support website) </PARA> -</LISTITEM> -<LISTITEM> -<PARA><GUIBUTTON><!-- <xref> --> Query Case</GUIBUTTON> -(see Additional options, <!-- <conditionaltext> -->and the Red Hat Support -website) </PARA> -</LISTITEM> -<LISTITEM> -<PARA><!-- <xref> --> -<GUIBUTTON>Add Notes</GUIBUTTON> -(see Additional options, <!-- <conditionaltext> -->and the Red Hat Support -website) </PARA> -</LISTITEM> -<LISTITEM> -<PARA><GUIBUTTON><!-- <xref> --> Find Solutions</GUIBUTTON> -(see Additional options, <!-- <conditionaltext> -->and the Red Hat Support -website) </PARA> -</LISTITEM> -<LISTITEM> -<PARA><!-- <xref> --> -<GUIBUTTON>Profile</GUIBUTTON> -(see Additional options, <!-- <conditionaltext> -->and the Red Hat Support -website) </PARA> -</LISTITEM> -<LISTITEM> -<PARA><GUIBUTTON><!-- <xref> --> Help</GUIBUTTON> -documentation see Additional options, <!-- <conditionaltext> -->and the -Red Hat Support website) </PARA> -</LISTITEM> -<LISTITEM> -<PARA><GUIBUTTON><!-- <xref> --> Close Case</GUIBUTTON> -(see Additional options, <!-- <conditionaltext> -->and the Red Hat Support -website)</PARA> -</LISTITEM> -</ITEMIZEDLIST> -</SECT2> -<SECT2 ID="SUBMITTING-A-SUPPORT-REQUEST"> -<TITLE><!-- <xref> --><!-- <xref> -->Submitting a Support Request</TITLE> -<PARA><!-- <xref> -->Use the following instructions to submit a support request, -once you have a valid ID established.</PARA> -<ITEMIZEDLIST> -<LISTITEM> -<PARA><!-- <xref> -->Click on -<GUIBUTTON>New Case</GUIBUTTON> -to create a new reported problem case<!-- <conditionaltext> -->.</PARA> -</LISTITEM> -</ITEMIZEDLIST> -<PARA>The New Case page allows you to complete the creation of a -new case. If there is more than one site, select the site relating -to your problem.</PARA> -<ITEMIZEDLIST> -<LISTITEM> -<PARA><!-- <xref> -->Click on - <GUIBUTTON>Use This Site ID</GUIBUTTON> -button to display a list of the relevant products.</PARA> -</LISTITEM> -<LISTITEM> -<PARA><!-- <xref> -->Select a product from the list and then click on -the -<GUIBUTTON>Create Case for Selected Product</GUIBUTTON> -button.</PARA><!-- <conditionaltext> --><!-- <xref> --> -<FIGURE ID="FIGURE-NEW-CASE-WEB-PAGE"> -<TITLE>New case web page</TITLE> -<GRAPHIC ENTITYREF="figure-new-case-web-page-entity"> </GRAPHIC> -</FIGURE> -<PARA>(Each customer has a valid list of parts of Red - Hat products for which they can submit problem - reports. These components are part of the Web Support - database.)</PARA> -</LISTITEM> -<LISTITEM> -<PARA><!-- <xref> -->Type a brief description of the case in the -<GUIBUTTON>Case Title</GUIBUTTON> -field. <!-- <xref> -->You can enter up to 80 characters in this field.</PARA> -</LISTITEM> -<LISTITEM> -<PARA><!-- <xref> -->Select a case type from the -<GUIBUTTON>Type</GUIBUTTON> -drop-down menu that best describes the case.</PARA> -</LISTITEM> -<LISTITEM> -<PARA><!-- <xref> -->Select a customer severity level from the -<GUIBUTTON>Severity</GUIBUTTON> -drop-down menu that best describes how severe you view this problem.</PARA> -</LISTITEM> -<LISTITEM> -<PARA><!-- <xref> -->Select a case priority level from the -<GUIBUTTON>Priority</GUIBUTTON> -drop-down menu that best describes the priority of this case to -Red Hat.</PARA> -</LISTITEM> -<LISTITEM> -<PARA><!-- <xref> -->Type a complete description of your case in the -<GUIBUTTON>Problem Description</GUIBUTTON> -field.</PARA> -</LISTITEM> -<LISTITEM> -<PARA><!-- <xref> -->Use the scrollbars to scroll text in this field. -You can add up to 30 kilobytes of text in this field.</PARA> -</LISTITEM> -<LISTITEM> -<PARA><!-- <xref> -->Click on the -<GUIBUTTON>Create Case</GUIBUTTON> -button at the bottom of the page to create the case in the Red -Hat Web Support database. Alternatively, clear the input fields -on the New Case page, using the -<GUIBUTTON>Clear</GUIBUTTON> -button.</PARA> -</LISTITEM> -</ITEMIZEDLIST> -<PARA><!-- <xref> -->After you create your case, the Case Details page displays, -which includes the Case ID number that the support database assigns -to your case.</PARA> -<PARA><!-- <xref> -->To create a new case for a different site and/or -part, click the <GUIBUTTON>New Case</GUIBUTTON> link in -the navigation bar; then use the previous instructions.</PARA> -</SECT2> -<SECT2> -<TITLE><!-- <xref> --><!-- <xref> -->Additional Options</TITLE> -<PARA><!-- <xref> -->The following documentation discusses the other features -for the Red Hat Web Support site. <!-- <xref> -->Red Hat has a database to -help in determining when problems developed, tracking the problems -case from their first report through analysis and resolution. The -database can also be used for correlation with other products as well -as to other related problems.</PARA> -<ITEMIZEDLIST> -<LISTITEM> -<PARA><!-- <xref> --> Click on -<GUIBUTTON>Query Case</GUIBUTTON> -to find an existing problem case in our database. </PARA> -</LISTITEM> -</ITEMIZEDLIST> -<PARA><!-- <xref> -->You may examine problem cases in the Red Hat Web Support -database, searching by solution ID or by entering keywords and/or -a key phrase. There are options on this page enabling you to control -how your search works.</PARA> -<PARA><!-- <xref> -->At this point, view a problem case's details, -check its status, add notes or close a problem.</PARA> -<ITEMIZEDLIST> -<LISTITEM> -<PARA><!-- <xref> --> Click on -<GUIBUTTON>Add Notes</GUIBUTTON> -to add additional data to an existing case in our database. </PARA> -</LISTITEM> -<LISTITEM> -<PARA><!-- <xref> --> Click on -<GUIBUTTON>Find Solutions</GUIBUTTON> -to search for problem solutions in the database. <!-- <xref> -->The search -will provide a list of the current problem cases in the Red Hat -Web Support database.</PARA> -</LISTITEM> -<LISTITEM> -<PARA><!-- <xref> --> <!-- <xref> -->Click on -<GUIBUTTON>Profile</GUIBUTTON> -to change your profile information and/or your Web Support -password in our database. A Profile page will be displayed.</PARA> -</LISTITEM> -<LISTITEM> -<PARA><!-- <xref> --> <!-- <xref> -->Click on -<GUIBUTTON>Help</GUIBUTTON> -for questions about using the Web Support page. The online help -documentation for the Web Support site supercedes this guide; it -is not meant to supercede the more updated Help documentation for -the Web Support site. </PARA> -</LISTITEM> -<LISTITEM> -<PARA><!-- <xref> --> <!-- <xref> -->Click on -<GUIBUTTON>Close Case</GUIBUTTON> -link to close a case. <!-- <xref> -->Closing a case brings the problem to -its resolution.</PARA> -</LISTITEM> -</ITEMIZEDLIST> -<SECT3> -<TITLE>Updating your profile</TITLE><!-- <conditionaltext> --> -<FIGURE ID="FIGURE-CASE-PROFILE"> -<TITLE>Clicking on Profile allows you to Changing your profile -for updating the Red Hat Web support database</TITLE> -<GRAPHIC ENTITYREF="figure-case-profile-entity"></GRAPHIC> -</FIGURE> -<PARA>Clicking on Profile allows you to <!-- <conditionaltext> --><EMPHASIS><!-- <xref> --><!-- <xref> --></EMPHASIS>enter -the following details (in <XREF LINKEND="FIGURE-WELCOME-PAGE">, - ficticious details were created for the example - problem's reported case).<!-- <conditionaltext> --></PARA> -<ITEMIZEDLIST> -<LISTITEM> -<PARA><!-- <xref> --> Your contact name </PARA> -</LISTITEM> -<LISTITEM> -<PARA><!-- <xref> --> The primary phone number where Red Hat Support -can contact you </PARA> -</LISTITEM> -<LISTITEM> -<PARA><!-- <xref> --> FAX number Red Hat Support can use to send you -information </PARA> -</LISTITEM> -<LISTITEM> -<PARA><!-- <xref> --> Your e-mail address </PARA> -</LISTITEM> -<LISTITEM> -<PARA><!-- <xref> --> Your site ID, used to identify your primary site -in the Web Support database -(a Red Hat representative will provide this information) </PARA> -</LISTITEM> -<LISTITEM> -<PARA><!-- <xref> --> Your site name - </PARA> -</LISTITEM> -</ITEMIZEDLIST> -</SECT3> -</SECT2> -</SECT1> -</CHAPTER> -</PART> -<PART ID="INSTALLATION-GUIDE"> -<TITLE><!-- <xref> -->Installation Guide</TITLE> -<CHAPTER ID="SOFTWARE-INSTALLATION"> -<TITLE><!-- <xref> -->Software Installation</TITLE> - -<!-- ==================================================== --> - -<SECT1 id="software-installation-windows"> -<TITLE>Software <!-- <index></index> --> -Installation on Windows</TITLE> -<PARA><!-- <conditionaltext> --> - If you have a CD distribution of the eCos -Developer's Kit, you have received the eCos software and -its supporting utilities on a single CD-ROM for installation on -a PC-compatible computer running Windows NT 4.0, Windows 95, Windows -98 or Windows 2000. If you use NT you must apply the NT 4.0 Service -Pack 3 or above before installing eCos. Support is only for Windows -NT 4.0. Installations on other Windows platforms are beta.</PARA> -<PARA>The following components are provided on the eCos CD-ROM: </PARA> -<ITEMIZEDLIST> -<LISTITEM> -<PARA>eCos source code</PARA> -</LISTITEM> -<LISTITEM> -<PARA>Prebuilt eCos libraries and tests</PARA> -</LISTITEM> -<LISTITEM> -<PARA>eCos documentation</PARA> -</LISTITEM> -<LISTITEM> -<PARA>Red Hat <!-- <index></index> --> -GNUPro compiler toolchain for eCos source code compilation</PARA> -</LISTITEM> -<LISTITEM> -<PARA>Red Hat <!-- <index></index> --> -Cygwin environment: this product provides a POSIX compatibility -layer on top of Windows NT, and supports the GNUPro tools on Windows -NT.</PARA> -</LISTITEM> -<LISTITEM> -<PARA>The <!-- <index></index> --> -GNU user tools—a collection of utilities that developers, -particularly those with a UNIX background, will find useful. However, -they are not supported by Red Hat.</PARA> -</LISTITEM> -<LISTITEM> -<PARA><!-- <conditionaltext> -->Documentation for the GNUPro tools, including -a Reference Manual for the particular evaluation board being used -to run eCos.</PARA> -</LISTITEM> -</ITEMIZEDLIST> -<PARA>If you have obtained the <!-- <index></index> -->Net release of eCos -for Windows, you will have the distribution in a self-extracting archive. -Apart from the difference in medium, the installation procedure -for eCos itself will be the same as for the CD-ROM-based distribution. </PARA> -<PARA>The software installation process involves a number of installation -utilities. Some familiarity with Windows is assumed.</PARA> -<ORDEREDLIST> -<LISTITEM> -<PARA> Invoke the file Setup.exe on the CD-ROM. This will -start the installation procedure. If you have the -<OPTION>autorun</OPTION> -feature enabled, Windows will run Setup.exe automatically when -the CD-ROM is inserted into the drive.</PARA> -</LISTITEM> -<LISTITEM> -<PARA>The setup program will offer to install - the GNU user tools. Click <EMPHASIS>OK</EMPHASIS>. - </PARA> -</LISTITEM> -<LISTITEM> -<PARA>You will be prompted for a file path in which to install -the GNU user tools. The default will be in the -<FILENAME>/cygnus/gnupro/i686-cygwin32/i686-cygwin32</FILENAME> -hierarchy (usually on drive C). It will then offer to install the -source code and documentation for the GNU user tools. It is recommended -that you install the documentation, but not the source code, unless -you are interested in modifying or recompiling the GNU user tools. </PARA> -</LISTITEM> -<LISTITEM> -<PARA>At this point the setup program will begin installing -eCos. Click -<EMPHASIS>OK</EMPHASIS>.</PARA> -</LISTITEM> -<LISTITEM> -<PARA>The default path offered for eCos installation will be -in the -<FILENAME>/Program Files/Red Hat</FILENAME> -hierarchy (usually on drive C). You may change this path, and indeed -you will need to change it if that partition does not have sufficient -free disk space available. It is recommended that you accept the -default selection of software components for installation.</PARA> -</LISTITEM> -<LISTITEM> -<PARA>You will be asked to select the program folder under which -the eCos menu items will be placed. The default folder name is -<FILENAME>Red Hat eCos</FILENAME>. </PARA> -</LISTITEM> -<LISTITEM> -<PARA>The installation should finish normally, offering to show -you the -<FILENAME>README</FILENAME> -file that contains any last minute information and a list of known -problems detected after this document was printed. Once the installation -is finished, you can start eCos or view the online documentation -by selecting -<EMPHASIS>Start</EMPHASIS> --> -<EMPHASIS>Programs</EMPHASIS> --> -<EMPHASIS> Red Hat eCos</EMPHASIS> -, and then choosing an option within this folder, e.g -<EMPHASIS>Configuration Tool</EMPHASIS> -, -<EMPHASIS>Package Administration Tool</EMPHASIS> -, etc. </PARA> -</LISTITEM> -</ORDEREDLIST> -<PARA><!-- <xref> -->At this point you are ready to configure and build a -customized eCos kernel as described in <XREF LINKEND="CONFIGURING-AND-BUILDING-ECOS-FROM-SOURCE">. </PARA> -<NOTE> -<PARA>The order of directories in the PATH is very important, and -build failures may result if the PATH is not set correctly. If you -are having difficulties in building eCos, please make sure you have -set the PATH exactly as above.</PARA> -</NOTE> -</SECT1> - -<!-- ==================================================== --> - -<SECT1 ID="SOFTWARE-INSTALLATION-ON-UNIX"> -<TITLE><!-- <xref> -->Software <!-- <index></index> --> -Installation on UNIX</TITLE> -<PARA>Installation and build instructions for the eCos Net release -are available on the Red Hat eCos web site - <ULINK URL="http://sources.redhat.com/ecos/">http://sources.redhat.com/ecos/</ULINK></PARA> -<SECT2> -<TITLE><!-- <index></index> -->Installing the eCos Developer's Kit under Linux</TITLE> -<PARA>Users of the eCos Developer's Kit under Red Hat Linux -should use the following instructions, for most of which you will -normally need to be the root user. </PARA> -<ORDEREDLIST> -<LISTITEM> -<PARA> The CD-ROM must be “mounted” before -installation can proceed. Execute the command: - </PARA> -<SCREEN># mount /dev/cdrom/ /mnt/cdrom</SCREEN> -<PARA>Install the eCos repository from the RPM file ecos15x.rpm -(where x or xx are final digits of the current version number), -located in the root directory of the CD-ROM using the following -command: - </PARA> -<SCREEN># rpm -i /mnt/cdrom/ecos15x.rpm - </SCREEN> -<PARA>Note that root privileges are required to perform this installation. -On completion, the eCos repository may be found in the directory /opt/ecos/ecos-1.5.x.</PARA> -</LISTITEM> -<LISTITEM> -<PARA>Extract the eCos development tools from the compressed -tar archive tool-bin.tgz, located in the root directory of the CD-ROM, -using the following commands:</PARA> -<SCREEN># mkdir /usr/cygnus -# cd /usr/cygnus -# gunzip -c < /mnt/cdrom/tool-bin.tgz | tar xvf -</SCREEN> -</LISTITEM> -<LISTITEM> -<PARA>On completion, the eCos development tools may be found -in the directory -<FILENAME>/usr/cygnus/ecos-DEVTOOLSVERSION</FILENAME>. The source code for the development tools may optionally be installed -in the same way: - </PARA> -<PROGRAMLISTING># gunzip -c < /mnt/cdrom/tool-src.tgz | tar xvf -</PROGRAMLISTING> -</LISTITEM> -<LISTITEM> -<PARA>Add the eCos host tools and development tools to the front -of your path. Under Linux, you should modify the PATH environment -variable as follows. -Using sh, ksh, or bash: - </PARA> -<PROGRAMLISTING>$ PATH=/opt/ecos/ecos-1.5.x/tools/bin:/usr/cygnus/DEVTOOLSVERSION/H-i686-pc-linux-gnu/bin:$PATH -$ export PATH</PROGRAMLISTING> -<PARA>Using csh or tcsh: Note that csh also requires the shell command “rehash” after modifying -the path for the path change to take effect.</PARA> -<PROGRAMLISTING>$ setenv PATH /opt/ecos/ecos-1.5.x/tools/bin:/usr/cygnus/DEVTOOLSVERSION/H-i686-pc-linux-gnu/bin:$PATH</PROGRAMLISTING> -<PARA>Set the ECOS_REPOSITORY environment variable as follows. -Using sh, ksh or bash: - </PARA> -<PROGRAMLISTING>$ ECOS_REPOSITORY=/opt/ecos/ecos-1.5.x/packages -$ export ECOS_REPOSITORY</PROGRAMLISTING> -<PARA>Using csh or tcsh:</PARA> -<PROGRAMLISTING>$ setenv ECOS_REPOSITORY /opt/ecos/ecos-1.5.x/packages</PROGRAMLISTING> -</LISTITEM> -</ORDEREDLIST> -<PARA>At this point you are ready to configure and build a customized -eCos kernel as shown in <XREF LINKEND="CONFIGURING-AND-BUILDING-ECOS-FROM-SOURCE">. </PARA> -<NOTE> -<PARA>The order of directories in the PATH is very important, and -build failures may result if the PATH is not set correctly. If you -are having difficulties in building eCos, please make sure you have -set the PATH exactly as above.</PARA> -</NOTE> -</SECT2> -<SECT2> -<TITLE><!-- <index></index> -->Installing the eCos Developer's Kit under Solaris</TITLE> -<PARA>Users of the eCos Developer's Kit under Solaris should -use the following instructions, which assume that the CD-ROM is -available at <FILENAME>/cdrom/cdrom0</FILENAME>.</PARA> -<ORDEREDLIST> -<LISTITEM> -<PARA> Extract the eCos repository from the compressed tar -archive ecos15x.taz (where x or xx are the final digits of -the version number), located in the root directory of the CD-ROM -using the following commands: - </PARA> -<PROGRAMLISTING># mkdir /usr/local -# cd /usr/local -# zcat < /cdrom/cdrom0/ecos15x.taz | tar xvf -</PROGRAMLISTING> -<PARA>On completion, the eCos repository may be found in the directory -<FILENAME>/usr/local/ecos-1.5.x</FILENAME>.</PARA> -</LISTITEM> -<LISTITEM> -<PARA>Extract the eCos development tools from the compressed -tar archive <FILENAME>tool-bin.taz</FILENAME>, located in the root - directory of the CD-ROM, using the following commands: - </PARA> -<PROGRAMLISTING># mkdir /usr/cygnus -# cd /usr/cygnus -# zcat < /cdrom/cdrom0/tool-bin.taz | tar xvf -</PROGRAMLISTING> -<PARA>On completion, the executable files of the eCos development tools -may be found in the directory </PARA> -<PROGRAMLISTING>/usr/cygnus/ecos-DEVTOOLSVERSION/H-host-triplet/bin</PROGRAMLISTING> -<PARA>The source code for the development tools may optionally be installed -in the same way: - </PARA> -<PROGRAMLISTING># zcat < /cdrom/cdrom0/tool-src.taz | tar xvf -</PROGRAMLISTING> -</LISTITEM> -<LISTITEM> -<PARA>Add the eCos host tools, development tools and any native -tools supporting the eCos build process to the front of your path. -Under Solaris you should modify the PATH environment variable as -follows. - -Using sh, ksh, or bash: - </PARA> -<PROGRAMLISTING>$ PATH=/usr/local/ecos-1.5.x/tools/bin:/usr/xpg4/bin/usr/ucb:$PATH -$ export PATH</PROGRAMLISTING> -<PARA>Using csh or tcsh: - -Note that csh also requires the shell command "rehash" after modifying -the path for the path change to take effect. - </PARA> -<PROGRAMLISTING>% setenv PATH /usr/local/ecos-1.5.x/tools/bin:/usr/xpg4/bin:/usr/ucb:$PATH</PROGRAMLISTING> -</LISTITEM> -<LISTITEM> -<PARA>Set the ECOS_REPOSITORY environment varable as -follows:</PARA> -<PARA>Using sh, ksh or bash: - </PARA> -<PROGRAMLISTING>$ ECOS_REPOSITORY=/usr/local/ecos-1.5.x/packages -$ export ECOS_REPOSITORY</PROGRAMLISTING> -<PARA>Using csh or tcsh:</PARA> -<PROGRAMLISTING>% setenv ECOS_REPOSITORY /usr/local/ecos-1.5.x/packages</PROGRAMLISTING> -</LISTITEM> -</ORDEREDLIST> -<PARA>At this point you are ready to configure and build a customized -eCos kernel as shown in <XREF LINKEND="CONFIGURING-AND-BUILDING-ECOS-FROM-SOURCE">. </PARA> - -<NOTE> -<PARA>The order of directories in the PATH is very important, and -build failures may result if the PATH is not set correctly. If you -are having difficulties in building eCos, please make sure you have -set the PATH exactly as above.</PARA> -</NOTE> -</SECT2> -</SECT1> -</CHAPTER> -<CHAPTER ID="TARGET-SETUP"> -<TITLE><!-- <index></index> --><!-- <xref> --><!-- <index></index> -->Target Setup</TITLE> - -<!-- ==================================================== --> - -<SECT1 id="connecting-target-serial"> -<TITLE><!-- <index></index> -->Connecting To A Target Via Serial</TITLE> -<PARA>While eCos supports a variety of targets, communication with -all the targets happens in one of four ways. These are descibed -in general below.</PARA> -<PARA>The descriptions are followed by descriptions of each target, -providing specific details of how to set up the target (if hardware) -and the necessary communication information (such as baud rate for -hardware targets, or special connection options for simulator targets).</PARA> -<PARA>Most targets will have eCos GDB stubs or RedBoot installed. -These normally wait for GDB to connect at 38400 baud, using 8 data -bit, no parity bit and 1 stop-bit (no hardware flow control). Check -the section for your target to ensure it uses this speed. If not, -adjust the following instructions accordingly.</PARA> -<PARA>The following instructions depend on your having selected -the appropriate serial port on the host. That is, the serial port -which connects to the target's (primary) serial port. On -Linux this could be <FILENAME>/dev/ttyS0</FILENAME>, -while the same port on Windows would be named COM1, or <FILENAME>/dev/ttya</FILENAME> on -Solaris. Substitute the proper serial port name in the below.</PARA> -<PARA>Connect to the target by issuing the following commands in -GDB console mode:</PARA> -<PROGRAMLISTING>(gdb) set remotebaud 38400 <!-- <conditionaltext> --> -(gdb) set mips saved-gpreg-size 32 (for VR4300) -(gdb) target remote /dev/ttyS0</PROGRAMLISTING> -<PARA>In Insight, connect by opening the <EMPHASIS>File->Target -Settings</EMPHASIS> window and enter:</PARA> -<PROGRAMLISTING>Target: Remote/Serial -Baud Rate: 38400 -Port: /dev/ttyS0</PROGRAMLISTING> -<PARA>Set other options according to preference, close the window -and select -<EMPHASIS>Run->Connect to target</EMPHASIS>.</PARA> -</SECT1> - -<!-- ==================================================== --> - -<SECT1 id="connecting-target-ethernet"> -<TITLE><!-- <index></index> -->Connecting To A Target Via Ethernet</TITLE> -<PARA>Some targets allow GDB to connect via Ethernet - if so, it -will be mentioned in the section describing the target. Substitute -the target's assigned IP address or hostname for <hostname> in -the following. The <port> is the TCP port which -the eCos GDB stub or CygWin is listening on. It is also listed in -the section describing the target.</PARA> -<PARA>Connect to the target by issuing the following command in -GDB console mode:</PARA> -<PROGRAMLISTING>(gdb) target remote <hostname>:<port></PROGRAMLISTING> -<PARA>In Insight, connect by opening the <EMPHASIS>File->Target -Settings</EMPHASIS> window and enter:</PARA> -<PROGRAMLISTING>Target: Remote/TCP -Hostname: <hostname> -Port: <port></PROGRAMLISTING> -<PARA>You will also need to open the GDB console window with <EMPHASIS>View->Console</EMPHASIS> and -enter “set mips saved-gpreg-size 32” at the prompt</PARA> -<PARA><!-- <conditionaltext> -->Set other options according to preference, -close the window and select -<EMPHASIS>Run->Connect to target</EMPHASIS>.</PARA> -</SECT1> - -<!-- ==================================================== --> - -<SECT1 id="connecting-target-sim"> -<TITLE><!-- <index></index> -->Connecting To A Simulator Target</TITLE> -<PARA>GDB connects to all simulator targets using the same basic -command, although each simulator may require additional options. -These are listed in the section describing the target, and should -be used when connecting.</PARA> -<PARA>Connect to the target by issuing the following command in -GDB console mode:</PARA> -<PROGRAMLISTING>(gdb) target sim [target specific options]</PROGRAMLISTING> -<PARA>In Insight, connect by opening the <EMPHASIS>File->Target -Settings</EMPHASIS> window and enter:</PARA> -<PROGRAMLISTING>Target: Simulator -Options: [target specific options]</PROGRAMLISTING> -<PARA>Set other options according to preference, close the window -and select -<EMPHASIS>Run->Connect to target</EMPHASIS>.</PARA> -</SECT1> - -<!-- ==================================================== --> - -<SECT1 id="connecting-target-synth"> -<TITLE>Connecting To A Synthetic Target</TITLE> -<PARA>Synthetic targets are special in that the built tests and -applications actually run as native applications on the host. This -means that there is no target to connect to. The test or application -can be run directly from the GDB console using:</PARA> -<PROGRAMLISTING>(gdb) run</PROGRAMLISTING> -<PARA>or from Insight by pressing the <EMPHASIS>Run</EMPHASIS> icon. -There is therefore no need to connect to the target or download -the application, so you should ignore GDB “target” and “load” commands -in any instructions found in other places in the documentation.</PARA> -</SECT1> - -<!-- ==================================================== --> - -<SECT1 id="setup-mn10300-stdeval1"> -<TITLE>MN10300 stdeval1 Hardware Setup</TITLE> -<PARA>The eCos Developer’s Kit package comes with a pair -of EPROMs which provide GDB support for the Matsushita MN10300 (AM31) -series evaluation board using CygMon, the Cygnus ROM monitor. Images -of these EPROMs are also provided at <filename>BASE_DIR/loaders/mn10300-stdeval1/cygmon.bin</filename>. -The LSB EPROM (LROM) is installed to socket IC8 on the board and -the MSB EPROM (UROM) is installed to socket IC9. Attention should -be paid to the correct orientation of these EPROMs during installation.</PARA> -<PARA>The CygMon stubs allows communication with GDB by way of the -serial port at connector CN2. The communication parameters are fixed -at 38400 baud, 8 data bits, no parity bit, and 1 stop bit (8-N-1). -No flow control is employed. Connection to the host computer should -be made using a standard RS232C serial cable (not a null modem cable). -A gender changer may also be required.</PARA> -</SECT1> - -<!-- ==================================================== --> - -<SECT1 id="setup-mn10300-sim"> -<TITLE>MN10300 Architectural Simulator Setup</TITLE> -<PARA>The MN10300 simulator is an architectural simulator for the -Matsushita MN10300 that implements all features of the microprocessor - necessary to run eCos. The current implementation provides accurate -simulation of the instruction set, interrupt controller, timers, -and serial I/O.</PARA> -<PARA>In this release, you can run the same eCos binaries in the -simulator that can run on target hardware, if built for ROM start-up, -with the exception of those that use the watchdog timer.</PARA> -<PARA>However, note that AM33 devices required to run eCos are not -simulated; therefore you cannot run eCos binaries built for the -AM33 under the simulator. For the AM33, the simulator is effectively -an instruction-set only simulator.</PARA> -<PARA>To simplify connection to the simulator, you are advised to -create a GDB macro by putting the following code in your personal -GDB start-up file (gdb.ini on Windows and .gdbinit on UNIX).</PARA> -<PROGRAMLISTING>define msim - target sim --board=stdeval1 --memory-region 0x34004000,0x8 - - rbreak cyg_test_exit - rbreak cyg_assert_fail -end</PROGRAMLISTING> -<PARA>You can then connect to the simulator by invoking the command <PROGRAMLISTING>msim</PROGRAMLISTING> on -the command line:</PARA> -<PROGRAMLISTING>(gdb) msim</PROGRAMLISTING> -<PARA>You can achieve the same effect by typing out the macro’s -content on the command line if necessary.</PARA> -</SECT1> - -<!-- ==================================================== --> - -<SECT1 id="setup-am33-stb"> -<TITLE>AM33 STB Hardware Setup</TITLE> -<PARA>The Matsushita AM33 STB System Reference Board may be used -in two modes: via a JTAG debugger, or by means of a GDB stub ROM.</PARA> -<SECT2> -<TITLE>Use with GDB Stub ROM</TITLE> -<PARA>The eCos Developer’s Kit package comes with a ROM -image which provides GDB support for -the Matsushita(R) AM33 STB System Reference Board. To install the -GDB stub ROM requires the use of the JTAG debugger and the Flash ROM -programming code available from Matsushita. An image of this ROM -is also provided at <filename>loaders/am33-stb/gdbload.bin</filename> under -the root of your eCos installation.</PARA> -<PARA>Ensure that there is a Flash ROM card in MAIN MEMORY SLOT <0>. -Follow the directions for programming a Flash ROM supplied with -the programming software.</PARA> -<PARA>The final programming of the ROM will need to be done with -a command similar to the following:</PARA> -<PROGRAMLISTING>fdown "gdbload.bin",0x80000000,16,1</PROGRAMLISTING> -<PARA>Once the ROM has been programmed, close down the JTAG debugger, -turn the STB off, and disconnect the JTAG cable. Ensure that the -hardware switches are in the following configuration:</PARA> -<PROGRAMLISTING>U U D D D U D D - -D = lower part of rocker switch pushed in -U = upper part of rocker switch pushed in</PROGRAMLISTING> -<PARA>This is also the configuration required by the Flash programming -code, so it should not be necessary to change these.</PARA> -<PARA>Restart the STB and the stub ROM will now be able to communicate -with GDB<PRODUCTNAME>. </PRODUCTNAME>eCos programs should be built -with RAM startup.</PARA> -<PARA>Programs can then be downloaded via a standard RS232 null -modem serial cable connected to the SERIAL1 connector on the STB -front panel (the AM33"s serial port 0). This line is programmed -to run at 38400 baud, 8 data bits, no parity and 1 stop bit (8-N-1) -with no flow control. A gender changer may also be required. Diagnostic -output will be output to GDB using the same connection.</PARA> -<PARA>This procedure also applies for programming ROM startup eCos -programs into ROM, given a binary format image of the program from<PROGRAMLISTING> mn10300-elf-objcopy.</PROGRAMLISTING></PARA> -</SECT2> -<SECT2> -<TITLE>Use with the JTAG debugger</TITLE> -<PARA>To use eCos from the JTAG debugger, executables must be built -with ROM startup and then downloaded via the JTAG debugger. For -this to work there must be an SDRAM memory card in SUB MEMORY SLOT <0> and -the hardware switches on the front panel set to the following: </PARA> -<PROGRAMLISTING>D U D D D U D D - -D = lower part of rocker switch pushed in -U = upper part of rocker switch pushed in</PROGRAMLISTING> -<PARA>Connect the JTAG unit and run the debugger as described in -the documentation that comes with it.</PARA> -<PARA>eCos executables should be renamed to have a “.out” extension -and may then be loaded using the debugger"s “l” or “lp” commands.</PARA> -<PARA>Diagnostic output generated by the program will be sent out -of the AM33"s serial port 0 which is connected to the SERIAL1 -connector on the STB front panel. This line is programmed to run -at 38400 baud, 8 data bits, no parity, and one stop bit (8-N-1) -with no flow control. Connection to the host computer should be -using a standard RS232 null modem serial cable. A gender changer -may also be required.</PARA> -</SECT2> -<SECT2> -<TITLE>Building the GDB stub ROM image</TITLE> -<PARA>eCos comes with a pre-built GDB stub ROM image for the AM33-STB -platform. This can be found at <filename>loaders/am33-stb/gdbload.bin</filename> relative -to the eCos installation directory.</PARA> -<PARA>If necessary, the ROM image can be re-built as follows:</PARA> -<ORDEREDLIST> -<LISTITEM> -<PARA> On Windows hosts, open a Bash session using -<EMPHASIS>Start->Programs->Red Hat eCos->eCos -Development Environment</EMPHASIS></PARA> -</LISTITEM> -<LISTITEM> -<PARA>Create a build directory and cd into it</PARA> -</LISTITEM> -<LISTITEM> -<PARA>Run (all as one line): - -<PROGRAMLISTING>cygtclsh80 BASE_DIR/packages/pkgconf.tcl \ - --target=mn10300_am33 --platform stb --startup rom \ - --disable-kernel --disable-uitron --disable-libc --disable-libm \ - --disable-io --disable-io_serial --disable-wallclock ---disable-watchdog</PROGRAMLISTING> - </PARA> -<PARA>where BASE_DIR is the path to the eCos installation -directory.</PARA> -</LISTITEM> -<LISTITEM> -<PARA>Edit the configuration file -<filename>pkgconf/hal.h</filename> - in the build directory tree by ensuring the following configuration -options are set as follows: - -<PROGRAMLISTING>#define CYGDBG_HAL_DEBUG_GDB_INCLUDE_STUBS -#define CYGDBG_HAL_DEBUG_GDB_BREAK_SUPPORT -#undef CYGDBG_HAL_DEBUG_GDB_CTRLC_SUPPORT -#define CYGDBG_HAL_DEBUG_GDB_THREAD_SUPPORT -#define CYG_HAL_ROM_MONITOR</PROGRAMLISTING> - </PARA> -</LISTITEM> -<LISTITEM> -<PARA>Run: make</PARA> -</LISTITEM> -<LISTITEM> -<PARA>Run: make -C hal/common/current/current/src/stubrom</PARA> -</LISTITEM> -<LISTITEM> -<PARA>The file -<filename>hal/common/current/src/stubrom</filename> - will be an ELF format executable of the ROM image. Use mn10300-elf-objcopy to -convert this to the appropriate format for loading into the Matsushita -FLASH ROM programmer, mode “binary” in this case: - -<PROGRAMLISTING>$ mn10300-elf-objcopy -O binary hal/common/current/src/stubrom/ \ - stubrom stubrom.img</PROGRAMLISTING></PARA> -</LISTITEM> -</ORDEREDLIST> -</SECT2> -</SECT1> - -<!-- ==================================================== --> - -<SECT1 id="setup-tx39-jmr3904"> -<TITLE>TX39 Hardware Setup</TITLE> -<PARA>The eCos Developer’s Kit package comes with a pair -of ROMs that provide GDB support for -the Toshiba JMR-TX3904 RISC processor reference board by way of CygMon. </PARA> -<PARA>Images of these ROMs are also provided at <filename>BASE_DIR/loaders/tx39-jmr3904/cygmon50.bin</filename> and <filename>BASE_DIR/loaders/tx39-jmr3904/cygmon66.bin</filename> for -50 MHz and 66 MHz boards respectively. The ROMs are installed to -sockets IC6 and IC7 on the memory daughterboard according to their -labels. Attention should be paid to the correct orientation of these -ROMs during installation.</PARA> -<PARA>The GDB stub allows communication with GDB using the serial -port (channel C) at connector PJ1. The communication parameters -are fixed at 38400 baud, 8 data bits, no parity bit, and 1 stop -bit (8-N-1). No handshaking is employed. Connection to the host -computer should be made using an RS232C null modem cable.</PARA> -<PARA>CygMon and eCos currently provide support for a 16Mbyte 60ns -72pin DRAM SIMM fitted to the PJ21 connector. Different size DRAMs -may require changes in the value stored in the DCCR0 register. This -value may be found near line 211 in <filename>hal/mips/arch/&Version;/src/vectors.S</filename> -in eCos, and near line 99 in - <filename>libstub/mips/tx39jmr/tx39jmr-power.S</filename> in -Cygmon. eCos does not currently use the DRAM for any purpose itself, -so it is entirely available for application use.</PARA> -</SECT1> - -<!-- ==================================================== --> - -<SECT1 id="setup-tx39-sim"> -<TITLE>TX39 Architectural Simulator Setup</TITLE> -<PARA>The TX39 simulator is an architectural simulator which implements -all the features of the Toshiba TX39 needed to run eCos. The current -implementation provides accurate simulation of the instruction set, - interrupt controller, and timers, as well as having generic support -for diagnostic output, serial I/O, and exceptions.</PARA> -<PARA>In this release, you can run the same eCos binaries in the -simulator that can run on target hardware, if it is built for ROM -start-up.</PARA> -<PARA>To simplify connection to the simulator, you are advised to -create a GDB macro by putting the following code in your personal -GDB start-up file (gdb.ini on Windows and .gdbinit on UNIX).</PARA> -<PROGRAMLISTING>define tsim - target sim --board=jmr3904pal --memory-region 0xffff8000,0x900 \ - --memory-region 0xffffe000,0x4 \ - --memory-region 0xb2100000,0x4 - rbreak cyg_test_exit - rbreak cyg_assert_fail -end</PROGRAMLISTING> -<PARA>You can then connect to the simulator by invoking the command <command>tsim</command> on -the command line:</PARA> -<PROGRAMLISTING>(gdb) tsim</PROGRAMLISTING> -<PARA>You can achieve the same effect by typing out the macro’s -content on the command line if necessary.</PARA> -</SECT1> - -<!-- ==================================================== --> - -<SECT1 id="setup-tx49-ref4955"> -<TITLE>TX49 Hardware Setup</TITLE> -<PARA>The eCos installation CD contains a copy of the eCos GDB stubs -in SREC format which must be programmed into the board’s -FLASH memory.</PARA> -<SECT2> -<TITLE>Preparing the GDB stubs</TITLE> -<PARA>These stub preparation steps are not strictly necessary as -the eCos distribution ships with precompiled stubs in the directory <filename>loaders/tx49-ref4955</filename> relative -to the installation root.</PARA> -<SECT3> -<TITLE>Building the GDB stub image with the eCos Configuration Tool</TITLE> -<ORDEREDLIST> -<LISTITEM> -<PARA> Start with a new document - selecting the -<EMPHASIS>File->New</EMPHASIS> - menu item if necessary to do this.</PARA> -</LISTITEM> -<LISTITEM> -<PARA>Choose the -<EMPHASIS>Build->Templates</EMPHASIS> - menu item, and then select the TX49 REF4955 hardware.</PARA> -</LISTITEM> -<LISTITEM> -<PARA>While still displaying the -<EMPHASIS>Build->Templates</EMPHASIS> - dialog box, select the stubs package template to build a GDB stub. -Click -<EMPHASIS>OK</EMPHASIS>.</PARA> -</LISTITEM> -<LISTITEM> -<PARA>Build eCos stubs using -<EMPHASIS>Build->Library</EMPHASIS>.</PARA> -</LISTITEM> -<LISTITEM> -<PARA>When the build completes, the image files can be found -in the bin/ subdirectory of the install tree. GDB stub -images have the prefix gdb_module.</PARA> -</LISTITEM> -</ORDEREDLIST> -</SECT3> -<SECT3> -<TITLE> Building the GDB stub image with ecosconfig</TITLE> -<ORDEREDLIST> -<LISTITEM> -<PARA> Make an empty directory to contain the build tree, - and cd into it.</PARA> -</LISTITEM> -<LISTITEM> -<PARA>To build a GDB stub ROM image, enter the command:</PARA> -<PROGRAMLISTING>$ ecosconfig new ref4955 stubs </PROGRAMLISTING> -</LISTITEM> -<LISTITEM> -<PARA>Enter the commands:</PARA> -<PROGRAMLISTING>$ ecosconfig tree -$ make</PROGRAMLISTING> -</LISTITEM> -<LISTITEM> -<PARA>When the build completes, the image files can be found -in the bin/ subdirectory of the install tree. GDB stub -images have the prefix gdb_module.</PARA> -</LISTITEM> -</ORDEREDLIST> -</SECT3> -</SECT2> -<SECT2> -<TITLE> Installing GDB stubs into FLASH</TITLE> -<PARA>Boot into the board’s firmware in little-endian mode:</PARA> -<PARA>Set the switches like this: </PARA> -<PARA>SW1: 10000000 (first lever up, the rest down) -SW2: 10000010</PARA> -<PARA>Connect serial cable on the lower connector, configure terminal -emulator for 38400, 8-N-1.</PARA> -<PARA>When booting the board, you should get this prompt:</PARA> -<PROGRAMLISTING>HCP5 rev 0.9B . -HCP5?</PROGRAMLISTING> -<PARA>Select o (option), a (FLASH) and b (boot write). You should -see this:</PARA> -<PROGRAMLISTING>Boot ROM Write -ROM address-ffffffffbd000000, Boot Bus-[32bit] -ID2 0 4 ffffffffa002ad40 -zzz SS-40000 IV-1 CS-20000 CC-2 -Flash ROM-[28F640J5], [16bit chip] * 2 * 1 -Block size-00040000 count-64 -ROM adr ffffffffbd000000-ffffffffbe000000 mask-00fc0000 -Send Srecord file sa=00000000 size=ffffffffffffffff -ra=fffffffffe000000 - </PROGRAMLISTING> -<PARA>Now send the stub SREC data down to the board using the terminal - emulator’s ‘send ASCII’ (or similar) -functionality. </PARA> -<PARA>Red Hat has experienced some sensitivity to how fast the data -is written to the board. Under Windows you should configure Minicom -to use a line delay of 100 millisecs. Under Linux, use the slow_cat.tcl - script:</PARA> -<PROGRAMLISTING>% cd BASE_DIR/packages/hal/mips/ref4955/&Version;/misc -% slow_cat.tcl < [path]/gdb_module.srec > /dev/ttyS0</PROGRAMLISTING> -<PARA>Power off the board, and change it to boot the GDB stubs in -big-endian mode by setting the switches like this:</PARA> -<PARA>SW1: 00000000 (all levers down) -SW2: 10001010</PARA> -<PARA>The GDB stubs allow communication with GDB using the serial -port at connector PJ7A (lower connector). The communication parameters -are fixed at 38400 baud, 8 data bits, no parity bit and 1 stop -bit (8-N-1). No flow control is employed. Connection to the host -computer should be made using a straight through serial cable.</PARA> -</SECT2> -</SECT1> - -<!-- ==================================================== --> - -<SECT1 id="setup-vr4300-vrc4373"> -<TITLE>VR4300 Hardware Setup</TITLE> -<PARA>The eCos Developer’s Kit package comes with an EPROM -which provides GDB support for the NEC -VRC4373 evaluation board. An image of this EPROM is also provided -at <filename>loaders/vr4300-vrc4373/gdbload.bin</filename> under -the root of your eCos installation.</PARA> -<PARA>The EPROM is installed to socket U12 on the board. Attention -should be paid to the correct orientation of the EPROM during installation. -Only replace the board"s existing ROM using a proper PLCC -extraction tool, as the socket would otherwise risk getting damaged. </PARA> -<PARA>The GDB stub in the EPROM allows communication with GDB using -the serial port at connector J1. The communication parameters are -fixed at 38400 baud, 8 data bits, no parity bit and 1 stop bit (8-N-1). -No flow control is employed. Connection to the host computer should -be made using a straight-through serial cable. </PARA> -</SECT1> -<SECT1 id="setup-vr4300-vrc4375"> -<TITLE>VRC4375 Hardware Setup</TITLE> -<PARA>For information about setting up the VRC4375 to run with RedBoot, -consult the RedBoot User"s Guide. If using serial debugging, -the serial line runs at 38400 baud 8-N-1 and should be connected -to the debug host using the cable supplied with the board.</PARA> -</SECT1> -<SECT1 id="setup-mips-atlasmalta"> -<TITLE>Atlas/Malta Hardware Setup</TITLE> -<PARA>For information about setting up the Atlas and Malta boards to -run with RedBoot, consult the RedBoot User"s Guide.</PARA> -</SECT1> -<SECT1 id="setup-ppc-cogent"> -<TITLE>PowerPC Cogent Hardware Setup</TITLE> -<PARA>The eCos Developer’s Kit package comes with an EPROM -which provides GDB support for the Cogent -evaluation board. An image of this EPROM is also provided at - <filename>loaders/powerpc-cogent/gdbload.bin</filename> under -the root of your eCos installation. The same EPROM and image can -be used on all three supported daughterboards: CMA287-23 (MPC823), -CMA287-50 (MPC850), and CMA286-60 (MPC860).</PARA> -<PARA>The EPROM is installed to socket U4 on the board. Attention -should be paid to the correct orientation of the EPROM during installation. </PARA> -<PARA>If you are going to burn a new EPROM using the binary image, -be careful to get the byte order correct. It needs to be big-endian. -If the EPROM burner software has a hex-editor, check that the first -few bytes of the image look like: </PARA> -<PROGRAMLISTING>00000000: 3c60 fff0 6063 2000 7c68 03a6 4e80 0020 <`..`c.|h..N.. </PROGRAMLISTING> -<PARA>If the byte order is wrong you will see 603c instead of 3c60 -etc. Use the EPROM burner software to make a byte-swap before you -burn to image to the EPROM. </PARA> -<PARA>If the GDB stub EPROM you burn does not work, try reversing -the byte-order, even if you think you have it the right way around. -At least one DOS-based EPROM burner program is known to have the -byte-order upside down.</PARA> -<PARA>The GDB stub in the EPROM allows communication with GDB using -the serial port at connector P12 (CMA101) or P3 (CMA102). The communication parameters -are fixed at 38400 baud, 8 data bits, no parity bit and 1 stop bit -(8-N-1). No flow control is employed. Connection to the host computer -should be made using a dedicated serial cable as specified in the -Cogent CMA manual.</PARA> -<SECT2> -<TITLE>Installing the Stubs into ROM</TITLE> -<SECT3> -<TITLE>Preparing the Binaries</TITLE> -<PARA>These two binary preparation steps are not strictly necessary -as the eCos distribution ships with precompiled binaries in the -directory <filename>loaders/powerpc-cogent</filename> relative to the installation -root.</PARA> -<SECT4> -<TITLE>Building the ROM images with the eCos Configuration Tool</TITLE> -<ORDEREDLIST> -<LISTITEM> -<PARA>Start with a new document - selecting the -<EMPHASIS>File->New</EMPHASIS> - menu item if necessary to do this.</PARA> -</LISTITEM> -<LISTITEM> -<PARA>Choose the -<EMPHASIS>Build->Templates</EMPHASIS> - menu item, and then select the PowerPC CMA28x hardware.</PARA> -</LISTITEM> -<LISTITEM> -<PARA>While still displaying the -<EMPHASIS>Build->Templates</EMPHASIS> - dialog box, select the “stubs” package template -to build a GDB stub. Click -<EMPHASIS>OK</EMPHASIS>.</PARA> -</LISTITEM> -<LISTITEM> -<PARA>Build eCos using -<EMPHASIS>Build->Library</EMPHASIS>.</PARA> -</LISTITEM> -<LISTITEM> -<PARA>When the build completes, the image files can be found -in the bin/ subdirectory of the install tree. GDB stub -ROM images have the prefix “gdb_module”.</PARA> -</LISTITEM> -</ORDEREDLIST> -</SECT4> -<SECT4> -<TITLE>Building the ROM images with ecosconfig</TITLE> -<ORDEREDLIST> -<LISTITEM> -<PARA>Make an empty directory to contain the build tree, -and cd into it.</PARA> -</LISTITEM> -<LISTITEM> -<PARA>To build a GDB stub ROM image, enter the command: - -<PROGRAMLISTING>$ ecosconfig new cma28x stubs </PROGRAMLISTING></PARA> -</LISTITEM> -<LISTITEM> -<PARA>Enter the commands: - -<PROGRAMLISTING>$ ecosconfig tree -$ make</PROGRAMLISTING> - </PARA> -</LISTITEM> -<LISTITEM> -<PARA>When the build completes, the image files can be found -in the bin/ subdirectory of the install tree. GDB stub -ROM images have the prefix “gdb_module”.</PARA> -</LISTITEM> -</ORDEREDLIST> -</SECT4> -</SECT3> -<SECT3> -<TITLE> Installing the Stubs into ROM or FLASH</TITLE> -<ORDEREDLIST> -<LISTITEM> -<PARA>Program the binary image file gdb_module.bin -into ROM or FLASH referring to the instructions of your ROM programmer.</PARA> -</LISTITEM> -<LISTITEM> -<PARA> Plug the ROM/FLASH into socket U4 as described -at the beginning of this <EMPHASIS>Hardware Setup</EMPHASIS> section.</PARA> -</LISTITEM> -</ORDEREDLIST> -</SECT3> -</SECT2> -</SECT1> -<SECT1 id="setup-ppc-mbx860"> -<TITLE>PowerPC MBX860 Hardware Setup</TITLE> -<PARA>The eCos Developer’s Kit package comes with an EPROM -which provides GDB support for the Motorola -PowerPC MBX860 evaluation board. An image of this EPROM is also -provided at <filename>loaders/powerpc-mbx/gdbload.bin</filename> under -the root of your eCos installation.</PARA> -<PARA>The EPROM is installed to socket XU1 on the board. Attention -should be paid to the correct orientation of the EPROM during installation. -Only replace the board"s existing ROM using a proper PLCC -extraction tool, as the socket would otherwise risk getting damaged.</PARA> -<PARA>The GDB stub in the EPROM allows communication with GDB using -the serial port at connector SMC1/COM1. The communication -parameters are fixed at 38400 baud, 8 data bits, no parity bit and -1 stop bit (8-N-1). No flow control is employed. Connection to the -host computer should be made using a suitable serial cable.</PARA> -<PARA>In order to make the board execute the EPROM that you just -installed (rather than the on-board FLASH memory), it may be necessary -move some links on the board. Specifically, ensure that link J4 -is in position 1-2. If in doubt, refer to the MBX documentation -from Motorola, ensuring that Boot Port Size=8 Bits/ROM -for BOOT (CS#7), in their terminology.</PARA> -<SECT2> -<TITLE>Installing the Stubs into FLASH</TITLE> -<SECT3> -<TITLE>Preparing the Binaries</TITLE> -<PARA>These two binary preparation steps are not strictly necessary -as the eCos distribution ships with precompiled binaries in the -directory <filename>loaders/powerpc-mbx</filename> relative to the installation -root.</PARA> -<SECT4> -<TITLE>Building the ROM images with the eCos Configuration Tool</TITLE> -<ORDEREDLIST> -<LISTITEM> -<PARA>Start with a new document - selecting the -<EMPHASIS>File->New</EMPHASIS> - menu item if necessary to do this.</PARA> -</LISTITEM> -<LISTITEM> -<PARA>Choose the -<EMPHASIS>Build->Templates</EMPHASIS> - menu item, and then select the PowerPC Motorola MBX860/821 -hardware.</PARA> -</LISTITEM> -<LISTITEM> -<PARA>While still displaying the -<EMPHASIS>Build->Templates</EMPHASIS> - dialog box, select the “stubs” package template -to build a GDB stub. Click -<EMPHASIS>OK</EMPHASIS>.</PARA> -</LISTITEM> -<LISTITEM> -<PARA>Build eCos using -<EMPHASIS>Build->Library</EMPHASIS>. </PARA> -</LISTITEM> -<LISTITEM> -<PARA>When the build completes, the image files can be found -in the bin/ subdirectory of the install tree. GDB stub -ROM images have the prefix “gdb_module”.</PARA> -</LISTITEM> -</ORDEREDLIST> -</SECT4> -<SECT4> -<TITLE>Building the ROM images with ecosconfig</TITLE> -<ORDEREDLIST> -<LISTITEM> -<PARA>Make an empty directory to contain the build tree, -and cd into it.</PARA> -</LISTITEM> -<LISTITEM> -<PARA>To build a GDB stub ROM image, enter the command: - -<PROGRAMLISTING>$ ecosconfig new mbx stubs </PROGRAMLISTING></PARA> -</LISTITEM> -<LISTITEM> -<PARA>Enter the commands: - -<PROGRAMLISTING>$ ecosconfig tree -$ make </PROGRAMLISTING></PARA> -</LISTITEM> -<LISTITEM> -<PARA>When the build completes, the image files can be found -in the bin/ subdirectory of the install tree. GDB stub -ROM images have the prefix “gdb_module”.</PARA> -</LISTITEM> -</ORDEREDLIST> -</SECT4> -</SECT3> -<SECT3> -<TITLE> Installing the Stubs into ROM</TITLE> -<ORDEREDLIST> -<LISTITEM> -<PARA> Program the binary image file gdb_module.bin -into ROM or FLASH referring to the instructions of your ROM programmer.</PARA> -</LISTITEM> -<LISTITEM> -<PARA> Plug the ROM/FLASH into socket XU1 as described -near the beginning of this <EMPHASIS>Hardware Setup</EMPHASIS> section.</PARA> -</LISTITEM> -</ORDEREDLIST> -</SECT3> -<SECT3> -<TITLE>Installing the Stubs into FLASH</TITLE> -<PARA>This assumes you have EPPC-Bug in the on-board FLASH. This -can be determined by setting up the board according to the below -instructions and powering up the board. The EPPC-Bug prompt should -appear on the SMC1 connector at 9600 baud, 8N1.</PARA> -<ORDEREDLIST> -<LISTITEM> -<PARA>Set jumper 3 to 2-3 [allow XU2 FLASH to -be programmed]</PARA> -</LISTITEM> -<LISTITEM> -<PARA>Set jumper 4 to 2-3 [boot EPPC-Bug]</PARA> -</LISTITEM> -</ORDEREDLIST> -<SECT4> -<TITLE> Program FLASH</TITLE> -<ORDEREDLIST> -<LISTITEM> -<PARA> Prepare EPPC-Bug for download:</PARA> -<PROGRAMLISTING>EPPC-Bug>lo 0</PROGRAMLISTING> -<PARA>At this point the monitor is ready for input. It will not return -the prompt until the file has been downloaded.</PARA> -</LISTITEM> -<LISTITEM> -<PARA>Use the terminal emulator’s ASCII download feature -(or a simple clipboard copy/paste operation) to download -the gdb_module.srec data. - -Note that on Linux, Minicom’s ASCII download feature seems -to be broken. A workaround is to load the file into emacs (or another -editor) and copy the full contents to the clipboard. Then press -the mouse paste-button (usually the middle one) over the Minicom -window.</PARA> -</LISTITEM> -<LISTITEM> -<PARA>Program the FLASH with the downloaded data: - -<PROGRAMLISTING>EPPC-Bug>pflash 40000 60000 fc000000</PROGRAMLISTING></PARA> -</LISTITEM> -<LISTITEM> -<PARA>Switch off the power, and change jumper 4 to 1-2. Turn -on the power again. The board should now boot using the newly programmed -stubs.</PARA> -</LISTITEM> -</ORDEREDLIST> -</SECT4> -</SECT3> -</SECT2> -</SECT1> -<SECT1 id="setup-ppc-sim"> -<TITLE>PowerPC Architectural Simulator Setup</TITLE> -<PARA>The PowerPC simulator is an architectural simulator which -implements all the features of the PowerPC needed to run eCos. The -current implementation provides accurate simulation of the instruction -set and timers, as well as having generic support for diagnostic -output and exceptions.</PARA> -<PARA>The simulator also allows devices to be simulated, but no -device simulation support has been defined for the serial device -drivers in this release.</PARA> -<PARA>To simplify connection to the simulator, you are advised to -create a GDB macro by putting the following code in your personal -GDB start-up file (gdb.ini on Windows and .gdbinit on UNIX).</PARA> -<PROGRAMLISTING>define psim - target sim -o ’/iobus/pal@0xf0001000/reg 0xf0001000 32’ - rbreak cyg_test_exit - rbreak cyg_assert_fail -end</PROGRAMLISTING> -<PARA>You can then connect to the simulator by invoking the command <command>psim</command> on -the command line:</PARA> -<PROGRAMLISTING>(gdb) psim</PROGRAMLISTING> -<PARA>You can achieve the same effect by typing out the macro’s -content on the command line if necessary.</PARA> -<NOTE> -<PARA>The PowerPC simulator cannot execute binaries built for any -of the supported hardware targets. You must generate a configuration -using the PowerPC simulator platform: -<PROGRAMLISTING>$ ecosconfig new psim</PROGRAMLISTING> - or some such.</PARA> -</NOTE> -</SECT1> -<SECT1 id="setup-sparclite-sleb"> -<TITLE>SPARClite Hardware Setup</TITLE> -<PARA>The eCos Developer’s Kit package comes with a ROM -which provides GDB support for the Fujitsu SPARClite Evaluation -Board by way of CygMon<PRODUCTNAME>. </PRODUCTNAME></PARA> -<PARA>An image of this ROM is also provided at - <filename>BASE_DIR/loaders/sparclite-sleb/cygmon.bin.</filename> The -ROM is installed in socket IC9 on the evaluation board. Attention -should be paid to the correct orientation of the ROM during installation.</PARA> -<PARA>The GDB stub allows communication with GDB using a TCP channel -via the ethernet port at connector J5.</PARA> -<SECT2> -<TITLE><!-- <index></index> --><!-- <xref> -->Ethernet Setup</TITLE> -<PARA>The ethernet setup is described in the board’s manual, -but here is a recapitulation.</PARA> -<PARA>Set the board’s ethernet address using SW1 on the -motherboard:</PARA> -<PROGRAMLISTING> SW1-4 SW1-3 SW1-2 SW1-1 Ethernet Address - ----- ----- ----- ----- ---------------- - OFF OFF OFF OFF No ethernet, use serial - OFF OFF OFF ON 00:00:0E:31:00:01 - OFF OFF ON OFF 00:00:0E:31:00:02 - OFF OFF ON ON 00:00:0E:31:00:03 - OFF ON OFF OFF 00:00:0E:31:00:04 - OFF ON OFF ON 00:00:0E:31:00:05 - OFF ON ON OFF 00:00:0E:31:00:06 - OFF ON ON ON 00:00:0E:31:00:07 - ON OFF OFF OFF 00:00:0E:31:00:08 - ON OFF OFF ON 00:00:0E:31:00:09 - ON OFF ON OFF 00:00:0E:31:00:0A - ON OFF ON ON 00:00:0E:31:00:0B - ON ON OFF OFF 00:00:0E:31:00:0C - ON ON OFF ON 00:00:0E:31:00:0D - ON ON ON OFF 00:00:0E:31:00:0E - ON ON ON ON 00:00:0E:31:00:0F</PROGRAMLISTING> -<SECT3><!-- <index></index> --> -<TITLE>BOOTP/DHCP service on Linux</TITLE> -<PARA>Configure the BOOTP or DHCP server on the network to recognize -the evaluation board’s ethernet address so it can assign -the board an IP address. Below is a sample DHCP server configuration -from a Linux system (<filename>/etc/dhcpd.conf</filename>). -It shows a setup for three evaluation boards.</PARA> -<PROGRAMLISTING># -# DHCP server configuration. -# -allow bootp; - -subnet 192.168.1.0 netmask 255.255.255.0 { - host mb831evb { - hardware ethernet 00:00:0e:31:00:01; - fixed-address mb831evb; - } - host mb832evb { - hardware ethernet 00:00:0e:31:00:02; - fixed-address mb832evb; - } - host mb833evb { - hardware ethernet 00:00:0e:31:00:03; - fixed-address mb833evb; - } -} </PROGRAMLISTING> -</SECT3> -<SECT3><!-- <index></index> --> -<TITLE>BOOTP/DHCP boot process</TITLE> -<PARA>Even when configured to use a TCP channel, CygMon will still -print a boot message to the serial channel. If the BOOTP process -was successful and an IP address was found, a message “BOOTP -found xxx.xxx.xxx.xxx” will be printed where xxx.xxx.xxx.xxx -is the IP address assigned by the BOOTP or DHCP server. If the BOOTP -process fails, a message indicating failure will be printed and -the serial port will be used as the debug channel.</PARA> -<PARA>Once the board finds an IP address it will respond to ICMP -echo request packets (ping). This gives a simple means to test the -health of the board.</PARA> -<PARA>As described in “Ethernet Setup” on page 72, -it should now be possible to connect to the SPARCLite board from -within GDB by using the command:</PARA> -<PROGRAMLISTING>(gdb) target remote <host>:1000</PROGRAMLISTING> -</SECT3> -</SECT2> -<SECT2> -<TITLE>Serial Setup</TITLE> -<PARA>The CygMon stubs also allow communication with GDB by way -of the serial port at connector CON1. The communication parameters -are fixed at 19200 baud, 8 data bits, no parity bit and 1 stop bit -(8-N-1). No flow control is employed. Connection to the host computer -should be made using a null modem cable. A gender changer may also -be required.</PARA> -</SECT2> -</SECT1> -<SECT1 id="setup-sparclite-sim"> -<TITLE>SPARClite Architectural Simulator Setup</TITLE> -<PARA>The ESA SPARClite simulator is an architectural simulator -which implements all the features of the SPARClite needed to run -eCos. The current implementation provides accurate simulation of -the instruction set, interrupt controller, and timers, as well as -having generic support for diagnostic output and exceptions.</PARA> -<PARA>Note that the ESA SPARClite simulator is unsupported, but -is included in the release as a convenience.</PARA> -<PARA>To simplify connection to the simulator, you are advised to -create a GDB macro by putting the following code in your personal -GDB start-up file (gdb.ini on Windows and .gdbinit on UNIX).</PARA> -<PROGRAMLISTING>define ssim - target sim -nfp -sparclite -dumbio - rbreak cyg_test_exit - rbreak cyg_assert_fail -end</PROGRAMLISTING> -<PARA>You can then connect to the simulator by invoking the command <command>ssim</command> on -the command line:</PARA> -<PROGRAMLISTING>(gdb) ssim</PROGRAMLISTING> -<PARA>You can achieve the same effect by typing out the macro’s -content on the command line if necessary.</PARA> -</SECT1> -<SECT1 ID="setup-arm-pid"> -<TITLE><!-- <index></index> --><!-- <xref> -->ARM PID Hardware Setup</TITLE> -<PARA>eCos comes with two ROM images that provide GDB support for -the ARM PID board. The first ROM image provides a port of the CygMon -ROM monitor, which includes a command-line interface and a GDB remote -stub. The second ROM image provides a remote GDB stub only, which -is a minimal environment for downloading and debugging eCos programs -solely using GDB.</PARA> -<PARA>eCos, CygMon and the GDB stubs all support the PID fitted -with both ARM7T and ARM9 daughterboards. CygMon and the stubs can -be programmed into either the programmable ROM (U12) or the FLASH -(U13). Prebuilt forms of both ROM images are provided in the directory -loaders/arm-pid under the root of your eCos installation, -along with a tool that will program the stubs into the FLASH memory on -the board. CygMon images are prefixed with the name 'cygmon' and -GDB stub ROM images are given the prefix 'gdb_module'. -Images may be provided in a number of formats including ELF (.img -extension), binary (.bin extension) and SREC (.srec extension). -Note that some unreliability has been experienced in downloading -files using Angel 1.00. Angel 1.02 appears to be more robust in -this application.</PARA> -<SECT2> -<TITLE>Installing the Stubs into FLASH</TITLE> -<SECT3> -<TITLE>Preparing the Binaries</TITLE> -<PARA>These two binary preparation steps are not strictly necessary -as the eCos distribution ships with precompiled binaries in the -directory loaders/arm-pid relative to the installation -root.</PARA> -</SECT3> -<SECT3> -<TITLE>Building the ROM images with the eCos Configuration Tool</TITLE> -<ORDEREDLIST> -<LISTITEM> -<PARA>Start with a new document - selecting the -<EMPHASIS>File</EMPHASIS>-><EMPHASIS>New</EMPHASIS> - menu item if necessary to do this.</PARA> -</LISTITEM> -<LISTITEM> -<PARA>Choose the -<EMPHASIS>Build</EMPHASIS> --> -<EMPHASIS>Templates</EMPHASIS> - menu item, and then select the ARM PID hardware.</PARA> -</LISTITEM> -<LISTITEM> -<PARA>While still displaying the -<EMPHASIS>Build</EMPHASIS> --> -<EMPHASIS>Templates</EMPHASIS> - dialog box, select either the "stubs" package template to build -a GDB stub image, or the "cygmon" template to build the CygMon ROM -Monitor. Click -<EMPHASIS>OK</EMPHASIS>.</PARA> -</LISTITEM> -<LISTITEM> -<PARA>Build eCos using -<EMPHASIS>Build</EMPHASIS> --> -<EMPHASIS>Library</EMPHASIS></PARA> -</LISTITEM> -<LISTITEM> -<PARA>When the build completes, the image files can be found -in the bin/ subdirectory of the install tree. GDB stub -ROM images have the prefix "gdb_module". CygMon images -have the prefix "cygmon".</PARA> -</LISTITEM> -</ORDEREDLIST> -</SECT3> -<SECT3> -<TITLE>Building the ROM images with ecosconfig</TITLE> -<PARA>(See <XREF LINKEND="USING-ECOSCONFIG-ON-UNIX">)</PARA> -<ORDEREDLIST> -<LISTITEM> -<PARA> Make an empty directory to contain the build tree, -and cd into it.</PARA> -</LISTITEM> -<LISTITEM> -<PARA>To build a GDB stub ROM image, enter the command:</PARA> -<PROGRAMLISTING>$ ecosconfig new pid stubs</PROGRAMLISTING> -<PARA>or to build a CygMon ROM monitor image, enter the command:</PARA> -<PROGRAMLISTING>$ ecosconfig new pid cygmon</PROGRAMLISTING> -</LISTITEM> -<LISTITEM> -<PARA>Enter the commands:</PARA> -<PROGRAMLISTING>$ ecosconfig tree -$ make</PROGRAMLISTING> -</LISTITEM> -<LISTITEM> -<PARA>When the build completes, the image files can be found -in the bin/ subdirectory of the install tree. GDB stub -ROM images have the prefix "gdb_module". CygMon images -have the prefix "cygmon".</PARA> -</LISTITEM> -</ORDEREDLIST> -</SECT3> -<SECT3> -<TITLE>Building the FLASH Tool with the eCos Configuration Tool</TITLE> -<ORDEREDLIST> -<LISTITEM> -<PARA>Start with a new document - selecting the -<EMPHASIS>File</EMPHASIS>-><EMPHASIS>New</EMPHASIS> - menu item if necessary to do this.</PARA> -</LISTITEM> -<LISTITEM> -<PARA>Choose the -<EMPHASIS>Build</EMPHASIS>-><EMPHASIS>Templates</EMPHASIS> - menu item, and then select the ARM PID hardware.</PARA> -</LISTITEM> -<LISTITEM> -<PARA>Enable the "Build flash programming tool" option in the -ARM PID HAL (CYGBLD_BUILD_FLASH_TOOL) -and resolve any resulting configuration conflicts.</PARA> -</LISTITEM> -<LISTITEM> -<PARA>Build eCos using -<EMPHASIS>Build</EMPHASIS> --> -<EMPHASIS>Library</EMPHASIS></PARA> -</LISTITEM> -<LISTITEM> -<PARA>When the build completes, the FLASH tool image file can -be found in the bin/ subdirectory of the install tree, -with the prefix "prog_flash"</PARA> -</LISTITEM> -</ORDEREDLIST> -</SECT3> -<SECT3> -<TITLE>Building the FLASH Tool with ecosconfig</TITLE> -<PARA>(See <XREF LINKEND="USING-ECOSCONFIG-ON-UNIX">)</PARA> -<ORDEREDLIST> -<LISTITEM> -<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_TOOL -by uncommenting its user_value property and setting it -to 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 can -be 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, the -jumpers on the board must be set to allow Angel to run:</PARA> -<ORDEREDLIST> -<LISTITEM> -<PARA> Set jumper 7-8 on LK6 [using the Angel code -in 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 is -also 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 connector -1 on the development system. This is the cable through which the -binaries will be downloaded. Attach a serial cable from Serial B -on the PID board to connector 2 on the development system (or any -system that will work as a terminal). Through this cable, the FLASH -tool 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. For -example. for the GDB stubs image: - -<PROGRAMLISTING>bash$ arm-elf-gdb -nw gdb_module.img -GNU gdb 4.18-DEVTOOLSVERSION -Copyright 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 copies -of 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=com1 -Angel 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:43 -Connected to ARM RDI target. -(gdb) load -Loading section .rom_vectors, size 0x44 lma 0x60000 -Loading section .text, size 0x1f3c lma 0x60044 -Loading section .rodata, size 0x2c lma 0x61f80 -Loading section .data, size 0x124 lma 0x61fac -Start address 0x60044 , load size 8400 -Transfer 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 files -have 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 located -at 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-DEVTOOLSVERSION -Copyright 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 -copies of 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". -(gdb) target rdi s=com1 -Angel 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:43 -Connected to ARM RDI target. -(gdb) load -Loading section .rom_vectors, size 0x44 lma 0x40000 -Loading section .text, size 0x44a4 lma 0x40044 -Loading section .rodata, size 0x318 lma 0x444e8 -Loading section .data, size 0x1c8 lma 0x44800 -Start address 0x40044 , load size 18888 -Transfer rate: 5596 bits/sec. -(gdb) c</PROGRAMLISTING> -</LISTITEM> -<LISTITEM> -<PARA>The FLASH tool will output some text on the board serial -port B at 38400 baud:</PARA> -<PROGRAMLISTING>ARM -eCos - -FLASH here! -manuf: 8, device: 40 -Error: Wrong Manufaturer: 08 -... Please change FLASH jumper</PROGRAMLISTING> -</LISTITEM> -<LISTITEM> -<PARA>This text is repeated until you remove the jumper 7-8 -on LK6. Then the output will be:</PARA> -<PROGRAMLISTING>manuf: 1F, device: A4 -AT29C040A recognised -About 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 pressing -reset. 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 host -computer, you may still verify the FLASH programming completed successfully -by quitting/killing the GDB process after running "c" in -step 2 above. Then switch the serial cable on the PID from Serial -A to Serial B and run a terminal emulator on the host computer. -In a few seconds you should see the the repeated text described -in 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 instructions -which 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> stub -ROM image (or CygMon ROM monitor image), you must enable the option "Use -Big-endian mode" in the <EMPHASIS>eCos Configuration Tool</EMPHASIS> (CYGHWR_HAL_ARM_BIGENDIAN -if 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. After -powering off, replace the ROM controller with the special big-endian -version which can be acquired from ARM. (This has not been tested -by Red Hat).</PARA> -</LISTITEM> -<LISTITEM> -<PARA>Use a specied big-endian version of the FLASH tool which -byte-swaps all the words as they are written to the FLASH.</PARA> -</LISTITEM> -</ORDEREDLIST> -<PARA>Build this tool by enabling the "Build flash programming tool -for 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-word -data can be read from the ROM. To work around this, the .rodata -section is folded into the .data section and thus copied to RAM -before the system starts.</PARA> -<PARA>Given that Thumb instructions are 16 bit, it is not possible -to run ROM-startup Thumb binaries on the PID board using this method.</PARA> -<PARA>When the image has been programmed, power off the board, and -set 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.bin -into ROM referring to the instructions of your ROM programmer.</PARA> -</LISTITEM> -<LISTITEM> -<PARA>Plug the ROM into socket U12 and install jumper LK6 pins -7-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 simple -FLASH management tool and the Angel® 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 GDB, -and while Angel provides a subset of the features in the eCos GDB -stub, Angel is unsupported.</PARA> -<PARA>Both eCos and the stubs support both Revision B and Revision -C of the AEB-1 board. Stub ROM images for both types of board can -be found in the loaders/arm-aeb directory under the root -of your eCos installation. You can select which board you are using -by selecting either the aeb or aebC platform by selecting the appropriate -platform HAL in the <EMPHASIS>eCos Configuration Tool</EMPHASIS>.</PARA> -<PARA>The GDB stub can be downloaded to the board for programming -in the FLASH using the board's on-board ROM monitor:</PARA> -<ORDEREDLIST> -<LISTITEM> -<PARA>talk to the AEB-1 board with a terminal emulator (or -a real terminal!)</PARA> -</LISTITEM> -<LISTITEM> -<PARA>use the board's rom menu to download a UU-encoded -version 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 hook -GDB 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 the -ARM AEB-1. On a PC with a 9-pin serial port, you can use the cable -shipped 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 the -top. 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 the -provided ".UU" file.</PARA> -<NOTE> -<PARA>This is an annotated 'terminal' session -with the AEB-1 monitor:</PARA> -</NOTE> -<PROGRAMLISTING>+Boot: help -Module is BootStrap 1.00 (14 Aug 1998)</PROGRAMLISTING> -<PROGRAMLISTING>Help is available on:</PROGRAMLISTING> -<PROGRAMLISTING>Help Modules ROMModules UnPlug PlugIn -Kill SetEnv UnSetEnv PrintEnv DownLoad -Go GoS Boot PC FlashWrite -FlashLoad FlashErase</PROGRAMLISTING> -<PROGRAMLISTING>Boot: download c000 -Ready to download. Use 'transmit' option on terminal -emulator 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 address -0000c000, 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 added -in 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 default -monitor: </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 selecting -the stubs as default monitor is an idempotent operation. You can -download a new set of stubs following the same procedure - you do -not have to unregister or delete anything.</PARA> -</NOTE> -</SECT2> -<SECT2> -<TITLE>Building the GDB Stub FLASH ROM Images</TITLE> -<PARA>Prebuilt GDB stubs images are provided in the directory loaders/arm-aeb -relative to the root of your eCos installation, but here are instructions -on how to rebuild them if you should ever need to.</PARA> -</SECT2> -<SECT2> -<TITLE>Building the GDB Stubs with the eCos Configuration Tool</TITLE> -<ORDEREDLIST> -<LISTITEM> -<PARA>Start with a new document - selecting the -<EMPHASIS>File</EMPHASIS> --> -<EMPHASIS>New</EMPHASIS> - menu item if necessary to do this.</PARA> -</LISTITEM> -<LISTITEM> -<PARA>Choose the -<EMPHASIS>Build</EMPHASIS> --> -<EMPHASIS>Templates</EMPHASIS> - menu item, and then select the ARM AEB-1 hardware.</PARA> -</LISTITEM> -<LISTITEM> -<PARA>While still displaying the -<EMPHASIS>Build->Templates</EMPHASIS> - dialog box, select the "stubs" package template to build a GDB -stub image. Click -<EMPHASIS>OK</EMPHASIS>.</PARA> -</LISTITEM> -<LISTITEM> -<PARA>If applicable, set the "AEB board revision" option to -"C" from "B" depending on the board revision being used.</PARA> -</LISTITEM> -<LISTITEM> -<PARA>Build eCos using -<EMPHASIS>Build</EMPHASIS> --> -<EMPHASIS>Library.</EMPHASIS></PARA> -</LISTITEM> -<LISTITEM> -<PARA>When the build completes, the image files can be found -in the bin/ subdirectory of the install tree. The GDB stub -ROM images have the prefix "gdb_module".</PARA> -</LISTITEM> -</ORDEREDLIST> -</SECT2> -<SECT2> -<TITLE>Building the GDB Stub ROMs with ecosconfig</TITLE> -<PARA>(See <XREF LINKEND="USING-ECOSCONFIG-ON-UNIX">)</PARA> -<ORDEREDLIST> -<LISTITEM> -<PARA>Make an empty directory to contain the build tree, -and cd into it.</PARA> -</LISTITEM> -<LISTITEM> -<PARA>To build a GDB stub ROM image, enter the command:</PARA> -<PROGRAMLISTING>$ ecosconfig new aeb stubs</PROGRAMLISTING> -</LISTITEM> -<LISTITEM> -<PARA>If applicable, edit ecos.ecc and set the AEB board revision. (CYGHWR_HAL_ARM_AEB_REVISION) -from the default "B" to "C" by uncommenting the user_value -property and setting it to "C".</PARA> -</LISTITEM> -<LISTITEM> -<PARA>Enter the commands - -<PROGRAMLISTING>$ ecosconfig tree -$ make</PROGRAMLISTING></PARA> -</LISTITEM> -<LISTITEM> -<PARA>When the build completes, the image files can be found -in the bin/ subdirectory of the install tree. The GDB stub -ROM images have the prefix "gdb_module".</PARA> -</LISTITEM> -</ORDEREDLIST> -</SECT2> -</SECT1> -<SECT1 id="setup-arm-cma230"> -<TITLE><!-- <index></index> -->ARM Cogent CMA230 Hardware Setup</TITLE> -<PARA>The eCos Developer's Kit package comes with an EPROM -which provides GDB support for the Cogent evaluation board. An image -of this EPROM is also provided at loaders/arm-cma230/gdbload.bin -under the root of your eCos installation. </PARA> -<PARA>The EPROM is installed to socket U3 on the board. Attention -should be paid to the correct orientation of the EPROM during installation.</PARA> -<PARA>If you are going to burn a new EPROM using the binary image, -be careful to get the byte order correct. It needs to be little-endian, -which is usually the default in PC based programmer software.</PARA> -<PARA>If the GDB stub EPROM you burn does not work, try reversing -the byte-order, even if you think you have it the right way around. -At least one DOS-based EPROM burner program is known to have the -byte-order upside down.</PARA> -<PARA>The GDB stub in the EPROM allows communication with GDB using -the serial port at connector P12 (CMA101) or P3 (CMA102). The communication parameters -are fixed at 38400 baud, 8 data bits, no parity bit and 1 stop bit -(8-N-1). No flow control is employed. Connection to the host computer -should be made using a dedicated serial cable as specified in the -Cogent CMA manual.</PARA> -<SECT2> -<TITLE>Building the GDB Stub FLASH ROM images</TITLE> -<PARA>Prebuilt GDB stubs images are provided in the directory loaders/arm-cma230 relative -to the root of your eCos installation, but here are instructions -on how to rebuild them if you should ever need to.</PARA> -<PARA>CygMon images are prefixed with the name 'cygmon' and -GDB stub ROM images</PARA> -<PARA>are given the prefix 'gdb_module'. -Images may be provided in a number of formats including ELF (.img -extension), binary (.bin extension) and SREC (.srec extension). </PARA> -</SECT2> -<SECT2> -<TITLE>Building the GDB Stubs with the eCos Configuration Tool</TITLE> -<ORDEREDLIST> -<LISTITEM> -<PARA>1. Start with a new document - selecting the File->New -menu item if necessary to do this.</PARA> -</LISTITEM> -<LISTITEM> -<PARA>Choose the -<EMPHASIS>Build</EMPHASIS>-><EMPHASIS>Templates</EMPHASIS> - menu item, and then select the ARM CMA230 hardware.</PARA> -</LISTITEM> -<LISTITEM> -<PARA>While still displaying the -<EMPHASIS>Build</EMPHASIS> --> -<EMPHASIS>Templates</EMPHASIS> - dialog box, select the "stubs" package template to build a GDB -stub image. Click -<EMPHASIS>OK</EMPHASIS>.</PARA> -</LISTITEM> -<LISTITEM> -<PARA>Build eCos using -<EMPHASIS>Build</EMPHASIS> --> -<EMPHASIS>Library</EMPHASIS></PARA> -</LISTITEM> -<LISTITEM> -<PARA>When the build completes, the image files can be found -in the bin/ subdirectory of the install tree. The GDB stub -ROM images have the prefix "gdb_module".</PARA> -</LISTITEM> -</ORDEREDLIST> -</SECT2> -<SECT2> -<TITLE>Building the GDB Stub ROMs with ecosconfig</TITLE> -<PARA>(See <XREF LINKEND="USING-ECOSCONFIG-ON-UNIX">)</PARA> -<ORDEREDLIST> -<LISTITEM> -<PARA>1. Make an empty directory to contain the build tree, -and cd into it.</PARA> -</LISTITEM> -<LISTITEM> -<PARA>To build a GDB stub ROM image, enter the command:</PARA> -<PROGRAMLISTING>$ ecosconfig new cma230 stubs</PROGRAMLISTING> -</LISTITEM> -<LISTITEM> -<PARA>Enter the commands: - -<PROGRAMLISTING>$ ecosconfig tree -$ make</PROGRAMLISTING></PARA> -</LISTITEM> -<LISTITEM> -<PARA>When the build completes, the image files can be found -in the bin/ subdirectory of the install tree. The GDB stub -ROM images have the prefix "gdb_module".</PARA> -</LISTITEM> -</ORDEREDLIST> -</SECT2> -</SECT1> -<SECT1 id="setup-arm-ep7211"> -<TITLE><!-- <index></index> --><!-- <xref> -->Cirrus Logic ARM EP7211 Development -Board Hardware Setup</TITLE> -<PARA>eCos comes with two Flash ROM images that provide GDB support -for the Cirrus Logic EP7211 Development Board (also known as the -EDB7211).. Note that on some board revisions, the board is silk-screened -as EDB7111-2. The first Flash ROM image provides a port of the CygMon -ROM monitor, which includes a command-line interface and a GDB remote -stub. The second Flash ROM image provides a remote GDB stub only.</PARA> -<PARA>Both ROM images are provided in the directory loaders/arm-edb7211 -under the root of your eCos installation. CygMon images are prefixed -with the name 'edb7211_cygmon' and are -provided in a number of formats including binary (.bin extension) -and SREC (.srec) extension. GDB stub ROM images are given the prefix 'edb7211_gdb_module'. </PARA> -<PARA>The ROM images provided for the EP7211 Development Board must -be programmed into the FLASH. Please refer to the section titled -"Loading the ROM image into On-Board flash" on how to program the -ROM onto the board.</PARA> -<PARA>Both Cygmon and GDB Stub ROMS allow communication with GDB -via the serial connector labelled 'UART 1'. The -communication parameters are fixed at 38400 baud, 8 data bits, no -parity bit and 1 stop bit (8-N-1). No flow control is employed. -Connection to the host computer should be made using a null modem cable. -A gender changer may also be required. Note that the GDB Configuration tool -uses the serial port identifiers 0 and 1 to identify the EB7211 -serial ports UART1 and UART2 respectively.</PARA> -<PARA>Both eCos and the ROM images assume the core clock is generated -with a 3.6864 MHz PLL input. The CPU will be configured to run at -73.728MHz.</PARA> -<PARA>Note: The EP7211 CPU needs a two step RESET process. After -pressing the `URESET' pushbutton, the `WAKEUP' pushbutton -must be pressed to complete the process.</PARA> -<NOTE> -<PARA>When an eCos program is run on an EDB7211 board fitted with -either CygMon or a GDB stub ROM, then the code in ROM loses control. -This means that if you require the ability to remotely stop execution -on the target, or want thread debugging capabilities, you must include -GDB stub support when configuring eCos.</PARA> -</NOTE> -<SECT2> -<TITLE>Building programs for programming into FLASH</TITLE> -<PARA>If your application is to be run directly from FLASH, you -must configure eCos appropriately for "ROM" startup. This can be -done in the <EMPHASIS>eCos Configuration Tool</EMPHASIS> by setting -the "Startup type" HAL option to "ROM". If using the ecosconfig utility, -set the user_value of the CYG_HAL_STARTUP -option in ecos.ecc to "ROM".</PARA> -<PARA>When you have linked your application with eCos, you will -then have an ELF executable. To convert this into a format appropriate -for the Cirrus Logic FLASH download utility, or the dl_7xxx -utility on linux, you can use the utility arm-elf-objcopy, as in -the following example:</PARA> -<PROGRAMLISTING>$ arm-elf-objcopy -O binary helloworld.exe helloworld.bin</PROGRAMLISTING> -<PARA>This will produce a binary format image helloworld.bin which -can be downloaded into FLASH.</PARA> -</SECT2> -<SECT2> -<TITLE>Building the GDB Stub FLASH ROM images</TITLE> -<PARA>Prebuilt GDB stubs images are provided in the directory loaders/arm-edb7211 relative -to the root of your eCos installation, but here are instructions -on how to rebuild them if you should ever need to.</PARA> -<PARA>CygMon images are prefixed with the name 'cygmon' and -GDB stub ROM images are given the prefix 'gdb_module'. -Images may be provided in a number of formats including ELF (.img -extension), binary (.bin extension) and SREC (.srec extension). </PARA> -</SECT2> -<SECT2> -<TITLE>Building the ROM images with the eCos Configuration Tool</TITLE> -<ORDEREDLIST> -<LISTITEM> -<PARA>Start with a new document - selecting the -<EMPHASIS>File</EMPHASIS>-><EMPHASIS>New</EMPHASIS> - menu item if necessary to do this.</PARA> -</LISTITEM> -<LISTITEM> -<PARA>Choose the -<EMPHASIS>Build</EMPHASIS>-><EMPHASIS>Templates</EMPHASIS> - menu item, and then select the "Cirrus Logic development board" -hardware.</PARA> -</LISTITEM> -<LISTITEM> -<PARA>While still displaying the -<EMPHASIS>Build</EMPHASIS> --> -<EMPHASIS>Templates</EMPHASIS> - dialog box, select either the "stubs" package template to build -a GDB stub image, or the "cygmon" template to build the CygMon ROM -Monitor. Click -<EMPHASIS>OK</EMPHASIS>.</PARA> -</LISTITEM> -<LISTITEM> -<PARA>Build eCos using -<EMPHASIS>Build</EMPHASIS> --> -<EMPHASIS>Library</EMPHASIS></PARA> -</LISTITEM> -<LISTITEM> -<PARA>When the build completes, the image files can be found -in the bin/ subdirectory of the install tree. GDB stub -ROM images have the prefix "gdb_module". CygMon images -have the prefix "cygmon".</PARA> -</LISTITEM> -</ORDEREDLIST> -</SECT2> -<SECT2> -<TITLE>Building the ROM images with ecosconfig</TITLE> -<PARA>(See <XREF LINKEND="USING-ECOSCONFIG-ON-UNIX">)</PARA> -<ORDEREDLIST> -<LISTITEM> -<PARA>Make an empty directory to contain the build tree, -and cd into it.</PARA> -</LISTITEM> -<LISTITEM> -<PARA>To build a GDB stub ROM image, enter the command:</PARA> -<PROGRAMLISTING>$ ecosconfig new edb7xxx stubs</PROGRAMLISTING> -<PARA>or to build a CygMon ROM monitor image, enter the command:</PARA> -<PROGRAMLISTING>$ ecosconfig new edb7xxx cygmon</PROGRAMLISTING> -</LISTITEM> -<LISTITEM> -<PARA>Enter the commands:</PARA> -<PROGRAMLISTING>$ ecosconfig tree -$ make</PROGRAMLISTING> -</LISTITEM> -<LISTITEM> -<PARA>When the build completes, the image files can be found -in the bin/ subdirectory of the install tree. GDB stub -ROM images have the prefix "gdb_module". CygMon images -have the prefix "cygmon".</PARA> -</LISTITEM> -</ORDEREDLIST> -</SECT2> -<SECT2> -<TITLE><!-- <xref> -->Loading the ROM Image into On-board Flash</TITLE> -<PARA>Program images can be written into Flash memory by means of -a bootstrap program which is built into the EDB7211. This program -communicates with a support program on your host to download and -program an image into the Flash memory.</PARA> -<PARA>Cirrus Logic provides such a program for use with Windows/DOS. - eCos comes with a similar program which will run under Linux. The -basic operation of both programs is the same.</PARA> -<ORDEREDLIST> -<LISTITEM> -<PARA>Connect a serial line to 'UART 1'.</PARA> -</LISTITEM> -<LISTITEM> -<PARA>Power off the EDB7211.</PARA> -</LISTITEM> -<LISTITEM> -<PARA>Install jumper 'PROGRAM ENABLE' which -enables this special mode for downloading Flash images. Note that -some board revisions have this jumper labelled “BOOT ENABLE”.</PARA> -</LISTITEM> -<LISTITEM> -<PARA>Power on the EDB7211.</PARA> -</LISTITEM> -<LISTITEM> -<PARA>Execute the Flash writing program on your host. On Linux, -this would be:</PARA> -<PROGRAMLISTING> # dl_edb7xxx <PATH>/gdb_module.bin</PROGRAMLISTING> -<PARA>where '<PATH>' is the path to -the binary format version of the ROM image you wish to load, either -as built in the previous section or the "loaders/arm-edb7211/" subdirectory -of your eCos installation. The download tool defaults to 38400 baud and -device /dev/ttyS1 for communication. To change -these, specify them as parameters, e.g. - </PARA> -<PROGRAMLISTING># dl_edb7xxx <PATH>/gdb_module.bin 9600 /dev/ttyS0</PROGRAMLISTING> -</LISTITEM> -<LISTITEM> -<PARA>The download program will indicate that it is waiting -for the board to come alive. At this point, press 'RESET' and -then 'WAKEUP' switches in order. There should be -some indication of progress, first of the code being downloaded, -then of the programming process.</PARA> -</LISTITEM> -<LISTITEM> -<PARA>Upon completion of the programming, power off the EDB7211.</PARA> -</LISTITEM> -<LISTITEM> -<PARA>Remove the 'PROGRAM ENABLE/BOOT ENABLE' jumper.</PARA> -</LISTITEM> -<LISTITEM> -<PARA>Power on the EDB7211, press 'RESET' and 'WAKEUP'. - The new ROM image should now be running on the board.</PARA> -</LISTITEM> -<LISTITEM> -<PARA>The GDB debugger will now be able to communicate with -the board to download and debug RAM based programs. - -This procedure also applies for loading ROM-startup eCos programs -into the on-board FLASH memory, given a binary format image of the -program from arm-elf-objcopy. Loading a ROM-startup eCos program -into Flash will overwrite the GDB Stub ROM/CygMon in Flash, -so you would have to reload the GDB Stub ROM/CygMon to -return to normal RAM-startup program development.</PARA> -</LISTITEM> -</ORDEREDLIST> -</SECT2> -<SECT2> -<TITLE>Building the Flash Downloader on Linux</TITLE> -<PARA>eCos provides a Flash download program suitable for use with -the EP7211 Development Board which will run on Linux. Follow these -steps to build this program. Note: at the time of the writing of -these instructions, the download program is built directly within -the eCos source repository since it is -not configuration specific.</PARA> -<PROGRAMLISTING> # cd <eCos install dir>/packages/hal/arm/edb7xxx/&Version;/support</PROGRAMLISTING> -<PROGRAMLISTING> # make</PROGRAMLISTING> -<PARA>(where '# ' is your shell prompt)</PARA> -<PARA>Note: this program was adapted from the Cirrus Logic original -DOS program and still contains some vestiges of that environment.</PARA> -</SECT2> -<SECT2> -<TITLE>Developing eCos Programs with the ARM Multi-ICE</TITLE> -<PARA>The EP7211 Development Board supports use of the ARM - Multi-processor EmbeddedICE(tm), also known as the - Multi-ICE. Full instructions on how to install and use the - Multi-ICE in conjunction with GDB are provided in the - <EMPHASIS>"GNUPro Toolkit Reference for eCos - ARM/Thumb"</EMPHASIS> manual. However, the following - platform-specific details should be noted.</PARA> -<PARA>You will need an ARM Multi-ICE Server configuration - file for the EP7211 Development Board. Here is a suggested - configuration file to use:</PARA> -<PROGRAMLISTING>======== File "720T.cfg" ======== -;Total IR length = 4 -[TITLE] -Multi-ICE configuration for EP7211 - -[TAP 0] -ARM720T - -[TAPINFO] -YES - -[Timing] -Low=0 -High=0 -Adaptive=OFF -==================================</PROGRAMLISTING> -<PARA>You must ensure that the board has the appropriate soldered -connections. For the EP7211 this involves connecting TEST0 and TEST1 -of the EP7211 to ground. To do this you must solder a wire from -ground at JP33 to TP8 and TP9.</PARA> -<PARA>With respect to using multiple devices simultaneously, note -that the EP7211 is not ID sensitive.</PARA> -<PARA>If you wish to view diagnostic output from your program that -was downloaded via the Multi-ICE, you will note that by default -the output on the serial line (as viewed by a terminal such as Hyperterm -in Windows, or cu in Unix) is in the form of GDB packets.</PARA> -<PARA>To get legible output, the solution is to set the "GDB Serial -port" to a different device from the "Diagnostic serial port", and -you should use the Diagnostic serial port to view the diagnostic -output.</PARA> -<PARA>Warning: The multi-ice-gdb-server will fail on startup if -the board has not been both reset and awakened before running the -server. </PARA> -<PARA>To resolve this, it is necessary to free up the connection -from within the ARM Multi-ICE server itself. However when this happens, -the next time you use GDB to load the program into the board, you -will see lots of "Readback did not match original data" messages -in the output of the multi-ice-gdb-server program. This indicates -your program did not load correctly, and you should restart the -multi-ice-gdb-server program, taking care to reset the board correctly -before reconnecting. </PARA> -<PARA>As a reminder, you must specify --config-dialog to the - multi-ice-gdb-server program to connect to the board - correctly. If you do not, the multi-ice-gdb-server program - will not be able to connect.</PARA> -</SECT2> -</SECT1> - -<SECT1 ID="setup-arm-ep7212"> -<TITLE><!-- <conditionaltext> -->Cirrus Logic ARM EP7212 Development Board -Hardware Setup</TITLE> -<PARA>The Cirrus Logic EP7212 Development Board is almost identical -to the EP7211 Development Board from a hardware setup viewpoint, -and is based on the same port of eCos. Therefore the earlier documentation -for the EP7211 Development Board can be considered equivalent, but -with the following changes:</PARA> -<ITEMIZEDLIST> -<LISTITEM> -<PARA>The first serial port is silk screened as "UART 1" on -the EP7211 Development Board, but is silk screened as "Serial Port -0" on the EP7212 Development Board. Similarly "UART 2" is silk screened -as "Serial Port 1" on the EP7212 Development Board.</PARA> -</LISTITEM> -<LISTITEM> -<PARA>JP2 (used to control reprogramming of the FLASH) is not -silkscreened with "Boot Enable".</PARA> -</LISTITEM> -<LISTITEM> -<PARA>To setup the EP7212 Development Board for use with the -ARM Multi-ICE JTAG debugging interface unit, it is necessary to -connect TEST0 and TEST1 of the EP7212 to ground. On the Development -Board, this is accomplished by placing shorting blocks on JP47 and -JP48. When the shorting blocks are fitted, the board can only be -operated through the Multi-ICE - debugging over a serial line is -not possible.</PARA> -</LISTITEM> -<LISTITEM> -<PARA><!-- <conditionaltext> -->Prebuilt GDB stubs are - provided in the directory - <FILENAME>loaders/arm-edb7212</FILENAME> relative to the - root of your eCos installation</PARA> -</LISTITEM> -<LISTITEM> -<PARA>When rebuilding the GDB stub ROM image, change the "Cirrus -Logic processor variant" option (CYGHWR_HAL_ARM_EDB7XXX_VARIANT) -from the EP7211 to the EP7212. This can be selected in the -<EMPHASIS>eCos Configuration Tool</EMPHASIS> -, or if using ecosconfig, can be set by uncommenting the user_value -property of this option in ecos.ecc and setting it to "EP7212".</PARA> -</LISTITEM> -</ITEMIZEDLIST> -</SECT1> -<SECT1 ID="setup-arm-ep7312"> -<TITLE><!-- <conditionaltext> -->Cirrus Logic ARM EP7312 Development Board -Hardware Setup</TITLE> -<PARA>The Cirrus Logic EP7312 Development Board is similar -to the EP7212 Development Board from a hardware setup viewpoint, -and is based on the same port of eCos.</PARA> -<PARA>When rebuilding the RedBoot ROM image or an eCos application, -change the "Cirrus Logic processor variant" option -(CYGHWR_HAL_ARM_EDB7XXX_VARIANT) -from the EP7211 to the EP7312. This can be selected in the -<EMPHASIS>eCos Configuration Tool</EMPHASIS> -, or if using ecosconfig, can be set by uncommenting the user_value -property of this option in ecos.ecc and setting it to "EP7312". -</PARA> -<PARA> -See the RedBoot documentation for building and installing RedBoot for this -target. Only RedBoot is supported as a boot image; ROMRAM startup is -recommended. -</PARA> -<SECT2 ID="ep7312-90MHz-operation"> -<TITLE>90MHz Operation</TITLE> -<PARA> -The EP7xxx targets offer a choice of clock speeds, from 18MHz to a maximum, -normally, of 72MHz. These are described as kHz values 18432 36864 49152 -and 73728 within the configuration tool. If you have a release which -supports it, you will also see 90317 as an available option here, for 90MHz -operation. -</PARA> -<PARA> -This option only applies to certain EP7312 hardware, not all EP7312 boards -support it. Do not select 90MHz when building RedBoot or your eCos -application unless you are absolutely sure that your board supports it. -</PARA> -<PARA> -If you do have a 90MHz board and wish to execute at 90MHz, it is in fact -not necessary to build RedBoot specially, if you build your eCos -application configured for 90MHz. RedBoot will run at 72MHz and your -application will run at 90Mhz. If you do install a 90MHz RedBoot, then you -must build eCos for 90Mhz or timing and baud rates on serial I/O will be -wrong. -</PARA> -<PARA> -In other words, code (either eCos app or RedBoot) built for 90MHz will -“change up a gear” when it starts up; but code built for 72MHz, -because it needs to run correctly on boards without the -“gearbox” does not change back down, so if you mix the two, -unexpected timing can result. To run a non-eCos application without any -hardware initialization code at 90MHz, you must install a specially-built -RedBoot. -</PARA> -</SECT2> -</SECT1> -<SECT1 id="setup-arm-ep7209"> -<TITLE>Cirrus Logic ARM EP7209 Development Board Hardware Setup</TITLE> -<PARA>Note: At time of writing, no EP7209 Development Board is available, -and consequently eCos has not been verified for use with the EP7209 -Development Board.</PARA> -<PARA>The Cirrus Logic EP7209 Development Board is almost identical -to the EP7212 Board in all respects, except that it is not fitted -with DRAM, nor has it a DRAM controller.</PARA> -<PARA>The only valid configuration for the EDB7209 is ROM based. -The STUBS and RAM startup modes are not available as no DRAM is -fitted.</PARA> -</SECT1> -<SECT1 id="setup-arm-clps7111"> -<TITLE><!-- <index></index> -->Cirrus Logic ARM CL-PS7111 Evaluation Board Hardware Setup</TITLE> -<PARA>The implementation of the port of eCos to the Cirrus Logic -ARM CL-PS7111 Evaluation Board (also known as EB7111) is based on -the EP7211 Development Board port.</PARA> -<PARA>For that reason, the setup required is identical to the EP7211 -Development Board as described above, with the following exceptions:</PARA> -<ITEMIZEDLIST> -<LISTITEM> -<PARA>The Cygmon ROM monitor is not supported</PARA> -</LISTITEM> -<LISTITEM> -<PARA>The ARM Multi-ICE is not supported</PARA> -</LISTITEM> -<LISTITEM> -<PARA><!-- <conditionaltext> -->Prebuilt GDB stubs are provided in the -directory loaders/arm-eb7111 relative to the root of your -eCos installation</PARA> -</LISTITEM> -<LISTITEM> -<PARA>If rebuilding the GDB stub ROM image, change the "Cirrus -Logic processor variant" option (CYGHWR_HAL_ARM_EDB7XXX_VARIANT) -from the EP7211 to the CL_PS7111. This can be selected -in the -<EMPHASIS>eCos Configuration Tool</EMPHASIS> -, or if using ecosconfig, can be set by uncommenting the user_value -property of this option in ecos.ecc and setting it to "CL_PS7111"</PARA> -</LISTITEM> -</ITEMIZEDLIST> -<PARA>All remote serial communication is done with the serial I/O -connector</PARA> -<PROGRAMLISTING>/misc -% slow_cat.tcl < [path]/gdb_module.srec > /dev/ttyS0</PROGRAMLISTING> -<PARA>Power off the board, and change it to boot the GDB stubs in -big-endian mode by setting the switches like this:</PARA> -<PARA>SW1: 00000000 (all levers down) -SW2: 10001010</PARA> -<PARA>The GDB stubs allow communication with GDB using the serial -port at connector PJ7A (lower connector). The communication parameters -are fixed at 38400 baud, 8 data bits, no parity bit and 1 stop -bit (8-N-1). No flow control is employed. Connection to the host -computer should be made using a straight through serial cable.</PARA> -<PARA><!-- <conditionaltext> --> <!-- NOTE: could not find it -->(See <XREF LINKEND="USING-ECOSCONFIG-ON-UNIX">)</PARA> -</SECT1> -<SECT1 id="setup-arm-ebsa285"> -<TITLE>StrongARM EBSA-285 Hardware Setup</TITLE> -<PARA>The eCos Developer’s Kit package comes with a ROM -image which provides GDB support for -the Intel® StrongARM® Evaluation Board EBSA-285. - Both eCos and the Stub ROM image assume the clocks are: 3.6864 -MHz PLL input for generating the core clock, and 50MHz osc input -for external clocks. An image of this ROM is also provided at <filename>loaders/arm-ebsa285/gdbload.bin</filename> under -the root of your eCos installation.</PARA> -<PARA>The ROM monitor image (an eCos GDB -stub) provided for the EBSA-285 board must be programmed into the -flash, replacing the Angel monitor on the board. Please refer to -the section titled "Loading the ROM Image into On-Board flash" on how -to program the ROM onto the board.</PARA> -<PARA>The Stub ROM allows communication with GDB via the serial -connector on the bulkhead mounting bracket COM0. The communication -parameters are fixed at 38400 baud, 8 data bits, no parity bit and -1 stop bit (8-N-1). No flow control is employed.</PARA> -<SECT2> -<TITLE>Building the GDB Stub FLASH ROM images</TITLE> -<PARA>Prebuilt GDB stubs images are provided in the directory loaders/arm-ebsa285 relative -to the root of your eCos installation, but here are instructions -on how to rebuild them if you should ever need to.</PARA> -</SECT2> -<SECT2> -<TITLE>Building the GDB Stubs with the eCos Configuration Tool</TITLE> -<ORDEREDLIST> -<LISTITEM> -<PARA>Start with a new document - selecting the -<EMPHASIS>File</EMPHASIS> --> -<EMPHASIS>New</EMPHASIS> - menu item if necessary to do this.</PARA> -</LISTITEM> -<LISTITEM> -<PARA>Choose the -<EMPHASIS>Build</EMPHASIS> --> -<EMPHASIS>Templates</EMPHASIS> - menu item, and then select the StrongARM EBSA285 hardware.</PARA> -</LISTITEM> -<LISTITEM> -<PARA>While still displaying the -<EMPHASIS>Build</EMPHASIS> --> -<EMPHASIS>Templates</EMPHASIS> - dialog box, select the "stubs" package template to build a GDB -stub image. Click -<EMPHASIS>OK</EMPHASIS>.</PARA> -</LISTITEM> -<LISTITEM> -<PARA>Build eCos using -<EMPHASIS>Build</EMPHASIS> --> -<EMPHASIS>Library</EMPHASIS></PARA> -</LISTITEM> -<LISTITEM> -<PARA>When the build completes, the image files can be found -in the bin/ subdirectory of the install tree. The GDB stub -ROM images have the prefix "gdb_module".</PARA> -</LISTITEM> -</ORDEREDLIST> -</SECT2> -<SECT2> -<TITLE>Building the GDB Stub ROMs with ecosconfig</TITLE> -<PARA>(See “Using ecosconfig on UNIX” on page 72)</PARA> -<ORDEREDLIST> -<LISTITEM> -<PARA>Make an empty directory to contain the build tree, -and cd into it.</PARA> -</LISTITEM> -<LISTITEM> -<PARA>To build a GDB stub ROM image, enter the command: - -<PROGRAMLISTING>$ ecosconfig new ebsa285 stubs</PROGRAMLISTING></PARA> -</LISTITEM> -<LISTITEM> -<PARA>Enter the commands: - -<PROGRAMLISTING>$ ecosconfig tree -$ make</PROGRAMLISTING></PARA> -</LISTITEM> -<LISTITEM> -<PARA>When the build completes, the image files can be found -in the bin/ subdirectory of the install tree. The GDB stub -ROM images have the prefix "gdb_module".</PARA> -</LISTITEM> -</ORDEREDLIST> -</SECT2> -<SECT2> -<TITLE>Loading the ROM Image into On-board Flash</TITLE> -<PARA>There are several ways to install the eCos gdb stub ROM image -in the EBSA board’s flash memory. Once installed, the gdb -stub ROM provides standard eCos download and debug via the EBSA -board"s serial port. The options available include the -Linux based EBSA flash upgrade utility provided by Red Hat, direct writing -of the flash via MultiICE (JTAG) hardware debugger, and other flash management -utilities from Intel (these only support DOS, and proprietary ARM tools -and image formats). Only the Red Hat flash upgrade tool is supported -and tested in this release.</PARA> -<PARA>The flash upgrade tool requires the EBSA board to be configured -as a PCI slave (rather than a master, its normal operating mode) -and plugged into a Linux host computer"s PCI bus.</PARA> -<PARA>Configuring the board for flash loading: Follow the instructions -in the EBSA-285 Reference Manual, pages A-2 and A-3 to configure -the board as an add-in card, and enable flash blank programming. - Briefly: assuming the board was in the default setting to execute -as a bus master ("Host Bridge") make jumper 9 (J9), move jumper -10 (J10) to external reset (PCI_RST), and move jumper 15 -(J15) link 4-6-5 to connect 5-6 instead of 4-6.</PARA> -<PARA>Configuring the board for execution of eCos programs: Follow -the instructions in the EBSA-285 Reference Manual, pages A-2 and -A-3 to configure the board as a "Host Bridge" with "Central Function". - Briefly: unset J9, move J10 to on-board reset (BRD_RST), -and set J15 to make 4-6 instead of 5-6 (see page A-8 also). Plug -the card into its own PCI bus, not the Linux PC used for the flash-programming -process.</PARA> -<PARA>Building the Linux software: the Linux software sources are -in directory</PARA> -<PROGRAMLISTING> <BASEDIR>/packages/hal/arm/ebsa285/v1_3/support/linux/safl_util</PROGRAMLISTING> -<PARA>in the eCos source repository. There are two parts to the -system: a loadable kernel module and the flash utility. The loadable -kernel module is safl.o and the utility is sa_flash. To -build:</PARA> -<PARA> cd to this directory, or a copy of it.</PARA> -<PARA> make</PARA> -<PARA>This builds safl.o and sa_flash. The kernel module -must be installed, and a device file created for it. Both of these -operations require root permissions. Create the device file by: </PARA> -<PROGRAMLISTING> % mknod /dev/safl c 10 178</PROGRAMLISTING> -<PARA>Programming the flash: switch off the EBSA-285, and remove -the EBSA-285 board from its PCI bus. Take appropriate anti-static -precautions. Configure it for flash loading as above, halt your -Linux system and turn it off. Install the EBSA-285 board in the -PCI bus of the Linux system and boot it up. (Single user is good enough, -assuming your image and safl_util build dir are on a local -disc partition.) Change directory to the safl_util directory, -then, to load the kernel module and flash an image onto the eval -board (as root): </PARA> -<PROGRAMLISTING> % insmod safl.o - % sa_flash <image_file></PROGRAMLISTING> -<PARA>Halt and turn off the Linux machine and remove the EBSA-285 -card. Take appropriate anti-static precautions. Configure it for -execution of eCos programs as above, and plug it into its own PCI -bus. Restart the Linux machine however you wish.</PARA> -<PARA>This information is replicated in the README file within the -safl_util directory and its parents, and in the EBSA-285 -Reference Manual from Intel, appendix A "Configuration Guide". -If in doubt, please refer to those documents also.</PARA> -<PARA>This procedure also applies for loading ROM-startup eCos programs -into the on-board flash memory, given a binary format image of the -program from arm-elf-objcopy. Loading a ROM-startup eCos program -into flash will overwrite the StubROM in flash, so you would have -to reload the StubROM to return to normal RAM-startup program development.</PARA> -</SECT2> -<SECT2> -<TITLE>Running your eCos Program Using GDB and the StubROM</TITLE> -<NOTE> -<PARA>You must first load the StubROM image into the flash memory -on the EBSA-285 board before doing this. See “Loading -the ROM Image into On-board Flash”, page 93 for details.</PARA> -</NOTE> -<PARA>Connect to the StubROM in the board and run your eCos program <PROGRAM> as</PARA> -<PARA>follows:</PARA> -<PROGRAMLISTING> $ arm-elf-gdb -nw <PROGRAM> - (gdb) set remotebaud 38400 - (gdb) target remote <DEVICE></PROGRAMLISTING> -<PARA>Where <DEVICE> is /dev/ttyS0 -or COM1: or similar, depending on your environment and how you connected -your serial line to the host computer. Expect some output here, -for example:</PARA> -<PROGRAMLISTING> Remote debugging using /dev/ttyS0 - 0x410026a4 in ?? ()</PROGRAMLISTING> -<PARA>then, to load the program</PARA> -<PROGRAMLISTING> (gdb) load - </PROGRAMLISTING> -<PARA>which will report locations and sizes of sections as they -load, then begin execution using</PARA> -<PROGRAMLISTING> (gdb) continue</PROGRAMLISTING> -<PARA>If you have no eCos program yet, but you want to connect to -the board just to verify serial communications, tell gdb "set endian -little" before anything else, so that it understands the board (GDB -normally infers this from information within the eCos program).</PARA> -<NOTE> -<PARA>When an eCos program is run on the EBSA-285 board, the GDB -stub in ROM loses control. This means that if you require the ability -to stop execution on the target remotely, or want thread debugging -capabilities, you must include GDB stub support when configuring -<PRODUCTNAME>eCos</PRODUCTNAME>.</PARA> -</NOTE> -</SECT2> -</SECT1> -<SECT1 id="setup-arm-ipaq"> -<TITLE><!-- <conditionaltext> --> <!-- NOTE: could not find it --><!-- <index></index> -->Compaq iPAQ PocketPC Hardware Setup</TITLE> -<PARA>For setting up the iPAQ to run with RedBoot, see the the <EMPHASIS>RedBoot -User's Guide</EMPHASIS>. Connections may be made using -the Compact Flash Ethernet interface. A serial cable may be connected -directly, or via the cradle. Serial communication uses the parameters -38400,8,N,1. The LCD/Touchscreen may also be used as an -interface to RedBoot and eCos applications.</PARA> -</SECT1> -<SECT1 id="setup-sh-edk7708"> -<TITLE>SH3/EDK7708 Hardware Setup</TITLE> -<PARA>The eCos Developer’s Kit package comes with a ROM -which provides GDB support for the Hitachi EDK7708 board (a big-endian -and a little-endian version). Images of these ROMs are also provided -at <filename>loaders/sh-edk7708/gdbload.bin</filename> and - <filename>loaders/sh-edk7708le/gdbload.bin</filename> under -the root of your eCos installation.</PARA> -<PARA>The ROM is installed to socket U6 on the board. When using -the big-endian ROM, jumper 9 must be set to 2-3. When using the -little-endian ROM, jumper 9 must be set to 1-2. Attention should -be paid to the correct orientation of the ROM during installation. -Only replace the board"s existing ROM using a proper PLCC extraction -tool, as the socket would otherwise risk being damaged. </PARA> -<PARA>If you are going to program a new ROM or FLASH using the binary -image, you may have to experiment to get the right byte-order in -the device. Depending on the programming software you use, it might -be necessary to enable byte-swapping. If the GDB stub ROM/FLASH -you program does not work, try reversing the byte-order.</PARA> -<PARA>The GDB stub in the EPROM allows communication with GDB using -the serial port at connector J1. The communication parameters are -fixed at 38400 baud, 8 data bits, no parity bit and 1 stop bit (8-N-1). -No flow control is employed. Connection to the host computer should -be made using the dedicated serial cable included in the EDK package. </PARA> -<SECT2> -<TITLE>Installing the Stubs into FLASH</TITLE> -<SECT3> -<TITLE>Preparing the Binaries</TITLE> -<PARA>These two binary preparation steps are not strictly necessary -as the eCos distribution ships with precompiled binaries in the -directory loaders/sh-edk7708 and loaders/sh-edk7708le -relative to the installation root.</PARA> -<SECT4> -<TITLE>Building the ROM images with the eCos Configuration Tool</TITLE> -<ORDEREDLIST> -<LISTITEM> -<PARA>Start with a new document - selecting the -<EMPHASIS>File->New</EMPHASIS> - menu item if necessary to do this.</PARA> -</LISTITEM> -<LISTITEM> -<PARA>Choose the -<EMPHASIS>Build->Templates</EMPHASIS> - menu item, and then select the SH EDK7708 hardware.</PARA> -</LISTITEM> -<LISTITEM> -<PARA>While still displaying the -<EMPHASIS>Build->Templates</EMPHASIS> - dialog box, select the “stubs” package template -to build a GDB stub. Click -<EMPHASIS>OK</EMPHASIS>.</PARA> -</LISTITEM> -<LISTITEM> -<PARA>If building a little-endian image, disable the “Use -big-endian mode” option in the SH EDK7708 HAL (CYGHWR_HAL_SH_BIGENDIAN).</PARA> -</LISTITEM> -<LISTITEM> -<PARA>Build eCos using -<EMPHASIS>Build->Library</EMPHASIS>. </PARA> -</LISTITEM> -<LISTITEM> -<PARA>When the build completes, the image files can be found -in the bin/ subdirectory of the install tree. GDB stub -ROM images have the prefix “gdb_module”.</PARA> -</LISTITEM> -</ORDEREDLIST> -</SECT4> -<SECT4> -<TITLE>Building the ROM images with ecosconfig</TITLE> -<ORDEREDLIST> -<LISTITEM> -<PARA>Make an empty directory to contain the build tree, -and cd into it.</PARA> -</LISTITEM> -<LISTITEM> -<PARA>To build a GDB stub ROM image, enter the command: - -<PROGRAMLISTING>$ ecosconfig new edk7708 stubs</PROGRAMLISTING> - </PARA> -</LISTITEM> -<LISTITEM> -<PARA>If building a little-endian image, uncomment the user -value in ecos.ecc for CYGHWR_HAL_SH_BIGENDIAN -and change it to 0. </PARA> -</LISTITEM> -<LISTITEM> -<PARA>Enter the commands: - -<PROGRAMLISTING>$ ecosconfig tree -$ make </PROGRAMLISTING></PARA> -</LISTITEM> -<LISTITEM> -<PARA>When the build completes, the image files can be found -in the bin/ subdirectory of the install tree. GDB stub -ROM images have the prefix “gdb_module”.</PARA> -</LISTITEM> -</ORDEREDLIST> -</SECT4> -</SECT3> -<SECT3> -<TITLE> Installing the Stubs into ROM or FLASH</TITLE> -<ORDEREDLIST> -<LISTITEM> -<PARA>Program the binary image file gdb_module.bin -into ROM or FLASH referring to the instructions of your ROM programmer.</PARA> -</LISTITEM> -<LISTITEM> -<PARA>Plug the ROM/FLASH into socket U6. If the image -is little-endian set jumper 9 to 1-2. If the image is big-endian -set jumper 9 to 2-3.</PARA> -</LISTITEM> -</ORDEREDLIST> -</SECT3> -</SECT2> -</SECT1> -<SECT1 id="setup-sh-cq7708"> -<TITLE>SH3/CQ7708 Hardware Setup</TITLE> -<SECT2> -<TITLE>Preparing the board</TITLE> -<PARA>Make sure the DIP switches on the board are set as follows: - </PARA> -<PROGRAMLISTING>SW1-1 ON -SW1-2 OFF -SW1-3 ON -SW1-4 OFF</PROGRAMLISTING> -<PROGRAMLISTING>SW2-1 ON -SW2-2 ON -SW2-3 OFF -SW2-4 OFF</PROGRAMLISTING> -<PARA>If you are using a straight through serial cable which has -flow control lines, you will also need to cut JP12 (5-6) as the -flow control lines can cause NMIs.</PARA> -</SECT2> -<SECT2> -<TITLE>eCos GDB Stubs</TITLE> -<PARA>The eCos installation CD contains a copy of the eCos GDB stubs -in binary format which must be programmed into an EPROM or FLASH -and installed on the board.</PARA> -<SECT3> -<TITLE> Preparing the GDB stubs</TITLE> -<PARA>These stub preparation steps are not strictly necessary as -the eCos distribution ships with precompiled stubs in the directory -loaders/sh3-cq7708 relative to the installation root.</PARA> -</SECT3> -<SECT3> -<TITLE>Building the GDB stub image with the eCos Configuration Tool</TITLE> -<ORDEREDLIST> -<LISTITEM> -<PARA>Start with a new document - selecting the -<EMPHASIS>File->New</EMPHASIS> - menu item if necessary to do this.</PARA> -</LISTITEM> -<LISTITEM> -<PARA>Choose the -<EMPHASIS>Build->Templates</EMPHASIS> - menu item, and then select the SH3 cq7708 hardware.</PARA> -</LISTITEM> -<LISTITEM> -<PARA>While still displaying the -<EMPHASIS>Build->Templates</EMPHASIS> - dialog box, select the stubs package template to build a GDB stub. -Click -<EMPHASIS>OK</EMPHASIS>.</PARA> -</LISTITEM> -<LISTITEM> -<PARA> Build eCos stubs using -<EMPHASIS>Build->Library</EMPHASIS>.</PARA> -</LISTITEM> -<LISTITEM> -<PARA> When the build completes, the image files can be found -in the -<FILENAME>bin/</FILENAME> - subdirectory of the install tree. GDB stub images have the prefix -<FILENAME>gdb_module</FILENAME>.</PARA> -</LISTITEM> -</ORDEREDLIST> -</SECT3> -<SECT3> -<TITLE> Building the GDB stub image with ecosconfig</TITLE> -<ORDEREDLIST> -<LISTITEM> -<PARA>Make an empty directory to contain the build tree, -and cd into it.</PARA> -</LISTITEM> -<LISTITEM> -<PARA> To build a GDB stub ROM image, enter the command: - -<PROGRAMLISTING>$ ecosconfig new cq7708 stubs </PROGRAMLISTING></PARA> -</LISTITEM> -<LISTITEM> -<PARA> Enter the commands: - -<PROGRAMLISTING>$ ecosconfig tree -$ make</PROGRAMLISTING></PARA> -</LISTITEM> -<LISTITEM> -<PARA>When the build completes, the image files can be found -in the -<FILENAME>bin/</FILENAME> - subdirectory of the install tree. GDB stub images have the prefix -<FILENAME>gdb_module</FILENAME>. </PARA> -</LISTITEM> -</ORDEREDLIST> -</SECT3> -</SECT2> -<SECT2> -<TITLE>Programming the stubs in EPROM/FLASH</TITLE> -<PARA>The board can use different sizes of ROMs. Use this table -to adjust the board’s jumpers to the ROM sizes you are -using.</PARA> -<PROGRAMLISTING>size(kbit) JP7 JP9 JP10 JP11 -256 2-3 2-3 open open -512 1-2 2-3 open open -1000 1-2 open open 2-3 -2000 1-2 1-2 open 2-3 -4000 1-2 1-2 short 2-3 -8000 1-2 1-2 short 1-2</PROGRAMLISTING> -<PARA>There are two ways to program the stubs. We advise you to -use method 1, since it is simpler. Method 2 is unsupported and requires -a bit of fiddling.</PARA> -<PARA><EMPHASIS>Method 1: </EMPHASIS> </PARA> -<PARA>Program the binary stub image into two EPROMs, E and O. EPROM -E should contain the even bytes, and O the odd bytes (your EPROM -programmer should have the ability to split the image).</PARA> -<PARA>EPROM E should be installed in socket IC8, and EPROM O should -be installed in socket IC4.</PARA> -<PARA>Set JP6 to 16 bit mode (1-2 soldered, 2-3 cut) Set SW1-4 -to ON and SW2-1 to OFF.</PARA> -<PARA></PARA> -<PARA><EMPHASIS>Method2: </EMPHASIS> </PARA> -<PARA>Assuming that the stub binary is smaller than 32 kB, you can -install it in a single EPROM.</PARA> -<PARA>Compile the <FILENAME>mkcqrom.c</FILENAME> program -found in the <FILENAME>misc</FILENAME> directory.</PARA> -<PARA>Use it to convert the binary image to the required format. -See the <FILENAME>mkcqrom.c</FILENAME> source for a -description of what is done, and why it is necessary. </PARA> -<PROGRAMLISTING> % mkcqrom gdb_module.bin gdb_mangled.bin</PROGRAMLISTING> -<PARA>Program the <FILENAME>gdb_mangled.bin</FILENAME> file -into an EPROM and install it in socket IC4</PARA> -<PARA>Set JP6 to 8 bit mode (cut 1-2, solder 2-3)</PARA> -<PARA>The GDB stubs allow communication with GDB using the serial -port at connector CN7. The communication parameters are fixed at -38400 baud, 8 data bits, no parity bit and 1 stop bit (8-N-1). No -flow control is employed. Connection to the host computer should -be made using a straight through serial cable.</PARA> -</SECT2> -</SECT1> -<SECT1 id="setup-sh-hs7729pci"> -<TITLE>SH3/HS7729PCI Hardware Setup</TITLE> -<PARA>Please see the RedBoot manual for instructions on how to prepare -the board for use with eCos.</PARA> -</SECT1> -<SECT1 id="setup-sh-se77x9"> -<TITLE>SH3/SE77x9 Hardware Setup</TITLE> -<PARA>Please see the RedBoot manual for instructions on how to prepare -the board for use with eCos.</PARA> -</SECT1> -<SECT1 id="setup-sh-cq7750"> -<TITLE>SH4/CQ7750 Hardware Setup</TITLE> -<SECT2> -<TITLE>Preparing the board</TITLE> -<PARA>Make sure the DIP switches on the board are set as follows: - </PARA> -<PROGRAMLISTING>SW1-1 ON -SW1-2 OFF -SW1-3 ON -SW1-4 OFF</PROGRAMLISTING> -<PROGRAMLISTING>SW2-1 ON -SW2-2 ON -SW2-3 OFF -SW2-4 OFF</PROGRAMLISTING> -<PARA>If you are using a straight through serial cable which has -flow control lines, you will also need to cut JP12 (5-6) as the -flow control lines can cause NMIs.</PARA> -</SECT2> -<SECT2> -<TITLE>eCos GDB Stubs</TITLE> -<PARA>The eCos installation CD contains a copy of the eCos GDB stubs -in binary format which must be programmed into an EPROM or FLASH -and installed on the board.</PARA> -<SECT3> -<TITLE> Preparing the GDB stubs</TITLE> -<PARA>These stub preparation steps are not strictly necessary as -the eCos distribution ships with precompiled stubs in the directory -loaders/sh3-cq7708 relative to the installation root.</PARA> -</SECT3> -<SECT3> -<TITLE>Building the GDB stub image with the eCos Configuration Tool</TITLE> -<ORDEREDLIST> -<LISTITEM> -<PARA>Start with a new document - selecting the -<EMPHASIS>File->New</EMPHASIS> - menu item if necessary to do this.</PARA> -</LISTITEM> -<LISTITEM> -<PARA>Choose the -<EMPHASIS>Build->Templates</EMPHASIS> - menu item, and then select the SH3 cq7708 hardware.</PARA> -</LISTITEM> -<LISTITEM> -<PARA>While still displaying the -<EMPHASIS>Build->Templates</EMPHASIS> - dialog box, select the stubs package template to build a GDB stub. -Click -<EMPHASIS>OK</EMPHASIS>.</PARA> -</LISTITEM> -<LISTITEM> -<PARA> Build eCos stubs using -<EMPHASIS>Build->Library</EMPHASIS>.</PARA> -</LISTITEM> -<LISTITEM> -<PARA> When the build completes, the image files can be found -in the -<FILENAME>bin/</FILENAME> - subdirectory of the install tree. GDB stub images have the prefix -<FILENAME>gdb_module</FILENAME>.</PARA> -</LISTITEM> -</ORDEREDLIST> -</SECT3> -<SECT3> -<TITLE> Building the GDB stub image with ecosconfig</TITLE> -<ORDEREDLIST> -<LISTITEM> -<PARA>Make an empty directory to contain the build tree, -and cd into it.</PARA> -</LISTITEM> -<LISTITEM> -<PARA> To build a GDB stub ROM image, enter the command: - -<PROGRAMLISTING>$ ecosconfig new cq7708 stubs </PROGRAMLISTING></PARA> -</LISTITEM> -<LISTITEM> -<PARA> Enter the commands: - -<PROGRAMLISTING>$ ecosconfig tree -$ make</PROGRAMLISTING></PARA> -</LISTITEM> -<LISTITEM> -<PARA>When the build completes, the image files can be found -in the -<filename>bin/</filename> - subdirectory of the install tree. GDB stub images have the prefix -<filename>gdb_module</filename>. </PARA> -</LISTITEM> -</ORDEREDLIST> -</SECT3> -</SECT2> -<SECT2> -<TITLE>Programming the stubs in EPROM/FLASH</TITLE> -<PARA>The board can use different sizes of ROMs. Use this table -to adjust the board’s jumpers to the ROM sizes you are -using.</PARA> -<PROGRAMLISTING>size(kbit) JP7 JP9 JP10 JP11 -256 2-3 2-3 open open -512 1-2 2-3 open open -1000 1-2 open open 2-3 -2000 1-2 1-2 open 2-3 -4000 1-2 1-2 short 2-3 -8000 1-2 1-2 short 1-2</PROGRAMLISTING> -<PARA>There are two ways to program the stubs. We advise you to -use method 1, since it is simpler. Method 2 is unsupported and requires -a bit of fiddling.</PARA> -<PARA><EMPHASIS>Method 1: </EMPHASIS> </PARA> -<PARA>Program the binary stub image into two EPROMs, E and O. EPROM -E should contain the even bytes, and O the odd bytes (your EPROM -programmer should have the ability to split the image).</PARA> -<PARA>EPROM E should be installed in socket IC8, and EPROM O should -be installed in socket IC4.</PARA> -<PARA>Set JP6 to 16 bit mode (1-2 soldered, 2-3 cut) Set SW1-4 -to ON and SW2-1 to OFF.</PARA> -<PARA></PARA> -<PARA><EMPHASIS>Method2: </EMPHASIS> </PARA> -<PARA>Assuming that the stub binary is smaller than 32 kB, you can -install it in a single EPROM.</PARA> -<PARA>Compile the <filename>mkcqrom.c</filename> program -found in the <FILENAME>misc</FILENAME> directory.</PARA> -<PARA>Use it to convert the binary image to the required format. -See the <FILENAME>mkcqrom.c</FILENAME> source for a -description of what is done, and why it is necessary. </PARA> -<PROGRAMLISTING> % mkcqrom gdb_module.bin gdb_mangled.bin</PROGRAMLISTING> -<PARA>Program the <FILENAME>gdb_mangled.bin</FILENAME> file -into an EPROM and install it in socket IC4</PARA> -<PARA>Set JP6 to 8 bit mode (cut 1-2, solder 2-3)</PARA> -<PARA>The GDB stubs allow communication with GDB using the serial -port at connector CN7. The communication parameters are fixed at -38400 baud, 8 data bits, no parity bit and 1 stop bit (8-N-1). No -flow control is employed. Connection to the host computer should -be made using a straight through serial cable.</PARA> -</SECT2> -</SECT1> -<SECT1 id="setup-sh-se7751"> -<TITLE>SH4/SE7751 Hardware Setup</TITLE> -<PARA>Please see the RedBoot manual for instructions on how to repare -the board for use with eCos.</PARA> -</SECT1> -<SECT1 id="setup-v850-cebsa1"> -<TITLE>NEC CEB-V850/SA1 Hardware Setup</TITLE> -<PARA>The CEB-V850 board is fitted with a socketed EPROM. The internal -Flash of the V850 supplied with the CEB-V850 boards defaults to -vectoring into this EPROM. A GDB stub image should be programmed -into an EPROM fitted to this board, and a prebuilt image is provided -at <FILENAME>loaders/v850-ceb_v850/v850sa1/gdb_module.bin </FILENAME>under -the root of your eCos installation.</PARA> -<PARA>The EPROM is installed to the socket labelled U7 on the board. -Attention should be paid to the correct orientation of the EPROM -during installation. </PARA> -<PARA>When programming an EPROM using the binary image, be careful -to get the byte order correct. It needs to be little-endian. If -the EPROM burner software has a hex-editor, check that the first -few bytes of the image look similar to: </PARA> -<PROGRAMLISTING>00000000: 0018 8007 5e02 0000 0000 0000 0000 0000</PROGRAMLISTING> -<PARA>If the byte order is wrong you will see 1800 instead of 0018 -etc. Use the EPROM burner software to make a byte-swap before you -burn to image to the EPROM. </PARA> -<PARA>If the GDB stub EPROM you burn does not work, try reversing -the byte-order, even if you think you have it the right way around. -At least one DOS-based EPROM burner program is known to have the -byte-order upside down.</PARA> -<PARA>The GDB stub in the EPROM allows communication with GDB using -the serial port. The communication parameters are fixed at 38400 -baud, 8 data bits, no parity bit and 1 stop bit (8-N-1). No flow -control is employed. Connection to the host computer should be made -using a dedicated serial cable as specified in the CEB-V850/SA1 -manual.</PARA> -<SECT2> -<TITLE>Installing the Stubs into ROM</TITLE> -<SECT3> -<TITLE>Preparing the Binaries</TITLE> -<PARA>These two binary preparation steps are not strictly necessary -as the eCos distribution ships with precompiled binaries in the -directory loaders/v850-ceb_v850 relative to the -installation root.</PARA> -<SECT4> -<TITLE>Building the ROM images with the eCos Configuration Tool</TITLE> -<ORDEREDLIST> -<LISTITEM> -<PARA>Start with a new document - selecting the -<EMPHASIS>File->New</EMPHASIS> - menu item if necessary to do this.</PARA> -</LISTITEM> -<LISTITEM> -<PARA>Choose the -<EMPHASIS>Build->Templates</EMPHASIS> - menu item, and then select the NEC CEB-V850/SA1 hardware.</PARA> -</LISTITEM> -<LISTITEM> -<PARA>While still displaying the -<EMPHASIS>Build->Templates</EMPHASIS> - dialog box, select the “stubs” package template -to build a GDB stub. Click -<EMPHASIS>OK</EMPHASIS>.</PARA> -</LISTITEM> -<LISTITEM> -<PARA>Build eCos using -<EMPHASIS>Build->Library</EMPHASIS>. </PARA> -</LISTITEM> -<LISTITEM> -<PARA>When the build completes, the image files can be found -in the bin/ subdirectory of the install tree. GDB stub -ROM images have the prefix “gdb_module”.</PARA> -</LISTITEM> -</ORDEREDLIST> -</SECT4> -<SECT4> -<TITLE>Building the ROM images with ecosconfig</TITLE> -<ORDEREDLIST> -<LISTITEM> -<PARA>Make an empty directory to contain the build tree, -and cd into it. </PARA> -</LISTITEM> -<LISTITEM> -<PARA>To build a GDB stub ROM image, enter the command: - -<PROGRAMLISTING>$ ecosconfig new ceb-v850 stubs </PROGRAMLISTING></PARA> -</LISTITEM> -<LISTITEM> -<PARA>Enter the commands: - -<PROGRAMLISTING>$ ecosconfig tree -$ make</PROGRAMLISTING> - </PARA> -</LISTITEM> -<LISTITEM> -<PARA>When the build completes, the image files can be found -in the bin/ subdirectory of the install tree. GDB stub -ROM images have the prefix “gdb_module”.</PARA> -</LISTITEM> -</ORDEREDLIST> -</SECT4> -</SECT3> -<SECT3> -<TITLE> Installing the Stubs into ROM or FLASH</TITLE> -<ORDEREDLIST> -<LISTITEM> -<PARA> Program the binary image file gdb_module.bin -into ROM or FLASH referring to the instructions of your ROM - programmer. </PARA> -</LISTITEM> -<LISTITEM> -<PARA> Plug the ROM/FLASH into the socket as described -at the beginning of this section.</PARA> -</LISTITEM> -</ORDEREDLIST> -</SECT3> -</SECT2> -<SECT2> -<TITLE>Debugging with the NEC V850 I.C.E.</TITLE> -<PARA>eCos applications may be debugged using the NEC V850 In Circuit -Emulator (I.C.E.) A PC running Microsoft Windows is required in -order to run the NEC ICE software and drivers. In addition Red Hat -have developed a “libremote” server application -named v850ice.exe which is used on the PC connected to the I.C.E. -in order to allow connections from GDB.</PARA> -<PARA>The I.C.E. must be physically connected to a Windows NT system -through NEC"s PCI or PC Card interface. A driver, DLLs, -and application are provided by NEC to control the I.C.E.</PARA> -<PARA>v850ice is a Cygwin based server that runs on the NT system -and provides an interface between the gdb client and the I.C.E. -software. v850-elf-gdb may be run on the Windows NT system or on -a remote system. v850-elf-gdb communicates with the libremote server -using the gdb remote protocol over a TCP/IP socket. v850ice -communicates with the I.C.E. by calling functions in the NECMSG.DLL provided -by NEC.</PARA> -<SECT3> -<TITLE>INITIAL SETUP</TITLE> -<ORDEREDLIST> -<LISTITEM> -<PARA>Configure the hardware including the I.C.E., SA1 or -SB1 Option Module, and target board. Install the interface card -in the Windows NT system. Reference NEC"s documentation -for interface installation, jumper settings, etc.</PARA> -</LISTITEM> -<LISTITEM> -<PARA>Install the Windows NT device driver provided by NEC.</PARA> -</LISTITEM> -<LISTITEM> -<PARA>Copy the NEC DLLs, MDI application, and other support -files to a directory on the Windows NT system. The standard location -is C:\NecTools32. This directory will be refered to as -the "libremote server directory" in this document. v850ice.exe must -also be copied to this directory after being built. The required -files are: cpu.cfg, Nec.cfg, MDI.EXE, NECMSG.DLL, EX85032.DLL, -V850E.DLL, IE850.MON, IE850E.MON, and D3037A.800.</PARA> -</LISTITEM> -<LISTITEM> -<PARA>Make certain the file cpu.cfg contains the line:</PARA> -<PROGRAMLISTING>CpuOption=SA1</PROGRAMLISTING> -<PARA>if using a V850/SA1 module, or:</PARA> -<PROGRAMLISTING>CpuOption=SB1</PROGRAMLISTING> -<PARA>if using a V850/SB1 module.</PARA> -</LISTITEM> -<LISTITEM> -<PARA>Set the environment variable IEPATH to point to the libremote -server</PARA> -<PARA>directory.</PARA> -</LISTITEM> -</ORDEREDLIST> -</SECT3> -<SECT3> -<TITLE>BUILD PROCEDURES</TITLE> -<PARA>A prebuilt v850ice.exe executable is supplied in the loaders/v850-ceb_v850 directory -relative to the root of the eCos installation. However the following process -will allow the rebuilding of this executable if required:</PARA> -<PARA>For this example assume the v850ice libremote tree has been -copied to a directory named "server". The directory structure will -be similar to the following diagram:</PARA> -<PARA><PROGRAMLISTING> server - | - devo - / \ - config libremote - / \ - lib v850ice</PROGRAMLISTING></PARA> -<PARA>Build the v850ice source as follows. Be sure to use the native -Cygwin compiler tools that were supplied alongside eCos.</PARA> -<PARA>cd server -mkdir build -cd build -../devo/configure --target=v850-elf --host=i686-pc-cygwin -make</PARA> -<PARA>The resultant libremote server image (v850ice.exe) can be -found in build/libremote/v850ice. Copy v850ice.exe -to the lib remote server directory.</PARA> -</SECT3> -<SECT3> -<TITLE>V850ICE.EXE EXECUTION</TITLE> -<PARA>The v850ice command line syntax is:</PARA> -<PARA>v850ice [-d] [-t addr] [port number]</PARA> -<PARA>The optional -d option enables debug output. The -t option -is associated with thread debugging - see the "eCos thread debugging" -section below for details. By default v850ice listens on port 2345 -for an attach request from a gdb client. A different port number -may be specified on the command line.</PARA> -<PARA>To run the libremote server:</PARA> -<ORDEREDLIST> -<LISTITEM> -<PARA>Power on the I.C.E. and target board.</PARA> -</LISTITEM> -<LISTITEM> -<PARA>Open a Cygwin window.</PARA> -</LISTITEM> -<LISTITEM> -<PARA>Run v850ice.</PARA> -</LISTITEM> -<LISTITEM> -<PARA>You will see the MDI interface window appear. In this -window you should see the "Connected to In-Circuit Emulator" message. - In the Cygwin window, the libremote server will indicate it is -ready to accept a gdb client connection with the message "v850ice: - listening on port 2345."</PARA> -</LISTITEM> -</ORDEREDLIST> -</SECT3> -<SECT3> -<TITLE>V850-ELF-GDB EXECUTION</TITLE> -<PARA>Run the v850-elf-gdb client to debug the V850 target. It -is necessary to issue certain configuration commands to the I.C.E. -software. These commands may be issued directly in the MDI window -or they may be issued from the gdb client through the "monitor" -command.</PARA> -<PARA>On the Cosmo CEB-V850 board, on-chip Flash is mapped at address -0x0, the on-board EPROM at 0x100000 and the on-board RAM at 0xfc0000. -Since a standalone V850 will start executing from address 0x0 on -reset, it is normal to load either an application or a bootstrap -loader for Flash at this address. eCos programs may be built to -boot from Flash or the on-board EPROM. If building for the on-board -EPROM, it would be expected that the Flash will contain the default -CEB-V850 flash contents. An ELF format version of the default contents -may be found in the eCos distribution with the name v850flash.img.</PARA> -<PARA>In standalone operation, normally the code in this flash image -would have been programmed into the V850 on the Cosmo board, and -this would cause it to vector into the on-board EPROM to run the -application located there. In the case of eCos, this application -may be a GDB stub ROM application, allowing the further download -to RAM over serial of actual applications to debug.</PARA> -<PARA>As an example, we shall demonstrate how to use the I.C.E. -to download the v850flash.img and GDB stub EPROM image using I.C.E. -emulator memory only, and not requiring any actual programming of -devices.</PARA> -<PARA>v850-elf-gdb -nw -(gdb) file v850flash.img -(gdb) target remote localhost:2345 -(gdb) monitor reset -(gdb) monitor cpu r=256 a=16 -(gdb) monitor map r=0x100000-L 0x80000 -(gdb) monitor map u=0xfc0000-L 0x40000 -(gdb) monitor pinmask k -(gdb) monitor step -(gdb) monitor step -(gdb) monitor step -(gdb) monitor step -(gdb) load -(gdb) detach -(gdb) file gdb_module.img -(gdb) target remote localhost:2345 -(gdb) load -(gdb) continue</PARA> -<PARA>NOTE: The four "monitor step" commands are only required the -first time the board is connected to the I.C.E., otherwise the program -will fail.</PARA> -<PARA>This is because of a limitation of the I.C.E. hardware that -means that the first time it is used, the "map" commands are not -acted on and the addresses "0x100000" and "0xfc0000" are not mapped. -This can be observed using the command "td e-20" in the MDI application"s -console to display the trace buffer, which will show that the contents -of address 0x100000 are not valid. Subsequent runs do not require -the "monitor step" commands.</PARA> -<PARA>It is unusual to load two executable images to a target through -gdb. From the example above notice that this is accomplished by -attaching to the libremote server, loading the flash image, detaching, -reattaching, and loading the ROM/RAM image. It is more -normal to build an executable image that can be executed directly. -In eCos this is achieved by selecting either the ROM or ROMRAM startup -type, and optionally enable building for the internal FLASH. The -I.C.E. emulator memory can emulate both the internal FLASH and the -EPROM, so real hardware programming is not required.</PARA> -<PARA>Upon running this example you will notice that the libremote -server does not exit upon detecting a detach request, but simply -begins listening for the next attach request. To cause v850ice -to terminate, issue the "monitor quit" or "monitor exit" command -from the gdb client. v850ice will then terminate with the next -detach request. (You can also enter control-c in the Cygwin/DOS -window where v850ice is running.)</PARA> -</SECT3> -<SECT3> -<TITLE>MDI INTERFACE VS. GDB INTERFACE</TITLE> -<PARA>If a filename is referenced in an MDI command, whether the -command is entered in the MDI window or issued from the gdb client -with the monitor command, the file must reside on the Windows NT -libremote server system. When specifying a filename when entering -a command in the MDI window it is obvious that a server local file -is being referenced. When issuing an MDI command from the gdb client, the -user must remember that the command line is simply passed to the -I.C.E. software on the server system. The command is executed by -the I.C.E. software as though it were entered locally.</PARA> -<PARA>Executable images may be loaded into the V850 target by entering -the "load" command in the MDI window or with the gdb "load" command. - If the MDI load command is used, the executable image must be located -on the server system and must be in S Record format. If the gdb -load command is used, the executable image must be located on the -client system and must be in ELF format.</PARA> -<PARA>Be aware that the gdb client is not aware of debugger commands -issued from the MDI window. It is possible to cause the gdb client -and the I.C.E. software to get out of sync by issuing commands from -both interfaces during the same debugging session.</PARA> -</SECT3> -<SECT3> -<TITLE>eCos THREAD DEBUGGING</TITLE> -<PARA>eCos and the V850 I.C.E. libremote server have been written -to work together to allow debugging of eCos threads. This is an -optional feature, disabled by default because of the overheads trying -to detect a threaded program involves.</PARA> -<PARA>Obviously thread debugging is not possible for programs with -"RAM" startup type, as they are expected to operate underneath a -separate ROM monitor (such as a GDB stub ROM), that itself would -provide its own thread debugging capabilities over the serial line. -Thread debugging is relevant only for programs built for Flash, ROM, -or ROMRAM startup.</PARA> -<PARA>To configure the libremote server to support thread debugging, -use the command:</PARA> -<PARA><PROGRAMLISTING>(gdb) monitor syscallinfo ADDRESS</PROGRAMLISTING></PARA> -<PARA>at the GDB console prompt, where ADDRESS is the address of -the syscall information structure included in the applications. -In eCos this has been designed to be located at a consistent address -for each CPU model (V850/SA1 or V850/SB1). It -may be determined from an eCos executable using the following command -at a cygwin bash prompt:</PARA> -<PARA><PROGRAMLISTING>v850-elf-nm EXECUTABLE | grep hal_v85x_ice_syscall_info</PROGRAMLISTING></PARA> -<PARA>At the current time, this address is 0xfc0400 for a Cosmo -board fitted with a V850/SA1, or 0xfc0540 for a Cosmo board -fitted with a V850/SB1.</PARA> -<PARA>So for example, the GDB command for the SB1 would be:</PARA> -<PARA><PROGRAMLISTING>(gdb) monitor syscallinfo 0xfc0540</PROGRAMLISTING></PARA> -<PARA>Given that the syscallinfo address is fixed over all eCos -executables for a given target, it is possible to define it on the -libremote command line as well using the "-t" option, for example:</PARA> -<PARA><PROGRAMLISTING>bash$ v850ice -t 0xfc0400 -v850ice: listening on port 2345</PROGRAMLISTING></PARA> -</SECT3> -</SECT2> -</SECT1> -<SECT1 id="setup-v850-cebsb1"> -<TITLE>NEC CEB-V850/SB1 Hardware Setup</TITLE> -<PARA>The instructions for setting up the CEB-V850/SB1 -are virtually identical to those of the CEB-V850/SA1 above. -The only significant differences are that prebuilt loaders are available -at loaders/v850-ceb_v850/v850sb1 within -the eCos installation. Binaries supporting boards with both 16MHz -and 8MHz clock speeds are supplied. Also when building applications, -or rebuilding the stubs for a V850/SB1 target, then the -V850 CPU variant must be changed in the CEB-V850 HAL to the SB1.</PARA> -</SECT1> -<SECT1 id="setup-i386-pc"> -<TITLE>i386 PC Hardware Setup</TITLE> -<para> -eCos application on the PC can be run in three ways: via RedBoot, -loaded directly from a floppy disk, or loaded by the GRUB bootloader. -</para> -<sect2> -<title>RedBoot Support</title> -<PARA>For information about setting up the PC to run with RedBoot, -consult the RedBoot User"s Guide. If using serial debugging, -the serial line runs at 38400 baud 8-N-1 and should be connected -to the debug host using a null modem cable. If ethernet debugging -is required, an i82559 compatible network interface card, such as -an Intel EtherExpress Pro 10/100, should be installed -on the target PC and connected to the development PC running GDB. -When RedBoot is configured appropriately to have an IP address set, -then GDB will be able to debug directly over TCP/IP to the -target PC.</PARA> -</sect2> -<sect2> -<title>Floppy Disk Support</title> -<para> -If an application is built with a startup type of FLOPPY, then it is -configured to be a self-booting image that must be written onto a -formatted floppy disk. This will erase any existing file system or -data that is already on the disk, so proceed -with caution. -</para> -<para> -To write an application to floppy disk, it must first be converted to -a pure binary format. This is done with the following command: -</para> -<screen width=72> -$ <userinput>i386-elf-objcopy -O binary app.elf app.bin</userinput> -</screen> -<para> -Here <filename>app.elf</filename> is the final linked application -executable, in ELF format (it may not have a <filename>.elf</filename> -extension). The file <filename>app.bin</filename> is the resulting -pure binary file. This must be written to the floppy disk with the -following command: -<screen width=72> -$ <userinput>dd conv=sync if=app.bin of=/dev/fd0</userinput> -</screen> -</para> -<para>For NT Cygwin users, this can be done by first ensuring that the raw -floppy device is mounted as <filename>/dev/fd0</filename>. To check if this -is the case, type the command <command>mount</command> at the Cygwin bash -prompt. If the floppy drive is already mounted, it will be listed as something -similar to the following line:</para> -<screen> \\.\a: /dev/fd0 user binmode</screen> -<para>If this line is not listed, then mount the floppy drive using the command: -</para> -<screen>$ <userinput>mount -f -b //./a: /dev/fd0</userinput></screen> -<para>To actually install the boot image on the floppy, use the command:</para> -<screen> -$ <userinput>dd conv=sync if=app.bin of=/dev/fd0</userinput> -</screen> -<para>Insert this floppy in the A: drive of the PC to be used as a target -and ensure that the BIOS is configured to boot from A: by default. On reset, -the PC will boot from the floppy and the eCos application will load -itself and execute immediately.</para> -<note><title>NOTE</title> -<para>Unreliable floppy media may cause the write to silently fail. This -can be determined if the RedBoot image does not correctly -boot. In such cases, the floppy should be (unconditionally) reformatted -using the <command>fdformat</command> command on Linux, or -<command>format a: /u</command> on DOS/Windows. If this fails, try a -different disk.</para> -</note> -</sect2> -<sect2> -<title>GRUB Bootloader Support</title> -<para> -If an application is built with the GRUB startup type, it is -configured to be loaded by the GRUB bootloader. -</para> -<para> -GRUB is an open source boot loader that supports many different -operating systems. It is available from -<ulink -url="http://www.gnu.org/software/grub">http://www.gnu.org/software/grub</ulink>. -The latest version of GRUB should be downloaded from there and installed. -In Red Hat Linux version 7.2 and later it is the default bootloader -for Linux and therefore is already installed. -</para> -<para> -To install GRUB on a floppy disk from Linux you need to execute the -following commands: -</para> -<screen> -$ <userinput>mformat a:</userinput> -$ <userinput>mount /mnt/floppy</userinput> -$ <userinput>grub-install --root-directory=/mnt/floppy '(fd0)'</userinput> -Probing devices to guess BIOS drives. This may take a long time. -Installation finished. No error reported. -This is the contents of the device map /mnt/floppy/boot/grub/device.map. -Check if this is correct or not. If any of the lines is incorrect, -fix it and re-run the script `grub-install'. - -(fd0) /dev/fd0 -$ <userinput>cp $ECOS_REPOSITORY/packages/hal/i386/pc/current/misc/menu.lst /mnt/floppy/boot/grub</userinput> -$ <userinput>umount /mnt/floppy</userinput> -</screen> -<para> -The file <filename>menu.lst</filename> is an example GRUB menu -configuration file. It contains menu items to load some of the -standard eCos tests from floppy or from partition zero of the first -hard disk. You should, of course, customize this file to load your own -application. Alternatively you can use the command-line interface of -GRUB to input commands yourself. -</para> -<para> -Applications can be installed, or updated simply by copying them to -the floppy disk at the location expected by the -<filename>menu.lst</filename> file. For booting from floppy disks it -is recommended that the executable be stripped of all debug and symbol -table information before copying. This reduces the size of the file -and can make booting faster. -</para> -<para> -To install GRUB on a hard disk, refer to the GRUB documentation. Be -warned, however, that if you get this wrong it may compromise any -existing bootloader that exists on the hard disk and may make any -other operating systems unbootable. Practice on floppy disks or -sacrificial hard disks first. On machines running Red Hat Linux -version 7.2 and later, you can just add your own menu items to the -<filename>/boot/grub/menu.lst</filename> file that already exists. -</para> -</sect2> -<sect2> -<title>Debugging FLOPPY and GRUB Applications</title> -<para> -When RedBoot loads an application it also provides debugging services -in the form of GDB remote protocol stubs. When an application is -loaded stand-alone from a floppy disk, or by GRUB, these services are -not present. To allow these application to be debugged, it is possible -to include GDB stubs into the application. -</para> -<para> -To do this, set the "Support for GDB stubs" -(<literal>CYGDBG_HAL_DEBUG_GDB_INCLUDE_STUBS</literal>) configuration -option. Following this any application built will allow GDB to connect -to the debug serial port (by default serial device 0, also known as -COM1) whenever the application takes an exception, or if a Control-C -is typed to the debug port. Ethernet debugging is not supported. -</para> -<para> -The option "Enable initial breakpoint" -(<literal>CYGDBG_HAL_DEBUG_GDB_INITIAL_BREAK</literal>) causes the HAL -to take a breakpoint immediately before calling cyg_start(). This -gives the developer a chance to set any breakpoints or inspect the -system state before it proceeds. The configuration sets this option by -default if GDB stubs are included, and this is not a RedBoot build. To -make the application execute immediately either disable this option, -or disable <literal>CYGDBG_HAL_DEBUG_GDB_INCLUDE_STUBS</literal>. -</para> -</sect2> -</SECT1> -<SECT1 id="setup-synth-i386linux"> -<TITLE><!-- <conditionaltext> --><!-- <index></index> -->i386/Linux Synthetic Target Setup</TITLE> -<PARA>When building for the synthetic Linux target, the resulting -binaries are native Linux applications with the HAL providing suitable -bindings between the eCos kernel and the Linux kernel.</PARA> -<NOTE> -<PARA>Please be aware that the current implementation of the Linux -synthetic target does not allow thread-aware debugging.</PARA> -</NOTE> -<PARA>These Linux applications cannot be run on a Windows system. -However, it is possible to write a similar HAL emulation for the -Windows kernel if such a testing target is desired.</PARA> -<SECT2> -<TITLE>Tools</TITLE> -<PARA>For the synthetic target, eCos relies on features not available -in native compilers earlier than gcc-2.95.1. It also requires version -2.9.5 or later of the GNU linker. If you have gcc-2.95.1 or later -and ld version 2.9.5 or later, then you do not need to build new -tools. eCos does not support earlier versions. You can check the compiler -version using <COMMAND>gcc -v</COMMAND> or <COMMAND>egcs --v</COMMAND>, and the linker version using <COMMAND>ld --v</COMMAND>.</PARA> -<PARA>If you have native tools that are sufficiently recent for -use with eCos, you should be aware that by default eCos assumes -that the tools <COMMAND>i686-pc-linux-gnu-gcc</COMMAND>, <COMMAND>i686-pc-linux-gnu-ar</COMMAND>, - <COMMAND>i686-pc-linux-gnu-ld</COMMAND>, and <COMMAND>i686-pc-linux-gnu-objcopy</COMMAND> are -on your system and are the correct versions for use with eCos. But -instead, you can tell eCos to use your native tools by editing the -configuration value "Global command prefix" (CYGBLD_GLOBAL_COMMAND_PREFIX) -in your eCos configuration. If left empty (i.e. set to the empty -string) eCos will use your native tools when building.</PARA> -<PARA>If you have any difficulties, it is almost certainly easiest -overall to rebuild the tools as described on: <ULINK URL="http://sources.redhat.com/ecos/getstart.html">http://sources.redhat.com/ecos/getstart.html</ULINK></PARA> -</SECT2> -</SECT1> -</CHAPTER> -<CHAPTER ID="RUNNING-APPLICATIONS-ON-THE-TARGET"> -<TITLE><!-- <index></index> --><!-- <xref> -->Running <!-- <index></index> -->Applications -on the Target</TITLE> -<PARA>At this point you should have installed the eCos software -on your system (see <XREF LINKEND="SOFTWARE-INSTALLATION">), -and connected to a hardware target (see <XREF LINKEND="TARGET-SETUP">).</PARA> -<PARA>To verify both that a hardware target is properly set up, -and that the GDB commands used to connect to the target (hardware, -simulator or synthetic) work properly on your system, you will now -be guided through downloading and executing a prebuilt eCos test. -The procedure is exactly the same when you want to download and -run applications or tests that you have built yourself.</PARA> -<PARA>On Windows you must have the bash command line interpreter -running with some environment variables that are useful for eCos -work. If you have purchased the <EMPHASIS>eCos Developer's -Kit</EMPHASIS>, you can select this by selecting <EMPHASIS>Start->Programs->Red -Hat eCos->eCos Development Environment</EMPHASIS>. If -you are using the <EMPHASIS>eCos Net Release</EMPHASIS>, you should -set the environment variables as shown in the <EMPHASIS>GNUPro Toolkit Reference -Manual</EMPHASIS>. On Linux, simply open a new shell window.</PARA> -<PARA>You will need to change directory to the prebuilt tests that -are provided in the eCos installation, as follows:</PARA> -<PROGRAMLISTING>for the SHARP LH77790A-based AEB-1 boards: - $ cd BASE_DIR/prebuilt/aeb/tests/kernel/&Version;/tests -for the ARM7-based Cogent CMA230 board: - $ cd BASE_DIR/prebuilt/cma230/tests/kernel/&Version;/tests -for the StrongARM based Intel EBSA board: - $ cd BASE_DIR/prebuilt/ebsa285/tests/kernel/&Version;/tests -for the ARM-based Cirrus Logic EP72xx Development boards: - $ cd BASE_DIR/prebuilt/edb7xxx/tests/kernel/&Version;/tests -for the ARM-based ARM PID board: - $ cd BASE_DIR/prebuilt/pid/tests/kernel/&Version;/tests -for the StrongARM-based ARM Brutus board: - $ cd BASE_DIR/prebuilt/brutus/tests/kernel/&Version;/tests -for the StrongARM-based ARM Assabet board: - $ cd BASE_DIR/prebuilt/assabet/tests/kernel/&Version;/tests -for the AM31 simulator target: - $ cd BASE_DIR/prebuilt/am31_sim/tests/kernel/&Version;/tests -for the AM33-based Matsushita STB board: - $ cd BASE_DIR/prebuilt/stb/tests/kernel/&Version;/tests -for the AM31-based Matsushita stdeval1 board: - $ cd BASE_DIR/prebuilt/stdeval1/tests/kernel/&Version;/tests -for the MPC8xx-based Cogent CMA28x boards: - $ cd BASE_DIR/prebuilt/cma28x/tests/kernel/&Version;/tests -for the MPC8xx-based Motorola FADS board: - $ cd BASE_DIR/prebuilt/fads/tests/kernel/&Version;/tests -for the MPC8xx-based Motorola MBX boards: - $ cd BASE_DIR/prebuilt/mbx/tests/kernel/&Version;/tests -for the PowerPC minimal simulator target: - $ cd BASE_DIR/prebuilt/psim/tests/kernel/&Version;/tests -for the TX3904-based Toshiba JMR-TX3904 board: - $ cd BASE_DIR/prebuilt/jmr3904/tests/kernel/&Version;/tests -for the TX39 simulator target: - $ cd BASE_DIR/prebuilt/tx39_sim/tests/kernel/&Version;/tests -for the TX49based Toshiba REF4995 board: - $ cd BASE_DIR/prebuilt/ref4955/tests/kernel/&Version;/tests -for the VR4300-based NEC VRC4373 board: - $ cd BASE_DIR/prebuilt/vrc4373/tests/kernel/&Version;/tests -for the SH7708-based Hitachi EDK/SH7708 board: - $ cd BASE_DIR/prebuilt/sh7708/tests/kernel/&Version;/tests -for the SH3-based CQ cq7708 board a prebuilt test is provided in: - $ cd BASE_DIR/prebuilt/cq7708/tests/kernel/tests -for the SH4-based CQ cq7750 board a prebuilt test is provided in: - $ cd BASE_DIR/prebuilt/cq7750/tests/kernel/tests -for the SE7751-based Hitachi Solutions Engine board: - $ cd BASE_DIR/prebuilt/se7751/tests/kernel/&Version;/tests -for the SE77x9-based Hitachi Solutions Engine board: - $ cd BASE_DIR/prebuilt/se77x9/tests/kernel/&Version;/tests -for the SPARClite-based Fujitsu MB86800-MA01 board: - $ cd BASE_DIR/prebuilt/sleb/tests/kernel/&Version;/tests -for the SPARClite minimal simulator target: - $ cd BASE_DIR/prebuilt/sparclite_sim/tests/kernel/&Version;/tests -for the i386 PC target: - $ cd BASE_DIR/prebuilt/pc/tests/kernel/&Version;/tests -for the NEC CEB-V850SA1 - $ cd BASE_DIR/prebuilt/ceb_v850/tests/kernel/&Version;/tests -</PROGRAMLISTING><!-- <conditionaltext> --><!-- <conditionaltext> --><!-- <conditionaltext> --> -<PARA>for the i386-based Linux synthetic -target:</PARA> -<PROGRAMLISTING> $ cd BASE_DIR/prebuilt/linux/tests/kernel/&Version;/tests</PROGRAMLISTING> -<PARA>To execute the <LITERAL>thread_gdb</LITERAL> test -case on the desired target, </PARA> -<ORDEREDLIST> -<LISTITEM> -<PARA>Run GDB in command line mode using the following command, -remembering to substitute the appropriate name for the architecture's -gdb, eg. <target>-gdb: </PARA> -<SCREEN>$ gdb -nw thread_gdb</SCREEN> -<PARA>GDB will display a copyright banner and then display a prompt (gdb). </PARA> -</LISTITEM> -<LISTITEM> -<PARA>Connect to the target according to the instructions given -earlier (in <XREF LINKEND="TARGET-SETUP">) -- via serial or ethernet to hardware targets, or directly, for simulator and synthetic -targets. </PARA> -</LISTITEM> -<LISTITEM> -<PARA>Depending on the target type, you will be notified about a successful - connection, and possibly see some output informing you of the current -program counter of the target.</PARA> -</LISTITEM> -<LISTITEM> -<PARA>Download the test - effectively loading the test case -executable into the memory of the target - by typing this command:</PARA> -<PROGRAMLISTING>(gdb) load</PROGRAMLISTING> -<PARA>Again, depending on the target, you may see some output describing -how much data was downloaded, and at what speed. </PARA> -</LISTITEM> -<LISTITEM> -<PARA>Start the test case running. For hardware targets this -is done with the </PARA> -<PROGRAMLISTING>continue</PROGRAMLISTING> -<PARA> command, while </PARA> -<PROGRAMLISTING>run</PROGRAMLISTING> -<PARA> must be used on simulators and synthetic targets:</PARA> -<PROGRAMLISTING>(gdb) continue</PROGRAMLISTING> -<PARA>or</PARA> -<PROGRAMLISTING>(gdb) run</PROGRAMLISTING> -<PARA>You should now see a number of text messages appear, such -as: </PARA> -<PROGRAMLISTING>PASS:<GDB Thread test OK> -EXIT:<done></PROGRAMLISTING> -<NOTE> -<PARA>eCos has no concept of the application exiting. All eCos test -cases complete and then run in a continuous tight loop. To return -control to GDB you must stop the application.</PARA> -<PARA>The usual method of stopping an application is with -<EMPHASIS>Ctrl+C</EMPHASIS> -, but -<EMPHASIS>Ctrl+C</EMPHASIS> - may not work on your platform for the prebuilts. First, make default -tests and check that they work the same way as prebuilts, then modify -your config to enable GDB stubs (if applicable) and break support, -so that a -<EMPHASIS>Ctrl+C</EMPHASIS> - character will interrupt the application.</PARA> -<PARA> Another way to stop the application is by means of a breakpoint. -Before running the application, breakpoint -<FUNCTION>cyg_test_exit()</FUNCTION> - to stop an eCos test case at its end.</PARA> -</NOTE> -<NOTE> -<PARA>When an eCos program is run on ARM or SH3 boards, the GDB - -stub in ROM does not provide thread debugging or asynchronous GDB -interrupt support. If you require full debugging capabilities, you -must include GDB stub support when configuring eCos.</PARA> -</NOTE> -<PARA>The usual method of stopping an application is with <EMPHASIS>Ctrl+C</EMPHASIS>, -but <EMPHASIS>Ctrl+C</EMPHASIS> may not work on your platform -for the prebuilts. First, make default tests and check that they -work the same way as prebuilts, then modify your config to enable GDB -stubs (if applicable) and break support, so that a <EMPHASIS>Ctrl+C</EMPHASIS> character -will interrupt the application.</PARA> -<PARA>Another way to stop the application is by means of a breakpoint. -Before running the application, breakpoint <FUNCTION>cyg_test_exit()</FUNCTION> to -stop an eCos test case at its end.</PARA> -<PARA>The full functionality of GDB is now available to you, including -breakpoints and watchpoints. Please consult the GNUPro GDB -documentation for further information.</PARA> -</LISTITEM> -</ORDEREDLIST> -</CHAPTER> -<CHAPTER ID="TEST-SUITES"> -<TITLE>Test Suites</TITLE> -<PARA>The eCos kernel and other packages have test suites which -rigorously exercise the available features and confirm correct execution. -The tests are run on many different possible configurations, but -the high number of configuration permutations makes it impossible -to test them all. The use of test suites is particularly important -for embedded systems, where software robustness is a priority. All -eCos software is tested prior to shipping, but if you define your -own configuration, you will probably want to verify that the test -cases work for it.</PARA> -<PARA>This release includes <!-- <index></index> --> test suites for the eCos -kernel, kernel C API, C library, µITRON compatibility, -and device driver packages. The use of the test suites is similar -for all packages. The tests are supplied as source code for building -with specific eCos configurations. </PARA> -<PARA>Each test suite consists of a number of test cases which can -be executed individually, as shown below for the TX39, AM31 and -AM33 PowerPC StrongARM SH3, VR4300 SPARClite hardware target, and -all supported ARM platforms, including the Cirrus Logic EP7211 and -EP7212 Development Boards if connecting via a serial line. </PARA> -<PARA>Using the <EMPHASIS>eCos Configuration -Tool</EMPHASIS> it is possible to automate the downloading and execution -of tests with the appropriately configured eCos packages. To do -so, compile and link the test cases by using the <EMPHASIS>Build</EMPHASIS>-><EMPHASIS>Tests</EMPHASIS> menu -item, after which the tests can be downloaded and executed by selecting <EMPHASIS>Tools</EMPHASIS>-><EMPHASIS>Run -Tests. </EMPHASIS>See <XREF LINKEND="RUNNING-APPLICATIONS-ON-THE-TARGET">.</PARA> -<PARA>To compile and run tests using the command line:</PARA> -<ORDEREDLIST> -<LISTITEM> -<PARA>Type “make tests”.</PARA> -</LISTITEM> -<LISTITEM> -<PARA>Start GDB, using the correct command prefix for your platform -(see “GDB and GCC Command Notation” on page 19).</PARA> -</LISTITEM> -<LISTITEM> -<PARA>Set up the baud rate, usually with -<LITERAL>(gdb) set remotebaud 38400 (19200).</LITERAL></PARA> -</LISTITEM> -<LISTITEM> -<PARA>Select the target board, usually with -<LITERAL>(gdb) target remote com1</LITERAL> - on Windows or -<LITERAL>(gdb) target remote /dev/ttyS0</LITERAL> -on Linux.</PARA> -</LISTITEM> -<LISTITEM> -<PARA>download the test program, usually with -<LITERAL>(gdb) load</LITERAL> -. This can take some time.</PARA> -</LISTITEM> -<LISTITEM> -<PARA>execute the test program, usually with -<LITERAL>(gdb) continue</LITERAL>.</PARA> -</LISTITEM> -</ORDEREDLIST> -<PARA>When executing <!-- <index></index> --> -test cases on the Fujitsu SPARClite -Evaluation Board via an TCP connection to the board, the following -steps are required:</PARA> -<ORDEREDLIST> -<LISTITEM> -<PARA>Start GDB using the test case file name as an argument. </PARA> -</LISTITEM> -<LISTITEM> -<PARA>connect to the target board with -<LITERAL>(gdb) target remote xxx:1000</LITERAL> - where xxx is the IP address or hostname assigned to the board. </PARA> -</LISTITEM> -<LISTITEM> -<PARA>download the test program with -<LITERAL>(gdb) load.</LITERAL></PARA> -</LISTITEM> -<LISTITEM> -<PARA>execute the test program with -<LITERAL>(gdb) continue.</LITERAL></PARA> -</LISTITEM> -</ORDEREDLIST> -<PARA>When executing test cases on the Cirrus Logic EP7211 or EP7212 -Development Boards and connecting with the ARM Multi-ICE Interface -Unit, follow the instructions in the manual GNUPro Toolkit reference -for eCos ARM/Thumb.</PARA> -<PARA>When executing test cases on the Linux synthetic target, it -is possible to run them directly from the command line. If debugging -is needed, only the following steps are required:</PARA> -<ORDEREDLIST> -<LISTITEM> -<PARA>start GDB using the test case file name as an argument</PARA> -</LISTITEM> -<LISTITEM> -<PARA>execute the test program with <LITERAL>(gdb) run</LITERAL></PARA> -</LISTITEM> -</ORDEREDLIST> -<PARA>Each test case runs without further intervention. A test case -may involve one or more individual tests. Successful completion -of each test within the test case is reported as a line of text -that is sent to the diagnostic channel (usually the serial port) -for display on a terminal or terminal emulator.</PARA> -<PARA>Each test case runs only once and usually requires the target -hardware to be reset on completion. Note that certain test cases -may not terminate immediately, especially if they involve delays -and run on the target simulators.</PARA> -<PARA>In the CD distribution of the eCos Developer’s Kit, -the test cases are located as follows:</PARA> -<ITEMIZEDLIST> -<LISTITEM> -<PARA>one prebuilt “thread_gdb” test -compiled for <!-- <index></index> --> -RAM start-up (needs CygMon or an eCos GDB stub in ROM, and will -only run on real hardware):</PARA> -<LITERALLAYOUT CLASS="MONOSPACED">BASE_DIR/prebuilt/&Version;/mn10300_am31-stdeval-ram for the MN10300 AM31 standard evaluation board. -BASE_DIR/prebuilt/&Version;/mn10300_am33-stb-ram for the AM33 STB system reference board. -BASE_DIR/prebuilt/&Version;/tx39-jmr3904-ram for the TX39. -BASE_DIR/prebuilt/&Version;/powerpc-cogent-ram for the PowerPC Cogent board. -BASE_DIR/prebuilt/&Version;/powerpc-mbx-ram for the PowerPC MBX860 board. -BASE_DIR/prebuilt/&Version;/sparclite-sleb-ram for the SPARClite. -BASE_DIR/prebuilt/&Version;/arm-pid-ram for the ARM PID board. -BASE_DIR/prebuilt/&Version;/arm-pidT-ram for the ARM PID in Thumb mode. -BASE_DIR/prebuilt/&Version;/arm-aeb-ram for the ARM AEB-1 board. -BASE_DIR/prebuilt/&Version;/arm-cma230-ram for the Cogent CMA230 board. -BASE_DIR/prebuilt/&Version;/arm-edb7xxx-ram for the Cirrus Logic EP7211 development board -BASE_DIR/prebuilt/&Version;/arm-pid-ram for the VR4300. -BASE_DIR/prebuilt/&Version;/sh-edk7708-ram for the SH3 in big-endian mode. -BASE_DIR/prebuilt/&Version;/sh-edk7708le-ram for the SH3 in little-endian mode. - </LITERALLAYOUT> -</LISTITEM> -<LISTITEM> -<PARA>one prebuilt “thread_gdb” test -compiled for<!-- <index></index> --> -ROM start-up:</PARA> -<LITERALLAYOUT CLASS="MONOSPACED">BASE_DIR/prebuilt/&Version;/mn10300_am31-stdeval-rom for the MN10300 AM31 standard evaluation board. -BASE_DIR/prebuilt/&Version;/mn10300_am33-stb-rom for the AM33 STB system reference board. -BASE_DIR/prebuilt/&Version;/tx39-jmr3904-rom for the TX39. -BASE_DIR/prebuilt/&Version;/powerpc-cogent-rom for the PowerPC Cogent board. -BASE_DIR/prebuilt/&Version;/powerpc-mbx-rom for the PowerPC MBX860 board. -BASE_DIR/prebuilt/&Version;/sparclite-sleb-rom for the SPARClite. -BASE_DIR/prebuilt/&Version;/arm-pid-rom for the ARM PID board. -BASE_DIR/prebuilt/&Version;/arm-pidT-rom for the ARM in Thumb mode. -BASE_DIR/prebuilt/&Version;/arm-aeb-rom for the ARM AEB-1 board. -BASE_DIR/prebuilt/&Version;/arm-cma230-rom for the ARM CMA230 board. -BASE_DIR/prebuilt/&Version;/arm-edb7xxx-rom for the Cirrus Logic EP7211 development board -BASE_DIR/prebuilt/&Version;/mips_vr4300-vrc4373-rom for the VR4300. -BASE_DIR/prebuilt/&Version;/sh-edk7708-rom for the SH3 in big-endian mode. -BASE_DIR/prebuilt/&Version;/sh-edk7708le-rom for the SH3 in little-endian mode.</LITERALLAYOUT> -<NOTE> -<PARA>For targets that do not have simulator support, the ROM tests - will work if programmed into ROM/FLASH, or if using a PROM - emulator.</PARA> -</NOTE> -</LISTITEM> -<LISTITEM> -<PARA>one prebuilt <!-- <index></index> --> -synthetic target test (will work on Linux only): -<LITERAL>BASE_DIR/prebuilt/&Version;/i386-linux</LITERAL> -for i386.</PARA> -<PARA>test case source code is under the base source directory BASE_DIR/packages -/</PARA> -<ITEMIZEDLIST> -<LISTITEM> -<PARA><FILENAME>compat/uitron/&Version;/tests</FILENAME></PARA> -</LISTITEM> -<LISTITEM> -<PARA><FILENAME>io/serial/&Version;/tests</FILENAME></PARA> -</LISTITEM> -</ITEMIZEDLIST> -</LISTITEM> -<LISTITEM> -<PARA><FILENAME>hal/powerpc/arch/&Version;/test</FILENAME></PARA> -<ITEMIZEDLIST> -<LISTITEM> -<PARA><FILENAME>devs/wallclock/&Version;/tests</FILENAME></PARA> -</LISTITEM> -<LISTITEM> -<PARA><FILENAME>devs/watchdog/&Version;/tests</FILENAME></PARA> -</LISTITEM> -<LISTITEM> -<PARA><FILENAME>kernel/&Version;/tests</FILENAME></PARA> -</LISTITEM> -<LISTITEM> -<PARA><FILENAME>language/c/libc/&Version;/tests</FILENAME></PARA> -</LISTITEM> -<LISTITEM> -<PARA><FILENAME>language/c/libm/&Version;/tests</FILENAME></PARA> -</LISTITEM> -</ITEMIZEDLIST> -</LISTITEM> -</ITEMIZEDLIST> -<PARA>In <XREF LINKEND="RUNNING-APPLICATIONS-ON-THE-TARGET"> you - will find detailed instructions on running a test case to - verify that your hardware board is working with the supplied - software. Instructions for testing on a simulator are in <XREF LINKEND="RUNNING-AN-ECOS-TEST-CASE">.</PARA> -</CHAPTER> -</PART> -<PART ID="PROGRAMMING-TUTORIAL"> -<TITLE><!-- <conditionaltext> --><!-- <xref> --><!-- <index></index> -->Programming Tutorial</TITLE> -<CHAPTER ID="PROGRAMMING-WITH-ECOS"> -<TITLE>Programming with eCos</TITLE> -<PARA>The remaining chapters of this manual comprise a simple tutorial -for configuring and building eCos, building and running eCos tests, -and finally building three stand-alone example programs which use -the eCos API to perform some simple tasks.</PARA> -<PARA>You will need a properly installed eCos system, with the accompanying -versions of the GNUPro tools.<!-- <conditionaltext> --> -On Windows you will -be using the bash command line interpreter that comes with Cygwin, -with the environment variables set as described in the GNUPro documentation.</PARA> -<SECT1 id="development-process"> -<TITLE>The Development Process</TITLE> -<PARA>Most development projects using eCos would contain some (or -most) of the following:</PARA> -<SECT2> -<TITLE>eCos Configuration</TITLE> -<PARA>eCos is configured to provide the desired API (the inclusion -of libc, uitron, and the disabling of certain undesired funtions, -etc.), and semantics (selecting scheduler, mutex behavior, etc.). -See <XREF LINKEND="CONFIGURING-AND-BUILDING-ECOS-FROM-SOURCE">.</PARA> -<PARA>It would normally make sense to enable eCos assertion checking -at this time as well, to catch as many programming errors during -the development phase as possible.</PARA> -<PARA>Note that it should not be necessary to spend much time on -eCos configuration initially. It may be important to perform fine -tuning to reduce the memory footprint and to improve performance -later when the product reaches a testable state.</PARA> -</SECT2> -<SECT2> -<TITLE> Integrity check of the eCos configuration</TITLE> -<PARA>While Red Hat strive to thoroughly test eCos, the vast number -of configuration permutations mean that the particular configuration -parameters used for your project may not have been tested. Therefore, -we advise running all the eCos tests after the project's -eCos configuration has been determined. See <XREF LINKEND="TEST-SUITES">.</PARA> -<PARA>Obviously, this should be repeated if the configuration changes -later on in the development process.</PARA> -</SECT2> -<SECT2> -<TITLE> Application Development - Target Neutral Part</TITLE> -<PARA>While your project is probably targeting a specific architecture -and platform, possibly custom hardware, part of the application -development may be possible to perform using simulated or synthetic -targets.</PARA> -<PARA>There are two primary reasons for doing this:</PARA> -<ITEMIZEDLIST> -<LISTITEM> -<PARA>It may be possible by this means to perform application -development in parallel with the design/implementation -of the target hardware, thus providing more time for developing -and testing functionality, and reducing time-to-market.</PARA> -</LISTITEM> -<LISTITEM> -<PARA>The build-run-debug-cycle may be faster when the application -does not have to be downloaded to a target via a serial interface. -Debugging is also likely to be more responsive when you do not have -to to communicate with a stub via serial. It also removes the need -for manually or automatically resetting the target hardware.</PARA> -</LISTITEM> -</ITEMIZEDLIST> -<PARA>This is approach is possible because all targets (including -simulators and synthetic ones) provide the same basic API: that -is, kernel, libc, libm, uitron, infra, and to some extent, HAL and -IO.</PARA> -<PARA>Synthetic targets are especially suitable as they allow you -to jury-rig simulations of elaborate devices by interaction with -the host system, where an IO device API can hide the details from -the application. When switching to hardware later in the development -cycle, the IO driver is properly implemented. While this is possible -to do, and has been done, it is not specifically documented or supported -by Red Hat. It may become so later.</PARA> -<PARA>Therefore, select a simulator or synthetic target and use -it for as long as possible doing application development. That is, -configure for the selected target, build eCos, build the application -and link with eCos, run and debug. Repeat the latter two steps.</PARA> -<PARA>Obviously, at some time you will have to switch to the intended -target hardware, for example when adding target specific feature -support, for memory footprint/performance characterization, -and for final tuning of eCos and the application.</PARA> -</SECT2> -<SECT2> -<TITLE> Application Development - Target Specific Part</TITLE> -<PARA>Repeat the build-run-debug-cycle while performing final tuning -and debugging of application. Remember to disable eCos assertion -checking, as it reduces performance.</PARA> -<PARA>It may be useful to switch between this and the previous step -repeatedly through the development process; use the simulator/synthetic -target for actual development, and use the target hardware to continually -check memory footprint and performance. There should be little cost -in switching between the two targets when using two separate build -trees. </PARA> -</SECT2> -</SECT1> -</CHAPTER> - -<!-- ==================================================== --> - -<CHAPTER ID="CONFIGURING-AND-BUILDING-ECOS-FROM-SOURCE"><!-- <conditionaltext> --> -<TITLE><!-- <xref> --><!-- <index></index> -->Configuring and Building eCos from Source</TITLE> - -<PARA>This chapter documents the configuration of eCos, using the -ARM PID board as an example. The process is the same for any of -the other supported targets: you may select a hardware target (if -you have a board available), any one of the simulators, or a synthetic -target (if your host platform has synthetic target support).</PARA> - -<PARA>At the end of the chapter is a section describing special -issues for this architecture which may affect the way you should -configure eCos for your target.</PARA> - - -<!-- ==================================================== --> - -<SECT1 id="ecos-startup-configs"> -<TITLE><!-- <xref> -->eCos Start-up Configurations</TITLE> - -<PARA>There are various ways to download an executable image to -a target board, and these involve different ways of preparing the -executable image. In the eCos Hardware Abstraction Layer (HAL package) -there are configuration options to support the different download -methods. The following table summarizes the ways in which an eCos -image can be prepared for different types of download. </PARA> - -<PARA><!-- <conditionaltext> --> <!-- NOTE: could not find it --></PARA> - -<TABLE> -<TITLE>Configuration for various download methods</TITLE> -<TGROUP COLS="2"> -<THEAD> -<ROW> -<ENTRY>Download method</ENTRY> -<ENTRY>HAL configuration</ENTRY> -</ROW> -</THEAD> -<TBODY> -<ROW> -<ENTRY>Burn hardware ROM</ENTRY> -<ENTRY> ROM start-up</ENTRY> -</ROW> -<ROW> -<ENTRY>Download to ROM emulator</ENTRY> -<ENTRY> ROM start-up</ENTRY> -</ROW> -<ROW> -<ENTRY>Download to board with CygMon or GDB stub ROM</ENTRY> -<ENTRY> RAM start-up</ENTRY> -</ROW> -<ROW> -<ENTRY>Download to simulator without CygMon or GDB stub ROM</ENTRY> -<ENTRY> ROM start-up</ENTRY> -</ROW> -<ROW> -<ENTRY>Download to simulator with CygMon</ENTRY> -<ENTRY> RAM start-up</ENTRY> -</ROW> -<ROW> -<ENTRY>Download to simulator ignoring devices</ENTRY> -<ENTRY> SIM configuration</ENTRY> -</ROW> -<ROW> -<ENTRY>Run synthetic target</ENTRY> -<ENTRY> RAM start-up</ENTRY> -</ROW> -</TBODY> -</TGROUP> -</TABLE> -<CAUTION> - -<PARA>You cannot run an application configured for RAM start-up -on the simulator directly: it will fail during start-up. You can -only download it to the simulator if -you are already running CygMon (or a GDB stub) in the simulator, -as described in the GNUPro documentation -or you load through the -<EMPHASIS>SID </EMPHASIS> -GDB debugging component. This is not the same as the simulated -stub, since it does not require a target program to be running to -get GDB to talk to it. It can be done before letting the simulator -run -or you use the ELF loader component to get a program into memory.</PARA> -</CAUTION><!-- <label> --><!-- <conditionaltext> --><!-- NOTE</label> --> - -<NOTE> -<PARA>Configuring eCos' HAL package for simulation should -rarely be needed for real development; binaries built with such -a kernel will not run on target boards at all,<!-- <conditionaltext> --> -and the MN10300 and -TX39 simulators can run binaries built for stdeval1 and jmr3904 -target boards. -The main use for a ``simulation'' configuration -is if you are trying to work around problems with the device drivers -or with the simulator. Also note that when using a TX39 system configured -for simulator start-up you should then invoke the simulator with -the <OPTION>--board=jmr3904pal</OPTION> -option instead of -<OPTION>--board=jmr3904</OPTION><!-- <conditionaltext> --></PARA> -</NOTE> - -<NOTE> -<PARA>If your chosen architecture does not have simulator support, -then the combinations above that refer to the simulator do not apply. -Similarly, if your chosen platform does not have CygMon or GDB stub -ROM support, the combinations listed above that use CygMon or GDB -stub ROMs do not apply.</PARA> -</NOTE> - -<PARA>The debugging environment for most developers will be either -a hardware board or the simulator, in which case they will be able -to select a single HAL configuration.</PARA> -<PARA>More information on the interactions between CygMon, the simulators, and GDB's -thread-aware debugging features is available in the GNUPro Reference Manual -for your specific architecture. </PARA> -</SECT1> - -<!-- ==================================================== --> - -<SECT1 id="using-configtool-windows-unix"> -<TITLE><!-- <xref> -->Using the <!-- <index></index> --> -Configuration Tool on Windows and UNIX</TITLE> -<PARA><!-- <conditionaltext> --> - -Note that the use of the <EMPHASIS>Configuration -Tool</EMPHASIS> is described in detail in the <EMPHASIS>eCos User's -Guide</EMPHASIS>.</PARA> - -<PARA>The <EMPHASIS>Configuration Tool</EMPHASIS> (see <XREF LINKEND="FIGURE-CONFIGURATION-TOOL">) -has five main elements: the <EMPHASIS>configuration window</EMPHASIS>, -the <emphasis>conflicts window</emphasis>, -the <EMPHASIS>properties window</EMPHASIS>, the <!-- <xref> --><EMPHASIS>short -description window</EMPHASIS>, -and the <EMPHASIS>output window</EMPHASIS>.</PARA> - -<FIGURE ID="FIGURE-CONFIGURATION-TOOL"> -<TITLE>Configuration Tool</TITLE><!-- <xref> --> -<GRAPHIC ENTITYREF="graphic1"></GRAPHIC> -</FIGURE> - -<PARA>Start by opening the templates window via <GUIMENUITEM>Build->Templates</GUIMENUITEM>. -Select the desired target (see <XREF LINKEND="FIGURE-TEMPLATE-SELECTION">).</PARA> - -<FIGURE ID="FIGURE-TEMPLATE-SELECTION"> -<TITLE>Template selection</TITLE><!-- <xref> --> -<GRAPHIC ENTITYREF="graphic2"></GRAPHIC> -</FIGURE> - -<PARA>Make sure that the configuration is correct for the target -in terms of endianness, CPU model, Startup type, etc. (see <XREF LINKEND="CONFIGURING-FOR-THE-TARGET">).</PARA> - -<FIGURE ID="CONFIGURING-FOR-THE-TARGET"> -<TITLE><!-- <conditionaltext> --><!-- <xref> -->Configuring -for the target</TITLE> -<GRAPHIC ENTITYREF="graphic3"></GRAPHIC> -</FIGURE> - -<PARA>Next, select the <EMPHASIS>Build->Library</EMPHASIS> menu -item to start building eCos (see <XREF LINKEND="FIGURE-SELECTING-THE-BUILD-LIBRARY-MENU-ITEM">). -The application will -configure the sources, prepare a build tree, and build the <FILENAME>libtarget.a</FILENAME> library, -which contains the eCos kernel and other packages.</PARA> - -<PARA>The output from the configuration process and the building -of <EMPHASIS>libtarget.a</EMPHASIS> will be shown in the output -window.</PARA> - -<PARA>Once the build process has finished you will have a kernel -with other packages in <FILENAME>libtarget.a</FILENAME>. You should -now build the eCos tests for your particular configuration. </PARA> - -<PARA>Select <EMPHASIS>Build</EMPHASIS>-><EMPHASIS>Batch -Build</EMPHASIS>-><EMPHASIS>Build</EMPHASIS> to build the -test project.</PARA><!-- <conditionaltext> --> -<FIGURE ID="FIGURE-SELECTING-THE-BUILD-LIBRARY-MENU-ITEM"><!-- <xref> --> -<TITLE>Selecting the Build Library menu item</TITLE> -<GRAPHIC ENTITYREF="graphic4"></GRAPHIC> -</FIGURE> - -<PARA>The <EMPHASIS>Save As</EMPHASIS> dialog box will appear, asking -you to specify a directory in which to place your save file. You -can use the default, but it is a good idea to make a subdirectory, -called <EMPHASIS>ecos-work</EMPHASIS> for example. </PARA> - -<FIGURE> -<TITLE>Save file dialog</TITLE> -<GRAPHIC ENTITYREF="graphic5"></GRAPHIC> -</FIGURE> - -<PARA>The first time you build an eCos library for a specific architecture, -the <EMPHASIS>Configuration Tool</EMPHASIS> may prompt you for the -location of the appropriate build tools (including make and gcc) -using a <EMPHASIS>Build Tools</EMPHASIS> dialog box (as shown in <XREF LINKEND="FIGURE-BUILD-TOOLS-DIALOG">). You can select a location from the drop down list, -browse to the directory using the <EMPHASIS>Browse</EMPHASIS> button, -or type in the location of the build tools manually.</PARA> - -<FIGURE ID="FIGURE-BUILD-TOOLS-DIALOG"><!-- <xref> --> -<TITLE>Build tools dialog</TITLE> -<GRAPHIC ENTITYREF="graphic6"></GRAPHIC> -</FIGURE> - -<PARA>The <EMPHASIS>Configuration Tool</EMPHASIS> may also prompt -you for the location of the user tools (such as cat and ls) using -a User Tools dialog box (as shown in <XREF LINKEND="FIGURE-USER-TOOLS-DIALOG">). As with -the <EMPHASIS>Build Tools</EMPHASIS> dialog, you can select a location -from the drop down list, browse to the directory using the <EMPHASIS>Browse</EMPHASIS> button, -or type in the location of the user tools manually. Note that on UNIX, this will often be unnecessary -as the tools will already be on your PATH.</PARA> - -<FIGURE ID="FIGURE-USER-TOOLS-DIALOG"><!-- <xref> --> -<TITLE>User tools dialog</TITLE> -<GRAPHIC ENTITYREF="graphic7"></GRAPHIC> -</FIGURE> - -<PARA>When the tool locations have been entered, the <EMPHASIS>Configuration -Tool</EMPHASIS> will configure the sources, prepare a build tree, -and build the <EMPHASIS>libtarget.a</EMPHASIS> library, which contains -the eCos kernel and other packages.</PARA> - -<PARA>The output from the configuration process and the building -of <EMPHASIS>libtarget.a</EMPHASIS> will be shown in the output -window. </PARA> - -<PARA>Once the build process has finished you will have a kernel -with other packages in <EMPHASIS>libtarget.a</EMPHASIS>. You should -now build the eCos tests for your particular configuration. </PARA> - -<PARA>You can do this by selecting <EMPHASIS>Build</EMPHASIS> -> <EMPHASIS>Tests</EMPHASIS>. -Notice that you could have selected <EMPHASIS>Tests</EMPHASIS> instead -of <EMPHASIS>Library</EMPHASIS> in the earlier step and it would -have built <EMPHASIS>both</EMPHASIS> the library and the tests, -but this would increase the build time substantially, and if you -do not need to build the tests it is unnecessary.</PARA> - -<FIGURE> -<TITLE>Selecting the Build Tests menu item</TITLE> -<GRAPHIC ENTITYREF="graphic8"></GRAPHIC> -</FIGURE> -<PARA><XREF LINKEND="TEST-SUITES"> will - guide you through running one of the test cases you just - built on the selected target, using GDB. </PARA> -</SECT1> - -<!-- ==================================================== --> - -<SECT1 ID="USING-ECOSCONFIG-ON-UNIX"> -<TITLE><!-- <xref> -->Using <!-- <index></index> --> -ecosconfig on Windows and UNIX</TITLE> - -<PARA>As an alternative to using the graphical <PRODUCTNAME>Configuration Tool</PRODUCTNAME>, -it is still possible to configure and build -a kernel by editing a configuration file manually and using the <EMPHASIS>ecosconfig</EMPHASIS> command. </PARA> - -<PARA>The following instructions assume that the PATH and ECOS_REPOSITORY environment -variables have been setup correctly as described in <XREF LINKEND="SOFTWARE-INSTALLATION-ON-UNIX">. -They also assume UNIX usage but equally well apply to Windows running Cygwin.</PARA> - -<PARA>Before invoking <EMPHASIS>ecosconfig</EMPHASIS> you need to -choose a directory in which to work. For the purposes of this tutorial, -the default path will be <FILENAME>BASE_DIR/ecos-work</FILENAME>. -Create this directory and change to it by typing: </PARA> - -<PROGRAMLISTING>$ mkdir BASE_DIR/ecos-work -$ cd BASE_DIR/ecos-work</PROGRAMLISTING> - -<PARA>To see what options can be used with <EMPHASIS>ecosconfig</EMPHASIS>, -type: </PARA> - -<PROGRAMLISTING>$ ecosconfig --help</PROGRAMLISTING> - -<PARA>The available packages, targets and templates may be listed -as follows:</PARA> - -<PROGRAMLISTING>$ ecosconfig list</PROGRAMLISTING> - -<PARA>Here is sample output from <EMPHASIS>ecosconfig</EMPHASIS> showing -the usage message.</PARA> - -<EXAMPLE> -<TITLE>Getting <!-- <index></index> --> -help from ecosconfig</TITLE> - -<PROGRAMLISTING>$ ecosconfig --help -Usage: ecosconfig [ qualifier ... ] [ command ] - commands are: - list : list repository contents - new TARGET [ TEMPLATE [ VERSION ] ] : create a configuration - target TARGET : change the target hardware - template TEMPLATE [ VERSION ] : change the template - add PACKAGE [ PACKAGE ... ] : add package(s) - remove PACKAGE [ PACKAGE ... ] : remove package(s) - version VERSION PACKAGE [ PACKAGE ... ] : change version of package(s) - export FILE : export minimal config info - import FILE : import additional config info - check : check the configuration - resolve : resolve conflicts - tree : create a build tree - qualifiers are: - --config=FILE : the configuration file - --prefix=DIRECTORY : the install prefix - --srcdir=DIRECTORY : the source repository - --no-resolve : disable conflict -resolution - --version : show version and copyright -$</PROGRAMLISTING> -</EXAMPLE> - -<EXAMPLE> - -<TITLE>ecosconfig output — <!-- <index></index> --> -list of available packages, targets and templates</TITLE> - -<PROGRAMLISTING>$ ecosconfig list -Package CYGPKG_CYGMON (CygMon support via eCos): -aliases: cygmon -versions: &Version; -Package CYGPKG_DEVICES_WALLCLOCK_DALLAS_DS1742 (Wallclock driver for Dallas 1742): -aliases: devices_wallclock_ds1742 device_wallclock_ds1742 -versions: &Version; -Package CYGPKG_DEVICES_WALLCLOCK_SH3 (Wallclock driver for SH3 RTC module): -aliases: devices_wallclock_sh3 device_wallclock_sh3 -versions: &Version; -Package CYGPKG_DEVICES_WATCHDOG_ARM_AEB (Watchdog driver for ARM/AEB board): -aliases: devices_watchdog_aeb device_watchdog_aeb -versions: &Version; -Package CYGPKG_DEVICES_WATCHDOG_ARM_EBSA285 (Watchdog driver for ARM/EBSA285 board): -aliases: devices_watchdog_ebsa285 device_watchdog_ebsa285 -versions: &Version; -… -</PROGRAMLISTING> -</EXAMPLE> - -<PARA>For detailed information about how to edit the ecos.ecc file, -see the <EMPHASIS>CDL Writer's Guide</EMPHASIS> and <EMPHASIS>Editing -an eCos Savefile</EMPHASIS> in the <EMPHASIS>eCos User's -Guide</EMPHASIS>.</PARA> - -<SECT2> -<TITLE>Selecting a <!-- <index></index> --> -Target</TITLE> - -<PARA>To select the MN10300 (AM31) target, building for running -under the simulator, type: </PARA> - -<PROGRAMLISTING>$ tclsh BASE_DIR/packages/pkgconf.tcl --target=mn10300 --platform=stdeval1 --startup=rom</PROGRAMLISTING> - -<PARA>To select the AM33 target, the STB reference board platform, -and RAM start-up, type: </PARA> - -<PROGRAMLISTING>$ tclsh BASE_DIR/packages/pkgconf.tcl --target=am33 --platform=stb --startup=ram</PROGRAMLISTING> -<PARA>To select the TX39 target, building for running under the -simulator, type: </PARA> - -<PROGRAMLISTING>$ tclsh BASE_DIR/packages/pkgconf.tcl --target=tx39 --platform=jmr3904 --startup=rom</PROGRAMLISTING> -<PARA>To configure for a PowerPC target, building for running under -the simulator, type: </PARA> - -<PROGRAMLISTING>$ tclsh BASE_DIR/packages/pkgconf.tcl --target=powerpc --platform=sim --startup=ram</PROGRAMLISTING> -<PARA>To configure for a SPARClite target, building for running -under the simulator, type: </PARA> - -<PROGRAMLISTING>$ tclsh BASE_DIR/packages/pkgconf.tcl --target=sparclite --platform=sim --startup=ram</PROGRAMLISTING> -<PARA><!-- <conditionaltext> -->To configure for a listed target, type: </PARA> - -<PROGRAMLISTING>$ ecosconfig new <target></PROGRAMLISTING> -<PARA>For example, to configure for the ARM PID development board, -type: </PARA> - -<PROGRAMLISTING>$ ecosconfig new pid</PROGRAMLISTING> - -<PARA>Then edit the generated file, <FILENAME>ecos.ecc</FILENAME>, -setting the options as required for the target (endianess, CPU model, -Startup type, etc.)</PARA> - -<PARA>Create a build tree for the configured target by typing:</PARA> - -<PROGRAMLISTING>$ ecosconfig tree</PROGRAMLISTING> - -<PARA>You can now run the command <EMPHASIS>make</EMPHASIS> or <EMPHASIS>make -tests</EMPHASIS>, after which you will be at the same point you -would be after running the <PRODUCTNAME>Configuration Tool</PRODUCTNAME> on -Windows— you can start developing your own applications, -following the steps in <XREF LINKEND="BUILDING-AND-RUNNING-SAMPLE-APPLIATIONS">. </PARA> - -<PARA>The procedure shown above allows you to do very coarse-grained -configuration of the eCos kernel: you can select which packages -to include in your kernel, and give target and start-up options. -But you cannot select components within a package, or set the very -fine-grained options. </PARA> - -<PARA>To select fine-grained configuration options you will need -to edit the configuration file ecos.ecc in the current directory -and regenerate the build tree.</PARA> - -<CAUTION> -<PARA>You should follow the manual configuration process described -above very carefully, and you should read the comments in each file -to see when one option depends on other options or packages being -enabled or disabled. If you do not, you might end up with an inconsistently -configured kernel which could fail to build or might execute - incorrectly.</PARA> -</CAUTION> - -</SECT2> -</SECT1> - -<!-- ==================================================== --> - -<SECT1 id="architectural-notes"> -<TITLE>Architectural Notes</TITLE> -<SECT2> -<TITLE>ARM and Thumb Interworking</TITLE> -<PARA>While GNUPro tools allow ARM and Thumb code to be mixed on -a per-object basis, the eCos library (libtarget.a) must be compiled -in whole for either ARM or Thumb. This is controlled by the "Enable -Thumb instruction set" (CYGHWR_THUMB) switch. Note that -not all targets have support for Thumb mode execution.</PARA> -<PARA>Adding <OPTION>-mthumb-interwork</OPTION> to -the architecture options will allow the library to be linked with -the application code of either ARM or Thumb type - or a mix. See -the ARM GNUPro manuals for details about ARM and Thumb mode interworking.</PARA> -</SECT2> -<SECT2> -<TITLE>CPU Family Model</TITLE> -<PARA>Some targets can be equipped with either an ARM7 or an ARM9 -daughter CPU module. The "ARM CPU family" (CYGHWR_HAL_ARM_CPU_FAMILY) option - should be set accordingly.</PARA> -<PARA>Changing this option primarily affects compiler optimization -in this release.</PARA> -</SECT2> -<SECT2> -<TITLE>CPU Endian Mode</TITLE> -<PARA>Some targets support either little or big endian operation. -The "Use big-endian mode" (CYGHWR_HAL_ARM_BIGENDIAN) -option should be set accordingly.</PARA> -</SECT2> -</SECT1> - -<!-- ==================================================== --> - -</CHAPTER> -<CHAPTER ID="TEST-SUITES-AGAIN"><!-- <conditionaltext> --><!-- NOTE: hmm, nothing there --> -<TITLE><!-- <xref> -->Test <!-- <index></index> -->Suites</TITLE> -<PARA>The eCos kernel and other packages have test suites that rigorously -exercise the available features and confirm correct execution. The - tests are run on many different possible configurations, but the -high number of configuration permutations makes it impossible to -test them all. The use of test suites is particularly important -for embedded systems, where software robustness is a priority. All -eCos software is tested prior to shipping, but if you define your -own configuration, you will probably want to verify that the test -cases work for it.</PARA> -<PARA>This release includes test suites for the eCos kernel, kernel -C API, C library, ITRON compatibility, and device driver packages. -The use of the test suites is similar for all packages. The tests -are supplied as source code for building with your specific eCos - configurations. The test case source code is located under the base -source directory BASE_DIR/packages/:</PARA> -<ITEMIZEDLIST> -<LISTITEM> -<PARA>compat/uitron/&Version;/tests - </PARA> -</LISTITEM> -<LISTITEM> -<PARA>hal/common/&Version;/tests - </PARA> -</LISTITEM> -<LISTITEM> -<PARA>io/serial/&Version;/tests - </PARA> -</LISTITEM> -<LISTITEM> -<PARA>io/wallclock/&Version;/tests - </PARA> -</LISTITEM> -<LISTITEM> -<PARA>devs/watchdog/&Version;/tests - </PARA> -</LISTITEM> -<LISTITEM> -<PARA>kernel/&Version;/tests </PARA> -</LISTITEM> -<LISTITEM> -<PARA>language/c/libc/&Version;/tests - </PARA> -</LISTITEM> -<LISTITEM> -<PARA>language/c/libm/&Version;/tests</PARA> -</LISTITEM> -</ITEMIZEDLIST> -<PARA> There may be additional tests found in other packages.</PARA> -<PARA>Each test suite consists of a number of test cases which can -be executed individually. A test case may involve one or more individual - tests of the package's features. Successful completion -of each test within the test case is reported as a line of text -that is sent to the diagnostic channel (usually the serial port) -for display on a terminal or terminal emulator.</PARA> -<PARA>Each test case runs only once and usually requires target -hardware to be reset on completion. Note that certain test cases -may not terminate immediately, especially if they involve delays -and run on a target simulator.</PARA> - -<!-- ==================================================== --> - -<SECT1 id="using-configtool"> -<TITLE>Using the Configuration Tool</TITLE> - -<PARA>Using the eCos Configuration Tool it is possible to automate -the downloading and execution of tests with the appropriately configured -eCos packages. To do so, compile and link the test cases by using -the <EMPHASIS>Build->Tests</EMPHASIS> menu item, after -which the tests can be downloaded and executed by selecting <EMPHASIS>Tools->Run -Tests</EMPHASIS>.</PARA> -<PARA>When a test run is invoked, a resizable property sheet is -displayed, comprising three tabs: <EMPHASIS>Executables</EMPHASIS>, <EMPHASIS>Output</EMPHASIS> and <EMPHASIS>Summary</EMPHASIS>.</PARA> -<PARA>Three buttons appear on the property sheet itself: <EMPHASIS>Run/Stop</EMPHASIS>, <EMPHASIS>Close</EMPHASIS> and <EMPHASIS>Properties</EMPHASIS>.</PARA> -<PARA>The <EMPHASIS>Run</EMPHASIS> button is used to initiate a -test run. Those tests selected on the Executables tab are run, -and the output recorded on the <EMPHASIS>Output</EMPHASIS> and <EMPHASIS>Summary</EMPHASIS> tabs. -During the course of a run, the <EMPHASIS>Run</EMPHASIS> button -changes to <EMPHASIS>Stop</EMPHASIS>. This button may be used to -interrupt a test run at any point.</PARA> -<PARA>See the <EMPHASIS>eCos User's Guide</EMPHASIS> for -further details.</PARA> -</SECT1> - -<!-- ==================================================== --> - -<SECT1 id="using-commandline"> -<TITLE>Using the command line</TITLE> -<PARA>It may be necessary to run tests by hand if the automated -tool finds any failing tests: it may be necessary to diagnose the -problem by debugging the test.</PARA> -<PARA>Build the tests by typing ‘make tests' in -the root of the build directory. This will cause the tests to be -built and installed under <FILENAME><install-path>/tests/</FILENAME>.</PARA> -<PARA>Running the test manually is done simply by invoking GDB, -connecting to the target, downloading the test, optionally setting -some breakpoints, and then running the test. All this was covered -in <XREF LINKEND="TARGET-SETUP">.</PARA> -</SECT1> - -<!-- ==================================================== --> - -<SECT1 id="testing-filters"> -<TITLE>Testing Filters</TITLE> -<PARA>While most test cases today run solely in the target environment, -some packages may require external testing infrastructure and/or -feedback from the external environment to do complete testing.</PARA> -<PARA>The serial package is an example of this. It is the first -package to require external testing infrastructure, but it will -certainly not be the last.</PARA> -<PARA>Since the serial line is also used for communication with -GDB, a filter is inserted in the communication pathway between -GDB and the serial device which is connected to the hardware target. -The filter forwards all communication between the two, but also -listens for special commands embedded in the data stream from the -target.</PARA> -<PARA>When such a command is seen, the filter stops forwarding data -to GDB from the target and enters a special mode. In this mode -the test case running on the target is able to control the filter, -commanding it to run various tests. While these tests run, GDB is -isolated from the target.</PARA> -<PARA>As the test completes (or if the filter detects a target crash) -the communication path between GDB and the hardware target is re-established, -allowing GDB to resume control.</PARA> -<PARA>In theory, it is possible to extend the filter to provide -a generic framework for other target-external testing components, -thus decoupling the testing infrastructure from the (possibly limited) -communication means provided by the target (serial, JTAG, Ethernet, -etc). </PARA> -<PARA>Another advantage is that the host tools will not need to -know about the various testing environments required by the eCos -packages, since all contact with the target will continue to happen -via GDB.</PARA> -<PARA>It remains to be seen if it will be possible, or sensible, -to implement all target-external testing infrastructure via filters.</PARA> -</SECT1> - -<!-- ==================================================== --> - -</CHAPTER> -<CHAPTER ID="RUNNING-AN-ECOS-TEST-CASE"> -<TITLE>Running an eCos Test Case</TITLE> -<PARA>In <XREF LINKEND="RUNNING-APPLICATIONS-ON-THE-TARGET"> you -ran the prebuilt test case on real hardware; now you are ready to -run one of the test programs in the simulated environment or as -a Linux application.</PARA> -<NOTE> -<PARA>If the architecture you use does not have simulator support, -you need to run the following tests on the evaluation boards. Make -sure you have configured and built eCos for the correct board and -for RAM start-up instead of ROM start-up as described previously. -Consult “Test Suites” on page 112 for -details about downloading the test to the board. Otherwise, the -program behavior as described below should be the same.</PARA> -</NOTE> - -<!-- ==================================================== --> - -<SECT1 id="using-configtool-testcase"> -<TITLE>Using the Configuration Tool</TITLE> -<PARA>Test executables that have been linked using the Build/Tests -operation against the current configuration can be executed by selecting - <EMPHASIS>Tools->Run Tests</EMPHASIS>.</PARA> -<PARA>When a test run is invoked, a property sheet is displayed, -comprising three tabs: <EMPHASIS>Executables</EMPHASIS>, <EMPHASIS>Output</EMPHASIS> and <EMPHASIS>Summary</EMPHASIS>.</PARA> -<PARA>Note that the property sheet is resizable.</PARA> -<PARA>Three buttons appear on the property sheet itself: <EMPHASIS>Run/Stop</EMPHASIS>, <EMPHASIS>Close</EMPHASIS> and <EMPHASIS>Properties</EMPHASIS>.</PARA> -<PARA>The <EMPHASIS>Run</EMPHASIS> button is used to initiate a -test run. Those tests selected on the <EMPHASIS>Executables</EMPHASIS> tab -are run, and the output recorded on the <EMPHASIS>Output</EMPHASIS> and <EMPHASIS>Summary</EMPHASIS> tabs. -During the course of a run, the <EMPHASIS>Run</EMPHASIS> button -changes to “Stop”. The button may be used to interrupt -a test run at any point.</PARA> -<PARA>See the <EMPHASIS>eCos User’s Guide</EMPHASIS> for -further details.</PARA> -</SECT1> - -<!-- ==================================================== --> - -<SECT1 id="using-commandline-testcase"> -<TITLE>Using the command line</TITLE> -<PARA>Start a command shell (such as an MS-DOS window in Windows -NT) with the environment variables set as described in the GNUPro -documentation. If using a simulator, define the appropriate GDB -macro described in “ROM Monitor Image” on page 22. -Change to the directory in which you set up your build tree, and - invoke <!-- <index></index> --> GDB -on the test program.</PARA> -<PARA>To run the <!-- <index></index> -->bin_sem0 test -(which will test the kernel for the correct creation and destruction -of binary semaphores) type: </PARA> -<PROGRAMLISTING>$ gdb -nw install/tests/kernel/&Version;/tests/bin_sem0</PROGRAMLISTING> -</SECT1> - -<!-- ==================================================== --> - -<SECT1 id="starting-gdb"> -<TITLE>Starting up GDB</TITLE> -<PARA>You should see output similar to the following in the command -window:</PARA> -<PROGRAMLISTING>GNU gdb THIS-GDB-VERSION -Copyright 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 copies of it under certain conditions. -Type "show copying" to see the conditions. This version of GDB is supported -for customers of Red Hat. Type "show warranty" for details. -This GDB was configured as "--host=THIS-HOST --target=THIS-TARGET". -(gdb) </PROGRAMLISTING> -<PARA>If you are trying to run a synthetic target test on <!-- <index></index> -->Linux, -skip the simulator connection and download steps. Otherwise, specify -that you are using the simulator target (rather than real hardware) -by typing: </PARA> -<PROGRAMLISTING>(gdb) msim</PROGRAMLISTING> -<PARA>for the MN10300 AM31</PARA> -<PROGRAMLISTING>(gdb) tsim</PROGRAMLISTING> -<PARA>for the TX39</PARA> -<PROGRAMLISTING>(gdb) psim</PROGRAMLISTING> -<PARA>for the PowerPC.</PARA> -<PROGRAMLISTING>(gdb) ssim</PROGRAMLISTING> -<PARA>for the SPARClite.</PARA> -<PARA>At this point, if you are using the simulator, enter the appropriate -GDB macro to initialize it. You will then see output similar to -the following: </PARA> -<PROGRAMLISTING>Connected to the simulator. -(gdb) </PROGRAMLISTING> -<PARA>Now download the program to the (simulator) target with</PARA> -<PROGRAMLISTING>(gdb) load</PROGRAMLISTING> -<PARA>You should see output similar to the following on your screen: </PARA> -<PROGRAMLISTING>Loading section .rom_vectors, size 0xc0 -lma 0x40000000 -Loading section .text, size 0x1b3b lma 0x400000c0 -Loading section .rodata, size 0x2f4 lma 0x40001bfc -Loading section .data, size 0x7c lma 0x40001ef0 -Start address 0x40000000 -Transfer rate: 64344 bits in <1 sec. -(gdb)</PROGRAMLISTING> -<PARA>You are now ready to run your program as if this were an ordinary -debugging session with GDB. If you type </PARA> -<PROGRAMLISTING>(gdb) run</PROGRAMLISTING> -<PARA>you will see output similar to the following: </PARA> -<PROGRAMLISTING>Starting program: /ecos-work/./install/tests/kernel/bin_sem0.exe -PASS:<Binary Semaphore 0 OK> -EXIT:<done> </PROGRAMLISTING> -<NOTE> -<PARA> If you are using real hardware rather than a simulator, - you must use the GDB command “continue” rather - than “run” to start your program.</PARA> -</NOTE> -<PARA>You must kill your GDB session with <EMPHASIS>Control+C</EMPHASIS>, -or it will sit in the “idle” thread and use up -CPU time. Type <command>quit</command> and you are -done. </PARA> -<PARA>See also “Running Applications on the Target” on page 108.</PARA> -</SECT1> - -</CHAPTER> - - -<!-- ==================================================== --> - -<CHAPTER ID="BUILDING-AND-RUNNING-SAMPLE-APPLIATIONS"><!-- <conditionaltext> --> -<TITLE><!-- <xref> -->Building and <!-- <index></index> -->Running Sample Applications</TITLE> -<PARA>The example programs in this tutorial are included, along -with a <EMPHASIS>Makefile</EMPHASIS>, in the <EMPHASIS>examples</EMPHASIS> directory -of the eCos distribution. The first program you will run is a <EMPHASIS>hello -world</EMPHASIS>-style application, then you will run a more complex -application that demonstrates the creation of threads and the use -of cyg_thread_delay(), and finally you will run -one that uses clocks and alarm handlers.</PARA> -<PARA>The <EMPHASIS>Makefile</EMPHASIS> has two variables you will -need to adjust: <EMPHASIS>PKG_INSTALL_DIR</EMPHASIS> and <EMPHASIS>XCC</EMPHASIS>.</PARA> -<PARA>Edit the Makefile, setting <EMPHASIS>PKG_INSTALL_DIR</EMPHASIS> to -the install tree previously created by <COMMAND>ecosconfig</COMMAND> and -uncommenting the relevant <EMPHASIS>XCC</EMPHASIS> line for your -architecture.</PARA> - -<!-- ==================================================== --> - -<SECT1 id="ecos-hello-world"> -<TITLE>eCos Hello World</TITLE> -<PARA>The following code is found in the file <FILENAME><!-- <index></index> -->hello.c</FILENAME> -in the <FILENAME>examples</FILENAME> directory: </PARA> -<SECT2> -<TITLE>eCos<!-- <index></index> --> -hello world program listing</TITLE> -<PROGRAMLISTING>/* this is a simple hello world program */ -#include <stdio.h> -int main(void) -{ - printf("Hello, eCos world!\n"); - return 0; -} </PROGRAMLISTING> -<PARA>To compile this or any other program that is not part of the -eCos distribution, you can follow the procedures described below. Type -this explicit compilation instruction (assuming your current working -directory is also where you built the eCos kernel):</PARA> -<PROGRAMLISTING>$ gcc -g -IBASE_DIR/ecos-work/install/include hello.c -LBASE_DIR/ecos-work/install/lib -Ttarget.ld -nostdlib</PROGRAMLISTING> -<PARA>The compilation instruction above contains some standard GCC -options (for example, <OPTION>-g</OPTION> enables -debugging), as well as some mention of paths (<OPTION>-IBASE_DIR/ecos-work/install/include</OPTION> allows -files like <FILENAME>cyg/kernel/kapi.h</FILENAME> to -be found, and <OPTION>-LBASE_DIR/ecos-work/install/lib</OPTION> allows -the linker to find <OPTION>-Ttarget.ld</OPTION>). </PARA> -<PARA>The executable program will be called <FILENAME>a.out</FILENAME>. </PARA> -<NOTE> -<PARA>Some target systems require special options to be passed to -gcc to compile correctly for that system. Please examine the Makefile -in the examples directory to see if this applies to your target.</PARA> -</NOTE> -<PARA>You can now run the resulting program in the simulator using -GDB the way you ran the test case. The procedure will be the same, -but this time run "gdb" specifying "-nw a.out" on the command line:</PARA> -<PROGRAMLISTING>$ gdb -nw a.out</PROGRAMLISTING> -<PARA>For targets other than the synthetic linux target, you should -now run the usual GDB commands described earlier. Once this is done, -typing the command "run" at the (gdb) prompt ("continue" for real -hardware) will allow the program to execute and print the string -"Hello, eCos world!" on your screen.</PARA> -<PARA>On the synthetic linux target, you may use the "run" command -immediately - you do not need to invoke simulator macros, nor the -"load" command.<!-- <conditionaltext> --></PARA> - -</SECT2> -</SECT1> - -<!-- ==================================================== --> - -<SECT1 id="sample-twothreads"> -<TITLE>A Sample Program with Two Threads</TITLE> -<PARA>Below is a program that uses some of eCos' system -calls. It creates two threads, each of which goes into an infinite -loop in which it sleeps for a while (using cyg_thread_delay()). -This code is found in the file <EMPHASIS><!-- <index></index> -->twothreads.c -in th</EMPHASIS>e exampl<EMPHASIS>es director</EMPHASIS>y.</PARA> -<SECT2> -<TITLE>eCos <!-- <index></index> --> -two-threaded program listing</TITLE> -<PROGRAMLISTING>#include <cyg/kernel/kapi.h> -#include <stdio.h> -#include <math.h> -#include <stdlib.h> - -/* now declare (and allocate space for) some kernel objects, - like the two threads we will use */ -cyg_thread thread_s[2]; /* space for two thread objects */ - -char stack[2][4096]; /* space for two 4K stacks */ - -/* now the handles for the threads */ -cyg_handle_t simple_threadA, simple_threadB; - -/* and now variables for the procedure which is the thread */ -cyg_thread_entry_t simple_program; - -/* and now a mutex to protect calls to the C library */ -cyg_mutex_t cliblock; - -/* we install our own startup routine which sets up threads */ -void cyg_user_start(void) -{ - printf("Entering twothreads' cyg_user_start() function\n"); - - cyg_mutex_init(&cliblock); - - cyg_thread_create(4, simple_program, (cyg_addrword_t) 0, - "Thread A", (void *) stack[0], 4096, - &simple_threadA, &thread_s[0]); - cyg_thread_create(4, simple_program, (cyg_addrword_t) 1, - "Thread B", (void *) stack[1], 4096, - &simple_threadB, &thread_s[1]); - - cyg_thread_resume(simple_threadA); - cyg_thread_resume(simple_threadB); -} - -/* this is a simple program which runs in a thread */ -void simple_program(cyg_addrword_t data) -{ - int message = (int) data; - int delay; - - printf("Beginning execution; thread data is %d\n", message); - - cyg_thread_delay(200); - - for (;;) { - delay = 200 + (rand() % 50); - - /* note: printf() must be protected by a - call to cyg_mutex_lock() */ - cyg_mutex_lock(&cliblock); { - printf("Thread %d: and now a delay of %d clock ticks\n", - message, delay); - } - cyg_mutex_unlock(&cliblock); - cyg_thread_delay(delay); - } -} </PROGRAMLISTING> -<PARA>When you run the program (by typing <PROGRAMLISTING>run</PROGRAMLISTING> at -the (<EMPHASIS>gdb</EMPHASIS>) prompt) the output should look like -this:</PARA> -<PROGRAMLISTING>Starting program: BASE_DIR/examples/twothreads.exe -Entering twothreads' cyg_user_start() -function -Beginning execution; thread data is 0 -Beginning execution; thread data is 1 -Thread 0: and now a delay of 240 clock ticks -Thread 1: and now a delay of 225 clock ticks -Thread 1: and now a delay of 234 clock ticks -Thread 0: and now a delay of 231 clock ticks -Thread 1: and now a delay of 224 clock ticks -Thread 0: and now a delay of 249 clock ticks -Thread 1: and now a delay of 202 clock ticks -Thread 0: and now a delay of 235 clock ticks </PROGRAMLISTING> -<NOTE> -<PARA>When running in a simulator the <!-- <index></index> --> -delays might be quite long. On a hardware board (where the clock -speed is 100 ticks/second) the delays should average to -about 2.25 seconds. In simulation, the delay will depend on the -speed of the processor and will almost always be much slower than -the actual board. You might want to reduce the delay parameter when running -in simulation.</PARA> -</NOTE> -<PARA><XREF LINKEND="FIGURE-TWOTHREADS-WITH-SIMPLE-PRINTS"> shows how this multitasking program executes. -Note that apart from the thread creation system calls, this program -also creates and uses a <EMPHASIS><!-- <index></index> -->mutex</EMPHASIS> for synchronization -between the printf() calls in the two threads. This is because -the C library standard I/O (by default) is configured not -to be thread-safe, which means that if more than one thread is using -standard I/O they might corrupt each other. This is fixed -by a mutual exclusion (or <EMPHASIS>mutex</EMPHASIS>) lockout mechanism: the threads -do not call printf() until cyg_mutex_lock() -has returned, which only happens when the other thread calls cyg_mutex_unlock().</PARA> -<PARA>You could avoid using the mutex by configuring the C library -to be thread-safe (by selecting the component <LITERAL>CYGSEM_LIBC_STDIO_THREAD_SAFE_STREAMS</LITERAL>). -Keep in mind that if the C library is thread-safe, you can no longer -use printf() in cyg_user_start(). </PARA> -<FIGURE ID="FIGURE-TWOTHREADS-WITH-SIMPLE-PRINTS"><!-- <xref> --> -<TITLE>Two threads with simple print statements after random -delays</TITLE> -<GRAPHIC ENTITYREF="graphic9"></GRAPHIC> -</FIGURE> -</SECT2> -</SECT1> -</CHAPTER> -<CHAPTER ID="CLOCKS-AND-ALARM-HANDLERS"> -<TITLE>More Features — <!-- <index></index> -->Clocks and Alarm -Handlers</TITLE> -<PARA>If a program wanted to execute a task at a given time, or -periodically, it could do it in an inefficient way by sitting in -an infinite loop and checking the real-time clock to see if the -proper amount of time has elapsed. But operating systems usually provide -system calls which allow the program to be interrupted at the desired -time.</PARA> -<PARA>eCos provides a rich timekeeping formalism, involving <EMPHASIS>counters</EMPHASIS>, <EMPHASIS>clocks</EMPHASIS>, <EMPHASIS>alarms</EMPHASIS>, and <EMPHASIS>timers</EMPHASIS>. -The precise definition, relationship, and motivation of these features -is beyond the scope of this tutorial, but these examples illustrate -how to set up basic periodic tasks.</PARA> -<PARA><EMPHASIS><!-- <index></index> -->Alarms are events that happen at -a given time, either once or periodically. A thread associates an -alarm handling function with the alarm, so that the function will -be invoked every time the alarm “goes off</EMPHASIS>”.</PARA> - -<!-- ==================================================== --> - -<SECT1 id="sample-alarms"> -<TITLE>A Sample Program with Alarms</TITLE> -<PARA><!-- <index></index> --><FILENAME>simple-alarm.c</FILENAME> (in the examples -directory) is a short program that creates a thread that creates an -alarm. The alarm is handled by the function <FUNCTION>test_alarm_func()</FUNCTION>, -which sets a global variable. When the main thread of execution -sees that the variable has changed, it prints a message.</PARA> -<EXAMPLE> -<TITLE>A sample <!-- <index></index> --> -program that creates an alarm</TITLE> -<PROGRAMLISTING> /* this is a very simple program meant to demonstrate - a basic use of time, alarms and alarm-handling functions in eCos */ - -#include <cyg/kernel/kapi.h> - -#include <stdio.h> - -#define NTHREADS 1 -#define STACKSIZE 4096 - -static cyg_handle_t thread[NTHREADS]; - -static cyg_thread thread_obj[NTHREADS]; -static char stack[NTHREADS][STACKSIZE]; - -static void alarm_prog( cyg_addrword_t data ); - -/* we install our own startup routine which sets up - threads and starts the scheduler */ -void cyg_user_start(void) -{ - cyg_thread_create(4, alarm_prog, (cyg_addrword_t) 0, - "alarm_thread", (void *) stack[0], - STACKSIZE, &thread[0], &thread_obj[0]); - cyg_thread_resume(thread[0]); -} - -/* we need to declare the alarm handling function (which is - defined below), so that we can pass it to cyg_alarm_initialize() */ -cyg_alarm_t test_alarm_func; - -/* alarm_prog() is a thread which sets up an alarm which is then - handled by test_alarm_func() */ -static void alarm_prog(cyg_addrword_t data) -{ - cyg_handle_t test_counterH, system_clockH, test_alarmH; - cyg_tick_count_t ticks; - cyg_alarm test_alarm; - unsigned how_many_alarms = 0, prev_alarms = 0, tmp_how_many; - - system_clockH = cyg_real_time_clock(); - cyg_clock_to_counter(system_clockH, &test_counterH); - cyg_alarm_create(test_counterH, test_alarm_func, - (cyg_addrword_t) &how_many_alarms, - &test_alarmH, &test_alarm); - cyg_alarm_initialize(test_alarmH, cyg_current_time()+200, 200); - - /* get in a loop in which we read the current time and - print it out, just to have something scrolling by */ - for (;;) { - ticks = cyg_current_time(); - printf("Time is %llu\n", ticks); - /* note that we must lock access to how_many_alarms, since the - alarm handler might change it. this involves using the - annoying temporary variable tmp_how_many so that I can keep the - critical region short */ - cyg_scheduler_lock(); - tmp_how_many = how_many_alarms; - cyg_scheduler_unlock(); - if (prev_alarms != tmp_how_many) { - printf(" --- alarm calls so far: %u\n", tmp_how_many); - prev_alarms = tmp_how_many; - } - cyg_thread_delay(30); - } -} - -/* test_alarm_func() is invoked as an alarm handler, so - it should be quick and simple. in this case it increments - the data that is passed to it. */ -void test_alarm_func(cyg_handle_t alarmH, cyg_addrword_t data) -{ - ++*((unsigned *) data); -} </PROGRAMLISTING> -</EXAMPLE> -<PARA>When you run this program (by typing <COMMAND>run</COMMAND> at -the (<EMPHASIS>gdb</EMPHASIS>) prompt) the output should look like -this:</PARA> -<SCREEN>Starting program: BASE_DIR/examples/simple-alarm.exe -Time is 0 -Time is 30 -Time is 60 -Time is 90 -Time is 120 -Time is 150 -Time is 180 -Time is 210 - --- alarm calls so far: 1 -Time is 240 -Time is 270 -Time is 300 -Time is 330 -Time is 360 -Time is 390 -Time is 420 - --- alarm calls so far: 2 -Time is 450 -Time is 480 </SCREEN> -<NOTE> -<PARA>When running in a simulator the <!-- <index></index> --> -delays might be quite long. On a hardware board (where the clock -speed is 100 ticks/second) the delays should average to -about 0.3 seconds (and 2 seconds between alarms). In simulation, -the delay will depend on the speed of the processor and will almost -always be much slower than the actual board. You might want to reduce -the delay parameter when running in simulation.</PARA> -</NOTE> -<PARA>Here are a few things you might notice about this program:</PARA> -<ITEMIZEDLIST> -<LISTITEM> -<PARA>It used the cyg_real_time_clock(); -this always returns a handle to the default system real-time <!-- <index></index> --> -clock. </PARA> -</LISTITEM> -<LISTITEM> -<PARA><!-- <index></index> -->Alarms are based on <!-- <index></index> --> -counters, so the function cyg_alarm_create() uses -a counter handle. The program used the function cyg_clock_to_counter() -to strip the clock handle to the underlying counter handle. </PARA> -</LISTITEM> -<LISTITEM> -<PARA>Once the alarm is created it is <!-- <index></index> --> -initialized with cyg_alarm_initialize(), which -sets the time at which the alarm should go off, as well as the period -for repeating alarms. It is set to go off at the current time and -then to repeat every 200 ticks. </PARA> -</LISTITEM> -<LISTITEM> -<PARA>The alarm handler function test_alarm_func() -conforms to the guidelines for writing alarm handlers and other <!-- <index></index> --><!-- <index></index> --> -delayed service routines: -it does not invoke any functions which might lock the scheduler. -This is discussed in detail in the <CITETITLE>eCos Reference Manual</CITETITLE>, in the chapter Requirements for programs.</PARA> -</LISTITEM> -<LISTITEM> -<PARA>There is a <EMPHASIS>critical region</EMPHASIS> in this -program: the variable <LITERAL>how_many_alarms</LITERAL> is accessed -in the main thread of control and is also modified in the alarm -handler. To prevent a possible (though unlikely) race condition -on this variable, access to <LITERAL>how_many_alarms</LITERAL> in -the principal thread is protected by calls to <FUNCTION>cyg_scheduler_lock()</FUNCTION> -and <FUNCTION>cyg_scheduler_unlock()</FUNCTION>. When the scheduler -is locked, the alarm handler will not be invoked, so the problem -is averted. </PARA> -</LISTITEM> -</ITEMIZEDLIST> -</SECT1> -</CHAPTER> -</PART> -<PART ID="APPENDICES"> -<TITLE>Appendices</TITLE> -<APPENDIX ID="REAL-TIME-CHARACTERIZATION"> -<TITLE>Real-time characterization</TITLE> -<PARA>For a discussion of real-time performance measurement for eCos, see the eCos -Users' Guide. - </PARA> -<PARA> Sample numbers: - </PARA> - -<!-- ==================================================== --> - -<SECT1 id="rt-arm-aeb1"> -<TITLE>Board: ARM AEB-1 Revision B Evaluation Board</TITLE> -<LITERALLAYOUT CLASS="MONOSPACED"> - -Board: ARM AEB-1 Revision B Evaluation Board - -CPU : Sharp LH77790A 24MHz - - - -Startup, main stack : stack used 404 size 2400 -Startup : Interrupt stack used 128 size 2048 -Startup : Idlethread stack used 80 size 2048 - -eCos Kernel Timings -Notes: all times are in microseconds (.000001) unless otherwise stated - -Reading the hardware clock takes 13 'ticks' overhead -... this value will be factored out of all other measurements -Clock interrupt took 193.49 microseconds (290 raw clock ticks) - -Testing parameters: - Clock samples: 32 - Threads: 7 - Thread switches: 128 - Mutexes: 32 - Mailboxes: 32 - Semaphores: 32 - Scheduler operations: 128 - Counters: 32 - Alarms: 32 - - - Confidence - Ave Min Max Var Ave Min Function - ====== ====== ====== ====== ========== ======== - 110.19 104.67 116.00 3.26 42% 28% Create thread - 34.00 34.00 34.00 0.00 100% 100% Yield thread [all suspended] - 24.67 24.67 24.67 0.00 100% 100% Suspend [suspended] thread - 25.05 24.67 25.33 0.33 57% 42% Resume thread - 37.14 36.67 37.33 0.27 71% 28% Set priority - 3.81 3.33 4.00 0.27 71% 28% Get priority - 80.00 80.00 80.00 0.00 100% 100% Kill [suspended] thread - 33.90 33.33 34.00 0.16 85% 14% Yield [no other] thread - 45.90 44.00 46.67 0.54 57% 14% Resume [suspended low prio] thread - 24.57 24.00 24.67 0.16 85% 14% Resume [runnable low prio] thread - 42.29 36.67 43.33 1.61 85% 14% Suspend [runnable] thread - 33.90 33.33 34.00 0.16 85% 14% Yield [only low prio] thread - 24.67 24.67 24.67 0.00 100% 100% Suspend [runnable->not runnable] - 80.00 80.00 80.00 0.00 100% 100% Kill [runnable] thread - 43.33 43.33 43.33 0.00 100% 100% Destroy [dead] thread - 106.29 101.33 107.33 1.41 85% 14% Destroy [runnable] thread - 144.95 141.33 166.00 6.01 85% 85% Resume [high priority] thread - 78.31 76.67 254.67 2.75 99% 99% Thread switch - - 4.00 4.00 4.00 0.00 100% 100% Scheduler lock - 16.37 16.00 16.67 0.33 56% 43% Scheduler unlock [0 threads] - 16.37 16.00 16.67 0.33 56% 43% Scheduler unlock [1 suspended] - 16.37 16.00 16.67 0.33 56% 43% Scheduler unlock [many suspended] - 16.37 16.00 16.67 0.33 56% 43% Scheduler unlock [many low prio] - - 10.67 10.67 10.67 0.00 100% 100% Init mutex - 28.67 28.67 28.67 0.00 100% 100% Lock [unlocked] mutex - 30.44 30.00 31.33 0.33 59% 37% Unlock [locked] mutex - 25.42 25.33 26.00 0.15 87% 87% Trylock [unlocked] mutex - 22.50 22.00 22.67 0.25 75% 25% Trylock [locked] mutex - 5.75 5.33 6.00 0.31 62% 37% Destroy mutex - 185.33 185.33 185.33 0.00 100% 100% Unlock/Lock mutex - - 20.17 20.00 20.67 0.25 75% 75% Create mbox - 2.92 2.67 3.33 0.31 62% 62% Peek [empty] mbox - 32.42 32.00 32.67 0.31 62% 37% Put [first] mbox - 3.00 2.67 3.33 0.33 100% 50% Peek [1 msg] mbox - 32.50 32.00 32.67 0.25 75% 25% Put [second] mbox - 2.92 2.67 3.33 0.31 62% 62% Peek [2 msgs] mbox - 32.83 32.67 33.33 0.25 75% 75% Get [first] mbox - 32.67 32.67 32.67 0.00 100% 100% Get [second] mbox - 31.33 31.33 31.33 0.00 100% 100% Tryput [first] mbox - 27.58 27.33 28.00 0.31 62% 62% Peek item [non-empty] mbox - 32.83 32.67 33.33 0.25 75% 75% Tryget [non-empty] mbox - 26.50 26.00 26.67 0.25 75% 25% Peek item [empty] mbox - 28.00 28.00 28.00 0.00 100% 100% Tryget [empty] mbox - 3.25 2.67 3.33 0.15 87% 12% Waiting to get mbox - 3.25 2.67 3.33 0.15 87% 12% Waiting to put mbox - 30.83 30.67 31.33 0.25 75% 75% Delete mbox - 101.08 100.67 101.33 0.31 62% 37% Put/Get mbox - - 11.17 10.67 11.33 0.25 75% 25% Init semaphore - 24.17 24.00 24.67 0.25 75% 75% Post [0] semaphore - 27.08 26.67 27.33 0.31 62% 37% Wait [1] semaphore - 22.75 22.67 23.33 0.15 87% 87% Trywait [0] semaphore - 22.21 22.00 22.67 0.29 68% 68% Trywait [1] semaphore - 7.33 7.33 7.33 0.00 100% 100% Peek semaphore - 5.92 5.33 6.00 0.15 87% 12% Destroy semaphore - 110.04 110.00 110.67 0.08 93% 93% Post/Wait semaphore - - 9.54 9.33 10.00 0.29 68% 68% Create counter - 3.92 3.33 4.00 0.15 87% 12% Get counter value - 4.00 4.00 4.00 0.00 100% 100% Set counter value - 30.92 30.67 31.33 0.31 62% 62% Tick counter - 5.75 5.33 6.00 0.31 62% 37% Delete counter - - 13.83 13.33 14.00 0.25 75% 25% Create alarm - 46.67 46.67 46.67 0.00 100% 100% Initialize alarm - 3.67 3.33 4.00 0.33 100% 50% Disable alarm - 45.67 45.33 46.00 0.33 100% 50% Enable alarm - 8.33 8.00 8.67 0.33 100% 50% Delete alarm - 36.33 36.00 36.67 0.33 100% 50% Tick counter [1 alarm] - 214.67 214.67 214.67 0.00 100% 100% Tick counter [many alarms] - 62.67 62.67 62.67 0.00 100% 100% Tick & fire counter [1 alarm] - 1087.04 1075.33 1278.67 21.91 93% 93% Tick & fire counters [>1 together] - 246.35 240.67 412.00 10.35 96% 96% Tick & fire counters [>1 separately] - 168.01 167.33 237.33 1.08 99% 99% Alarm latency [0 threads] - 187.36 168.00 234.67 3.60 86% 1% Alarm latency [2 threads] - 187.37 167.33 235.33 3.59 85% 1% Alarm latency [many threads] - 303.12 280.00 508.67 3.21 98% 0% Alarm -> thread resume latency - - 36.65 36.00 38.67 0.00 Clock/interrupt latency - - 65.79 52.00 152.67 0.00 Clock DSR latency - - 316 316 316 (main stack: 752) Thread stack used (1120 total) -All done, main stack : stack used 752 size 2400 -All done : Interrupt stack used 280 size 2048 -All done : Idlethread stack used 268 size 2048 - -Timing complete - 30390 ms total - -PASS:<Basic timing OK> -EXIT:<done> - - </LITERALLAYOUT> -</SECT1> - -<!-- ==================================================== --> - -<SECT1 id="rt-at91-eb40"> -<TITLE>Board: Atmel AT91/EB40</TITLE> -<LITERALLAYOUT CLASS="MONOSPACED"> -Board: Atmel AT91/EB40 -CPU : AT91R40807 (ARM7TDMI core), 32MHz -512KB RAM, 64K Flash - -Startup, main stack : stack used 420 size 2400 -Startup : Interrupt stack used 144 size 4096 -Startup : Idlethread stack used 84 size 2048 - -eCos Kernel Timings -Notes: all times are in microseconds (.000001) unless otherwise stated - -Reading the hardware clock takes 3 'ticks' overhead -... this value will be factored out of all other measurements -Clock interrupt took 127.53 microseconds (130 raw clock ticks) - -Testing parameters: - Clock samples: 32 - Threads: 25 - Thread switches: 128 - Mutexes: 32 - Mailboxes: 32 - Semaphores: 32 - Scheduler operations: 128 - Counters: 32 - Alarms: 32 - - - Confidence - Ave Min Max Var Ave Min Function - ====== ====== ====== ====== ========== ======== - 86.48 71.29 101.56 7.99 48% 28% Create thread - 20.70 20.51 21.48 0.31 80% 80% Yield thread [all suspended] - 17.15 16.60 17.58 0.48 56% 44% Suspend [suspended] thread - 17.07 16.60 17.58 0.49 52% 52% Resume thread - 25.51 25.39 26.37 0.21 88% 88% Set priority - 3.16 2.93 3.91 0.36 76% 76% Get priority - 52.34 51.76 52.73 0.47 60% 40% Kill [suspended] thread - 20.70 20.51 21.48 0.31 80% 80% Yield [no other] thread - 28.98 28.32 30.27 0.48 60% 36% Resume [suspended low prio] thread - 17.11 16.60 17.58 0.49 52% 48% Resume [runnable low prio] thread - 27.85 26.37 28.32 0.52 96% 4% Suspend [runnable] thread - 20.70 20.51 21.48 0.31 80% 80% Yield [only low prio] thread - 17.23 16.60 17.58 0.45 64% 36% Suspend [runnable->not runnable] - 52.34 51.76 52.73 0.47 60% 40% Kill [runnable] thread - 33.01 32.23 33.20 0.31 80% 20% Destroy [dead] thread - 72.03 70.31 72.27 0.38 80% 4% Destroy [runnable] thread - 96.99 95.70 112.30 1.22 64% 96% Resume [high priority] thread - 51.48 49.80 164.06 1.76 99% 99% Thread switch - - 2.78 1.95 2.93 0.26 84% 15% Scheduler lock - 11.81 11.72 12.70 0.17 90% 90% Scheduler unlock [0 threads] - 11.81 11.72 12.70 0.17 90% 90% Scheduler unlock [1 suspended] - 11.81 11.72 12.70 0.17 90% 90% Scheduler unlock [many suspended] - 11.81 11.72 12.70 0.17 90% 90% Scheduler unlock [many low prio] - - 5.49 4.88 5.86 0.46 62% 37% Init mutex - 20.20 19.53 20.51 0.42 68% 31% Lock [unlocked] mutex - 24.44 24.41 25.39 0.06 96% 96% Unlock [locked] mutex - 18.25 17.58 18.55 0.42 68% 31% Trylock [unlocked] mutex - 16.11 15.63 16.60 0.49 100% 50% Trylock [locked] mutex - 6.10 5.86 6.84 0.37 75% 75% Destroy mutex - 124.21 124.02 125.00 0.30 81% 81% Unlock/Lock mutex - - 9.28 8.79 9.77 0.49 100% 50% Create mbox - 2.93 2.93 2.93 0.00 100% 100% Peek [empty] mbox - 22.58 22.46 23.44 0.21 87% 87% Put [first] mbox - 2.44 1.95 2.93 0.49 100% 50% Peek [1 msg] mbox - 22.58 22.46 23.44 0.21 87% 87% Put [second] mbox - 2.44 1.95 2.93 0.49 100% 50% Peek [2 msgs] mbox - 22.71 22.46 23.44 0.37 75% 75% Get [first] mbox - 22.71 22.46 23.44 0.37 75% 75% Get [second] mbox - 21.18 20.51 21.48 0.42 68% 31% Tryput [first] mbox - 18.98 18.55 19.53 0.48 56% 56% Peek item [non-empty] mbox - 22.46 22.46 22.46 0.00 100% 100% Tryget [non-empty] mbox - 18.31 17.58 18.55 0.37 75% 25% Peek item [empty] mbox - 19.53 19.53 19.53 0.00 100% 100% Tryget [empty] mbox - 2.69 1.95 2.93 0.37 75% 25% Waiting to get mbox - 2.93 2.93 2.93 0.00 100% 100% Waiting to put mbox - 23.86 23.44 24.41 0.48 56% 56% Delete mbox - 67.60 67.38 68.36 0.33 78% 78% Put/Get mbox - - 5.37 4.88 5.86 0.49 100% 50% Init semaphore - 16.97 16.60 17.58 0.46 62% 62% Post [0] semaphore - 18.98 18.55 19.53 0.48 56% 56% Wait [1] semaphore - 15.81 15.63 16.60 0.30 81% 81% Trywait [0] semaphore - 15.29 14.65 15.63 0.44 65% 34% Trywait [1] semaphore - 5.62 4.88 5.86 0.37 75% 25% Peek semaphore - 6.35 5.86 6.84 0.49 100% 50% Destroy semaphore - 72.36 72.27 73.24 0.17 90% 90% Post/Wait semaphore - - 7.08 6.84 7.81 0.37 75% 75% Create counter - 3.17 2.93 3.91 0.37 75% 75% Get counter value - 3.05 2.93 3.91 0.21 87% 87% Set counter value - 24.11 23.44 24.41 0.42 68% 31% Tick counter - 5.49 4.88 5.86 0.46 62% 37% Delete counter - - 10.92 10.74 11.72 0.30 81% 81% Create alarm - 31.46 31.25 32.23 0.33 78% 78% Initialize alarm - 3.05 2.93 3.91 0.21 87% 87% Disable alarm - 31.49 31.25 32.23 0.37 75% 75% Enable alarm - 7.02 6.84 7.81 0.30 81% 81% Delete alarm - 31.16 30.27 31.25 0.17 90% 9% Tick counter [1 alarm] - 309.26 304.69 425.78 7.28 96% 96% Tick counter [many alarms] - 44.83 43.95 44.92 0.17 90% 9% Tick & fire counter [1 alarm] - 781.68 774.41 893.55 13.62 93% 93% Tick & fire counters [>1 together] - 324.16 320.31 433.59 6.84 96% 96% Tick & fire counters [>1 separately] - 114.26 113.28 167.97 0.84 57% 42% Alarm latency [0 threads] - 126.91 113.28 159.18 8.20 50% 31% Alarm latency [2 threads] - 127.11 113.28 158.20 8.09 51% 28% Alarm latency [many threads] - 196.49 189.45 331.05 2.10 98% 0% Alarm -> thread resume latency - - 23.50 23.44 25.39 0.00 Clock/interrupt latency - - 40.31 33.20 514.65 0.00 Clock DSR latency - - 300 271 312 (main stack: 832) Thread stack used (1120 total) -All done, main stack : stack used 832 size 2400 -All done : Interrupt stack used 288 size 4096 -All done : Idlethread stack used 272 size 2048 - -Timing complete - 30350 ms total - -PASS:<Basic timing OK> -EXIT:<done> - </LITERALLAYOUT> -</SECT1> - -<!-- ==================================================== --> - -<SECT1 id="rt-arm-ebsa285"> -<TITLE>Board: Intel StrongARM EBSA-285 Evaluation Board</TITLE> -<LITERALLAYOUT CLASS="MONOSPACED">Board: Intel StrongARM EBSA-285 Evaluation Board - -CPU : Intel StrongARM SA-110 228MHz - - -Startup, main stack : stack used 404 size 2400 -Startup : Interrupt stack used 136 size 4096 -Startup : Idlethread stack used 80 size 2048 - -eCos Kernel Timings -Notes: all times are in microseconds (.000001) unless otherwise stated - -Reading the hardware clock takes 1 'ticks' overhead -... this value will be factored out of all other measurements -Clock interrupt took 4.61 microseconds (16 raw clock ticks) - -Testing parameters: - Clock samples: 32 - Threads: 64 - Thread switches: 128 - Mutexes: 32 - Mailboxes: 32 - Semaphores: 32 - Scheduler operations: 128 - Counters: 32 - Alarms: 32 - - - Confidence - Ave Min Max Var Ave Min Function - ====== ====== ====== ====== ========== ======== - 4.97 3.26 7.34 0.60 50% 4% Create thread - 0.73 0.54 2.17 0.14 60% 37% Yield thread [all suspended] - 0.98 0.82 2.99 0.23 81% 68% Suspend [suspended] thread - 0.54 0.27 1.63 0.03 92% 6% Resume thread - 0.83 0.54 1.90 0.10 73% 14% Set priority - 0.21 0.00 0.54 0.21 25% 48% Get priority - 2.25 1.90 10.05 0.37 96% 67% Kill [suspended] thread - 0.70 0.54 1.09 0.14 53% 45% Yield [no other] thread - 0.96 0.82 1.36 0.14 50% 48% Resume [suspended low prio] thread - 0.53 0.27 0.82 0.03 92% 6% Resume [runnable low prio] thread - 0.90 0.82 1.63 0.13 70% 70% Suspend [runnable] thread - 0.70 0.54 0.82 0.13 57% 42% Yield [only low prio] thread - 0.55 0.54 0.82 0.01 98% 98% Suspend [runnable->not runnable] - 1.64 1.63 2.17 0.02 98% 98% Kill [runnable] thread - 0.97 0.82 4.62 0.20 98% 64% Destroy [dead] thread - 2.17 1.90 2.17 0.01 98% 1% Destroy [runnable] thread - 6.06 5.16 10.60 0.53 59% 31% Resume [high priority] thread - 1.69 1.63 5.98 0.11 90% 90% Thread switch - - 0.14 0.00 1.36 0.14 99% 50% Scheduler lock - 0.37 0.27 0.54 0.13 62% 62% Scheduler unlock [0 threads] - 0.38 0.27 0.54 0.13 60% 60% Scheduler unlock [1 suspended] - 0.37 0.27 0.54 0.13 63% 63% Scheduler unlock [many suspended] - 0.37 0.27 0.54 0.13 63% 63% Scheduler unlock [many low prio] - - 0.34 0.00 1.90 0.15 78% 6% Init mutex - 0.88 0.54 4.62 0.37 93% 71% Lock [unlocked] mutex - 0.79 0.54 4.35 0.26 93% 53% Unlock [locked] mutex - 0.59 0.27 2.17 0.10 93% 3% Trylock [unlocked] mutex - 0.50 0.27 0.82 0.09 78% 18% Trylock [locked] mutex - 0.18 0.00 0.54 0.13 59% 37% Destroy mutex - 3.85 3.80 5.16 0.08 96% 96% Unlock/Lock mutex - - 0.64 0.27 3.53 0.24 81% 15% Create mbox - 0.61 0.27 2.17 0.21 68% 18% Peek [empty] mbox - 0.87 0.54 5.16 0.31 59% 87% Put [first] mbox - 0.08 0.00 0.54 0.12 71% 71% Peek [1 msg] mbox - 0.71 0.54 1.09 0.14 56% 40% Put [second] mbox - 0.08 0.00 0.27 0.12 68% 68% Peek [2 msgs] mbox - 0.89 0.54 4.89 0.31 62% 81% Get [first] mbox - 0.76 0.54 1.09 0.17 43% 37% Get [second] mbox - 0.76 0.54 3.26 0.21 96% 50% Tryput [first] mbox - 0.65 0.54 2.45 0.17 81% 81% Peek item [non-empty] mbox - 0.76 0.54 2.72 0.19 53% 43% Tryget [non-empty] mbox - 0.58 0.54 0.82 0.06 87% 87% Peek item [empty] mbox - 0.61 0.54 0.82 0.10 75% 75% Tryget [empty] mbox - 0.10 0.00 0.54 0.13 65% 65% Waiting to get mbox - 0.10 0.00 0.54 0.13 65% 65% Waiting to put mbox - 0.77 0.54 3.26 0.20 53% 43% Delete mbox - 2.10 1.90 6.25 0.30 93% 93% Put/Get mbox - - 0.34 0.27 1.09 0.11 81% 81% Init semaphore - 0.60 0.27 1.09 0.12 68% 6% Post [0] semaphore - 0.59 0.54 0.82 0.08 81% 81% Wait [1] semaphore - 0.59 0.54 2.17 0.10 96% 96% Trywait [0] semaphore - 0.48 0.27 0.82 0.11 71% 25% Trywait [1] semaphore - 0.24 0.00 0.82 0.09 78% 18% Peek semaphore - 0.19 0.00 0.54 0.13 62% 34% Destroy semaphore - 2.28 2.17 4.08 0.18 93% 90% Post/Wait semaphore - - 0.43 0.00 2.72 0.23 90% 6% Create counter - 0.40 0.00 1.63 0.25 68% 28% Get counter value - 0.13 0.00 0.82 0.15 96% 59% Set counter value - 0.71 0.54 1.63 0.16 50% 46% Tick counter - 0.16 0.00 0.54 0.14 53% 43% Delete counter - - 0.47 0.27 1.36 0.15 59% 37% Create alarm - 1.58 1.09 7.07 0.44 71% 68% Initialize alarm - 0.12 0.00 1.09 0.16 96% 65% Disable alarm - 1.01 0.82 2.45 0.17 53% 43% Enable alarm - 0.21 0.00 0.27 0.09 78% 21% Delete alarm - 0.78 0.54 1.90 0.12 71% 25% Tick counter [1 alarm] - 3.90 3.80 4.35 0.13 68% 68% Tick counter [many alarms] - 1.25 1.09 1.63 0.14 53% 43% Tick & fire counter [1 alarm] - 19.88 19.84 20.11 0.07 84% 84% Tick & fire counters [>1 together] - 4.37 4.35 4.62 0.05 90% 90% Tick & fire counters [>1 separately] - 3.83 3.80 7.61 0.06 99% 99% Alarm latency [0 threads] - 4.46 3.80 7.88 0.27 71% 24% Alarm latency [2 threads] - 16.06 13.59 26.36 1.05 54% 10% Alarm latency [many threads] - 6.67 6.52 22.83 0.29 98% 98% Alarm -> thread resume latency - - 1.89 0.82 9.78 0.00 Clock/interrupt latency - - 2.17 1.09 7.34 0.00 Clock DSR latency - - 11 0 316 (main stack: 744) Thread stack used (1120 total) -All done, main stack : stack used 744 size 2400 -All done : Interrupt stack used 288 size 4096 -All done : Idlethread stack used 268 size 2048 - -Timing complete - 30210 ms total - -PASS:<Basic timing OK> -EXIT:<done> - </LITERALLAYOUT> -</SECT1> - -<!-- ==================================================== --> - -<SECT1 id="rt-arm-ep7211"> -<TITLE>Board: Cirrus Logic EDB7111-2 Development Board</TITLE> -<SECT2> -<TITLE>CPU : Cirrus Logic EP7211 73MHz</TITLE> -<LITERALLAYOUT CLASS="MONOSPACED">Board: Cirrus Logic EDB7111-2 Development Board - -CPU : Cirrus Logic EP7211 73MHz - - - -Startup, main stack : stack used 404 size 2400 -Startup : Interrupt stack used 136 size 4096 -Startup : Idlethread stack used 88 size 2048 - -eCos Kernel Timings -Notes: all times are in microseconds (.000001) unless otherwise stated - -Reading the hardware clock takes 0 'ticks' overhead -... this value will be factored out of all other measurements -Clock interrupt took 356.69 microseconds (182 raw clock ticks) - -Testing parameters: - Clock samples: 32 - Threads: 64 - Thread switches: 128 - Mutexes: 32 - Mailboxes: 32 - Semaphores: 32 - Scheduler operations: 128 - Counters: 32 - Alarms: 32 - - - Confidence - Ave Min Max Var Ave Min Function - ====== ====== ====== ====== ========== ======== - 22.71 17.58 37.11 3.07 46% 34% Create thread - 4.36 3.91 5.86 0.70 76% 76% Yield thread [all suspended] - 4.24 3.91 7.81 0.56 84% 84% Suspend [suspended] thread - 4.09 1.95 7.81 0.45 85% 3% Resume thread - 5.31 3.91 11.72 0.92 65% 32% Set priority - 2.11 1.95 3.91 0.28 92% 92% Get priority - 11.54 9.77 25.39 0.99 62% 28% Kill [suspended] thread - 4.46 3.91 9.77 0.82 75% 75% Yield [no other] thread - 7.57 5.86 13.67 0.69 75% 20% Resume [suspended low prio] thread - 3.94 1.95 5.86 0.18 92% 3% Resume [runnable low prio] thread - 7.02 5.86 13.67 1.05 53% 45% Suspend [runnable] thread - 4.42 3.91 9.77 0.79 76% 76% Yield [only low prio] thread - 4.24 1.95 5.86 0.61 79% 1% Suspend [runnable->not runnable] - 11.29 9.77 27.34 1.14 57% 37% Kill [runnable] thread - 6.29 3.91 11.72 0.84 71% 4% Destroy [dead] thread - 13.52 11.72 31.25 0.90 70% 25% Destroy [runnable] thread - 24.50 21.48 42.97 1.69 79% 12% Resume [high priority] thread - 8.79 7.81 19.53 1.05 99% 53% Thread switch - - 1.66 0.00 3.91 0.52 83% 15% Scheduler lock - 2.59 1.95 3.91 0.86 67% 67% Scheduler unlock [0 threads] - 2.62 1.95 3.91 0.88 65% 65% Scheduler unlock [1 suspended] - 2.61 1.95 3.91 0.87 66% 66% Scheduler unlock [many suspended] - 2.58 1.95 3.91 0.85 67% 67% Scheduler unlock [many low prio] - - 2.69 1.95 5.86 0.96 65% 65% Init mutex - 4.88 3.91 9.77 1.10 96% 56% Lock [unlocked] mutex - 4.64 3.91 11.72 1.05 71% 71% Unlock [locked] mutex - 3.97 1.95 7.81 0.47 81% 9% Trylock [unlocked] mutex - 3.48 1.95 3.91 0.67 78% 21% Trylock [locked] mutex - 1.77 0.00 3.91 0.44 84% 12% Destroy mutex - 31.92 29.30 42.97 1.65 71% 18% Unlock/Lock mutex - - 4.09 3.91 9.77 0.35 96% 96% Create mbox - 1.83 0.00 3.91 0.34 87% 9% Peek [empty] mbox - 5.31 3.91 9.77 0.96 62% 34% Put [first] mbox - 1.59 0.00 1.95 0.60 81% 18% Peek [1 msg] mbox - 5.19 3.91 9.77 1.04 56% 40% Put [second] mbox - 1.65 0.00 3.91 0.62 78% 18% Peek [2 msgs] mbox - 5.43 3.91 9.77 0.86 68% 28% Get [first] mbox - 5.31 3.91 7.81 0.96 59% 34% Get [second] mbox - 4.76 3.91 9.77 1.07 62% 62% Tryput [first] mbox - 4.82 1.95 9.77 1.15 93% 3% Peek item [non-empty] mbox - 5.55 3.91 11.72 0.82 71% 25% Tryget [non-empty] mbox - 3.97 1.95 7.81 0.59 75% 12% Peek item [empty] mbox - 4.33 3.91 7.81 0.69 81% 81% Tryget [empty] mbox - 1.59 0.00 3.91 0.79 68% 25% Waiting to get mbox - 1.71 0.00 3.91 0.53 81% 15% Waiting to put mbox - 5.25 3.91 9.77 1.01 59% 37% Delete mbox - 17.82 15.63 29.30 1.14 65% 18% Put/Get mbox - - 2.69 1.95 5.86 0.96 65% 65% Init semaphore - 3.78 1.95 7.81 0.46 84% 12% Post [0] semaphore - 4.27 3.91 7.81 0.62 84% 84% Wait [1] semaphore - 3.72 1.95 7.81 0.66 75% 18% Trywait [0] semaphore - 3.29 1.95 5.86 0.92 62% 34% Trywait [1] semaphore - 2.32 1.95 3.91 0.59 81% 81% Peek semaphore - 1.89 0.00 3.91 0.24 90% 6% Destroy semaphore - 15.75 13.67 29.30 1.07 68% 21% Post/Wait semaphore - - 2.69 1.95 5.86 0.96 65% 65% Create counter - 1.83 0.00 1.95 0.23 93% 6% Get counter value - 1.53 0.00 3.91 0.76 71% 25% Set counter value - 4.82 3.91 5.86 0.97 53% 53% Tick counter - 1.89 0.00 1.95 0.12 96% 3% Delete counter - - 3.78 1.95 7.81 0.46 84% 12% Create alarm - 7.99 5.86 15.63 0.70 81% 9% Initialize alarm - 1.71 0.00 1.95 0.43 87% 12% Disable alarm - 7.14 5.86 11.72 1.04 56% 40% Enable alarm - 2.50 1.95 3.91 0.79 71% 71% Delete alarm - 4.94 3.91 7.81 1.04 96% 50% Tick counter [1 alarm] - 19.47 17.58 23.44 0.36 87% 9% Tick counter [many alarms] - 7.63 5.86 11.72 0.55 81% 15% Tick & fire counter [1 alarm] - 99.06 97.66 105.47 1.05 59% 37% Tick & fire counters [>1 together] - 22.15 21.48 27.34 0.96 71% 71% Tick & fire counters [>1 separately] - 359.16 357.42 378.91 0.87 71% 25% Alarm latency [0 threads] - 364.03 357.42 402.34 3.03 58% 15% Alarm latency [2 threads] - 408.25 402.34 416.02 2.89 53% 24% Alarm latency [many threads] - 381.16 376.95 492.19 2.48 95% 46% Alarm -> thread resume latency - - 9.79 5.86 19.53 0.00 Clock/interrupt latency - - 12.13 5.86 31.25 0.00 Clock DSR latency - - 12 0 316 (main stack: 752) Thread stack used (1120 total) -All done, main stack : stack used 752 size 2400 -All done : Interrupt stack used 288 size 4096 -All done : Idlethread stack used 276 size 2048 - -Timing complete - 30450 ms total - -PASS:<Basic timing OK> -EXIT:<done> - - </LITERALLAYOUT> -</SECT2> -<SECT2> -<TITLE>CPU : Cirrus Logic EP7212 73MHz</TITLE> -<LITERALLAYOUT CLASS="MONOSPACED">Board: Cirrus Logic EDB7111-2 Development Board - -CPU : Cirrus Logic EP7212 73MHz - - - -Startup, main stack : stack used 404 size 2400 -Startup : Interrupt stack used 136 size 4096 -Startup : Idlethread stack used 88 size 2048 - -eCos Kernel Timings -Notes: all times are in microseconds (.000001) unless otherwise stated - -Reading the hardware clock takes 0 'ticks' overhead -... this value will be factored out of all other measurements -Clock interrupt took 356.32 microseconds (182 raw clock ticks) - -Testing parameters: - Clock samples: 32 - Threads: 64 - Thread switches: 128 - Mutexes: 32 - Mailboxes: 32 - Semaphores: 32 - Scheduler operations: 128 - Counters: 32 - Alarms: 32 - - - Confidence - Ave Min Max Var Ave Min Function - ====== ====== ====== ====== ========== ======== - 22.43 15.63 33.20 3.02 68% 18% Create thread - 4.48 3.91 5.86 0.81 70% 70% Yield thread [all suspended] - 4.42 3.91 7.81 0.78 75% 75% Suspend [suspended] thread - 4.12 1.95 5.86 0.49 82% 3% Resume thread - 5.62 3.91 11.72 0.64 78% 18% Set priority - 2.17 1.95 3.91 0.38 89% 89% Get priority - 11.54 9.77 27.34 0.88 70% 25% Kill [suspended] thread - 4.64 3.91 9.77 0.96 65% 65% Yield [no other] thread - 7.51 5.86 15.63 0.72 76% 21% Resume [suspended low prio] thread - 3.88 1.95 9.77 0.42 82% 10% Resume [runnable low prio] thread - 7.14 5.86 13.67 1.00 59% 39% Suspend [runnable] thread - 4.52 3.91 7.81 0.86 70% 70% Yield [only low prio] thread - 4.15 1.95 7.81 0.49 85% 1% Suspend [runnable->not runnable] - 11.26 9.77 27.34 1.17 56% 39% Kill [runnable] thread - 6.22 3.91 13.67 0.88 70% 7% Destroy [dead] thread - 13.64 11.72 33.20 1.02 64% 26% Destroy [runnable] thread - 24.17 21.48 41.02 1.49 82% 12% Resume [high priority] thread - 8.80 7.81 21.48 1.08 98% 54% Thread switch - - 1.60 0.00 1.95 0.58 82% 17% Scheduler lock - 2.61 1.95 3.91 0.87 66% 66% Scheduler unlock [0 threads] - 2.59 1.95 3.91 0.86 67% 67% Scheduler unlock [1 suspended] - 2.61 1.95 3.91 0.87 66% 66% Scheduler unlock [many suspended] - 2.59 1.95 3.91 0.86 67% 67% Scheduler unlock [many low prio] - - 2.62 1.95 3.91 0.88 65% 65% Init mutex - 4.82 3.91 9.77 1.09 96% 59% Lock [unlocked] mutex - 4.39 3.91 9.77 0.79 81% 81% Unlock [locked] mutex - 3.84 1.95 7.81 0.36 87% 9% Trylock [unlocked] mutex - 3.54 1.95 5.86 0.69 75% 21% Trylock [locked] mutex - 1.83 0.00 3.91 0.34 87% 9% Destroy mutex - 34.61 31.25 46.88 1.68 78% 9% Unlock/Lock mutex - - 3.97 1.95 7.81 0.24 93% 3% Create mbox - 1.83 0.00 3.91 0.34 87% 9% Peek [empty] mbox - 4.76 3.91 9.77 1.07 62% 62% Put [first] mbox - 1.71 0.00 3.91 0.64 75% 18% Peek [1 msg] mbox - 5.00 3.91 9.77 1.10 96% 50% Put [second] mbox - 1.65 0.00 1.95 0.52 84% 15% Peek [2 msgs] mbox - 5.31 3.91 11.72 1.05 59% 37% Get [first] mbox - 5.13 3.91 7.81 0.99 56% 40% Get [second] mbox - 4.76 3.91 11.72 1.12 96% 65% Tryput [first] mbox - 4.46 3.91 7.81 0.82 75% 75% Peek item [non-empty] mbox - 5.55 3.91 9.77 0.82 68% 25% Tryget [non-empty] mbox - 4.03 1.95 7.81 0.58 78% 9% Peek item [empty] mbox - 4.27 3.91 5.86 0.59 81% 81% Tryget [empty] mbox - 1.77 0.00 3.91 0.44 84% 12% Waiting to get mbox - 1.59 0.00 1.95 0.60 81% 18% Waiting to put mbox - 5.37 3.91 9.77 0.91 65% 31% Delete mbox - 16.66 13.67 27.34 1.42 90% 3% Put/Get mbox - - 2.62 1.95 5.86 0.92 68% 68% Init semaphore - 3.84 1.95 7.81 0.47 81% 12% Post [0] semaphore - 4.21 3.91 7.81 0.53 87% 87% Wait [1] semaphore - 3.48 1.95 5.86 0.76 71% 25% Trywait [0] semaphore - 3.60 1.95 5.86 0.62 78% 18% Trywait [1] semaphore - 2.26 1.95 5.86 0.53 87% 87% Peek semaphore - 1.89 0.00 1.95 0.12 96% 3% Destroy semaphore - 16.05 13.67 29.30 1.40 59% 18% Post/Wait semaphore - - 2.38 1.95 3.91 0.67 78% 78% Create counter - 2.01 0.00 3.91 0.35 84% 6% Get counter value - 1.89 0.00 3.91 0.24 90% 6% Set counter value - 4.58 3.91 5.86 0.88 65% 65% Tick counter - 1.71 0.00 1.95 0.43 87% 12% Delete counter - - 3.84 1.95 7.81 0.36 87% 9% Create alarm - 7.99 5.86 15.63 0.47 93% 3% Initialize alarm - 2.01 0.00 3.91 0.35 84% 6% Disable alarm - 6.53 5.86 13.67 1.01 75% 75% Enable alarm - 2.32 1.95 3.91 0.59 81% 81% Delete alarm - 4.76 3.91 7.81 1.01 59% 59% Tick counter [1 alarm] - 19.53 17.58 23.44 0.24 90% 6% Tick counter [many alarms] - 7.57 5.86 13.67 0.75 75% 21% Tick & fire counter [1 alarm] - 98.57 97.66 105.47 1.14 96% 62% Tick & fire counters [>1 together] - 22.15 21.48 27.34 0.96 71% 71% Tick & fire counters [>1 separately] - 359.18 357.42 384.77 1.10 65% 31% Alarm latency [0 threads] - 362.63 357.42 396.48 2.55 43% 27% Alarm latency [2 threads] - 408.22 402.34 416.02 2.73 55% 21% Alarm latency [many threads] - 378.63 375.00 494.14 2.56 93% 71% Alarm -> thread resume latency - - 9.78 5.86 19.53 0.00 Clock/interrupt latency - - 12.21 5.86 31.25 0.00 Clock DSR latency - - 12 0 316 (main stack: 752) Thread stack used (1120 total) -All done, main stack : stack used 752 size 2400 -All done : Interrupt stack used 288 size 4096 -All done : Idlethread stack used 276 size 2048 - -Timing complete - 30550 ms total - -PASS:<Basic timing OK> -EXIT:<done> - - </LITERALLAYOUT> -</SECT2> -</SECT1> - -<!-- ==================================================== --> - -<SECT1 id="rt-arm-pid"> -<TITLE>Board: ARM PID Evaluation Board</TITLE> -<SECT2> -<TITLE>CPU : ARM 7TDMI 20 MHz</TITLE> -<LITERALLAYOUT CLASS="MONOSPACED">Board: ARM PID Evaluation Board - -CPU : ARM 7TDMI 20 MHz - - - -Startup, main stack : stack used 404 size 2400 -Startup : Interrupt stack used 136 size 4096 -Startup : Idlethread stack used 84 size 2048 - -eCos Kernel Timings -Notes: all times are in microseconds (.000001) unless otherwise stated - -Reading the hardware clock takes 6 'ticks' overhead -... this value will be factored out of all other measurements -Clock interrupt took 120.74 microseconds (150 raw clock ticks) - -Testing parameters: - Clock samples: 32 - Threads: 50 - Thread switches: 128 - Mutexes: 32 - Mailboxes: 32 - Semaphores: 32 - Scheduler operations: 128 - Counters: 32 - Alarms: 32 - - - Confidence - Ave Min Max Var Ave Min Function - ====== ====== ====== ====== ========== ======== - 99.01 68.00 129.60 15.62 50% 26% Create thread - 21.60 21.60 21.60 0.00 100% 100% Yield thread [all suspended] - 15.65 15.20 16.00 0.39 56% 44% Suspend [suspended] thread - 15.79 15.20 16.00 0.31 74% 26% Resume thread - 23.65 23.20 24.00 0.39 56% 44% Set priority - 2.26 1.60 2.40 0.24 82% 18% Get priority - 51.39 51.20 52.00 0.29 76% 76% Kill [suspended] thread - 21.60 21.60 21.60 0.00 100% 100% Yield [no other] thread - 29.47 28.00 29.60 0.22 86% 2% Resume [suspended low prio] thread - 15.60 15.20 16.00 0.40 100% 50% Resume [runnable low prio] thread - 27.73 24.00 28.00 0.40 74% 2% Suspend [runnable] thread - 21.60 21.60 21.60 0.00 100% 100% Yield [only low prio] thread - 15.65 15.20 16.00 0.39 56% 44% Suspend [runnable->not runnable] - 51.39 51.20 52.00 0.29 76% 76% Kill [runnable] thread - 27.66 27.20 28.80 0.41 54% 44% Destroy [dead] thread - 68.93 64.80 69.60 0.35 72% 2% Destroy [runnable] thread - 91.26 90.40 107.20 0.64 66% 32% Resume [high priority] thread - 49.14 48.80 49.60 0.39 57% 57% Thread switch - - 2.20 1.60 2.40 0.30 75% 25% Scheduler lock - 10.20 9.60 10.40 0.30 75% 25% Scheduler unlock [0 threads] - 10.20 9.60 10.40 0.30 75% 25% Scheduler unlock [1 suspended] - 10.20 9.60 10.40 0.30 75% 25% Scheduler unlock [many suspended] - 10.20 9.60 10.40 0.30 75% 25% Scheduler unlock [many low prio] - - 6.85 6.40 7.20 0.39 56% 43% Init mutex - 18.40 18.40 18.40 0.00 100% 100% Lock [unlocked] mutex - 19.57 19.20 20.00 0.40 53% 53% Unlock [locked] mutex - 16.55 16.00 16.80 0.34 68% 31% Trylock [unlocked] mutex - 14.55 14.40 15.20 0.24 81% 81% Trylock [locked] mutex - 3.55 3.20 4.00 0.39 56% 56% Destroy mutex - 119.85 119.20 120.00 0.24 81% 18% Unlock/Lock mutex - - 12.85 12.80 13.60 0.09 93% 93% Create mbox - 1.65 1.60 2.40 0.09 93% 93% Peek [empty] mbox - 20.70 20.00 20.80 0.17 87% 12% Put [first] mbox - 1.65 1.60 2.40 0.09 93% 93% Peek [1 msg] mbox - 20.70 20.00 20.80 0.17 87% 12% Put [second] mbox - 1.65 1.60 2.40 0.09 93% 93% Peek [2 msgs] mbox - 20.85 20.80 21.60 0.09 93% 93% Get [first] mbox - 20.85 20.80 21.60 0.09 93% 93% Get [second] mbox - 19.90 19.20 20.00 0.17 87% 12% Tryput [first] mbox - 17.60 17.60 17.60 0.00 100% 100% Peek item [non-empty] mbox - 20.90 20.80 21.60 0.17 87% 87% Tryget [non-empty] mbox - 16.80 16.80 16.80 0.00 100% 100% Peek item [empty] mbox - 17.65 17.60 18.40 0.09 93% 93% Tryget [empty] mbox - 1.85 1.60 2.40 0.34 68% 68% Waiting to get mbox - 1.85 1.60 2.40 0.34 68% 68% Waiting to put mbox - 19.40 19.20 20.00 0.30 75% 75% Delete mbox - 65.05 64.80 65.60 0.34 68% 68% Put/Get mbox - - 7.05 6.40 7.20 0.24 81% 18% Init semaphore - 15.55 15.20 16.00 0.39 56% 56% Post [0] semaphore - 17.35 16.80 17.60 0.34 68% 31% Wait [1] semaphore - 14.60 14.40 15.20 0.30 75% 75% Trywait [0] semaphore - 14.20 13.60 14.40 0.30 75% 25% Trywait [1] semaphore - 4.55 4.00 4.80 0.34 68% 31% Peek semaphore - 3.75 3.20 4.00 0.34 68% 31% Destroy semaphore - 70.85 70.40 71.20 0.39 56% 43% Post/Wait semaphore - - 6.05 5.60 6.40 0.39 56% 43% Create counter - 2.25 1.60 2.40 0.24 81% 18% Get counter value - 2.25 1.60 2.40 0.24 81% 18% Set counter value - 19.70 19.20 20.00 0.37 62% 37% Tick counter - 3.45 3.20 4.00 0.34 68% 68% Delete counter - - 9.05 8.80 9.60 0.34 68% 68% Create alarm - 29.60 29.60 29.60 0.00 100% 100% Initialize alarm - 2.15 1.60 2.40 0.34 68% 31% Disable alarm - 29.35 28.80 29.60 0.34 68% 31% Enable alarm - 5.10 4.80 5.60 0.37 62% 62% Delete alarm - 23.20 23.20 23.20 0.00 100% 100% Tick counter [1 alarm] - 138.00 137.60 138.40 0.40 100% 50% Tick counter [many alarms] - 40.40 40.00 40.80 0.40 100% 50% Tick & fire counter [1 alarm] - 704.25 697.60 804.00 12.47 93% 93% Tick & fire counters [>1 together] - 155.20 155.20 155.20 0.00 100% 100% Tick & fire counters [>1 separately] - 105.20 104.80 151.20 0.76 99% 94% Alarm latency [0 threads] - 117.57 104.80 149.60 7.13 57% 25% Alarm latency [2 threads] - 117.49 104.80 148.80 7.10 58% 26% Alarm latency [many threads] - 192.59 177.60 316.00 1.93 98% 0% Alarm -> thread resume latency - - 22.10 21.60 24.00 0.00 Clock/interrupt latency - - 38.69 32.80 61.60 0.00 Clock DSR latency - - 297 276 316 (main stack: 752) Thread stack used (1120 total) -All done, main stack : stack used 752 size 2400 -All done : Interrupt stack used 288 size 4096 -All done : Idlethread stack used 272 size 2048 - -Timing complete - 30350 ms total - -PASS:<Basic timing OK> -EXIT:<done> - - </LITERALLAYOUT> -</SECT2> -<SECT2> -<TITLE>CPU : ARM 920T 20 MHz</TITLE> -<LITERALLAYOUT CLASS="MONOSPACED"> - -Board: ARM PID Evaluation Board - -CPU : ARM 920T 20 MHz - - -Startup, main stack : stack used 404 size 2400 -Startup : Interrupt stack used 136 size 4096 -Startup : Idlethread stack used 84 size 2048 - -eCos Kernel Timings -Notes: all times are in microseconds (.000001) unless otherwise stated - -Reading the hardware clock takes 15 'ticks' overhead -... this value will be factored out of all other measurements -Clock interrupt took 291.41 microseconds (364 raw clock ticks) - -Testing parameters: - Clock samples: 32 - Threads: 50 - Thread switches: 128 - Mutexes: 32 - Mailboxes: 32 - Semaphores: 32 - Scheduler operations: 128 - Counters: 32 - Alarms: 32 - - - Confidence - Ave Min Max Var Ave Min Function - ====== ====== ====== ====== ========== ======== - 257.78 168.00 568.00 48.70 56% 28% Create thread - 50.21 49.60 50.40 0.29 76% 24% Yield thread [all suspended] - 36.26 36.00 36.80 0.35 68% 68% Suspend [suspended] thread - 37.20 36.80 37.60 0.40 100% 50% Resume thread - 56.24 56.00 56.80 0.34 70% 70% Set priority - 5.20 4.80 5.60 0.40 100% 50% Get priority - 122.75 122.40 123.20 0.39 56% 56% Kill [suspended] thread - 50.19 49.60 50.40 0.31 74% 26% Yield [no other] thread - 69.49 66.40 69.60 0.21 92% 2% Resume [suspended low prio] thread - 37.01 36.80 37.60 0.31 74% 74% Resume [runnable low prio] thread - 64.75 55.20 65.60 0.38 80% 2% Suspend [runnable] thread - 50.19 49.60 50.40 0.31 74% 26% Yield [only low prio] thread - 36.24 36.00 36.80 0.34 70% 70% Suspend [runnable->not runnable] - 122.75 122.40 123.20 0.39 56% 56% Kill [runnable] thread - 67.76 67.20 68.00 0.34 70% 30% Destroy [dead] thread - 167.07 158.40 168.00 0.35 92% 2% Destroy [runnable] thread - 213.49 212.00 249.60 1.46 84% 90% Resume [high priority] thread - 122.81 120.00 389.60 4.17 99% 99% Thread switch - - 4.70 4.00 4.80 0.17 87% 12% Scheduler lock - 23.70 23.20 24.00 0.37 62% 37% Scheduler unlock [0 threads] - 23.60 23.20 24.00 0.40 100% 50% Scheduler unlock [1 suspended] - 23.70 23.20 24.00 0.37 62% 37% Scheduler unlock [many suspended] - 23.60 23.20 24.00 0.40 100% 50% Scheduler unlock [many low prio] - - 15.65 15.20 16.00 0.39 56% 43% Init mutex - 42.40 42.40 42.40 0.00 100% 100% Lock [unlocked] mutex - 45.37 44.80 46.40 0.36 65% 31% Unlock [locked] mutex - 39.20 39.20 39.20 0.00 100% 100% Trylock [unlocked] mutex - 34.45 34.40 35.20 0.09 93% 93% Trylock [locked] mutex - 8.00 8.00 8.00 0.00 100% 100% Destroy mutex - 284.42 284.00 284.80 0.40 53% 46% Unlock/Lock mutex - - 29.40 28.80 29.60 0.30 75% 25% Create mbox - 3.35 3.20 4.00 0.24 81% 81% Peek [empty] mbox - 49.35 48.80 49.60 0.34 68% 31% Put [first] mbox - 3.35 3.20 4.00 0.24 81% 81% Peek [1 msg] mbox - 49.35 48.80 49.60 0.34 68% 31% Put [second] mbox - 3.35 3.20 4.00 0.24 81% 81% Peek [2 msgs] mbox - 49.15 48.80 49.60 0.39 56% 56% Get [first] mbox - 49.15 48.80 49.60 0.39 56% 56% Get [second] mbox - 47.80 47.20 48.00 0.30 75% 25% Tryput [first] mbox - 41.40 40.80 41.60 0.30 75% 25% Peek item [non-empty] mbox - 49.40 48.80 49.60 0.30 75% 25% Tryget [non-empty] mbox - 40.15 40.00 40.80 0.24 81% 81% Peek item [empty] mbox - 40.95 40.80 41.60 0.24 81% 81% Tryget [empty] mbox - 4.05 4.00 4.80 0.09 93% 93% Waiting to get mbox - 4.05 4.00 4.80 0.09 93% 93% Waiting to put mbox - 45.60 45.60 45.60 0.00 100% 100% Delete mbox - 153.27 152.80 153.60 0.39 59% 40% Put/Get mbox - - 16.80 16.80 16.80 0.00 100% 100% Init semaphore - 36.60 36.00 36.80 0.30 75% 25% Post [0] semaphore - 39.60 39.20 40.00 0.40 100% 50% Wait [1] semaphore - 34.80 34.40 35.20 0.40 100% 50% Trywait [0] semaphore - 33.35 32.80 33.60 0.34 68% 31% Trywait [1] semaphore - 10.30 9.60 10.40 0.17 87% 12% Peek semaphore - 8.80 8.80 8.80 0.00 100% 100% Destroy semaphore - 166.92 166.40 167.20 0.36 65% 34% Post/Wait semaphore - - 13.60 13.60 13.60 0.00 100% 100% Create counter - 4.85 4.80 5.60 0.09 93% 93% Get counter value - 4.80 4.80 4.80 0.00 100% 100% Set counter value - 45.25 44.80 45.60 0.39 56% 43% Tick counter - 7.75 7.20 8.00 0.34 68% 31% Delete counter - - 20.80 20.80 20.80 0.00 100% 100% Create alarm - 69.30 68.80 69.60 0.37 62% 37% Initialize alarm - 4.80 4.80 4.80 0.00 100% 100% Disable alarm - 67.35 67.20 68.00 0.24 81% 81% Enable alarm - 11.80 11.20 12.00 0.30 75% 25% Delete alarm - 54.80 54.40 55.20 0.40 100% 50% Tick counter [1 alarm] - 372.35 363.20 652.80 17.53 96% 96% Tick counter [many alarms] - 95.50 95.20 96.00 0.37 62% 62% Tick & fire counter [1 alarm] - 1757.92 1707.20 1996.80 81.43 81% 81% Tick & fire counters [>1 together] - 404.37 404.00 404.80 0.40 53% 53% Tick & fire counters [>1 separately] - 256.57 254.40 395.20 2.17 98% 97% Alarm latency [0 threads] - 296.60 255.20 359.20 23.53 53% 31% Alarm latency [2 threads] - 307.49 265.60 357.60 27.52 53% 53% Alarm latency [many threads] - 467.04 432.00 788.80 5.03 97% 1% Alarm -> thread resume latency - - 55.63 54.40 60.80 0.00 Clock/interrupt latency - - 101.23 80.80 1433.60 0.00 Clock DSR latency - - 316 316 316 (main stack: 752) Thread stack used (1120 total) -All done, main stack : stack used 752 size 2400 -All done : Interrupt stack used 288 size 4096 -All done : Idlethread stack used 272 size 2048 - -Timing complete - 30780 ms total - -PASS:<Basic timing OK> -EXIT:<done> - </LITERALLAYOUT> -</SECT2> -</SECT1> - -<!-- ==================================================== --> - -<SECT1 id="rt-arm-iq80310"> -<TITLE>Board: Intel IQ80310 XScale Development Kit</TITLE> -<LITERALLAYOUT CLASS="MONOSPACED">Board: Intel IQ80310 XScale Development Kit - -CPU: Intel XScale 600MHz - - -Startup, main stack : stack used 388 size 2400 -Startup : Interrupt stack used 148 size 4096 -Startup : Idlethread stack used 76 size 1120 - -eCos Kernel Timings -Notes: all times are in microseconds (.000001) unless otherwise stated - -Reading the hardware clock takes 73 'ticks' overhead -... this value will be factored out of all other measurements -Clock interrupt took 12.11 microseconds (399 raw clock ticks) - -Testing parameters: - Clock samples: 32 - Threads: 64 - Thread switches: 128 - Mutexes: 32 - Mailboxes: 32 - Semaphores: 32 - Scheduler operations: 128 - Counters: 32 - Alarms: 32 - - - Confidence - Ave Min Max Var Ave Min Function - ====== ====== ====== ====== ========== ======== - 6.53 5.48 8.55 0.50 53% 23% Create thread - 0.37 0.03 3.24 0.18 87% 1% Yield thread [all suspended] - 0.24 0.00 2.06 0.12 87% 1% Suspend [suspended] thread - 0.25 0.00 0.73 0.06 71% 1% Resume thread - 0.36 0.09 0.82 0.10 89% 1% Set priority - 0.03 0.00 0.42 0.05 90% 90% Get priority - 1.07 0.52 6.39 0.18 92% 1% Kill [suspended] thread - 0.33 0.06 0.91 0.08 78% 3% Yield [no other] thread - 0.55 0.03 1.06 0.09 85% 1% Resume [suspended low prio] thread - 0.28 0.00 1.79 0.11 84% 4% Resume [runnable low prio] thread - 0.43 0.00 1.00 0.12 76% 1% Suspend [runnable] thread - 0.31 0.00 1.24 0.09 82% 4% Yield [only low prio] thread - 0.21 0.00 0.42 0.04 73% 1% Suspend [runnable->not runnable] - 1.00 0.88 1.45 0.04 78% 4% Kill [runnable] thread - 0.59 0.42 3.97 0.13 81% 87% Destroy [dead] thread - 1.43 1.27 1.94 0.07 78% 7% Destroy [runnable] thread - 3.12 2.58 5.09 0.33 56% 34% Resume [high priority] thread - 0.87 0.36 1.39 0.07 86% 0% Thread switch - - 0.15 0.00 1.39 0.21 81% 81% Scheduler lock - 0.16 0.00 0.64 0.08 85% 7% Scheduler unlock [0 threads] - 0.16 0.00 0.64 0.08 75% 8% Scheduler unlock [1 suspended] - 0.16 0.00 0.70 0.08 78% 6% Scheduler unlock [many suspended] - 0.16 0.00 0.64 0.07 81% 4% Scheduler unlock [many low prio] - - 0.45 0.00 1.39 0.34 56% 46% Init mutex - 0.43 0.18 3.27 0.23 87% 87% Lock [unlocked] mutex - 0.48 0.09 3.88 0.26 84% 71% Unlock [locked] mutex - 0.35 0.21 2.24 0.21 87% 84% Trylock [unlocked] mutex - 0.26 0.00 0.67 0.13 78% 9% Trylock [locked] mutex - 0.21 0.00 1.27 0.24 78% 75% Destroy mutex - 2.58 2.09 3.09 0.13 75% 9% Unlock/Lock mutex - - 0.99 0.21 2.48 0.41 65% 28% Create mbox - 0.04 0.00 0.39 0.07 90% 87% Peek [empty] mbox - 0.47 0.27 3.48 0.29 90% 78% Put [first] mbox - 0.02 0.00 0.39 0.03 90% 90% Peek [1 msg] mbox - 0.29 0.15 0.58 0.04 68% 3% Put [second] mbox - 0.02 0.00 0.45 0.04 93% 93% Peek [2 msgs] mbox - 0.48 0.21 3.67 0.26 84% 87% Get [first] mbox - 0.35 0.09 0.82 0.11 75% 3% Get [second] mbox - 0.50 0.21 3.18 0.33 90% 68% Tryput [first] mbox - 0.39 0.15 1.39 0.19 78% 68% Peek item [non-empty] mbox - 0.43 0.18 3.33 0.23 87% 90% Tryget [non-empty] mbox - 0.28 0.03 0.79 0.06 68% 3% Peek item [empty] mbox - 0.28 0.21 0.58 0.05 71% 65% Tryget [empty] mbox - 0.01 0.00 0.36 0.02 96% 90% Waiting to get mbox - 0.05 0.00 0.45 0.09 87% 84% Waiting to put mbox - 0.42 0.09 2.88 0.20 84% 12% Delete mbox - 1.39 1.27 2.39 0.14 87% 87% Put/Get mbox - - 0.35 0.00 1.36 0.45 75% 68% Init semaphore - 0.19 0.00 0.45 0.04 81% 3% Post [0] semaphore - 0.25 0.21 0.88 0.06 84% 81% Wait [1] semaphore - 0.32 0.06 1.79 0.21 78% 68% Trywait [0] semaphore - 0.20 0.00 0.52 0.06 62% 3% Trywait [1] semaphore - 0.07 0.00 0.45 0.10 84% 81% Peek semaphore - 0.06 0.00 0.52 0.06 71% 78% Destroy semaphore - 1.45 1.42 1.79 0.04 87% 87% Post/Wait semaphore - - 0.70 0.00 2.88 0.47 43% 34% Create counter - 0.05 0.00 0.42 0.09 87% 84% Get counter value - 0.02 0.00 0.45 0.04 93% 93% Set counter value - 0.38 0.12 0.58 0.06 59% 3% Tick counter - 0.03 0.00 0.48 0.05 93% 78% Delete counter - - 1.10 0.39 4.30 0.47 62% 53% Create alarm - 0.58 0.03 3.12 0.18 87% 3% Initialize alarm - 0.04 0.00 0.42 0.07 90% 90% Disable alarm - 0.54 0.36 1.36 0.12 84% 43% Enable alarm - 0.03 0.00 0.70 0.06 84% 84% Delete alarm - 0.50 0.24 0.97 0.08 84% 6% Tick counter [1 alarm] - 5.30 5.12 5.97 0.14 84% 75% Tick counter [many alarms] - 0.82 0.64 1.36 0.11 78% 43% Tick & fire counter [1 alarm] - 14.13 13.85 14.55 0.09 78% 3% Tick & fire counters [>1 together] - 5.56 5.45 6.00 0.09 78% 71% Tick & fire counters [>1 separately] - 9.69 9.45 12.52 0.22 64% 71% Alarm latency [0 threads] - 9.98 9.48 12.76 0.23 69% 14% Alarm latency [2 threads] - 10.38 9.48 24.67 0.59 74% 45% Alarm latency [many threads] - 11.72 11.30 21.33 0.32 81% 58% Alarm -> thread resume latency - - 1.87 1.82 10.42 0.00 Clock/interrupt latency - - 3.02 2.58 7.67 0.00 Clock DSR latency - - 9 0 260 (main stack: 776) Thread stack used (1120 total) -All done, main stack : stack used 776 size 2400 -All done : Interrupt stack used 268 size 4096 -All done : Idlethread stack used 244 size 1120 - -Timing complete - 30300 ms total - -PASS:<Basic timing OK> -EXIT:<done> - - </LITERALLAYOUT> -</SECT1> - -<!-- ==================================================== --> - -<SECT1 id="rt-tx39-jmr3904"> -<TITLE>Board: Toshiba JMR3904 Evaluation Board</TITLE> -<LITERALLAYOUT CLASS="MONOSPACED"> - -Board: Toshiba JMR3904 Evaluation Board - -CPU : TMPR3904F 50MHz - - -eCOS Kernel Timings -Note: all times are in microseconds (.000001) unless otherwise stated - -Reading the hardware clock takes 0 'ticks' overhead -... this value will be factored out of all other measurements -Clock interrupt took 29.68 microseconds (45 raw clock ticks) - -Testing parameters: - Clock samples: 32 - Threads: 24 - Thread switches: 128 - Mutexes: 32 - Mailboxes: 32 - Semaphores: 32 - Scheduler operations: 128 - Counters: 32 - Alarms: 32 - - - Confidence - Ave Min Max Var Ave Min Function - ====== ====== ====== ====== ========== ======== - 13.62 11.72 27.99 1.51 79% 54% Create thread - 2.77 2.60 3.91 0.26 79% 79% Yield thread [all suspended] - 3.31 2.60 6.51 0.27 83% 12% Suspend [suspended] thread - 2.58 1.95 7.81 0.47 58% 37% Resume thread - 4.94 4.56 11.07 0.60 95% 79% Set priority - 0.71 0.65 1.95 0.10 95% 95% Get priority - 14.97 14.32 25.39 0.87 95% 95% Kill [suspended] thread - 2.25 1.95 9.11 0.57 95% 95% Yield [no other] thread - 7.27 6.51 12.37 0.42 79% 16% Resume [suspended low prio] thread - 2.28 1.95 7.16 0.51 95% 79% Resume [runnable low prio] thread - 4.31 3.26 12.37 0.75 87% 79% Suspend [runnable] thread - 2.17 1.95 7.16 0.42 95% 95% Yield [only low prio] thread - 2.39 1.95 6.51 0.51 95% 58% Suspend [runnable->not runnable] - 13.43 12.37 22.79 0.80 91% 91% Kill [runnable] thread - 22.30 20.83 37.76 1.76 91% 91% Resume [high priority] thread - 4.62 4.56 11.07 0.13 98% 98% Thread switch - - 1.51 1.30 2.60 0.29 68% 68% Scheduler lock - 2.36 1.95 3.26 0.31 61% 37% Scheduler unlock [0 threads] - 2.39 1.95 5.21 0.32 62% 36% Scheduler unlock [1 suspended] - 2.38 1.95 4.56 0.32 61% 37% Scheduler unlock [many suspended] - 2.38 1.95 5.21 0.32 61% 37% Scheduler unlock [many low prio] - - 0.90 0.65 3.26 0.35 71% 71% Init mutex - 2.48 1.95 8.46 0.50 50% 46% Lock [unlocked] mutex - 2.83 2.60 9.11 0.42 93% 93% Unlock [locked] mutex - 2.30 1.95 6.51 0.45 96% 65% Trylock [unlocked] mutex - 1.99 1.30 5.86 0.24 84% 12% Trylock [locked] mutex - 0.04 0.00 1.30 0.08 96% 96% Destroy mutex - 42.40 42.32 44.92 0.16 96% 96% Unlock/Lock mutex - - 1.44 1.30 5.86 0.28 96% 96% Create mbox - 0.51 0.00 1.30 0.25 71% 25% Peek [empty] mbox - 2.93 2.60 9.11 0.51 96% 78% Put [first] mbox - 0.51 0.00 1.30 0.25 71% 25% Peek [1 msg] mbox - 4.19 3.91 5.21 0.34 59% 59% Put [second] mbox - 0.45 0.00 0.65 0.28 68% 31% Peek [2 msgs] mbox - 3.28 2.60 10.42 0.45 65% 31% Get [first] mbox - 3.34 2.60 9.77 0.40 78% 18% Get [second] mbox - 2.69 1.95 9.11 0.40 78% 18% Tryput [first] mbox - 2.75 1.95 7.81 0.32 93% 3% Peek item [non-empty] mbox - 3.15 2.60 9.11 0.48 53% 43% Tryget [non-empty] mbox - 2.22 1.95 6.51 0.41 96% 78% Peek item [empty] mbox - 2.40 1.95 5.86 0.42 50% 46% Tryget [empty] mbox - 0.47 0.00 0.65 0.26 71% 28% Waiting to get mbox - 0.59 0.00 1.30 0.15 84% 12% Waiting to put mbox - 4.01 3.26 10.42 0.40 81% 15% Delete mbox - 26.18 26.04 30.60 0.28 96% 96% Put/Get mbox - - 0.92 0.65 3.91 0.38 71% 71% Init semaphore - 2.24 1.95 6.51 0.43 96% 75% Post [0] semaphore - 2.32 1.95 7.16 0.48 96% 65% Wait [1] semaphore - 2.03 1.30 5.86 0.24 90% 6% Trywait [0] semaphore - 1.91 1.30 4.56 0.23 78% 18% Trywait [1] semaphore - 0.77 0.00 1.95 0.30 65% 9% Peek semaphore - 0.61 0.00 1.95 0.15 84% 12% Destroy semaphore - 22.62 22.14 30.60 0.61 96% 62% Post/Wait semaphore - - 0.92 0.65 3.91 0.38 71% 71% Create counter - 0.69 0.65 1.95 0.08 96% 96% Get counter value - 0.41 0.00 1.30 0.33 56% 40% Set counter value - 3.21 2.60 5.86 0.27 71% 21% Tick counter - 0.65 0.00 3.26 0.16 84% 12% Delete counter - - 1.57 1.30 4.56 0.38 71% 71% Create alarm - 4.52 3.91 13.02 0.57 50% 46% Initialize alarm - 0.61 0.00 1.95 0.15 84% 12% Disable alarm - 4.43 3.91 9.11 0.43 56% 40% Enable alarm - 0.87 0.65 2.60 0.32 71% 71% Delete alarm - 2.93 2.60 6.51 0.43 96% 65% Tick counter [1 alarm] - 14.83 14.32 22.79 0.60 96% 59% Tick counter [many alarms] - 4.88 4.56 11.07 0.51 96% 78% Tick & fire counter [1 alarm] - 83.25 82.03 102.86 1.23 96% 93% Tick & fire counters [>1 together] - 17.58 16.93 27.34 0.61 50% 46% Tick & fire counters [>1 separately] - 26.18 24.74 40.36 0.30 97% 0% Alarm latency [0 threads] - 33.88 29.30 56.64 1.70 85% 6% Alarm latency [2 threads] - 36.37 29.30 61.20 3.25 53% 24% Alarm latency [many threads] - - 7.85 6.51 14.97 0.00 Clock/interrupt latency - -Timing complete - 23540 ms total - -PASS:<Basic timing OK> -EXIT:<done> - - </LITERALLAYOUT> -</SECT1> - -<!-- ==================================================== --> - -<SECT1 id="rt-tx49-ref4955"> -<TITLE>Board: Toshiba REF 4955</TITLE> -<LITERALLAYOUT CLASS="MONOSPACED"> - -Board: Toshiba REF 4955 - -CPU : Toshiba TX4955 66MHz - -Startup, main stack : stack used 960 size 2936 -Startup : Interrupt stack used 168 size 4096 -Startup : Idlethread stack used 372 size 2048 - -eCos Kernel Timings -Notes: all times are in microseconds (.000001) unless otherwise stated - -Reading the hardware clock takes 3 `ticks' overhead -... this value will be factored out of all other measurements -Clock interrupt took 4.00 microseconds (264 raw clock ticks) - -Testing parameters: - Clock samples: 32 - Threads: 64 - Thread switches: 128 - Mutexes: 32 - Mailboxes: 32 - Semaphores: 32 - Scheduler operations: 128 - Counters: 32 - Alarms: 32 - - - Confidence - Ave Min Max Var Ave Min Function - ====== ====== ====== ====== ========== ======== - 11.21 9.58 14.11 0.95 48% 34% Create thread - 0.66 0.65 1.29 0.02 98% 98% Yield thread [all suspended] - 0.63 0.53 3.06 0.17 82% 82% Suspend [suspended] thread - 0.54 0.53 1.06 0.02 98% 98% Resume thread - 0.78 0.74 1.39 0.05 93% 93% Set priority - 0.05 0.05 0.36 0.01 98% 98% Get priority - 2.06 1.89 6.65 0.25 95% 79% Kill [suspended] thread - 0.65 0.65 0.68 0.00 98% 98% Yield [no other] thread - 1.15 1.02 3.03 0.20 81% 81% Resume [suspended low prio] thread - 0.54 0.52 1.18 0.03 96% 96% Resume [runnable low prio] thread - 0.94 0.88 1.27 0.01 95% 1% Suspend [runnable] thread - 0.65 0.65 0.68 0.00 98% 98% Yield [only low prio] thread - 0.54 0.53 0.86 0.01 98% 96% Suspend [runnable->not runnable] - 1.97 1.89 2.98 0.12 84% 84% Kill [runnable] thread - 1.03 0.92 4.94 0.17 89% 89% Destroy [dead] thread - 2.55 2.33 4.38 0.24 89% 70% Destroy [runnable] thread - 5.62 4.11 13.23 0.99 65% 40% Resume [high priority] thread - 1.84 1.83 2.79 0.02 98% 98% Thread switch - - 0.12 0.02 0.65 0.15 74% 74% Scheduler lock - 0.35 0.35 0.35 0.00 100% 100% Scheduler unlock [0 threads] - 0.35 0.35 0.35 0.00 100% 100% Scheduler unlock [1 suspended] - 0.43 0.35 1.17 0.13 78% 78% Scheduler unlock [many suspended] - 0.45 0.35 1.17 0.15 75% 75% Scheduler unlock [many low prio] - - 0.46 0.15 3.38 0.30 62% 50% Init mutex - 0.73 0.64 3.27 0.16 96% 96% Lock [unlocked] mutex - 0.77 0.65 4.50 0.23 96% 96% Unlock [locked] mutex - 0.58 0.55 1.42 0.05 96% 96% Trylock [unlocked] mutex - 0.51 0.50 0.83 0.02 96% 96% Trylock [locked] mutex - 0.12 0.11 0.41 0.02 96% 96% Destroy mutex - 4.72 4.70 5.58 0.05 96% 96% Unlock/Lock mutex - - 1.01 0.67 3.48 0.40 71% 71% Create mbox - 0.02 0.00 0.53 0.03 96% 96% Peek [empty] mbox - 0.89 0.68 4.20 0.29 96% 71% Put [first] mbox - 0.02 0.00 0.33 0.02 96% 96% Peek [1 msg] mbox - 0.69 0.68 0.76 0.01 50% 46% Put [second] mbox - 0.02 0.00 0.30 0.02 96% 96% Peek [2 msgs] mbox - 0.81 0.71 3.83 0.19 96% 96% Get [first] mbox - 0.72 0.71 1.02 0.02 96% 96% Get [second] mbox - 0.81 0.65 2.74 0.22 96% 71% Tryput [first] mbox - 0.67 0.62 2.27 0.10 96% 96% Peek item [non-empty] mbox - 0.77 0.71 2.41 0.10 96% 96% Tryget [non-empty] mbox - 0.59 0.58 0.88 0.02 96% 96% Peek item [empty] mbox - 0.62 0.62 0.67 0.00 96% 96% Tryget [empty] mbox - 0.03 0.02 0.32 0.02 96% 96% Waiting to get mbox - 0.02 0.02 0.06 0.01 50% 46% Waiting to put mbox - 0.75 0.65 3.59 0.18 96% 96% Delete mbox - 2.80 2.77 3.59 0.05 96% 96% Put/Get mbox - - 0.37 0.18 0.88 0.28 71% 71% Init semaphore - 0.48 0.47 0.80 0.02 96% 96% Post [0] semaphore - 0.60 0.59 0.67 0.01 50% 46% Wait [1] semaphore - 0.53 0.50 1.41 0.06 96% 96% Trywait [0] semaphore - 0.51 0.50 0.71 0.01 96% 50% Trywait [1] semaphore - 0.09 0.09 0.15 0.00 96% 96% Peek semaphore - 0.12 0.11 0.41 0.02 96% 96% Destroy semaphore - 3.05 3.05 3.05 0.00 100% 100% Post/Wait semaphore - - 0.57 0.17 2.76 0.24 59% 25% Create counter - 0.06 0.05 0.58 0.03 96% 96% Get counter value - 0.06 0.03 0.64 0.04 96% 96% Set counter value - 0.73 0.71 1.02 0.02 96% 96% Tick counter - 0.12 0.11 0.15 0.01 50% 46% Delete counter - - 0.89 0.64 3.15 0.34 84% 71% Create alarm - 1.00 0.95 2.41 0.09 96% 96% Initialize alarm - 0.09 0.06 0.68 0.04 96% 96% Disable alarm - 1.05 1.00 2.48 0.09 96% 96% Enable alarm - 0.18 0.17 0.50 0.02 96% 96% Delete alarm - 0.90 0.89 1.11 0.01 96% 96% Tick counter [1 alarm] - 5.60 5.59 5.88 0.02 96% 96% Tick counter [many alarms] - 1.53 1.52 2.11 0.04 96% 96% Tick & fire counter [1 alarm] - 25.48 25.47 25.76 0.02 96% 96% Tick & fire counters [>1 together] - 6.22 6.21 6.44 0.01 96% 96% Tick & fire counters [>1 separately] - 2.59 2.56 6.17 0.07 98% 98% Alarm latency [0 threads] - 4.06 3.95 6.24 0.08 78% 57% Alarm latency [2 threads] - 5.03 2.56 9.03 0.89 59% 10% Alarm latency [many threads] - 5.68 5.59 15.45 0.15 99% 99% Alarm -> thread resume latency - - 2.52 1.41 8.12 0.00 Clock/interrupt latency - - 2.05 1.17 6.00 0.00 Clock DSR latency - - 34 0 1072 (main stack: 1320) Thread stack used (1912 total) -All done, main stack : stack used 1320 size 2936 -All done : Interrupt stack used 136 size 4096 -All done : Idlethread stack used 996 size 2048 - -Timing complete - 30360 ms total - -PASS:<Basic timing OK> -EXIT:<done> - - </LITERALLAYOUT> -</SECT1> - -<!-- ==================================================== --> - -<SECT1 id="rt-mn10300-stdeval1"> -<TITLE>Board: Matsushita STDEVAL1 Board</TITLE> -<LITERALLAYOUT CLASS="MONOSPACED"> - -Board: Matsushita STDEVAL1 Board - -CPU : MN103002A 60MHz - -eCOS Kernel Timings -Note: all times are in microseconds (.000001) unless otherwise stated - -Reading the hardware clock takes 18 'ticks' overhead -... this value will be factored out of all other measurements -Clock interrupt took 13.73 microseconds (205 raw clock ticks) - -Testing parameters: - Clock samples: 32 - Threads: 24 - Thread switches: 128 - Mutexes: 32 - Mailboxes: 32 - Semaphores: 32 - Scheduler operations: 128 - Counters: 32 - Alarms: 32 - - - Confidence - Ave Min Max Var Ave Min Function - ====== ====== ====== ====== ========== ======== - 14.36 11.53 23.53 1.81 54% 33% Create thread - 2.64 2.53 5.07 0.20 95% 95% Yield thread [all suspended] - 2.25 1.93 4.80 0.31 45% 83% Suspend [suspended] thread - 2.19 2.00 4.93 0.28 91% 91% Resume thread - 3.42 3.00 8.40 0.47 95% 87% Set priority - 0.31 0.13 1.20 0.19 79% 58% Get priority - 8.26 7.40 18.80 0.93 95% 87% Kill [suspended] thread - 2.58 2.47 5.13 0.21 95% 95% Yield [no other] thread - 5.07 4.53 8.67 0.44 62% 50% Resume [suspended low prio] thread - 2.27 2.07 4.53 0.23 87% 87% Resume [runnable low prio] thread - 4.76 4.07 9.40 0.65 66% 75% Suspend [runnable] thread - 2.63 2.53 4.73 0.18 95% 95% Yield [only low prio] thread - 2.09 1.87 4.27 0.27 91% 79% Suspend [runnable->not runnable] - 10.79 10.00 18.20 0.81 95% 79% Kill [runnable] thread - 20.30 18.40 28.80 1.42 79% 54% Resume [high priority] thread - 5.53 5.47 12.13 0.11 98% 97% Thread switch - - 0.28 0.27 2.20 0.03 97% 97% Scheduler lock - 1.14 1.13 2.00 0.01 99% 99% Scheduler unlock [0 threads] - 1.14 1.13 2.40 0.02 99% 99% Scheduler unlock [1 suspended] - 1.16 1.13 3.33 0.06 95% 95% Scheduler unlock [many suspended] - 1.23 1.20 3.13 0.05 95% 95% Scheduler unlock [many low prio] - - 1.29 1.00 4.20 0.25 65% 50% Init mutex - 2.65 2.47 5.27 0.23 93% 87% Lock [unlocked] mutex - 3.26 3.07 6.80 0.28 93% 87% Unlock [locked] mutex - 2.48 2.33 5.07 0.21 90% 87% Trylock [unlocked] mutex - 2.20 2.07 4.67 0.21 93% 87% Trylock [locked] mutex - 0.23 0.20 1.00 0.05 96% 93% Destroy mutex - 25.11 24.73 27.53 0.21 65% 31% Unlock/Lock mutex - - 2.49 2.00 5.73 0.32 81% 37% Create mbox - 0.11 0.00 1.60 0.15 84% 81% Peek [empty] mbox - 3.01 2.60 9.47 0.52 96% 78% Put [first] mbox - 0.10 0.00 1.67 0.15 87% 81% Peek [1 msg] mbox - 3.09 2.60 8.33 0.50 93% 75% Put [second] mbox - 0.06 0.00 1.13 0.08 96% 87% Peek [2 msgs] mbox - 3.10 2.80 7.93 0.40 93% 84% Get [first] mbox - 3.13 2.80 7.53 0.43 90% 78% Get [second] mbox - 2.99 2.60 8.53 0.52 93% 75% Tryput [first] mbox - 2.65 2.33 6.80 0.42 90% 78% Peek item [non-empty] mbox - 3.05 2.73 7.60 0.42 93% 78% Tryget [non-empty] mbox - 3.16 2.93 6.27 0.31 84% 84% Peek item [empty] mbox - 2.48 2.27 5.73 0.30 84% 84% Tryget [empty] mbox - 0.23 0.13 2.07 0.14 96% 87% Waiting to get mbox - 0.22 0.13 1.93 0.13 96% 75% Waiting to put mbox - 3.08 2.80 7.93 0.42 84% 84% Delete mbox - 16.01 15.53 19.00 0.52 78% 59% Put/Get mbox - - 0.85 0.67 3.27 0.19 96% 50% Init semaphore - 2.00 1.93 3.87 0.12 96% 90% Post [0] semaphore - 2.05 2.00 3.47 0.09 96% 96% Wait [1] semaphore - 1.85 1.80 3.47 0.10 96% 96% Trywait [0] semaphore - 1.82 1.80 2.53 0.04 96% 96% Trywait [1] semaphore - 0.36 0.33 1.33 0.06 96% 96% Peek semaphore - 0.38 0.33 1.87 0.09 96% 96% Destroy semaphore - 12.38 12.20 16.27 0.30 93% 87% Post/Wait semaphore - - 1.18 0.73 4.07 0.24 78% 18% Create counter - 0.20 0.13 1.40 0.11 87% 87% Get counter value - 0.24 0.20 1.40 0.08 93% 93% Set counter value - 3.17 3.13 4.20 0.07 93% 93% Tick counter - 0.44 0.40 1.73 0.08 96% 96% Delete counter - - 2.24 1.67 5.13 0.47 68% 65% Create alarm - 3.86 3.40 9.67 0.51 90% 78% Initialize alarm - 0.15 0.07 1.60 0.12 96% 68% Disable alarm - 3.76 3.47 7.67 0.35 93% 75% Enable alarm - 0.57 0.47 2.73 0.16 96% 84% Delete alarm - 3.64 3.60 4.73 0.07 96% 96% Tick counter [1 alarm] - 21.72 21.67 23.27 0.10 96% 96% Tick counter [many alarms] - 6.13 6.07 8.07 0.12 96% 96% Tick & fire counter [1 alarm] - 101.40 99.53 132.73 2.75 93% 93% Tick & fire counters [>1 together] - 24.21 24.13 26.40 0.14 96% 96% Tick & fire counters [>1 separately] - 11.74 11.60 22.67 0.26 98% 98% Alarm latency [0 threads] - 14.58 11.73 24.93 1.59 54% 28% Alarm latency [2 threads] - 18.18 15.20 41.07 1.96 60% 43% Alarm latency [many threads] - - 3.06 2.13 10.33 0.00 Clock/interrupt latency - -Timing complete - 23480 ms total - -PASS:<Basic timing OK> -EXIT:<done> - - </LITERALLAYOUT> -</SECT1> - -<!-- ==================================================== --> - -<SECT1 id="rt-sparclite-sleb"> -<TITLE>Board: Fujitsu SPARClite Evaluation Board</TITLE> -<LITERALLAYOUT CLASS="MONOSPACED"> - -Board: Fujitsu SPARClite Evaluation Board - -CPU : Fujitsu SPARClite MB8683X 100MHz - - -eCOS Kernel Timings -Note: all times are in microseconds (.000001) unless otherwise stated - -Reading the hardware clock takes 0 'ticks' overhead -... this value will be factored out of all other measurements -Clock interrupt took 17.19 microseconds (17 raw clock ticks) - -Testing parameters: - Clock samples: 32 - Threads: 24 - Thread switches: 128 - Mutexes: 32 - Mailboxes: 32 - Semaphores: 32 - Scheduler operations: 128 - Counters: 32 - Alarms: 32 - - - Confidence - Ave Min Max Var Ave Min Function - ====== ====== ====== ====== ========== ======== - 48.59 47.00 63.01 1.41 66% 70% Create thread - 2.13 2.00 5.00 0.24 95% 95% Yield thread [all suspended] - 2.92 2.00 10.00 0.69 58% 37% Suspend [suspended] thread - 2.13 1.00 10.00 0.66 75% 20% Resume thread - 2.79 2.00 11.00 0.86 95% 54% Set priority - 1.00 0.00 5.00 0.33 79% 16% Get priority - 7.17 5.00 34.00 2.24 95% 95% Kill [suspended] thread - 2.42 2.00 12.00 0.80 95% 95% Yield [no other] thread - 3.46 2.00 14.00 1.10 75% 83% Resume [suspended low prio] thread - 2.00 1.00 9.00 0.58 66% 29% Resume [runnable low prio] thread - 4.21 3.00 20.00 1.38 95% 91% Suspend [runnable] thread - 2.33 2.00 10.00 0.64 95% 95% Yield [only low prio] thread - 2.00 1.00 9.00 0.67 58% 33% Suspend [runnable->not runnable] - 5.79 4.00 30.00 2.07 95% 95% Kill [runnable] thread - 39.34 37.00 75.01 3.36 91% 91% Resume [high priority] thread - 15.20 15.00 31.00 0.40 97% 97% Thread switch - - 1.04 1.00 4.00 0.08 97% 97% Scheduler lock - 1.42 1.00 5.00 0.51 60% 60% Scheduler unlock [0 threads] - 1.41 1.00 5.00 0.50 61% 61% Scheduler unlock [1 suspended] - 1.41 1.00 5.00 0.50 60% 60% Scheduler unlock [many suspended] - 1.40 1.00 5.00 0.50 62% 62% Scheduler unlock [many low prio] - - 1.19 1.00 6.00 0.35 93% 93% Init mutex - 2.34 2.00 12.00 0.64 93% 93% Lock [unlocked] mutex - 3.41 3.00 13.00 0.71 96% 87% Unlock [locked] mutex - 2.16 1.00 10.00 0.49 87% 9% Trylock [unlocked] mutex - 1.78 1.00 7.00 0.59 59% 37% Trylock [locked] mutex - 0.72 0.00 2.00 0.45 65% 31% Destroy mutex - 25.25 24.00 41.00 0.98 71% 25% Unlock/Lock mutex - - 1.44 1.00 9.00 0.68 96% 78% Create mbox - 0.94 0.00 3.00 0.23 84% 12% Peek [empty] mbox - 3.06 2.00 13.00 0.62 71% 25% Put [first] mbox - 0.69 0.00 3.00 0.52 59% 37% Peek [1 msg] mbox - 2.44 2.00 10.00 0.68 96% 78% Put [second] mbox - 0.78 0.00 3.00 0.44 68% 28% Peek [2 msgs] mbox - 3.78 3.00 14.00 0.83 96% 53% Get [first] mbox - 2.97 2.00 9.00 0.61 56% 31% Get [second] mbox - 2.53 2.00 12.00 0.80 96% 75% Tryput [first] mbox - 2.72 2.00 12.00 0.81 96% 56% Peek item [non-empty] mbox - 2.63 2.00 13.00 0.94 90% 75% Tryget [non-empty] mbox - 1.97 1.00 6.00 0.42 68% 21% Peek item [empty] mbox - 2.09 1.00 9.00 0.49 78% 15% Tryget [empty] mbox - 0.84 0.00 4.00 0.42 71% 25% Waiting to get mbox - 0.81 0.00 4.00 0.46 68% 28% Waiting to put mbox - 2.38 2.00 11.00 0.66 96% 87% Delete mbox - 23.41 22.00 47.00 1.47 96% 96% Put/Get mbox - - 1.03 0.00 6.00 0.31 84% 12% Init semaphore - 2.66 2.00 8.00 0.66 96% 50% Post [0] semaphore - 1.97 1.00 10.00 0.55 68% 28% Wait [1] semaphore - 1.78 1.00 8.00 0.63 56% 40% Trywait [0] semaphore - 1.84 1.00 8.00 0.58 62% 34% Trywait [1] semaphore - 1.00 0.00 5.00 0.25 84% 12% Peek semaphore - 0.81 0.00 4.00 0.46 68% 28% Destroy semaphore - 19.03 18.00 41.00 1.37 96% 96% Post/Wait semaphore - - 1.38 1.00 6.00 0.56 75% 75% Create counter - 1.09 1.00 3.00 0.18 93% 93% Get counter value - 1.00 0.00 5.00 0.31 78% 15% Set counter value - 3.09 2.00 6.00 0.35 78% 9% Tick counter - 0.91 0.00 5.00 0.40 75% 21% Delete counter - - 2.53 2.00 9.00 0.70 96% 65% Create alarm - 6.03 5.00 22.00 1.00 50% 46% Initialize alarm - 0.78 0.00 4.00 0.49 65% 31% Disable alarm - 2.91 2.00 13.00 0.91 87% 50% Enable alarm - 0.97 0.00 5.00 0.30 81% 15% Delete alarm - 2.69 2.00 9.00 0.69 96% 50% Tick counter [1 alarm] - 12.00 11.00 23.00 0.69 62% 34% Tick counter [many alarms] - 4.16 3.00 13.00 0.55 84% 12% Tick & fire counter [1 alarm] - 72.69 72.01 87.01 1.03 96% 96% Tick & fire counters [>1 together] - 13.66 13.00 23.00 0.82 96% 62% Tick & fire counters [>1 separately] - 13.26 13.00 42.00 0.51 98% 98% Alarm latency [0 threads] - 16.75 11.00 53.01 2.78 64% 16% Alarm latency [2 threads] - 24.06 18.00 58.01 3.55 67% 25% Alarm latency [many threads] - - 3.61 2.00 13.00 0.00 Clock/interrupt latency - -Timing complete - 23590 ms total - -PASS:<Basic timing OK> -EXIT:<done> - - </LITERALLAYOUT> -</SECT1> - -<!-- ==================================================== --> - -<SECT1 id="rt-ppc-cogent"> -<TITLE>Board: Cogent CMA MPC860 (PowerPC) Evaluation </TITLE> -<LITERALLAYOUT CLASS="MONOSPACED">Board: Cogent CMA MPC860 (PowerPC) Evaluation -CPU : MPC860, revision A3 33MHz - - -eCOS Kernel Timings -Note: all times are in microseconds (.000001) unless otherwise stated - -Reading the hardware clock takes 0 'ticks' overhead -... this value will be factored out of all other measurements -Clock interrupt took 14.46 microseconds (30 raw clock ticks) - -Testing parameters: - Clock samples: 32 - Threads: 24 - Thread switches: 128 - Mutexes: 32 - Mailboxes: 32 - Semaphores: 32 - Scheduler operations: 128 - Counters: 32 - Alarms: 32 - - - - - - Confidence - Ave Min Max Var Ave Min Function - ====== ====== ====== ====== ========== ======== - 26.78 23.52 41.76 1.97 66% 37% Create thread - 4.00 3.84 4.80 0.23 70% 70% Yield thread [all suspended] - 3.78 3.36 7.68 0.38 50% 45% Suspend [suspended] thread - 3.56 3.36 7.68 0.37 95% 91% Resume thread - 5.28 4.32 12.96 0.76 83% 66% Set priority - 0.84 0.48 3.84 0.39 91% 54% Get priority - 11.76 10.08 32.16 1.70 95% 95% Kill [suspended] thread - 4.14 3.84 8.64 0.45 95% 75% Yield [no other] thread - 7.14 5.76 17.76 1.07 79% 70% Resume [suspended low prio] thread - 3.60 3.36 8.16 0.42 95% 87% Resume [runnable low prio] thread - 6.10 5.28 14.88 0.80 62% 70% Suspend [runnable] thread - 4.00 3.84 5.76 0.25 79% 79% Yield [only low prio] thread - 3.66 3.36 8.64 0.47 95% 79% Suspend [runnable->not runnable] - 11.66 10.08 30.24 1.58 79% 91% Kill [runnable] thread - 31.12 27.84 53.28 2.35 87% 50% Resume [high priority] thread - 7.52 7.20 15.84 0.30 50% 48% Thread switch - - 1.00 0.48 2.88 0.21 63% 14% Scheduler lock - 2.57 2.40 3.84 0.23 65% 65% Scheduler unlock [0 threads] - 2.58 2.40 4.32 0.23 64% 64% Scheduler unlock [1 suspended] - 2.59 2.40 4.32 0.24 62% 62% Scheduler unlock [many suspended] - 2.59 2.40 4.32 0.24 61% 61% Scheduler unlock [many low prio] - - 1.69 1.44 5.76 0.37 96% 71% Init mutex - 4.15 3.84 10.56 0.47 96% 75% Lock [unlocked] mutex - 5.82 5.28 10.56 0.38 62% 28% Unlock [locked] mutex - 3.70 3.36 8.64 0.41 96% 59% Trylock [unlocked] mutex - 3.42 2.88 6.72 0.26 75% 15% Trylock [locked] mutex - 0.36 0.00 1.92 0.25 62% 34% Destroy mutex - 43.41 42.72 45.12 0.34 81% 3% Unlock/Lock mutex - - 3.27 2.88 8.16 0.39 96% 50% Create mbox - 0.57 0.00 2.40 0.34 50% 21% Peek [empty] mbox - 6.16 5.76 11.04 0.48 87% 87% Put [first] mbox - 0.48 0.00 1.92 0.27 50% 28% Peek [1 msg] mbox - 5.92 5.28 10.56 0.35 90% 6% Put [second] mbox - 0.60 0.00 2.40 0.30 62% 12% Peek [2 msgs] mbox - 4.69 4.32 12.00 0.54 93% 93% Get [first] mbox - 4.68 4.32 11.52 0.52 93% 93% Get [second] mbox - 5.86 5.28 11.04 0.47 62% 31% Tryput [first] mbox - 4.00 3.36 9.12 0.38 87% 9% Peek item [non-empty] mbox - 4.59 3.84 12.48 0.61 71% 75% Tryget [non-empty] mbox - 3.75 3.36 7.68 0.34 53% 43% Peek item [empty] mbox - 3.93 3.36 9.60 0.45 65% 31% Tryget [empty] mbox - 0.63 0.00 2.40 0.28 68% 6% Waiting to get mbox - 0.54 0.00 1.92 0.19 75% 9% Waiting to put mbox - 4.84 4.32 12.00 0.47 56% 40% Delete mbox - 24.18 23.52 29.76 0.66 81% 75% Put/Get mbox - - 1.72 0.96 3.84 0.33 90% 6% Init semaphore - 3.15 2.88 6.24 0.34 96% 62% Post [0] semaphore - 3.85 3.36 8.64 0.30 68% 28% Wait [1] semaphore - 3.24 2.88 6.24 0.34 46% 46% Trywait [0] semaphore - 3.22 2.88 6.24 0.32 50% 46% Trywait [1] semaphore - 0.96 0.48 2.88 0.12 84% 12% Peek semaphore - 0.99 0.96 1.92 0.06 96% 96% Destroy semaphore - 24.71 24.00 28.80 0.40 87% 6% Post/Wait semaphore - - 2.31 1.44 6.24 0.77 46% 56% Create counter - 0.45 0.00 0.96 0.08 87% 9% Get counter value - 0.42 0.00 0.96 0.16 75% 18% Set counter value - 4.14 3.84 4.80 0.26 50% 43% Tick counter - 0.91 0.48 2.40 0.19 71% 21% Delete counter - - 5.23 4.32 7.68 0.61 65% 53% Create alarm - 5.58 4.80 12.96 0.72 68% 84% Initialize alarm - 0.75 0.48 1.92 0.30 90% 56% Disable alarm - 8.02 7.20 14.40 0.53 84% 68% Enable alarm - 1.32 0.96 3.84 0.29 56% 40% Delete alarm - 4.63 4.32 6.24 0.28 53% 43% Tick counter [1 alarm] - 23.67 23.52 25.44 0.23 78% 78% Tick counter [many alarms] - 7.24 6.72 10.56 0.21 84% 12% Tick & fire counter [1 alarm] - 106.83 106.56 110.40 0.35 96% 65% Tick & fire counters [>1 together] - 26.18 25.44 29.76 0.46 81% 9% Tick & fire counters [>1 separately] - 10.79 10.08 29.28 0.66 53% 55% Alarm latency [0 threads] - 17.20 13.92 35.52 1.48 67% 21% Alarm latency [2 threads] - 29.69 22.56 47.04 3.58 57% 17% Alarm latency [many threads] - - 7.66 3.84 19.20 0.00 Clock/interrupt latency - -Timing complete - 23530 ms total - -PASS:<Basic timing OK> -EXIT:<done> - - </LITERALLAYOUT> -</SECT1> - -<!-- ==================================================== --> - -<SECT1 id="rt-vr4300-vrc4373"> -<TITLE>Board: NEC VR4373</TITLE> -<LITERALLAYOUT CLASS="MONOSPACED"> - -Board: NEC VR4373 - -CPU : NEC VR4300 133MHz - - -Startup, main stack : stack used 1304 size 3576 -Startup : Interrupt stack used 980 size 4096 -Startup : Idlethread stack used 494 size 2552 - -eCos Kernel Timings -Notes: all times are in microseconds (.000001) unless otherwise stated - -Reading the hardware clock takes 3 `ticks' overhead -... this value will be factored out of all other measurements -Clock interrupt took 6.49 microseconds (431 raw clock ticks) - -Testing parameters: - Clock samples: 32 - Threads: 16 - Thread switches: 128 - Mutexes: 32 - Mailboxes: 32 - Semaphores: 32 - Scheduler operations: 128 - Counters: 32 - Alarms: 32 - - - Confidence - Ave Min Max Var Ave Min Function - ====== ====== ====== ====== ========== ======== - 17.21 16.18 22.14 0.88 75% 68% Create thread - 0.84 0.78 1.29 0.10 81% 81% Yield thread [all suspended] - 0.90 0.62 3.20 0.35 87% 87% Suspend [suspended] thread - 0.74 0.65 1.16 0.12 81% 68% Resume thread - 1.11 0.90 1.70 0.25 75% 68% Set priority - 0.11 0.05 0.35 0.09 75% 75% Get priority - 2.93 2.24 8.27 0.78 93% 75% Kill [suspended] thread - 0.88 0.78 1.92 0.16 93% 81% Yield [no other] thread - 1.82 1.20 4.71 0.62 87% 62% Resume [suspended low prio] thread - 0.70 0.63 0.86 0.09 68% 68% Resume [runnable low prio] thread - 1.21 1.07 1.61 0.13 81% 68% Suspend [runnable] thread - 0.86 0.78 1.58 0.13 81% 81% Yield [only low prio] thread - 0.69 0.62 0.84 0.09 68% 68% Suspend [runnable->not runnable] - 2.64 2.24 4.35 0.43 81% 62% Kill [runnable] thread - 1.50 1.07 5.82 0.56 93% 87% Destroy [dead] thread - 3.66 2.75 7.74 0.82 50% 56% Destroy [runnable] thread - 13.65 8.33 27.88 3.70 50% 43% Resume [high priority] thread - 2.04 1.89 3.32 0.15 46% 49% Thread switch - - 0.19 0.05 0.83 0.13 48% 44% Scheduler lock - 0.50 0.41 1.59 0.13 89% 73% Scheduler unlock [0 threads] - 0.52 0.41 1.29 0.14 89% 64% Scheduler unlock [1 suspended] - 0.56 0.41 1.49 0.15 42% 47% Scheduler unlock [many suspended] - 0.56 0.41 1.41 0.15 43% 47% Scheduler unlock [many low prio] - - 0.57 0.20 2.33 0.27 65% 50% Init mutex - 0.89 0.75 3.35 0.20 96% 75% Lock [unlocked] mutex - 0.90 0.74 4.38 0.25 96% 93% Unlock [locked] mutex - 0.77 0.65 2.63 0.17 96% 75% Trylock [unlocked] mutex - 0.66 0.59 1.16 0.10 75% 75% Trylock [locked] mutex - 0.07 0.00 0.45 0.09 75% 75% Destroy mutex - 7.95 7.71 9.49 0.19 50% 46% Unlock/Lock mutex - - 1.04 0.81 3.44 0.27 93% 68% Create mbox - 0.10 0.02 0.57 0.11 71% 68% Peek [empty] mbox - 1.15 0.83 4.71 0.31 53% 71% Put [first] mbox - 0.10 0.02 0.57 0.12 68% 68% Peek [1 msg] mbox - 1.01 0.83 3.83 0.22 93% 75% Put [second] mbox - 0.09 0.02 0.57 0.10 71% 71% Peek [2 msgs] mbox - 1.03 0.81 5.02 0.27 96% 87% Get [first] mbox - 0.93 0.81 1.61 0.14 84% 62% Get [second] mbox - 1.07 0.77 4.18 0.23 68% 50% Tryput [first] mbox - 0.89 0.72 3.49 0.21 93% 71% Peek item [non-empty] mbox - 1.04 0.83 4.09 0.26 90% 81% Tryget [non-empty] mbox - 0.79 0.68 1.97 0.15 87% 68% Peek item [empty] mbox - 0.84 0.72 2.36 0.17 93% 68% Tryget [empty] mbox - 0.13 0.02 0.59 0.13 87% 62% Waiting to get mbox - 0.13 0.02 0.90 0.13 90% 62% Waiting to put mbox - 0.93 0.77 3.23 0.21 90% 71% Delete mbox - 4.74 4.51 8.80 0.32 93% 78% Put/Get mbox - - 0.50 0.21 1.95 0.29 90% 50% Init semaphore - 0.86 0.57 2.87 0.29 93% 56% Post [0] semaphore - 1.01 0.74 3.62 0.28 93% 56% Wait [1] semaphore - 0.87 0.60 3.17 0.28 90% 59% Trywait [0] semaphore - 0.74 0.62 1.70 0.14 93% 56% Trywait [1] semaphore - 0.36 0.11 1.11 0.26 65% 56% Peek semaphore - 0.25 0.12 1.19 0.14 93% 56% Destroy semaphore - 7.85 7.52 8.93 0.21 62% 43% Post/Wait semaphore - - 0.90 0.44 3.08 0.29 65% 28% Create counter - 0.07 0.05 0.89 0.05 96% 96% Get counter value - 0.06 0.05 0.33 0.02 96% 96% Set counter value - 0.88 0.86 1.62 0.05 96% 96% Tick counter - 0.13 0.12 0.41 0.02 96% 96% Delete counter - - 1.37 0.81 2.95 0.27 62% 25% Create alarm - 1.35 1.17 6.03 0.31 96% 93% Initialize alarm - 0.11 0.08 0.65 0.05 90% 90% Disable alarm - 1.23 1.14 3.05 0.15 93% 87% Enable alarm - 0.21 0.18 0.47 0.04 90% 90% Delete alarm - 1.03 0.99 2.11 0.07 96% 96% Tick counter [1 alarm] - 4.96 4.96 4.96 0.00 100% 100% Tick counter [many alarms] - 1.70 1.67 2.51 0.05 96% 96% Tick & fire counter [1 alarm] - 26.39 26.38 26.71 0.02 96% 96% Tick & fire counters [>1 together] - 5.65 5.64 5.91 0.02 96% 96% Tick & fire counters [>1 separately] - 2.55 2.38 9.86 0.19 96% 54% Alarm latency [0 threads] - 5.37 3.80 9.73 0.95 50% 34% Alarm latency [2 threads] - 8.79 5.83 16.12 1.29 57% 14% Alarm latency [many threads] - - 5.85 2.26 16.24 0.00 Clock/interrupt latency - - 1540 1536 1544 (main stack: 1664) Thread stack used (2552 total) -All done, main stack : stack used 1664 size 3576 -All done : Interrupt stack used 312 size 4096 -All done : Idlethread stack used 1440 size 2552 - -Timing complete - 23810 ms total - -PASS:<Basic timing OK> -EXIT:<done> - </LITERALLAYOUT> -</SECT1> - -<!-- ==================================================== --> - -<SECT1 id="rt-arm-assabet"> -<TITLE>Board: Intel SA1110 (Assabet)</TITLE> -<LITERALLAYOUT CLASS="MONOSPACED">Board: Intel SA1110 (Assabet) - -CPU : StrongARM 221.2 MHz - - - -Microseconds for one run through Dhrystone: 3.3 -Dhrystones per Second: 306748.5 -VAX MIPS rating = 174.586 - -Startup, main stack : stack used 420 size 2400 -Startup : Interrupt stack used 136 size 4096 -Startup : Idlethread stack used 84 size 2048 - -eCos Kernel Timings -Notes: all times are in microseconds (.000001) unless otherwise stated - -Reading the hardware clock takes 0 `ticks' overhead -... this value will be factored out of all other measurements -Clock interrupt took 3.20 microseconds (11 raw clock ticks) - -Testing parameters: - Clock samples: 32 - Threads: 64 - Thread switches: 128 - Mutexes: 32 - Mailboxes: 32 - Semaphores: 32 - Scheduler operations: 128 - Counters: 32 - Alarms: 32 - - - Confidence - Ave Min Max Var Ave Min Function - ====== ====== ====== ====== ========== ======== - 5.98 4.88 14.38 0.70 57% 35% Create thread - 0.86 0.81 1.90 0.08 87% 87% Yield thread [all suspended] - 1.05 0.81 3.53 0.19 46% 39% Suspend [suspended] thread - 1.07 0.81 3.80 0.18 48% 35% Resume thread - 1.36 1.09 5.97 0.22 45% 39% Set priority - 0.73 0.54 1.90 0.19 85% 50% Get priority - 2.93 2.44 13.56 0.39 79% 70% Kill [suspended] thread - 0.89 0.81 4.34 0.14 89% 89% Yield [no other] thread - 1.63 1.36 4.61 0.17 57% 29% Resume [suspended low prio] thread - 1.03 0.81 3.53 0.19 46% 42% Resume [runnable low prio] thread - 1.74 1.36 6.51 0.22 87% 6% Suspend [runnable] thread - 0.93 0.81 4.61 0.18 98% 78% Yield [only low prio] thread - 1.06 0.81 3.26 0.19 42% 39% Suspend [runnable->not runnable] - 2.56 1.90 13.02 0.41 87% 34% Kill [runnable] thread - 2.02 1.63 7.05 0.22 92% 3% Destroy [dead] thread - 3.09 2.44 15.19 0.51 78% 46% Destroy [runnable] thread - 6.77 5.43 13.02 0.59 75% 17% Resume [high priority] thread - 1.81 1.63 7.87 0.18 49% 49% Thread switch - - 0.25 0.00 1.36 0.05 89% 10% Scheduler lock - 0.51 0.27 1.36 0.06 85% 13% Scheduler unlock [0 threads] - 0.51 0.27 1.09 0.06 85% 13% Scheduler unlock [1 suspended] - 0.51 0.27 1.09 0.07 85% 14% Scheduler unlock [many suspended] - 0.51 0.27 1.09 0.06 85% 13% Scheduler unlock [many low prio] - - 0.52 0.27 2.17 0.15 62% 31% Init mutex - 0.97 0.54 4.34 0.28 84% 65% Lock [unlocked] mutex - 1.05 0.81 5.15 0.28 96% 96% Unlock [locked] mutex - 0.86 0.54 3.26 0.24 65% 31% Trylock [unlocked] mutex - 0.79 0.54 3.53 0.23 43% 46% Trylock [locked] mutex - 0.33 0.27 1.63 0.11 90% 90% Destroy mutex - 4.16 3.80 8.95 0.30 75% 96% Unlock/Lock mutex - - 0.70 0.54 2.98 0.21 96% 65% Create mbox - 0.59 0.27 1.63 0.14 75% 9% Peek [empty] mbox - 1.33 1.09 5.70 0.31 96% 93% Put [first] mbox - 0.61 0.27 1.63 0.13 81% 3% Peek [1 msg] mbox - 1.35 1.09 5.43 0.31 96% 87% Put [second] mbox - 0.58 0.27 1.36 0.11 78% 6% Peek [2 msgs] mbox - 1.38 1.09 4.88 0.25 59% 37% Get [first] mbox - 1.40 1.09 5.15 0.26 62% 34% Get [second] mbox - 1.27 0.81 4.88 0.28 90% 65% Tryput [first] mbox - 1.34 0.81 4.61 0.22 59% 6% Peek item [non-empty] mbox - 1.47 1.09 5.15 0.27 84% 12% Tryget [non-empty] mbox - 1.12 0.81 4.34 0.23 59% 31% Peek item [empty] mbox - 1.14 0.81 4.07 0.24 71% 25% Tryget [empty] mbox - 0.59 0.27 1.36 0.12 78% 6% Waiting to get mbox - 0.59 0.27 1.36 0.12 78% 6% Waiting to put mbox - 1.28 0.81 5.43 0.32 87% 78% Delete mbox - 2.64 2.17 10.31 0.48 96% 96% Put/Get mbox - - 0.47 0.27 2.17 0.19 46% 46% Init semaphore - 0.77 0.54 3.80 0.26 90% 56% Post [0] semaphore - 0.90 0.54 4.07 0.26 75% 21% Wait [1] semaphore - 0.85 0.54 3.26 0.21 56% 28% Trywait [0] semaphore - 0.69 0.54 2.17 0.18 96% 62% Trywait [1] semaphore - 0.44 0.27 2.17 0.19 96% 56% Peek semaphore - 0.38 0.27 1.90 0.17 96% 75% Destroy semaphore - 2.74 2.44 9.49 0.42 96% 96% Post/Wait semaphore - - 0.43 0.27 1.90 0.18 96% 56% Create counter - 0.49 0.00 2.17 0.18 56% 3% Get counter value - 0.33 0.00 1.63 0.13 78% 6% Set counter value - 1.03 0.81 2.44 0.22 84% 50% Tick counter - 0.42 0.27 1.90 0.20 90% 65% Delete counter - - 0.70 0.54 2.44 0.20 93% 62% Create alarm - 1.65 1.36 6.78 0.40 96% 81% Initialize alarm - 0.75 0.54 1.63 0.18 43% 43% Disable alarm - 1.75 1.36 7.05 0.38 65% 81% Enable alarm - 0.81 0.54 2.44 0.15 62% 28% Delete alarm - 1.01 0.81 2.17 0.16 56% 40% Tick counter [1 alarm] - 4.19 4.07 5.43 0.16 96% 68% Tick counter [many alarms] - 1.48 1.36 3.80 0.20 96% 78% Tick & fire counter [1 alarm] - 20.23 20.07 22.52 0.21 96% 65% Tick & fire counters [>1 together] - 4.70 4.61 6.78 0.16 87% 87% Tick & fire counters [>1 separately] - 2.81 2.71 14.38 0.20 98% 98% Alarm latency [0 threads] - 3.19 2.71 13.56 0.38 73% 59% Alarm latency [2 threads] - 9.71 7.87 18.17 1.25 59% 53% Alarm latency [many threads] - 5.77 5.43 45.57 0.68 97% 97% Alarm -> thread resume latency - - 2.38 0.81 9.49 0.00 Clock/interrupt latency - - 2.02 1.09 7.32 0.00 Clock DSR latency - - 11 0 316 (main stack: 764) Thread stack used (1120 total) -All done, main stack : stack used 764 size 2400 -All done : Interrupt stack used 287 size 4096 -All done : Idlethread stack used 272 size 2048 - -Timing complete - 30220 ms total - </LITERALLAYOUT> -</SECT1> - -<!-- ==================================================== --> - -<SECT1 id="rt-arm-brutus"> -<TITLE>Board: Intel SA1100 (Brutus)</TITLE> -<LITERALLAYOUT CLASS="MONOSPACED">Board: Intel SA1100 (Brutus) - -CPU : StrongARM 221.2 MHz - -Microseconds for one run through Dhrystone: 3.3 -Dhrystones per Second: 306748.5 -VAX MIPS rating = 174.586 - -Startup, main stack : stack used 404 size 2400 -Startup : Interrupt stack used 136 size 4096 -Startup : Idlethread stack used 87 size 2048 - -eCos Kernel Timings -Notes: all times are in microseconds (.000001) unless otherwise stated - -Reading the hardware clock takes 0 `ticks' overhead -... this value will be factored out of all other measurements -Clock interrupt took 3.09 microseconds (11 raw clock ticks) - -Testing parameters: - Clock samples: 32 - Threads: 64 - Thread switches: 128 - Mutexes: 32 - Mailboxes: 32 - Semaphores: 32 - Scheduler operations: 128 - Counters: 32 - Alarms: 32 - - - Confidence - Ave Min Max Var Ave Min Function - ====== ====== ====== ====== ========== ======== - 6.63 5.43 18.99 0.77 70% 37% Create thread - 0.83 0.81 2.17 0.04 98% 98% Yield thread [all suspended] - 1.27 0.81 5.15 0.30 68% 73% Suspend [suspended] thread - 1.25 0.81 5.15 0.25 82% 1% Resume thread - 1.52 1.09 7.87 0.30 78% 75% Set priority - 0.97 0.54 2.71 0.28 64% 51% Get priority - 3.45 2.71 19.53 0.66 84% 76% Kill [suspended] thread - 0.90 0.81 6.24 0.17 98% 98% Yield [no other] thread - 1.86 1.36 6.24 0.33 68% 50% Resume [suspended low prio] thread - 1.25 0.81 5.15 0.25 82% 1% Resume [runnable low prio] thread - 2.01 1.63 10.04 0.32 70% 84% Suspend [runnable] thread - 0.90 0.81 6.24 0.17 98% 98% Yield [only low prio] thread - 1.25 0.81 5.15 0.24 84% 1% Suspend [runnable->not runnable] - 2.92 1.90 18.72 0.57 85% 43% Kill [runnable] thread - 2.45 1.90 10.31 0.33 95% 54% Destroy [dead] thread - 3.95 2.71 23.60 0.89 68% 54% Destroy [runnable] thread - 8.55 6.24 19.53 1.15 60% 23% Resume [high priority] thread - 1.85 1.63 11.94 0.21 49% 49% Thread switch - - 0.25 0.00 1.63 0.05 89% 10% Scheduler lock - 0.52 0.27 1.90 0.07 85% 13% Scheduler unlock [0 threads] - 0.51 0.27 1.36 0.06 85% 13% Scheduler unlock [1 suspended] - 0.51 0.27 1.36 0.06 85% 13% Scheduler unlock [many suspended] - 0.51 0.27 1.63 0.06 85% 13% Scheduler unlock [many low prio] - - 0.58 0.27 3.53 0.20 71% 21% Init mutex - 1.07 0.54 5.70 0.35 87% 59% Lock [unlocked] mutex - 1.14 0.81 6.51 0.40 96% 81% Unlock [locked] mutex - 0.96 0.54 5.15 0.34 68% 65% Trylock [unlocked] mutex - 0.94 0.54 4.88 0.34 65% 65% Trylock [locked] mutex - 0.33 0.27 2.17 0.11 96% 96% Destroy mutex - 4.21 3.80 10.85 0.41 71% 96% Unlock/Lock mutex - 0.76 0.54 4.07 0.25 96% 56% Create mbox - 0.75 0.54 1.90 0.20 84% 50% Peek [empty] mbox - 1.56 1.09 6.78 0.39 68% 59% Put [first] mbox - 0.75 0.54 1.90 0.20 84% 50% Peek [1 msg] mbox - 1.55 1.09 6.78 0.40 68% 62% Put [second] mbox - 0.77 0.54 1.63 0.17 46% 37% Peek [2 msgs] mbox - 1.67 1.09 6.24 0.31 87% 34% Get [first] mbox - 1.63 1.09 6.24 0.31 75% 34% Get [second] mbox - 1.50 1.09 6.51 0.40 56% 62% Tryput [first] mbox - 1.58 1.09 5.43 0.37 68% 53% Peek item [non-empty] mbox - 1.79 1.09 7.05 0.43 71% 25% Tryget [non-empty] mbox - 1.29 1.09 5.15 0.32 87% 87% Peek item [empty] mbox - 1.33 1.09 5.97 0.37 96% 84% Tryget [empty] mbox - 0.73 0.54 1.90 0.21 84% 56% Waiting to get mbox - 0.76 0.54 1.90 0.19 40% 43% Waiting to put mbox - 1.47 1.09 6.78 0.39 59% 84% Delete mbox - 2.70 2.17 12.75 0.63 96% 96% Put/Get mbox - - 0.47 0.27 2.71 0.20 96% 50% Init semaphore - 0.89 0.54 4.88 0.33 56% 75% Post [0] semaphore - 0.96 0.54 5.15 0.33 71% 75% Wait [1] semaphore - 0.86 0.54 4.88 0.32 96% 81% Trywait [0] semaphore - 0.69 0.54 3.26 0.22 96% 75% Trywait [1] semaphore - 0.49 0.27 3.26 0.28 84% 84% Peek semaphore - 0.39 0.27 2.44 0.19 96% 78% Destroy semaphore - 2.83 2.44 11.66 0.55 96% 96% Post/Wait semaphore - - 0.52 0.27 3.26 0.20 56% 40% Create counter - 0.59 0.00 2.71 0.34 81% 46% Get counter value - 0.36 0.00 2.44 0.21 81% 9% Set counter value - 1.13 0.81 2.98 0.26 59% 37% Tick counter - 0.39 0.27 1.90 0.19 90% 78% Delete counter - - 0.86 0.54 4.07 0.24 65% 31% Create alarm - 1.86 1.36 9.77 0.54 96% 90% Initialize alarm - 0.77 0.54 2.71 0.23 84% 50% Disable alarm - 1.86 1.36 9.22 0.51 96% 75% Enable alarm - 0.89 0.54 3.26 0.25 65% 21% Delete alarm - 0.99 0.81 3.26 0.21 96% 59% Tick counter [1 alarm] - 4.22 4.07 6.78 0.22 96% 71% Tick counter [many alarms] - 1.51 1.36 4.61 0.24 96% 78% Tick & fire counter [1 alarm] - 20.29 20.07 23.33 0.23 96% 53% Tick & fire counters [>1 together] - 4.71 4.61 7.87 0.20 96% 96% Tick & fire counters [>1 separately] - 2.88 2.71 23.87 0.33 99% 99% Alarm latency [0 threads] - 3.24 2.71 17.36 0.40 79% 58% Alarm latency [2 threads] - 15.71 12.48 27.40 1.47 53% 17% Alarm latency [many threads] - 5.95 5.43 64.56 1.02 97% 97% Alarm -> thread resume latency - - 3.25 0.81 14.11 0.00 Clock/interrupt latency - - 2.68 1.09 12.75 0.00 Clock DSR latency - - 29 0 316 (main stack: 764) Thread stack used (1120 total) -All done, main stack : stack used 764 size 2400 -All done : Interrupt stack used 288 size 4096 -All done : Idlethread stack used 260 size 2048 - - -Timing complete - 30280 ms total - - </LITERALLAYOUT> -</SECT1> - -<!-- ==================================================== --> - -<SECT1 id="rt-ppc-mbx860"> -<TITLE>Board: Motorola MBX</TITLE> -<LITERALLAYOUT CLASS="MONOSPACED"> - -Board: Motorola MBX - -CPU : Motorola MPC860 66MHZ - - -Startup, main stack : stack used 643 size 5664 -Startup : Interrupt stack used 427 size 4096 -Startup : Idlethread stack used 236 size 2048 - -eCos Kernel Timings -Notes: all times are in microseconds (.000001) unless otherwise stated - -Reading the hardware clock takes 0 `ticks' overhead -... this value will be factored out of all other measurements -Clock interrupt took 25.36 microseconds (79 raw clock ticks) - -Testing parameters: - Clock samples: 32 - Threads: 16 - Thread switches: 128 - Mutexes: 32 - Mailboxes: 32 - Semaphores: 32 - Scheduler operations: 128 - Counters: 32 - Alarms: 32 - - - Confidence - Ave Min Max Var Ave Min Function - ====== ====== ====== ====== ========== ======== - 27.58 25.60 44.16 2.07 93% 93% Create thread - 5.94 5.76 7.04 0.22 93% 62% Yield thread [all suspended] - 6.06 5.44 10.56 0.57 75% 75% Suspend [suspended] thread - 5.42 4.80 9.60 0.53 87% 81% Resume thread - 7.10 6.40 14.08 0.90 93% 87% Set priority - 0.86 0.64 1.92 0.22 93% 50% Get priority - 16.74 15.04 36.48 2.47 93% 93% Kill [suspended] thread - 6.14 5.76 10.56 0.55 93% 93% Yield [no other] thread - 9.74 8.96 18.56 1.10 93% 93% Resume [suspended low prio] thread - 5.28 4.80 9.28 0.54 93% 81% Resume [runnable low prio] thread - 9.40 8.32 18.56 1.14 93% 93% Suspend [runnable] thread - 6.04 5.76 8.96 0.38 93% 93% Yield [only low prio] thread - 5.68 5.12 9.60 0.52 68% 75% Suspend [runnable->not runnable] - 16.10 14.40 35.20 2.39 93% 93% Kill [runnable] thread - 8.54 7.68 16.00 0.94 93% 87% Destroy [dead] thread - 20.20 18.56 40.64 2.55 93% 93% Destroy [runnable] thread - 39.02 36.48 57.28 3.28 87% 87% Resume [high priority] thread - 13.13 12.80 22.08 0.15 78% 20% Thread switch - - 0.59 0.32 1.60 0.09 82% 16% Scheduler lock - 3.67 3.52 5.12 0.17 99% 54% Scheduler unlock [0 threads] - 3.67 3.52 4.80 0.17 99% 53% Scheduler unlock [1 suspended] - 3.67 3.52 4.80 0.17 54% 54% Scheduler unlock [many suspended] - 3.69 3.52 5.12 0.17 99% 50% Scheduler unlock [many low prio] - - 2.41 2.24 5.44 0.25 96% 75% Init mutex - 6.83 6.40 11.84 0.34 75% 90% Lock [unlocked] mutex - 6.74 6.40 13.12 0.40 96% 96% Unlock [locked] mutex - 5.53 5.12 9.60 0.25 84% 12% Trylock [unlocked] mutex - 4.84 4.48 7.36 0.17 78% 15% Trylock [locked] mutex - 0.34 0.00 0.96 0.06 90% 3% Destroy mutex - 56.10 55.68 59.52 0.21 93% 3% Unlock/Lock mutex - - 4.72 4.48 10.24 0.37 96% 96% Create mbox - 0.75 0.64 1.92 0.16 75% 75% Peek [empty] mbox - 6.79 6.40 12.80 0.41 96% 90% Put [first] mbox - 0.46 0.32 1.60 0.19 93% 68% Peek [1 msg] mbox - 6.68 6.40 12.16 0.37 96% 96% Put [second] mbox - 0.50 0.32 1.60 0.20 93% 56% Peek [2 msgs] mbox - 7.13 6.40 14.08 0.49 90% 46% Get [first] mbox - 6.97 6.40 13.44 0.47 84% 78% Get [second] mbox - 6.24 5.76 11.52 0.38 78% 81% Tryput [first] mbox - 5.98 5.44 11.20 0.39 78% 62% Peek item [non-empty] mbox - 6.52 6.08 13.12 0.49 93% 81% Tryget [non-empty] mbox - 5.50 5.12 10.24 0.30 68% 28% Peek item [empty] mbox - 5.76 5.44 10.88 0.32 96% 96% Tryget [empty] mbox - 0.50 0.32 1.60 0.19 96% 53% Waiting to get mbox - 0.50 0.32 1.60 0.19 96% 53% Waiting to put mbox - 7.45 7.04 15.04 0.49 96% 93% Delete mbox - 37.47 36.80 48.64 0.70 96% 96% Put/Get mbox - - 2.49 2.24 6.08 0.28 96% 56% Init semaphore - 5.09 4.80 8.64 0.27 46% 46% Post [0] semaphore - 6.25 5.76 10.88 0.32 93% 3% Wait [1] semaphore - 4.84 4.48 8.32 0.23 68% 25% Trywait [0] semaphore - 4.98 4.80 8.00 0.26 96% 71% Trywait [1] semaphore - 1.66 1.28 3.84 0.20 68% 15% Peek semaphore - 1.24 0.96 3.20 0.17 65% 31% Destroy semaphore - 40.74 40.32 49.28 0.53 96% 96% Post/Wait semaphore - - 2.65 2.24 6.08 0.23 84% 9% Create counter - 0.85 0.64 2.24 0.22 90% 53% Get counter value - 0.68 0.64 1.92 0.08 96% 96% Set counter value - 7.13 6.72 8.64 0.24 78% 18% Tick counter - 1.30 0.96 3.20 0.12 84% 12% Delete counter - - 3.69 3.52 7.68 0.29 96% 84% Create alarm - 8.98 8.32 17.60 0.61 68% 62% Initialize alarm - 0.96 0.64 2.88 0.14 71% 21% Disable alarm - 8.76 8.32 17.60 0.59 96% 87% Enable alarm - 1.99 1.60 5.12 0.21 81% 12% Delete alarm - 7.44 7.36 9.92 0.15 96% 96% Tick counter [1 alarm] - 21.68 21.44 24.64 0.25 96% 53% Tick counter [many alarms] - 10.95 10.56 15.04 0.26 78% 18% Tick & fire counter [1 alarm] - 132.79 132.48 136.32 0.23 59% 37% Tick & fire counters [>1 together] - 25.18 24.96 28.80 0.29 96% 65% Tick & fire counters [>1 separately] - 23.06 22.72 47.36 0.40 98% 98% Alarm latency [0 threads] - 31.53 27.20 56.00 0.63 96% 0% Alarm latency [2 threads] - 36.86 30.40 58.88 4.15 50% 28% Alarm latency [many threads] - - 11.41 8.96 16.32 0.00 Clock/interrupt latency - - 609 603 651 (main stack: 1059) Thread stack used (1704 total) -All done, main stack : stack used 1059 size 5664 -All done : Interrupt stack used 251 size 4096 -All done : Idlethread stack used 587 size 2048 - -Timing complete - 23690 ms total - -PASS:<Basic timing OK> -EXIT:<done> - - </LITERALLAYOUT> -</SECT1> - -<!-- ==================================================== --> - -<SECT1 id="rt-sh-edk7708"> -<TITLE>Board: Hitachi EDK7708</TITLE> -<LITERALLAYOUT CLASS="MONOSPACED"> - - -Board: Hitachi EDK7708 - -CPU: Hitachi SH3/7708 60MHz - - - -Startup, main stack : stack used 444 size 4112 -Startup : Interrupt stack used 76 size 4096 -Startup : Idlethread stack used 96 size 2048 - -eCos Kernel Timings -Notes: all times are in microseconds (.000001) unless otherwise stated - -Reading the hardware clock takes 2 `ticks' overhead -... this value will be factored out of all other measurements -Clock interrupt took 14.75 microseconds (55 raw clock ticks) - -Testing parameters: - Clock samples: 32 - Threads: 16 - Thread switches: 128 - Mutexes: 32 - Mailboxes: 32 - Semaphores: 32 - Scheduler operations: 128 - Counters: 32 - Alarms: 32 - - - Confidence - Ave Min Max Var Ave Min Function - ====== ====== ====== ====== ========== ======== - 15.43 13.60 24.00 1.29 62% 50% Create thread - 3.33 3.20 4.27 0.18 93% 68% Yield thread [all suspended] - 2.90 2.40 5.33 0.36 81% 62% Suspend [suspended] thread - 2.93 2.67 4.80 0.27 93% 87% Resume thread - 4.30 3.73 10.13 0.73 93% 93% Set priority - 0.65 0.27 2.13 0.28 68% 62% Get priority - 9.72 8.53 21.33 1.45 93% 93% Kill [suspended] thread - 3.33 3.20 4.53 0.20 93% 75% Yield [no other] thread - 5.30 4.80 10.13 0.65 93% 87% Resume [suspended low prio] thread - 2.80 2.40 4.53 0.27 81% 75% Resume [runnable low prio] thread - 4.82 4.00 8.27 0.49 68% 25% Suspend [runnable] thread - 3.32 3.20 4.00 0.16 93% 68% Yield [only low prio] thread - 2.82 2.40 4.27 0.25 81% 12% Suspend [runnable->not runnable] - 9.45 8.53 19.47 1.25 93% 93% Kill [runnable] thread - 5.30 4.53 11.20 0.74 87% 93% Destroy [dead] thread - 11.83 10.67 25.07 1.65 93% 93% Destroy [runnable] thread - 19.53 17.33 31.20 1.88 75% 75% Resume [high priority] thread - 6.70 6.67 11.47 0.07 99% 99% Thread switch - - 0.33 0.27 0.80 0.10 75% 75% Scheduler lock - 1.74 1.60 2.67 0.14 99% 50% Scheduler unlock [0 threads] - 1.72 1.60 3.20 0.14 99% 57% Scheduler unlock [1 suspended] - 1.81 1.60 3.20 0.10 75% 23% Scheduler unlock [many suspended] - 1.86 1.60 3.20 0.02 94% 4% Scheduler unlock [many low prio] - - 1.22 1.07 3.20 0.20 96% 65% Init mutex - 3.21 2.93 5.87 0.17 68% 28% Lock [unlocked] mutex - 3.36 2.93 7.47 0.30 84% 75% Unlock [locked] mutex - 2.83 2.67 5.33 0.22 96% 65% Trylock [unlocked] mutex - 2.53 2.40 2.93 0.14 96% 53% Trylock [locked] mutex - 0.28 0.27 0.80 0.03 96% 96% Destroy mutex - 20.09 19.73 23.20 0.23 84% 12% Unlock/Lock mutex - - 2.38 2.13 4.53 0.17 59% 34% Create mbox - 0.45 0.27 1.33 0.15 56% 40% Peek [empty] mbox - 3.70 3.20 7.20 0.29 84% 59% Put [first] mbox - 0.45 0.27 0.80 0.13 62% 34% Peek [1 msg] mbox - 3.67 3.20 5.60 0.23 81% 6% Put [second] mbox - 0.42 0.27 0.53 0.13 59% 40% Peek [2 msgs] mbox - 3.98 3.47 7.47 0.24 59% 9% Get [first] mbox - 3.97 3.47 4.80 0.24 59% 12% Get [second] mbox - 3.51 3.20 6.67 0.28 56% 78% Tryput [first] mbox - 3.29 2.93 5.60 0.29 59% 65% Peek item [non-empty] mbox - 4.06 3.47 7.20 0.26 68% 3% Tryget [non-empty] mbox - 3.03 2.67 5.33 0.19 93% 3% Peek item [empty] mbox - 3.36 3.20 4.80 0.18 96% 56% Tryget [empty] mbox - 0.57 0.27 1.33 0.09 84% 3% Waiting to get mbox - 0.52 0.27 1.07 0.11 62% 21% Waiting to put mbox - 3.88 3.47 7.47 0.30 78% 65% Delete mbox - 12.04 11.73 17.33 0.33 96% 96% Put/Get mbox - - 1.17 1.07 2.40 0.16 71% 71% Init semaphore - 2.67 2.40 4.27 0.15 62% 25% Post [0] semaphore - 3.00 2.67 4.53 0.17 65% 12% Wait [1] semaphore - 2.54 2.40 4.80 0.20 96% 71% Trywait [0] semaphore - 2.42 2.40 2.93 0.03 96% 96% Trywait [1] semaphore - 0.79 0.53 2.13 0.15 59% 28% Peek semaphore - 0.77 0.53 1.87 0.12 71% 25% Destroy semaphore - 12.64 12.27 17.07 0.28 84% 96% Post/Wait semaphore - - 1.27 1.07 2.93 0.17 53% 43% Create counter - 0.54 0.27 1.33 0.13 59% 21% Get counter value - 0.47 0.27 1.60 0.17 46% 43% Set counter value - 3.47 3.20 4.80 0.16 53% 28% Tick counter - 0.80 0.53 2.13 0.13 62% 25% Delete counter - - 1.86 1.60 4.00 0.21 43% 40% Create alarm - 5.12 4.80 9.07 0.36 93% 75% Initialize alarm - 0.44 0.27 1.33 0.19 87% 53% Disable alarm - 4.77 4.27 9.60 0.35 87% 62% Enable alarm - 1.02 0.80 2.67 0.18 53% 40% Delete alarm - 3.56 3.47 5.33 0.15 84% 84% Tick counter [1 alarm] - 15.04 14.93 16.27 0.16 71% 71% Tick counter [many alarms] - 5.75 5.60 8.00 0.21 96% 68% Tick & fire counter [1 alarm] - 79.60 79.47 81.07 0.17 96% 65% Tick & fire counters [>1 together] - 17.04 16.80 18.93 0.15 65% 31% Tick & fire counters [>1 separately] - 12.44 12.27 29.60 0.31 96% 96% Alarm latency [0 threads] - 14.06 12.27 27.20 0.53 82% 4% Alarm latency [2 threads] - 19.62 17.07 38.40 1.44 57% 34% Alarm latency [many threads] - - 2.79 2.40 6.13 0.00 Clock/interrupt latency - - 376 376 376 (main stack: 764) Thread stack used (992 total) -All done, main stack : stack used 764 size 4112 -All done : Interrupt stack used 176 size 4096 -All done : Idlethread stack used 352 size 2048 - -Timing complete - 23860 ms total - -PASS:<Basic timing OK> -EXIT:<done> - - </LITERALLAYOUT> -</SECT1> - -<!-- ==================================================== --> - -<SECT1 id="rt-sh-cq7708"> -<TITLE>Board: CQ CqREEK SH3 Evaluation Board (cq7708)</TITLE> -<LITERALLAYOUT CLASS="MONOSPACED"> - -Board: CQ CqREEK SH3 Evaluation Board (cq7708) - -CPU: Hitachi SH3/7708 60MHz - -Startup, main stack : stack used 448 size 4112 -Startup : Interrupt stack used 80 size 4096 -Startup : Idlethread stack used 96 size 2048 - -eCos Kernel Timings -Notes: all times are in microseconds (.000001) unless otherwise stated - -Reading the hardware clock takes 2 `ticks' overhead -... this value will be factored out of all other measurements -Clock interrupt took 19.17 microseconds (71 raw clock ticks) - -Testing parameters: - Clock samples: 32 - Threads: 64 - Thread switches: 128 - Mutexes: 32 - Mailboxes: 32 - Semaphores: 32 - Scheduler operations: 128 - Counters: 32 - Alarms: 32 - - - Confidence - Ave Min Max Var Ave Min Function - ====== ====== ====== ====== ========== ======== - 20.62 14.40 26.93 3.23 48% 26% Create thread - 3.16 2.93 4.27 0.09 78% 20% Yield thread [all suspended] - 2.91 2.40 5.87 0.17 57% 1% Suspend [suspended] thread - 2.73 2.40 6.40 0.19 64% 15% Resume thread - 4.05 3.73 11.47 0.27 62% 90% Set priority - 0.82 0.27 2.67 0.17 56% 3% Get priority - 9.07 8.53 24.27 0.51 78% 71% Kill [suspended] thread - 3.19 2.93 7.20 0.14 70% 28% Yield [no other] thread - 5.45 4.53 17.87 0.49 78% 17% Resume [suspended low prio] thread - 2.67 2.40 5.07 0.15 56% 28% Resume [runnable low prio] thread - 4.95 4.27 11.47 0.28 82% 14% Suspend [runnable] thread - 3.15 2.93 4.53 0.11 73% 25% Yield [only low prio] thread - 2.82 2.40 5.60 0.21 84% 10% Suspend [runnable->not runnable] - 8.92 8.00 24.27 0.51 84% 14% Kill [runnable] thread - 5.10 4.53 12.00 0.27 59% 39% Destroy [dead] thread - 11.81 10.93 37.33 0.81 87% 95% Destroy [runnable] thread - 22.15 20.80 54.67 1.27 92% 92% Resume [high priority] thread - 6.85 6.67 13.60 0.19 99% 50% Thread switch - - 0.27 0.27 1.07 0.01 99% 99% Scheduler lock - 1.74 1.60 2.67 0.14 99% 50% Scheduler unlock [0 threads] - 1.74 1.60 2.93 0.14 99% 50% Scheduler unlock [1 suspended] - 1.81 1.60 4.27 0.11 72% 26% Scheduler unlock [many suspended] - 1.75 1.60 4.00 0.15 50% 49% Scheduler unlock [many low prio] - - 1.22 1.07 4.27 0.23 96% 78% Init mutex - 3.18 2.93 7.20 0.27 96% 53% Lock [unlocked] mutex - 3.40 3.20 8.00 0.31 96% 96% Unlock [locked] mutex - 2.77 2.40 5.87 0.22 87% 9% Trylock [unlocked] mutex - 2.35 2.13 3.47 0.14 65% 31% Trylock [locked] mutex - 0.78 0.53 2.67 0.14 68% 28% Destroy mutex - 22.80 22.40 28.80 0.51 96% 71% Unlock/Lock mutex - - 2.61 2.40 6.13 0.26 96% 62% Create mbox - 0.52 0.27 1.60 0.19 40% 37% Peek [empty] mbox - 3.54 3.20 7.73 0.35 93% 78% Put [first] mbox - 0.50 0.27 1.60 0.17 46% 37% Peek [1 msg] mbox - 3.62 3.20 6.93 0.34 59% 65% Put [second] mbox - 0.52 0.27 2.13 0.23 31% 43% Peek [2 msgs] mbox - 3.93 3.47 10.13 0.43 65% 65% Get [first] mbox - 3.92 3.47 7.47 0.40 56% 56% Get [second] mbox - 3.37 2.93 6.93 0.36 59% 68% Tryput [first] mbox - 3.30 2.67 6.93 0.38 84% 40% Peek item [non-empty] mbox - 3.93 3.47 9.33 0.44 65% 71% Tryget [non-empty] mbox - 2.94 2.67 6.13 0.25 43% 43% Peek item [empty] mbox - 3.23 2.93 6.67 0.27 56% 84% Tryget [empty] mbox - 0.58 0.27 2.67 0.20 62% 21% Waiting to get mbox - 0.55 0.27 1.87 0.14 62% 21% Waiting to put mbox - 3.82 3.47 9.87 0.39 96% 93% Delete mbox - 13.35 12.80 21.33 0.50 87% 78% Put/Get mbox - - 1.22 1.07 2.93 0.19 96% 59% Init semaphore - 2.42 2.13 4.27 0.12 81% 15% Post [0] semaphore - 2.96 2.67 5.07 0.16 68% 21% Wait [1] semaphore - 2.37 2.13 4.53 0.17 62% 34% Trywait [0] semaphore - 2.29 2.13 3.47 0.17 96% 53% Trywait [1] semaphore - 0.66 0.53 2.13 0.17 96% 68% Peek semaphore - 0.81 0.53 2.93 0.13 75% 21% Destroy semaphore - 14.47 14.13 21.33 0.43 96% 96% Post/Wait semaphore - - 1.44 1.07 3.47 0.29 56% 71% Create counter - 0.62 0.27 1.07 0.14 62% 3% Get counter value - 0.56 0.27 1.60 0.17 50% 25% Set counter value - 3.39 3.20 4.27 0.16 53% 40% Tick counter - 0.83 0.53 1.87 0.14 68% 15% Delete counter - - 2.02 1.87 4.00 0.21 93% 68% Create alarm - 5.06 4.27 11.73 0.46 78% 18% Initialize alarm - 0.73 0.27 2.40 0.22 84% 3% Disable alarm - 4.82 4.27 11.47 0.48 81% 65% Enable alarm - 1.19 0.80 3.47 0.22 87% 9% Delete alarm - 3.63 3.47 5.60 0.20 96% 59% Tick counter [1 alarm] - 15.01 14.93 16.53 0.13 87% 87% Tick counter [many alarms] - 5.50 5.33 8.00 0.22 96% 65% Tick & fire counter [1 alarm] - 74.27 74.13 76.80 0.21 96% 78% Tick & fire counters [>1 together] - 16.90 16.53 19.47 0.23 81% 15% Tick & fire counters [>1 separately] - 16.70 16.53 36.27 0.33 98% 98% Alarm latency [0 threads] - 17.85 16.53 34.40 0.47 73% 0% Alarm latency [2 threads] - 63.26 58.40 80.00 2.64 52% 32% Alarm latency [many threads] - 30.37 29.33 124.80 1.68 98% 97% Alarm -> thread resume latency - - 7.37 5.07 17.87 0.00 Clock/interrupt latency - - 9.00 4.53 26.93 0.00 Clock DSR latency - - 106 0 376 (main stack: 764) Thread stack used (992 total) -All done, main stack : stack used 764 size 4112 -All done : Interrupt stack used 176 size 4096 -All done : Idlethread stack used 352 size 2048 - -Timing complete - 30310 ms total - -PASS:<Basic timing OK> -EXIT:<done> - - </LITERALLAYOUT> -</SECT1> - -<!-- ==================================================== --> - -<SECT1 id="rt-sh-hs7729pci"> -<TITLE>Board: Hitachi HS7729PCI HS7729 SH3</TITLE> -<LITERALLAYOUT CLASS="MONOSPACED"> - -Board: Hitachi HS7729PCI HS7729 SH3 - -CPU: Hitachi SH3/7729 132MHz - - -Startup, main stack : stack used 464 size 4112 -Startup : Interrupt stack used 92 size 4096 -Startup : Idlethread stack used 94 size 2048 - -eCos Kernel Timings -Notes: all times are in microseconds (.000001) unless otherwise stated - -Reading the hardware clock takes 3 'ticks' overhead -... this value will be factored out of all other measurements -Clock interrupt took 18.10 microseconds (149 raw clock ticks) - -Testing parameters: - Clock samples: 32 - Threads: 64 - Thread switches: 128 - Mutexes: 32 - Mailboxes: 32 - Semaphores: 32 - Scheduler operations: 128 - Counters: 32 - Alarms: 32 - - - Confidence - Ave Min Max Var Ave Min Function - ====== ====== ====== ====== ========== ======== - 18.33 15.52 28.24 1.47 53% 28% Create thread - 3.08 2.91 6.79 0.13 78% 89% Yield thread [all suspended] - 3.23 3.03 6.18 0.16 59% 70% Suspend [suspended] thread - 2.70 2.55 6.18 0.15 54% 82% Resume thread - 4.12 4.00 7.52 0.16 96% 81% Set priority - 0.61 0.48 1.33 0.07 57% 28% Get priority - 9.14 8.61 18.91 0.42 85% 57% Kill [suspended] thread - 3.04 2.91 4.48 0.07 68% 20% Yield [no other] thread - 5.12 4.73 7.88 0.29 60% 53% Resume [suspended low prio] thread - 2.54 2.42 3.03 0.09 39% 40% Resume [runnable low prio] thread - 5.00 4.36 9.45 0.21 75% 1% Suspend [runnable] thread - 3.04 2.91 4.61 0.07 65% 21% Yield [only low prio] thread - 2.91 2.79 3.27 0.08 43% 31% Suspend [runnable->not runnable] - 8.82 8.12 15.39 0.36 68% 29% Kill [runnable] thread - 5.07 4.48 12.73 0.37 76% 50% Destroy [dead] thread - 11.17 10.55 22.91 0.52 78% 67% Destroy [runnable] thread - 22.43 21.45 32.73 0.61 81% 50% Resume [high priority] thread - 7.99 7.88 13.58 0.14 98% 86% Thread switch - - 0.37 0.36 1.33 0.02 97% 97% Scheduler lock - 1.74 1.70 2.06 0.06 70% 70% Scheduler unlock [0 threads] - 1.75 1.70 2.06 0.07 92% 64% Scheduler unlock [1 suspended] - 1.71 1.70 2.42 0.03 89% 89% Scheduler unlock [many suspended] - 1.76 1.70 3.64 0.08 96% 64% Scheduler unlock [many low prio] - - 4.23 3.88 10.67 0.41 96% 93% Unlock [locked] mutex - 3.12 2.91 6.91 0.29 96% 87% Trylock [unlocked] mutex - 2.54 2.42 2.91 0.11 18% 46% Trylock [locked] mutex - 0.88 0.73 3.15 0.14 65% 96% Destroy mutex - 22.33 22.06 25.94 0.23 81% 62% Unlock/Lock mutex - - 1.92 1.82 4.73 0.19 96% 93% Create mbox - 0.61 0.48 1.70 0.15 84% 75% Peek [empty] mbox - 4.00 3.64 9.45 0.36 96% 87% Put [first] mbox - 0.30 0.24 0.73 0.09 84% 75% Peek [1 msg] mbox - 3.82 3.64 6.67 0.22 90% 84% Put [second] mbox - 0.32 0.24 1.33 0.12 81% 81% Peek [2 msgs] mbox - 4.19 3.76 9.21 0.34 84% 50% Get [first] mbox - 3.91 3.76 5.21 0.16 84% 75% Get [second] mbox - 3.51 3.27 8.12 0.34 93% 87% Tryput [first] mbox - 3.25 2.91 7.15 0.30 62% 56% Peek item [non-empty] mbox - 3.86 3.52 8.73 0.37 93% 84% Tryget [non-empty] mbox - 2.87 2.79 3.76 0.12 84% 71% Peek item [empty] mbox - 3.15 3.03 4.24 0.10 46% 40% Tryget [empty] mbox - 0.34 0.24 1.33 0.10 43% 46% Waiting to get mbox - 0.36 0.24 1.45 0.09 53% 37% Waiting to put mbox - 4.49 4.24 10.91 0.41 96% 96% Delete mbox - 12.67 12.36 19.52 0.43 96% 96% Put/Get mbox - - 0.87 0.85 1.45 0.05 93% 93% Init semaphore - 2.74 2.55 4.48 0.18 50% 50% Post [0] semaphore - 3.39 3.15 4.24 0.14 78% 50% Wait [1] semaphore - 2.62 2.42 5.33 0.21 96% 65% Trywait [0] semaphore - 2.76 2.67 3.27 0.08 46% 43% Trywait [1] semaphore - 1.09 0.85 2.91 0.19 68% 56% Peek semaphore - 0.97 0.73 3.39 0.17 90% 65% Destroy semaphore - 13.09 12.85 16.12 0.19 84% 65% Post/Wait semaphore - - 1.57 1.45 3.88 0.15 96% 93% Create counter - 0.91 0.73 2.18 0.16 46% 68% Get counter value - 0.55 0.48 0.97 0.09 90% 62% Set counter value - 4.19 4.00 5.82 0.13 84% 75% Tick counter - 0.87 0.73 3.15 0.16 93% 93% Delete counter - - 2.50 2.30 5.21 0.18 81% 90% Create alarm - 6.16 5.70 12.97 0.47 96% 71% Initialize alarm - 0.50 0.36 1.70 0.11 62% 34% Disable alarm - 5.16 4.85 8.73 0.29 78% 78% Enable alarm - 1.18 1.09 2.30 0.12 84% 65% Delete alarm - 5.22 5.09 7.39 0.14 96% 93% Tick counter [1 alarm] - 52.37 52.12 52.73 0.20 37% 56% Tick counter [many alarms] - 6.73 6.55 8.24 0.13 78% 68% Tick & fire counter [1 alarm] - 108.65 108.61 109.21 0.07 87% 87% Tick & fire counters [>1 together] - 54.25 54.06 54.79 0.11 65% 18% Tick & fire counters [>1 separately] - 17.36 17.09 29.82 0.23 82% 57% Alarm latency [0 threads] - 19.75 17.09 28.00 1.65 46% 40% Alarm latency [2 threads] - 39.02 34.06 50.67 2.00 53% 15% Alarm latency [many threads] - 29.31 28.36 105.09 1.27 98% 97% Alarm -> thread resume latency - - 5.08 3.88 11.15 0.00 Clock/interrupt latency - - 7.32 5.09 16.73 0.00 Clock DSR latency - - 6 0 380 (main stack: 820) Thread stack used (992 total) -All done, main stack : stack used 820 size 4112 -All done : Interrupt stack used 196 size 4096 -All done : Idlethread stack used 360 size 2048 - -Timing complete - 29960 ms total -PASS:<Basic timing OK> -EXIT:<done> </LITERALLAYOUT> -</SECT1> - -<!-- ==================================================== --> - -<SECT1 id="rt-sh-se7751"> -<TITLE>Board: Hitachi Solution Engine 7751 SH4 (se7751)</TITLE> -<LITERALLAYOUT CLASS="MONOSPACED">Board: Hitachi Solution Engine 7751 SH4 (se7751) - -CPU: Hitachi SH4/7751 162MHz - - -Startup, main stack : stack used 464 size 4112 -Startup : Interrupt stack used 92 size 4096 -Startup : Idlethread stack used 94 size 2048 - - -eCos Kernel Timings -Notes: all times are in microseconds (.000001) unless otherwise stated - - -Reading the hardware clock takes 1 `ticks' overhead -... this value will be factored out of all other measurements -Clock interrupt took 14.27 microseconds (96 raw clock ticks) - - -Testing parameters: - Clock samples: 32 - Threads: 64 - Thread switches: 128 - Mutexes: 32 - Mailboxes: 32 - Semaphores: 32 - Scheduler operations: 128 - Counters: 32 - Alarms: 32 - - Confidence - Ave Min Max Var Ave Min Function - ====== ====== ====== ====== ========== ======== - 8.06 5.63 12.15 1.37 46% 29% Create thread - 1.15 1.04 5.19 0.15 98% 98% Yield thread [all suspended] - 1.13 0.89 5.04 0.27 89% 62% Suspend [suspended] thread - 1.11 0.89 5.19 0.26 89% 71% Resume thread - 1.45 1.19 3.56 0.23 53% 53% Set priority - 0.21 0.15 1.19 0.10 90% 79% Get priority - 4.15 3.56 13.04 0.53 68% 64% Kill [suspended] thread - 1.12 1.04 3.70 0.12 98% 70% Yield [no other] thread - 1.75 1.33 8.00 0.38 59% 65% Resume [suspended low prio] thread - 1.10 0.89 4.59 0.25 87% 73% Resume [runnable low prio] thread - 1.59 1.33 5.93 0.33 81% 79% Suspend [runnable] thread - 1.13 1.04 4.30 0.13 98% 71% Yield [only low prio] thread - 1.09 0.89 3.56 0.21 89% 70% Suspend [runnable->not runnable] - 4.96 4.30 11.70 0.44 68% 39% Kill [runnable] thread - 1.95 1.48 8.00 0.34 75% 57% Destroy [dead] thread - 4.41 3.85 10.37 0.47 53% 57% Destroy [runnable] thread - 13.15 11.41 23.85 1.11 73% 39% Resume [high priority] thread - 3.10 2.96 6.22 0.11 41% 39% Thread switch - - 0.13 0.00 1.33 0.06 74% 21% Scheduler lock - 0.76 0.74 1.78 0.03 96% 96% Scheduler unlock [0 threads] - 0.76 0.74 1.78 0.03 96% 96% Scheduler unlock [1 suspended] - 0.77 0.74 2.67 0.05 95% 95% Scheduler unlock [many suspended] - 0.76 0.74 2.37 0.04 95% 95% Scheduler unlock [many low prio] - - 0.52 0.15 2.67 0.26 65% 34% Init mutex - 1.23 1.04 5.63 0.32 93% 93% Lock [unlocked] mutex - 1.45 1.19 5.33 0.31 90% 87% Unlock [locked] mutex - 1.13 0.89 4.15 0.28 90% 84% Trylock [unlocked] mutex - 1.00 0.89 2.96 0.17 87% 87% Trylock [locked] mutex - 0.37 0.30 1.78 0.13 90% 84% Destroy mutex - 9.09 8.59 12.59 0.43 71% 71% Unlock/Lock mutex - 0.93 0.59 4.30 0.40 84% 71% Create mbox - 0.26 0.00 1.19 0.17 71% 59% Peek [empty] mbox - 3.03 2.52 6.37 0.47 50% 59% Put [first] mbox - 0.23 0.00 0.74 0.14 68% 15% Peek [1 msg] mbox - 2.93 2.52 4.74 0.46 71% 59% Put [second] mbox - 0.22 0.00 0.59 0.13 68% 15% Peek [2 msgs] mbox - 2.07 1.63 5.93 0.37 84% 59% Get [first] mbox - 2.06 1.63 4.74 0.34 78% 59% Get [second] mbox - 1.48 1.04 5.48 0.37 62% 53% Tryput [first] mbox - 1.31 1.04 4.89 0.32 96% 75% Peek item [non-empty] mbox - 1.47 1.04 5.78 0.38 84% 65% Tryget [non-empty] mbox - 1.15 0.89 3.11 0.18 71% 56% Peek item [empty] mbox - 1.20 1.04 3.85 0.21 93% 84% Tryget [empty] mbox - 0.21 0.00 0.74 0.14 68% 18% Waiting to get mbox - 0.19 0.00 0.44 0.10 43% 15% Waiting to put mbox - 2.19 1.93 5.78 0.27 93% 71% Delete mbox - 10.23 9.93 11.56 0.15 53% 37% Put/Get mbox - - 0.37 0.15 1.33 0.26 71% 71% Init semaphore - 0.98 0.89 2.52 0.13 96% 68% Post [0] semaphore - 1.08 0.89 3.26 0.15 68% 93% Wait [1] semaphore - 0.98 0.89 3.41 0.16 93% 93% Trywait [0] semaphore - 0.73 0.59 1.63 0.07 71% 25% Trywait [1] semaphore - 0.33 0.30 1.33 0.07 93% 93% Peek semaphore - 0.34 0.30 1.78 0.09 96% 96% Destroy semaphore - 9.36 8.74 10.37 0.33 56% 31% Post/Wait semaphore - - 0.54 0.15 3.26 0.23 59% 37% Create counter - 0.13 0.00 0.59 0.07 68% 25% Get counter value - 0.14 0.00 0.59 0.07 68% 25% Set counter value - 3.74 3.56 5.33 0.17 53% 75% Tick counter - 0.32 0.15 2.07 0.12 71% 21% Delete counter - - 1.59 1.19 3.11 0.29 71% 43% Create alarm - 1.89 1.48 6.37 0.44 87% 78% Initialize alarm - 0.20 0.15 0.74 0.09 87% 84% Disable alarm - 1.62 1.33 5.63 0.41 87% 84% Enable alarm - 0.40 0.30 1.33 0.13 87% 62% Delete alarm - - 4.03 3.70 5.78 0.27 68% 56% Tick counter [1 alarm] - 14.18 13.93 15.70 0.27 81% 75% Tick counter [many alarms] - 4.81 4.59 5.93 0.13 81% 15% Tick & fire counter [1 alarm] - 30.77 30.52 33.63 0.20 75% 65% Tick & fire counters [>1 together] - 15.10 14.52 17.04 0.23 71% 3% Tick & fire counters [>1 separately] - 8.78 8.59 18.22 0.20 97% 89% Alarm latency [0 threads] - 11.29 9.33 17.48 1.02 56% 22% Alarm latency [2 threads] - 18.70 15.70 26.37 1.45 54% 22% Alarm latency [many threads] - 19.40 18.81 57.48 0.65 97% 97% Alarm -> thread resume latency - - 4.18 2.81 8.89 0.00 Clock/interrupt latency - - 3.98 2.52 11.56 0.00 Clock DSR latency - - 6 0 380 (main stack: 728) Thread stack used (992 total) -All done, main stack : stack used 728 size 4112 -All done : Interrupt stack used 196 size 4096 -All done : Idlethread stack used 360 size 2048 - -Timing complete - 29790 ms total - -PASS:<Basic timing OK> -EXIT:<done> </LITERALLAYOUT> -</SECT1> -<SECT1 id="rt-i386-pc"> -<TITLE>Board: PC</TITLE> -<LITERALLAYOUT CLASS="MONOSPACED">Board: PC - -CPU: 433MHz Celeron - -Startup, main stack : stack used 124 size 2912 -Startup : Interrupt stack used 280 size 4108 -Startup : Idlethread stack used 62 size 2048 - -eCos Kernel Timings -Notes: all times are in microseconds (.000001) unless otherwise stated - -Reading the hardware clock takes 8 'ticks' overhead -... this value will be factored out of all other measurements -Clock interrupt took 6.75 microseconds (8 raw clock ticks) - -Testing parameters: - Clock samples: 32 - Threads: 64 - Thread switches: 128 - Mutexes: 32 - Mailboxes: 32 - Semaphores: 32 - Scheduler operations: 128 - Counters: 32 - Alarms: 32 - - - Confidence - Ave Min Max Var Ave Min Function - ====== ====== ====== ====== ========== ======== - 3.93 1.68 8.38 0.93 68% 3% Create thread - 0.71 0.00 3.35 0.84 59% 59% Yield thread [all suspended] - 0.65 0.00 5.03 0.84 64% 64% Suspend [suspended] thread - 0.63 0.00 1.68 0.79 62% 62% Resume thread - 0.76 0.00 1.68 0.83 54% 54% Set priority - 0.39 0.00 1.68 0.60 76% 76% Get priority - 1.34 0.00 6.70 0.67 73% 25% Kill [suspended] thread - 0.68 0.00 1.68 0.81 59% 59% Yield [no other] thread - 0.92 0.00 1.68 0.83 54% 45% Resume [suspended low prio] thread - 0.63 0.00 1.68 0.79 62% 62% Resume [runnable low prio] thread - 0.84 0.00 1.68 0.84 100% 50% Suspend [runnable] thread - 0.73 0.00 1.68 0.82 56% 56% Yield [only low prio] thread - 0.58 0.00 1.68 0.76 65% 65% Suspend [runnable->not runnable] - 1.26 0.00 3.35 0.67 71% 26% Kill [runnable] thread - 0.86 0.00 3.35 0.86 98% 50% Destroy [dead] thread - 1.44 0.00 1.68 0.40 85% 14% Destroy [runnable] thread - 4.45 3.35 6.70 0.89 53% 40% Resume [high priority] thread - 1.62 0.00 1.68 0.10 96% 3% Thread switch - - 0.41 0.00 1.68 0.61 75% 75% Scheduler lock - 0.48 0.00 1.68 0.69 71% 71% Scheduler unlock [0 threads] - 0.59 0.00 1.68 0.76 64% 64% Scheduler unlock [1 suspended] - 0.45 0.00 1.68 0.65 73% 73% Scheduler unlock [many suspended] - 0.45 0.00 1.68 0.65 73% 73% Scheduler unlock [many low prio] - - 0.52 0.00 1.68 0.72 68% 68% Init mutex - 0.79 0.00 5.03 0.93 96% 59% Lock [unlocked] mutex - 0.84 0.00 5.03 0.94 96% 56% Unlock [locked] mutex - 0.63 0.00 1.68 0.79 62% 62% Trylock [unlocked] mutex - 0.52 0.00 1.68 0.72 68% 68% Trylock [locked] mutex - 0.58 0.00 1.68 0.76 65% 65% Destroy mutex - 3.40 3.35 5.03 0.10 96% 96% Unlock/Lock mutex - - 0.99 0.00 1.68 0.81 59% 40% Create mbox - 0.47 0.00 1.68 0.68 71% 71% Peek [empty] mbox - 0.79 0.00 5.03 0.93 96% 59% Put [first] mbox - 0.42 0.00 1.68 0.63 75% 75% Peek [1 msg] mbox - 0.79 0.00 1.68 0.83 53% 53% Put [second] mbox - 0.37 0.00 1.68 0.57 78% 78% Peek [2 msgs] mbox - 0.73 0.00 3.35 0.87 59% 59% Get [first] mbox - 0.73 0.00 1.68 0.82 56% 56% Get [second] mbox - 0.79 0.00 3.35 0.88 56% 56% Tryput [first] mbox - 0.68 0.00 3.35 0.85 62% 62% Peek item [non-empty] mbox - 0.73 0.00 3.35 0.87 59% 59% Tryget [non-empty] mbox - 0.63 0.00 1.68 0.79 62% 62% Peek item [empty] mbox - 0.68 0.00 1.68 0.81 59% 59% Tryget [empty] mbox - 0.26 0.00 1.68 0.44 84% 84% Waiting to get mbox - 0.63 0.00 1.68 0.79 62% 62% Waiting to put mbox - 0.73 0.00 3.35 0.87 59% 59% Delete mbox - 3.25 1.68 3.35 0.20 93% 6% Put/Get mbox - - 0.63 0.00 1.68 0.79 62% 62% Init semaphore - 0.63 0.00 1.68 0.79 62% 62% Post [0] semaphore - 0.63 0.00 1.68 0.79 62% 62% Wait [1] semaphore - 0.52 0.00 1.68 0.72 68% 68% Trywait [0] semaphore - 0.52 0.00 1.68 0.72 68% 68% Trywait [1] semaphore - 0.52 0.00 1.68 0.72 68% 68% Peek semaphore - 0.21 0.00 1.68 0.37 87% 87% Destroy semaphore - 3.30 1.68 3.35 0.10 96% 3% Post/Wait semaphore - - 0.79 0.00 3.35 0.88 56% 56% Create counter - 0.42 0.00 1.68 0.63 75% 75% Get counter value - 0.37 0.00 1.68 0.57 78% 78% Set counter value - 0.73 0.00 1.68 0.82 56% 56% Tick counter - 0.63 0.00 1.68 0.79 62% 62% Delete counter - - 0.89 0.00 3.35 0.89 96% 50% Create alarm - 0.84 0.00 1.68 0.84 100% 50% Initialize alarm - 0.52 0.00 1.68 0.72 68% 68% Disable alarm - 0.89 0.00 3.35 0.89 96% 50% Enable alarm - 0.58 0.00 1.68 0.76 65% 65% Delete alarm - 0.63 0.00 1.68 0.79 62% 62% Tick counter [1 alarm] - 5.03 3.35 6.70 0.10 93% 3% Tick counter [many alarms] - 0.94 0.00 1.68 0.82 56% 43% Tick & fire counter [1 alarm] - 11.16 10.06 11.73 0.76 65% 34% Tick & fire counters [>1 together] - 5.19 5.03 6.70 0.28 90% 90% Tick & fire counters [>1 separately] - 0.01 0.00 1.68 0.03 99% 99% Alarm latency [0 threads] - 0.13 0.00 1.68 0.24 92% 92% Alarm latency [2 threads] - 0.94 0.00 3.35 0.85 53% 45% Alarm latency [many threads] - 1.75 1.68 6.70 0.15 96% 96% Alarm -> thread resume latency - - 41 0 368 (main stack: 1036) Thread stack used (1712 total) -All done, main stack : stack used 1036 size 2912 -All done : Interrupt stack used 368 size 4108 -All done : Idlethread stack used 288 size 2048 - -Timing complete - 28520 ms total - -PASS:<Basic timing OK> -EXIT:<done> - -</LITERALLAYOUT> -</SECT1> -<SECT1 id="rt-v850-cebsa1"> -<TITLE>Board: NEC V850 Cosmo Evaluation Board</TITLE> -<LITERALLAYOUT CLASS="MONOSPACED">Board: NEC V850 Cosmo Evaluation Board - -CPU: NEC CEB-V850/SA1 17MHz - -Startup, main stack : stack used 552 size 2936 -Startup : Interrupt stack used 120 size 4096 -Startup : Idlethread stack used 206 size 2048 - -eCos Kernel Timings -Notes: all times are in microseconds (.000001) unless otherwise stated - -Reading the hardware clock takes 27 `ticks' overhead -... this value will be factored out of all other measurements -Clock interrupt took 280.04 microseconds (1190 raw clock ticks) - -Testing parameters: - Clock samples: 32 - Threads: 7 - Thread switches: 128 - Mutexes: 32 - Mailboxes: 32 - Semaphores: 32 - Scheduler operations: 128 - Counters: 32 - Alarms: 32 - - - Confidence - Ave Min Max Var Ave Min Function - ====== ====== ====== ====== ========== ======== - 288.71 280.24 297.18 4.84 42% 28% Create thread - 70.76 70.59 70.82 0.10 71% 28% Yield thread [all suspended] - 59.06 59.06 59.06 0.00 100% 100% Suspend [suspended] thread - 60.00 60.00 60.00 0.00 100% 100% Resume thread - 77.38 77.18 77.41 0.06 85% 14% Set priority - 3.13 3.06 3.29 0.10 71% 71% Get priority - 187.46 187.29 187.53 0.10 71% 28% Kill [suspended] thread - 70.76 70.59 70.82 0.10 71% 28% Yield [no other] thread - 104.40 103.29 104.71 0.32 85% 14% Resume [suspended low prio] thread - 59.06 59.06 59.06 0.00 100% 100% Resume [runnable low prio] thread - 97.11 91.06 98.12 1.73 85% 14% Suspend [runnable] thread - 70.76 70.59 70.82 0.10 71% 28% Yield [only low prio] thread - 59.06 59.06 59.06 0.00 100% 100% Suspend [runnable->not runnable] - 187.46 187.29 187.53 0.10 71% 28% Kill [runnable] thread - 95.63 95.29 97.18 0.44 85% 85% Destroy [dead] thread - 241.28 236.94 242.12 1.24 85% 14% Destroy [runnable] thread - 378.55 370.35 427.06 13.86 85% 85% Resume [high priority] thread - 198.77 183.76 452.94 18.77 96% 96% Thread switch - - 2.59 2.59 2.59 0.00 100% 100% Scheduler lock - 41.29 41.18 41.41 0.12 100% 50% Scheduler unlock [0 threads] - 40.82 40.71 40.94 0.12 100% 50% Scheduler unlock [1 suspended] - 41.29 41.18 41.41 0.12 100% 50% Scheduler unlock [many suspended] - 41.29 41.18 41.41 0.12 100% 50% Scheduler unlock [many low prio] - - 17.94 17.88 18.12 0.09 75% 75% Init mutex - 68.71 68.71 68.71 0.00 100% 100% Lock [unlocked] mutex - 72.10 72.00 73.41 0.15 96% 71% Unlock [locked] mutex - 57.88 57.88 57.88 0.00 100% 100% Trylock [unlocked] mutex - 52.24 52.24 52.24 0.00 100% 100% Trylock [locked] mutex - 12.41 12.24 12.47 0.09 75% 25% Destroy mutex - 427.06 427.06 427.06 0.00 100% 100% Unlock/Lock mutex - - - 34.94 34.82 35.06 0.12 100% 50% Create mbox - 0.76 0.71 0.94 0.09 75% 75% Peek [empty] mbox - 75.29 75.29 75.29 0.00 100% 100% Put [first] mbox - 1.24 1.18 1.41 0.09 75% 75% Peek [1 msg] mbox - 75.76 75.76 75.76 0.00 100% 100% Put [second] mbox - 0.76 0.71 0.94 0.09 75% 75% Peek [2 msgs] mbox - 80.12 80.00 80.24 0.12 100% 50% Get [first] mbox - 79.65 79.53 79.76 0.12 100% 50% Get [second] mbox - 70.12 70.12 70.12 0.00 100% 100% Tryput [first] mbox - 65.76 65.65 65.88 0.12 100% 50% Peek item [non-empty] mbox - 78.00 77.88 78.12 0.12 100% 50% Tryget [non-empty] mbox - 63.12 63.06 63.29 0.09 75% 75% Peek item [empty] mbox - 67.82 67.76 68.00 0.09 75% 75% Tryget [empty] mbox - 1.94 1.88 2.12 0.09 75% 75% Waiting to get mbox - 1.47 1.41 1.65 0.09 75% 75% Waiting to put mbox - 75.59 75.53 75.76 0.09 75% 75% Delete mbox - 252.76 252.71 252.94 0.09 75% 75% Put/Get mbox - - 20.24 20.24 20.24 0.00 100% 100% Init semaphore - 54.35 54.35 54.35 0.00 100% 100% Post [0] semaphore - 66.59 66.59 66.59 0.00 100% 100% Wait [1] semaphore - 52.24 52.24 52.24 0.00 100% 100% Trywait [0] semaphore - 53.41 53.41 53.41 0.00 100% 100% Trywait [1] semaphore - 10.65 10.59 10.82 0.09 75% 75% Peek semaphore - 12.65 12.47 12.71 0.09 75% 25% Destroy semaphore - 276.94 276.94 276.94 0.00 100% 100% Post/Wait semaphore - - 14.94 14.82 15.06 0.12 100% 50% Create counter - 2.18 2.12 2.35 0.09 75% 75% Get counter value - 3.06 3.06 3.06 0.00 100% 100% Set counter value - 78.12 78.12 78.12 0.00 100% 100% Tick counter - 13.82 13.65 13.88 0.09 75% 25% Delete counter - - 26.94 26.82 27.06 0.12 100% 50% Create alarm - 104.18 104.00 104.24 0.09 75% 25% Initialize alarm - 7.65 7.53 7.76 0.12 100% 50% Disable alarm - 104.94 104.94 104.94 0.00 100% 100% Enable alarm - 19.47 19.29 19.53 0.09 75% 25% Delete alarm - 88.53 88.47 88.71 0.09 75% 75% Tick counter [1 alarm] - 418.61 411.29 645.41 14.17 96% 96% Tick counter [many alarms] - 139.59 139.53 139.76 0.09 75% 75% Tick & fire counter [1 alarm] - 2150.21 2096.71 2367.53 83.59 78% 78% Tick & fire counters [>1 together] - 478.15 462.35 733.41 29.61 93% 93% Tick & fire counters [>1 separately] - 219.89 218.59 369.88 2.34 99% 99% Alarm latency [0 threads] - 292.11 218.59 371.53 37.85 50% 25% Alarm latency [2 threads] - 292.96 218.59 370.59 38.12 49% 25% Alarm latency [many threads] - 540.90 495.76 1677.41 17.76 98% 0% Alarm -> thread resume latency - - 79.01 78.59 104.71 0.00 Clock/interrupt latency - - 123.41 85.88 1982.82 0.00 Clock DSR latency - - 522 516 536 (main stack: 1124) Thread stack used (1912 total) -All done, main stack : stack used 1124 size 2936 -All done : Interrupt stack used 288 size 4096 -All done : Idlethread stack used 488 size 2048 - -Timing complete - 32540 ms total - -</LITERALLAYOUT> -</SECT1> -<SECT1 id="rt-v850-cebsb1"> -<TITLE>Board: NEC V850 Cosmo Evaluation Board</TITLE> -<LITERALLAYOUT CLASS="MONOSPACED">Board: NEC V850 Cosmo Evaluation Board - -CPU: NEC CEB-V850/SB1 16MHz (in internal Flash) - - -Startup, main stack : stack used 572 size 2936 -Startup : Interrupt stack used 132 size 4096 -Startup : Idlethread stack used 210 size 2048 - -eCos Kernel Timings -Notes: all times are in microseconds (.000001) unless otherwise stated - -Reading the hardware clock takes 8 'ticks' overhead -... this value will be factored out of all other measurements -Clock interrupt took 118.15 microseconds (472 raw clock ticks) - -Testing parameters: - Clock samples: 32 - Threads: 7 - Thread switches: 128 - Mutexes: 32 - Mailboxes: 32 - Semaphores: 32 - Scheduler operations: 128 - Counters: 32 - Alarms: 32 - - - Confidence - Ave Min Max Var Ave Min Function - ====== ====== ====== ====== ========== ======== - 113.68 111.00 116.50 1.63 42% 28% Create thread - 30.00 30.00 30.00 0.00 100% 100% Yield thread [all suspended] - 29.57 29.50 29.75 0.10 71% 71% Suspend [suspended] thread - 27.43 27.25 27.50 0.10 71% 28% Resume thread - 34.11 34.00 34.25 0.12 57% 57% Set priority - 1.57 1.50 1.75 0.10 71% 71% Get priority - 72.96 72.75 73.00 0.06 85% 14% Kill [suspended] thread - 30.00 30.00 30.00 0.00 100% 100% Yield [no other] thread - 42.75 42.75 42.75 0.00 100% 100% Resume [suspended low prio] thread - 27.00 27.00 27.00 0.00 100% 100% Resume [runnable low prio] thread - 43.64 41.25 44.25 0.68 85% 14% Suspend [runnable] thread - 30.00 30.00 30.00 0.00 100% 100% Yield [only low prio] thread - 29.57 29.50 29.75 0.10 71% 71% Suspend [runnable->not runnable] - 72.93 72.75 73.00 0.10 71% 28% Kill [runnable] thread - 44.89 44.75 45.75 0.24 85% 85% Destroy [dead] thread - 103.00 101.50 103.25 0.43 85% 14% Destroy [runnable] thread - 175.21 171.50 197.50 6.37 85% 85% Resume [high priority] thread - 84.11 79.50 197.25 1.77 98% 0% Thread switch - - 1.00 1.00 1.00 0.00 100% 100% Scheduler lock - 20.06 20.00 20.25 0.09 75% 75% Scheduler unlock [0 threads] - 20.00 20.00 20.00 0.00 100% 100% Scheduler unlock [1 suspended] - 20.06 20.00 20.25 0.09 75% 75% Scheduler unlock [many suspended] - 20.06 20.00 20.25 0.09 75% 75% Scheduler unlock [many low prio] - - 4.00 4.00 4.00 0.00 100% 100% Init mutex - 33.00 33.00 33.00 0.00 100% 100% Lock [unlocked] mutex - 36.77 36.75 37.25 0.03 96% 96% Unlock [locked] mutex - 28.13 28.00 28.25 0.13 100% 50% Trylock [unlocked] mutex - 25.13 25.00 25.25 0.13 100% 50% Trylock [locked] mutex - 4.88 4.75 5.00 0.13 100% 50% Destroy mutex - 187.00 187.00 187.00 0.00 100% 100% Unlock/Lock mutex - - 10.00 10.00 10.00 0.00 100% 100% Create mbox - 0.69 0.50 0.75 0.09 75% 25% Peek [empty] mbox - 34.75 34.75 34.75 0.00 100% 100% Put [first] mbox - 0.69 0.50 0.75 0.09 75% 25% Peek [1 msg] mbox - 35.00 35.00 35.00 0.00 100% 100% Put [second] mbox - 0.69 0.50 0.75 0.09 75% 25% Peek [2 msgs] mbox - 36.00 36.00 36.00 0.00 100% 100% Get [first] mbox - 36.00 36.00 36.00 0.00 100% 100% Get [second] mbox - 31.00 31.00 31.00 0.00 100% 100% Tryput [first] mbox - 29.50 29.50 29.50 0.00 100% 100% Peek item [non-empty] mbox - 35.25 35.25 35.25 0.00 100% 100% Tryget [non-empty] mbox - 27.69 27.50 27.75 0.09 75% 25% Peek item [empty] mbox - 31.06 31.00 31.25 0.09 75% 75% Tryget [empty] mbox - 0.94 0.75 1.00 0.09 75% 25% Waiting to get mbox - 0.94 0.75 1.00 0.09 75% 25% Waiting to put mbox - 37.81 37.75 38.00 0.09 75% 75% Delete mbox - 112.00 112.00 112.00 0.00 100% 100% Put/Get mbox - - 3.19 3.00 3.25 0.09 75% 25% Init semaphore - 25.38 25.25 25.50 0.13 100% 50% Post [0] semaphore - 32.63 32.50 32.75 0.13 100% 50% Wait [1] semaphore - 24.25 24.25 24.25 0.00 100% 100% Trywait [0] semaphore - 25.00 25.00 25.00 0.00 100% 100% Trywait [1] semaphore - 4.00 4.00 4.00 0.00 100% 100% Peek semaphore - 4.88 4.75 5.00 0.13 100% 50% Destroy semaphore - 124.50 124.50 124.50 0.00 100% 100% Post/Wait semaphore - - 6.50 6.50 6.50 0.00 100% 100% Create counter - 1.25 1.25 1.25 0.00 100% 100% Get counter value - 1.44 1.25 1.50 0.09 75% 25% Set counter value - 36.25 36.25 36.25 0.00 100% 100% Tick counter - 5.25 5.25 5.25 0.00 100% 100% Delete counter - - 12.25 12.25 12.25 0.00 100% 100% Create alarm - 49.13 49.00 49.25 0.13 100% 50% Initialize alarm - 2.81 2.75 3.00 0.09 75% 75% Disable alarm - 48.50 48.50 48.50 0.00 100% 100% Enable alarm - 8.25 8.25 8.25 0.00 100% 100% Delete alarm - 46.50 46.50 46.50 0.00 100% 100% Tick counter [1 alarm] - 485.42 482.25 580.00 5.91 96% 96% Tick counter [many alarms] - 64.00 64.00 64.00 0.00 100% 100% Tick & fire counter [1 alarm] - 1109.76 1100.50 1198.00 16.53 90% 90% Tick & fire counters [>1 together] - 505.85 502.00 621.00 7.20 96% 96% Tick & fire counters [>1 separately] - 96.26 95.75 161.25 1.02 99% 99% Alarm latency [0 threads] - 159.20 95.75 160.75 2.52 97% 0% Alarm latency [2 threads] - 159.73 110.50 161.75 1.53 97% 0% Alarm latency [many threads] - 218.45 211.25 445.75 3.55 97% 1% Alarm -> thread resume latency - - 28.24 25.25 43.25 0.00 Clock/interrupt latency - - 60.15 40.50 221.50 0.00 Clock DSR latency - - 472 424 572 (main stack: 1052) Thread stack used (1912 total) -All done, main stack : stack used 1052 size 2936 -All done : Interrupt stack used 280 size 4096 -All done : Idlethread stack used 516 size 2048 - -Timing complete - 30590 ms total - -PASS:<Basic timing OK> -EXIT:<done> - - </LITERALLAYOUT> -</SECT1> -</APPENDIX> -<APPENDIX ID="GNU-GENERAL-PUBLIC-LICENSE"> - <docinfo> - <edition>Version 2, June 1991</edition> - <copyright> - <year>1989</year> - <year>1991</year> - <holder>Free Software Foundation, Inc.</holder> - </copyright> - <address>59 Temple Place, Suite 330, Boston, MA 02111-1307 USA</address> - </docinfo> -<TITLE>GNU General Public License</TITLE> -<LITERALLAYOUT> - Copyright (C) 1989, 1991 Free Software Foundation, Inc. - 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA - Everyone is permitted to copy and distribute verbatim copies - of this license document, but changing it is not allowed. - - Preamble - - The licenses for most software are designed to take away your -freedom to share and change it. By contrast, the GNU General Public -License is intended to guarantee your freedom to share and change free -software--to make sure the software is free for all its users. This -General Public License applies to most of the Free Software -Foundation's software and to any other program whose authors commit to -using it. (Some other Free Software Foundation software is covered by -the GNU Library General Public License instead.) You can apply it to -your programs, too. - - When we speak of free software, we are referring to freedom, not -price. Our General Public Licenses are designed to make sure that you -have the freedom to distribute copies of free software (and charge for -this service if you wish), that you receive source code or can get it -if you want it, that you can change the software or use pieces of it -in new free programs; and that you know you can do these things. - - To protect your rights, we need to make restrictions that forbid -anyone to deny you these rights or to ask you to surrender the rights. -These restrictions translate to certain responsibilities for you if you -distribute copies of the software, or if you modify it. - - For example, if you distribute copies of such a program, whether -gratis or for a fee, you must give the recipients all the rights that -you have. You must make sure that they, too, receive or can get the -source code. And you must show them these terms so they know their -rights. - - We protect your rights with two steps: (1) copyright the software, and -(2) offer you this license which gives you legal permission to copy, -distribute and/or modify the software. - - Also, for each author's protection and ours, we want to make certain -that everyone understands that there is no warranty for this free -software. If the software is modified by someone else and passed on, we -want its recipients to know that what they have is not the original, so -that any problems introduced by others will not reflect on the original -authors' reputations. - - Finally, any free program is threatened constantly by software -patents. We wish to avoid the danger that redistributors of a free -program will individually obtain patent licenses, in effect making the -program proprietary. To prevent this, we have made it clear that any -patent must be licensed for everyone's free use or not licensed at all. - - The precise terms and conditions for copying, distribution and -modification follow. - - GNU GENERAL PUBLIC LICENSE - TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION - - 0. This License applies to any program or other work which contains -a notice placed by the copyright holder saying it may be distributed -under the terms of this General Public License. The "Program", below, -refers to any such program or work, and a "work based on the Program" -means either the Program or any derivative work under copyright law: -that is to say, a work containing the Program or a portion of it, -either verbatim or with modifications and/or translated into another -language. (Hereinafter, translation is included without limitation in -the term "modification".) Each licensee is addressed as "you". - -Activities other than copying, distribution and modification are not -covered by this License; they are outside its scope. The act of -running the Program is not restricted, and the output from the Program -is covered only if its contents constitute a work based on the -Program (independent of having been made by running the Program). -Whether that is true depends on what the Program does. - - 1. You may copy and distribute verbatim copies of the Program's -source code as you receive it, in any medium, provided that you -conspicuously and appropriately publish on each copy an appropriate -copyright notice and disclaimer of warranty; keep intact all the -notices that refer to this License and to the absence of any warranty; -and give any other recipients of the Program a copy of this License -along with the Program. - -You may charge a fee for the physical act of transferring a copy, and -you may at your option offer warranty protection in exchange for a fee. - - 2. You may modify your copy or copies of the Program or any portion -of it, thus forming a work based on the Program, and copy and -distribute such modifications or work under the terms of Section 1 -above, provided that you also meet all of these conditions: - - a) You must cause the modified files to carry prominent notices - stating that you changed the files and the date of any change. - - b) You must cause any work that you distribute or publish, that in - whole or in part contains or is derived from the Program or any - part thereof, to be licensed as a whole at no charge to all third - parties under the terms of this License. - - c) If the modified program normally reads commands interactively - when run, you must cause it, when started running for such - interactive use in the most ordinary way, to print or display an - announcement including an appropriate copyright notice and a - notice that there is no warranty (or else, saying that you provide - a warranty) and that users may redistribute the program under - these conditions, and telling the user how to view a copy of this - License. (Exception: if the Program itself is interactive but - does not normally print such an announcement, your work based on - the Program is not required to print an announcement.) - -These requirements apply to the modified work as a whole. If -identifiable sections of that work are not derived from the Program, -and can be reasonably considered independent and separate works in -themselves, then this License, and its terms, do not apply to those -sections when you distribute them as separate works. But when you -distribute the same sections as part of a whole which is a work based -on the Program, the distribution of the whole must be on the terms of -this License, whose permissions for other licensees extend to the -entire whole, and thus to each and every part regardless of who wrote it. - -Thus, it is not the intent of this section to claim rights or contest -your rights to work written entirely by you; rather, the intent is to -exercise the right to control the distribution of derivative or -collective works based on the Program. - -In addition, mere aggregation of another work not based on the Program -with the Program (or with a work based on the Program) on a volume of -a storage or distribution medium does not bring the other work under -the scope of this License. - - 3. You may copy and distribute the Program (or a work based on it, -under Section 2) in object code or executable form under the terms of -Sections 1 and 2 above provided that you also do one of the following: - - a) Accompany it with the complete corresponding machine-readable - source code, which must be distributed under the terms of Sections - 1 and 2 above on a medium customarily used for software interchange; or, - - b) Accompany it with a written offer, valid for at least three - years, to give any third party, for a charge no more than your - cost of physically performing source distribution, a complete - machine-readable copy of the corresponding source code, to be - distributed under the terms of Sections 1 and 2 above on a medium - customarily used for software interchange; or, - - c) Accompany it with the information you received as to the offer - to distribute corresponding source code. (This alternative is - allowed only for noncommercial distribution and only if you - received the program in object code or executable form with such - an offer, in accord with Subsection b above.) - -The source code for a work means the preferred form of the work for -making modifications to it. For an executable work, complete source -code means all the source code for all modules it contains, plus any -associated interface definition files, plus the scripts used to -control compilation and installation of the executable. However, as a -special exception, the source code distributed need not include -anything that is normally distributed (in either source or binary -form) with the major components (compiler, kernel, and so on) of the -operating system on which the executable runs, unless that component -itself accompanies the executable. - -If distribution of executable or object code is made by offering -access to copy from a designated place, then offering equivalent -access to copy the source code from the same place counts as -distribution of the source code, even though third parties are not -compelled to copy the source along with the object code. - - 4. You may not copy, modify, sublicense, or distribute the Program -except as expressly provided under this License. Any attempt -otherwise to copy, modify, sublicense or distribute the Program is -void, and will automatically terminate your rights under this License. -However, parties who have received copies, or rights, from you under -this License will not have their licenses terminated so long as such -parties remain in full compliance. - - 5. You are not required to accept this License, since you have not -signed it. However, nothing else grants you permission to modify or -distribute the Program or its derivative works. These actions are -prohibited by law if you do not accept this License. Therefore, by -modifying or distributing the Program (or any work based on the -Program), you indicate your acceptance of this License to do so, and -all its terms and conditions for copying, distributing or modifying -the Program or works based on it. - - 6. Each time you redistribute the Program (or any work based on the -Program), the recipient automatically receives a license from the -original licensor to copy, distribute or modify the Program subject to -these terms and conditions. You may not impose any further -restrictions on the recipients' exercise of the rights granted herein. -You are not responsible for enforcing compliance by third parties to -this License. - - 7. If, as a consequence of a court judgment or allegation of patent -infringement or for any other reason (not limited to patent issues), -conditions are imposed on you (whether by court order, agreement or -otherwise) that contradict the conditions of this License, they do not -excuse you from the conditions of this License. If you cannot -distribute so as to satisfy simultaneously your obligations under this -License and any other pertinent obligations, then as a consequence you -may not distribute the Program at all. For example, if a patent -license would not permit royalty-free redistribution of the Program by -all those who receive copies directly or indirectly through you, then -the only way you could satisfy both it and this License would be to -refrain entirely from distribution of the Program. - -If any portion of this section is held invalid or unenforceable under -any particular circumstance, the balance of the section is intended to -apply and the section as a whole is intended to apply in other -circumstances. - -It is not the purpose of this section to induce you to infringe any -patents or other property right claims or to contest validity of any -such claims; this section has the sole purpose of protecting the -integrity of the free software distribution system, which is -implemented by public license practices. Many people have made -generous contributions to the wide range of software distributed -through that system in reliance on consistent application of that -system; it is up to the author/donor to decide if he or she is willing -to distribute software through any other system and a licensee cannot -impose that choice. - -This section is intended to make thoroughly clear what is believed to -be a consequence of the rest of this License. - - 8. If the distribution and/or use of the Program is restricted in -certain countries either by patents or by copyrighted interfaces, the -original copyright holder who places the Program under this License -may add an explicit geographical distribution limitation excluding -those countries, so that distribution is permitted only in or among -countries not thus excluded. In such case, this License incorporates -the limitation as if written in the body of this License. - - 9. The Free Software Foundation may publish revised and/or new versions -of the General Public License from time to time. Such new versions will -be similar in spirit to the present version, but may differ in detail to -address new problems or concerns. - -Each version is given a distinguishing version number. If the Program -specifies a version number of this License which applies to it and "any -later version", you have the option of following the terms and conditions -either of that version or of any later version published by the Free -Software Foundation. If the Program does not specify a version number of -this License, you may choose any version ever published by the Free Software -Foundation. - - 10. If you wish to incorporate parts of the Program into other free -programs whose distribution conditions are different, write to the author -to ask for permission. For software which is copyrighted by the Free -Software Foundation, write to the Free Software Foundation; we sometimes -make exceptions for this. Our decision will be guided by the two goals -of preserving the free status of all derivatives of our free software and -of promoting the sharing and reuse of software generally. - - NO WARRANTY - - 11. BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY -FOR THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW. EXCEPT WHEN -OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES -PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED -OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF -MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE ENTIRE RISK AS -TO THE QUALITY AND PERFORMANCE OF THE PROGRAM IS WITH YOU. SHOULD THE -PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING, -REPAIR OR CORRECTION. - - 12. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING -WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR -REDISTRIBUTE THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, -INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING -OUT OF THE USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED -TO LOSS OF DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY -YOU OR THIRD PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER -PROGRAMS), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE -POSSIBILITY OF SUCH DAMAGES. - - END OF TERMS AND CONDITIONS - - How to Apply These Terms to Your New Programs - - If you develop a new program, and you want it to be of the greatest -possible use to the public, the best way to achieve this is to make it -free software which everyone can redistribute and change under these terms. - - To do so, attach the following notices to the program. It is safest -to attach them to the start of each source file to most effectively -convey the exclusion of warranty; and each file should have at least -the "copyright" line and a pointer to where the full notice is found. - - <one line to give the program's name and a brief idea of what it does.> - Copyright (C) <year> <name of author> - - This program is free software; you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation; either version 2 of the License, or - (at your option) any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program; if not, write to the Free Software - Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA - - -Also add information on how to contact you by electronic and paper mail. - -If the program is interactive, make it output a short notice like this -when it starts in an interactive mode: - - Gnomovision version 69, Copyright (C) year name of author - Gnomovision comes with ABSOLUTELY NO WARRANTY; for details type `show w'. - This is free software, and you are welcome to redistribute it - under certain conditions; type `show c' for details. - -The hypothetical commands `show w' and `show c' should show the appropriate -parts of the General Public License. Of course, the commands you use may -be called something other than `show w' and `show c'; they could even be -mouse-clicks or menu items--whatever suits your program. - -You should also get your employer (if you work as a programmer) or your -school, if any, to sign a "copyright disclaimer" for the program, if -necessary. Here is a sample; alter the names: - - Yoyodyne, Inc., hereby disclaims all copyright interest in the program - `Gnomovision' (which makes passes at compilers) written by James Hacker. - - <signature of Ty Coon>, 1 April 1989 - Ty Coon, President of Vice - -This General Public License does not permit incorporating your program into -proprietary programs. If your program is a subroutine library, you may -consider it more useful to permit linking proprietary applications with the -library. If this is what you want to do, use the GNU Library General -Public License instead of this License. -</LITERALLAYOUT> -</APPENDIX> - <APPENDIX ID="THE-ECOS-COPYRIGHT-ASSIGNMENT-FORM"> - <docinfo> - <edition>Revision 1.2</edition> - </docinfo> - <TITLE>The eCos Copyright Assignment Form</TITLE> - <section> - <title>Rationale</title> - - <para>This preamble describes how to use the standard eCos copyright assignment -form. The rationale behind this assignment is to avoid any possible confusion -over the legal ownership of eCos, and to indemnify Red Hat and all eCos users -against copyright or patent claims on contributed code used within eCos. -Red Hat would be especially vulnerable, but all users and their eCos based -applications could be affected.</para> - - <para>In virtually all cases, all contributions to eCos for which there are -copyright assignments will be made available publically covered by the -<link linkend="GNU-GENERAL-PUBLIC-LICENSE">GNU General Public License</link> -plus an exception permitting linking eCos with proprietary code in order to make -the license more appropriate for embedded systems. The license provides a -guarantee that the contribution will remain freely available to all.</para> - - <para>This agreement gives Red Hat ownership of your changes but promises that -you will retain the right to use your contributed changes as you see fit. For convenience, -signing this agreement allows you to make further changes and additions and contribute -them as well if you so desire, without the necessity of signing a separate agreement. -There is however no requirement for you to do so. -</para> - - <para>Because employers often can claim ownership over things that employees -write, you may also have to get your employer to sign a disclaimer that says that -they have no claim to the changes you are contributing.</para> - - <para>Please read everything, and if you have any questions, email -<email>ecos-assign@redhat.com</email> for help.</para> - - <para>Thanks for your contribution to eCos!</para> - </section> - - <section id="how-to-assign-copyright"> - <title>How to assign copyright</title> - - <para>The way to assign copyright to Red Hat is to sign an assignment contract. This is -what makes Red Hat the legal copyright holder, so that Red Hat can register the -copyright on the new version. </para> - - <para>If you are employed as a programmer (even at a university), or have made an -agreement with your employer or school that gives them ownership of the software -you write, then Red Hat needs a signed letter from your employer disclaiming -rights to the contributed software. </para> - - <para>The disclaimer should be printed on the company's headed paper, and signed by an -officer of the company, or someone authorized to license the company's -intellectual property. Here is an example of wording that can be used for this -purpose: -<blockquote> - <para><replaceable><INSERT COMPANY NAME></replaceable> hereby disclaims all copyright -interest in the changes and enhancements made by <replaceable><INSERT YOUR NAME></replaceable> to eCos, -including any future revisions of these changes and enhancements.</para> - - <para><replaceable><INSERT COMPANY NAME></replaceable> affirms that it has no other intellectual -property interest that would undermine this release, or the use of eCos, and will do nothing -to undermine it in the future.</para> - - <para><replaceable><INSERT SIGNATURE OF OFFICER OF COMPANY></replaceable></para> - <para><replaceable><INSERT DATE></replaceable></para> - <para><replaceable><INSERT PRINTED NAME OF OFFICER OF COMPANY></replaceable></para> - <para><replaceable><INSERT TITLE OF OFFICER></replaceable></para> - </blockquote></para> - - <para>If your employer says they do have an intellectual property claim that could -conflict with the use of the program, then please contact Red Hat to discuss -possible next steps.</para> - - <para>Below is the usual assignment contract. You need to edit and replace -<replaceable><INSERT NAME OF CONTRIBUTOR></replaceable> with your full name. Please print a -copy, sign, date, and mail it to: -<address> -Legal Department (eCos Assignments) -Red Hat, Inc. -<pob>P.O.Box 13588</pob> -<street>Research Triangle Park</street> -<state>NC</state><postcode>27709-3588</postcode> -<country>USA</country></address> -</para> - <para>Don't forget to include the original signed copy of the employer's disclaimer.</para> - - <para>Please try to print the whole first page of the form on a single piece of paper. If it -doesn't fit on one printed page, put it on two sides of a single piece of paper, and -attach the second page of the form. Please write the date using letters rather than -numbers to avoid any confusion due to international day/month ordering -conventions. </para> - -<note><title>Note</title><para>This text is also available in the eCos software distribution, in the file -assign.txt.</para> - </note> - -<literallayout> - --------------------------------- Cut Here ------------------------------ - -eCos ASSIGNMENT - -For good and valuable consideration, receipt of which I acknowledge, I, -<replaceable>INSERT NAME OF CONTRIBUTOR</replaceable>, hereby transfer to Red Hat, Inc. -my entire right, title, and interest (including all rights under -copyright) in my changes and enhancements to the eCos Operating System and -associated software (herein called the "Software"), subject to the conditions -below. These changes and enhancements are herein called the "Work". The Work -also includes any future changes and enhancements to the Software hereafter -made by me which I also hereby assign. - -Upon thirty days prior written notice, Red Hat agrees to grant me non- -exclusive rights to use the Work (i.e. just my changes and enhancements, -not eCos as a whole) as I see fit; (and Red Hat's rights shall otherwise -continue unchanged). - -I hereby agree that if I have or acquire hereafter any patent or interface -copyright or other intellectual property interest dominating the software -enhanced by the Work (or use of that software), such dominating interest -will not be used to undermine the effect of this assignment, i.e. Red Hat -and the general public will be licensed to use, in that program and its -derivative works, without royalty or limitation, the subject matter of the -dominating interest. This license provision will be binding on my heirs, -assignees, or other successors to the dominating interest, as well as on -me. - -I hereby represent and warrant that I am the sole copyright holder for the -Work and that I have the right and power to enter into this contract. I -hereby indemnify and hold harmless Red Hat, its officers, employees, and -agents against any and all claims, actions or damages (including -attorney's reasonable fees) asserted by or paid to any party on account of -a breach or alleged breach of the foregoing warranty. I make no other -express or implied warranty (including without limitation, in this -disclaimer of warranty, any warranty of MERCHANTABILITY or FITNESS FOR A -PARTICULAR PURPOSE). - -Agreed: -[signature] - - - - - -[Print Name] - -Date: -[Please write using letters] - -For Red Hat: - - - - - - - - Date: - - -------------------- Cut Here and print on separate page ----------------- - -[Please print your name here] - - - - -[For the copyright registration, of what country are you a citizen?] - - - - -[In what year were you born?] - - - - -[Please write your email address here] - - - - -[Please write your address here, so we can mail a signed copy of the -agreement back to you] - - - -[Please write a brief description of the contribution] - - - - - - - - - - -[Which files have you changed so far, and which new files have you written -so far?] - - -</literallayout> - </section> - </appendix> -</PART> -</BOOK>
deleted file mode 100644 --- a/doc/sgml/tutorials/makefile +++ /dev/null @@ -1,55 +0,0 @@ -#============================================================================= -# -# makefile -# -# For building the eCos RedBoot docs -# -#============================================================================= -#####ECOSGPLCOPYRIGHTBEGIN#### -# ------------------------------------------- -# This file is part of eCos, the Embedded Configurable Operating System. -# Copyright (C) 1998, 1999, 2000, 2001, 2002 Red Hat, Inc. -# -# eCos is free software; you can redistribute it and/or modify it under -# the terms of the GNU General Public License as published by the Free -# Software Foundation; either version 2 or (at your option) any later version. -# -# eCos is distributed in the hope that it will be useful, but WITHOUT ANY -# WARRANTY; without even the implied warranty of MERCHANTABILITY or -# FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License -# for more details. -# -# You should have received a copy of the GNU General Public License along -# with eCos; if not, write to the Free Software Foundation, Inc., -# 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA. -# -# As a special exception, if other files instantiate templates or use macros -# or inline functions from this file, or you compile this file and link it -# with other works to produce a work based on this file, this file does not -# by itself cause the resulting work to be covered by the GNU General Public -# License. However the source code for this file must still be made available -# in accordance with section (3) of the GNU General Public License. -# -# This exception does not invalidate any other reasons why a work based on -# this file might be covered by the GNU General Public License. -# -# Alternative licenses for eCos may be arranged by contacting Red Hat, Inc. -# at http://sources.redhat.com/ecos/ecos-license/ -# ------------------------------------------- -#####ECOSGPLCOPYRIGHTEND#### -#============================================================================= -#####DESCRIPTIONBEGIN#### -# -# Author(s): bartv, jlarmour -# Date: 2001-01-11 -#####DESCRIPTIONEND#### -#============================================================================= - -TOPLEVEL := ../../../packages -MAIN_SGML := ecos-tutorial.sgml -MAIN_HTML := ecos-tutorial.html -MAIN_PDF := ecos-tutorial.pdf -OTHER_SGML := -PICTURES := - -include $(TOPLEVEL)/pkgconf/rules.doc
deleted file mode 100644 index 9682e8c35f11826531643abef50a6b25683c2c14..0000000000000000000000000000000000000000 GIT binary patch literal 0 Hc$@<O00001
deleted file mode 100644 index 3b7f13b2c9b45e967d79903d17d8b34e6579791d..0000000000000000000000000000000000000000 GIT binary patch literal 0 Hc$@<O00001
deleted file mode 100644 index c514649d2bd81d6c4baa1245b37c9dfbce34d7a2..0000000000000000000000000000000000000000 GIT binary patch literal 0 Hc$@<O00001
deleted file mode 100644 index bcd2491539dfd8bed07ca3d204ca1972e960541f..0000000000000000000000000000000000000000 GIT binary patch literal 0 Hc$@<O00001
deleted file mode 100644 index 34b014f4b40d6d357f12afa420673b4e1b9cdfee..0000000000000000000000000000000000000000 GIT binary patch literal 0 Hc$@<O00001
deleted file mode 100644 index 4db46042e7b1e67995b5ce6e6a6eac77395d3b1b..0000000000000000000000000000000000000000 GIT binary patch literal 0 Hc$@<O00001
deleted file mode 100644 index 0b907f94585297d0f8b40d04c8459a9db4a0b857..0000000000000000000000000000000000000000 GIT binary patch literal 0 Hc$@<O00001
deleted file mode 100644 index 755865508a37f344c3ff15d870a5643ae6416d52..0000000000000000000000000000000000000000 GIT binary patch literal 0 Hc$@<O00001
deleted file mode 100644 index 2bec1e81597f3f496f98834ece59f5bcb3d8f79c..0000000000000000000000000000000000000000 GIT binary patch literal 0 Hc$@<O00001
deleted file mode 100644 index ea9ac9291ddd6febc0344c3e63d9ecd2591c3835..0000000000000000000000000000000000000000 GIT binary patch literal 0 Hc$@<O00001
deleted file mode 100644 index 75f9b30b064c84e01de9b8940a9510171fc789d5..0000000000000000000000000000000000000000 GIT binary patch literal 0 Hc$@<O00001
deleted file mode 100644 index 6db17647b5ae25cb87663842a79a10eb310de39b..0000000000000000000000000000000000000000 GIT binary patch literal 0 Hc$@<O00001
deleted file mode 100644 index ed375a9ca3daa2be6097d4dd52baf7c0aa4dc076..0000000000000000000000000000000000000000 GIT binary patch literal 0 Hc$@<O00001
deleted file mode 100644 index a7b7b4fb9d93e52b9f45c57bf5639a2020f571d3..0000000000000000000000000000000000000000 GIT binary patch literal 0 Hc$@<O00001
deleted file mode 100644 index 409a43659109a183e66e700917a8b550a138cbfe..0000000000000000000000000000000000000000 GIT binary patch literal 0 Hc$@<O00001
deleted file mode 100644 index bea9b84a6010d00078d23d7b3e829d1a1f580862..0000000000000000000000000000000000000000 GIT binary patch literal 0 Hc$@<O00001
deleted file mode 100644 index d10a2f77f143d6b40c10c041a88eb9bef6f4af4c..0000000000000000000000000000000000000000 GIT binary patch literal 0 Hc$@<O00001
deleted file mode 100644 index 9b4b43deca197bb519302c3e52ee1c63414711e2..0000000000000000000000000000000000000000 GIT binary patch literal 0 Hc$@<O00001
deleted file mode 100644 index e5b75362de844444adea771dfe17c702a0e8f968..0000000000000000000000000000000000000000 GIT binary patch literal 0 Hc$@<O00001
deleted file mode 100644 index 68d3b7ad9f4194a4c49492058e6c0b58b9b44bbd..0000000000000000000000000000000000000000 GIT binary patch literal 0 Hc$@<O00001
deleted file mode 100644 index 890f9948091b47e4a228eaf0e391f088443744a3..0000000000000000000000000000000000000000 GIT binary patch literal 0 Hc$@<O00001
deleted file mode 100644 index 042d9143f5c3341971f2b788bc2f23775210f0b3..0000000000000000000000000000000000000000 GIT binary patch literal 0 Hc$@<O00001
deleted file mode 100644 index 8ef1d323be993e998166a853dc131478ed7adc56..0000000000000000000000000000000000000000 GIT binary patch literal 0 Hc$@<O00001
deleted file mode 100644 index 6add8790123d7cd4716460ec8f794ecf50b48bf1..0000000000000000000000000000000000000000 GIT binary patch literal 0 Hc$@<O00001
deleted file mode 100644 index 1e2603322190d502eb01d798b9b8aa0dd9a49433..0000000000000000000000000000000000000000 GIT binary patch literal 0 Hc$@<O00001
deleted file mode 100644 index fe1806dbb1de3d7711abeaae9cfb74f740cd30f4..0000000000000000000000000000000000000000 GIT binary patch literal 0 Hc$@<O00001
deleted file mode 100644 index 688151344fe563df164fec0ecb48406ff4e4440c..0000000000000000000000000000000000000000 GIT binary patch literal 0 Hc$@<O00001
deleted file mode 100644 index 9fb99c40d65dab19369eb0e1fae9e7d707444471..0000000000000000000000000000000000000000 GIT binary patch literal 0 Hc$@<O00001
deleted file mode 100644 index 2af220d6a00e58316d49c2e30182e4b612807b90..0000000000000000000000000000000000000000 GIT binary patch literal 0 Hc$@<O00001
deleted file mode 100644 index fbb23e6c40ea287ee300c47b417341db1228a6f7..0000000000000000000000000000000000000000 GIT binary patch literal 0 Hc$@<O00001
deleted file mode 100644 index c162cf371a80292ff9c94246542fcf37d5aa04d4..0000000000000000000000000000000000000000 GIT binary patch literal 0 Hc$@<O00001
deleted file mode 100644 index cc35cc59c90dd6099e0ad3ad82c02008f9e220cc..0000000000000000000000000000000000000000 GIT binary patch literal 0 Hc$@<O00001
deleted file mode 100644 index ba64b9bb2a0b86f2a93e2827458e9d4abac694a5..0000000000000000000000000000000000000000 GIT binary patch literal 0 Hc$@<O00001
deleted file mode 100644 index 616447d58eb0bcf74627570eac1580dfdf86a67a..0000000000000000000000000000000000000000 GIT binary patch literal 0 Hc$@<O00001
deleted file mode 100644 index 71fe0d51bba1c20f113b4c6dfdb8b80658c64e6e..0000000000000000000000000000000000000000 GIT binary patch literal 0 Hc$@<O00001
deleted file mode 100644 index 3e2782df39b4a8998cceb51cd10e1cad7cb6a4d6..0000000000000000000000000000000000000000 GIT binary patch literal 0 Hc$@<O00001
deleted file mode 100644 index 55bcc2290e69019b72a353d5aa3a3cfab526a4f4..0000000000000000000000000000000000000000 GIT binary patch literal 0 Hc$@<O00001
deleted file mode 100644 index 20c94b1b865083fb52ccbeea358284d76c024973..0000000000000000000000000000000000000000 GIT binary patch literal 0 Hc$@<O00001
deleted file mode 100644 index 8bbebe328d966f839161d4a0da0228c274912b94..0000000000000000000000000000000000000000 GIT binary patch literal 0 Hc$@<O00001
deleted file mode 100644 index 162f2f086471a3e543048f67e1c8ff684a244767..0000000000000000000000000000000000000000 GIT binary patch literal 0 Hc$@<O00001
deleted file mode 100644 index 1aa0c7a0bc60266d86194bf7eee2d51760ab9a75..0000000000000000000000000000000000000000 GIT binary patch literal 0 Hc$@<O00001
deleted file mode 100644 index 8342a5d7562d70455117b30df91a9c4850322261..0000000000000000000000000000000000000000 GIT binary patch literal 0 Hc$@<O00001
deleted file mode 100644 index a888aa3532dd512392b3cfc10f89fd06a2fa3950..0000000000000000000000000000000000000000 GIT binary patch literal 0 Hc$@<O00001
deleted file mode 100644 index 106c69b6e2e8988ed71d14b859500706e3e5d1a8..0000000000000000000000000000000000000000 GIT binary patch literal 0 Hc$@<O00001
deleted file mode 100644 index 183bae755704dc3098bb115af56c3936103eaa6a..0000000000000000000000000000000000000000 GIT binary patch literal 0 Hc$@<O00001
deleted file mode 100644 index 455933926b5538630b24a93df6b08204dc65681f..0000000000000000000000000000000000000000 GIT binary patch literal 0 Hc$@<O00001
deleted file mode 100644 index 91eb7572b8a71688971d43ff45bcea0bc1d3e8a5..0000000000000000000000000000000000000000 GIT binary patch literal 0 Hc$@<O00001
