Real-Time Programming: a Guide to 32-Bit Embedded Development (Paperback)

Rick Grehan, Robert Moote, Ingo Cyliax

  • 出版商: Addison Wesley
  • 出版日期: 1998-12-19
  • 售價: $1,925
  • 貴賓價: 9.5$1,829
  • 語言: 英文
  • 頁數: 720
  • 裝訂: Paperback
  • ISBN: 0201485400
  • ISBN-13: 9780201485400
  • 相關分類: 嵌入式系統
  • 立即出貨(限量) (庫存=2)



Table of Contents:



1. An Introduction to Embedded Systems.


Real-Time Systems.



Hard Real-Time.



Soft Real-Time.



Real-Time Embedded Systems.



Embedded Processors.



The Advent of PC Embedded Systems.



PC Hardware Components.



The Advantages of the PC Architecture.



Does an Embeddable PC Suit Your Application?


2. Designing and Developing Your Real-Time System.


A Practical Approach.



The Iterative Approach.



The Analysis Phase.



Stating the Problem.



Specifying Project Constraints.



Listing Customer Requirements.



Specifying Hardware and Software.



Verifying Your Analysis.



An Example.



The Design Phase.



Reviewing the Analysis.



Specifying Hardware Components.



Defining Hardware Interfaces.



Specifying Software Subsystems.



Defining Software Interfaces.



Specifying the Start-up and Shutdown Processes.



Specifying Error Handling.



Verifying Your Design.



An Example.



Some Decisions.



Choosing a Processor.



Choosing Hardware Components.



Choosing an Operating System.



Choosing a Programming Language.



Choosing Software Development Tools.



Choosing Hardware Debugging Tools.



Choosing Software Components.



The Implementation Phase.



Planning the Implementation.



Implementing the Design.


3. Chapter 3 Software Installation and Setup.


Choosing a Platform and Tools.



ToolSuite Lite Components.



Embedded StudioExpress.






Real-Time ETS Kernel.



What’s Lite About ToolSuite Lite?



ETS Kernel Application Environment.



Segment Selectors.



Null Pointer Detection.



The Stack and the Heap.



The Command Line and the Environment.






Hardware Setup.



Software Installation and Setup.



Installing ToolSuite Lite.



Configuring Visual C++ and Developer Studio.



Setting Up the Host Environment.



Building a Boot Disk.



Testing the Host-Target Connection.



Programming Projects.



Opening a Workspace.



Running a Program.



Building a Program.



Creating New Programming Projects.


4. Debugging.


Software Debuggers.



Hardware Debuggers.



In-Circuit Emulators.



ROM Emulators.



Software Simulators.



Debugging with ToolSuite.



A Buggy Calculation.



Debugging the Application.



Embedded StudioExpress Extensions.



Target Port Input/Output.



Target System Information.


5. A Point-of-Sale Terminal.


How the POS Project Works.



Designing the Simulation.



Software Subsystems.



Software Interfaces.



Start-up and Shutdown Processes.



Error Handling.



Building the POS Project.



Running the POS Project.



A Quick Tour of the Source.


6. Keyboard and Screen I/O.


Buttons, Keypads, and Keyboards.



LEDs, LCDs, and Displays.



ETS Kernel Support of Keyboard and Screen I/O.



Host Console I/O.



ETS Kernel Keyboard Driver.



ETS Kernel Screen Driver.



Code from the POS Project.



Keyboard Input.



Screen Output.


7. File Systems.


Choosing a File System.









Multitasking and Multiuser Capabilities.



Choosing a Storage Device.



RAM Disks.



Flash Disks.



ROM Disks.



Hard Disk Drives.



Floppy Disk Drives.



CD-ROM Drives.



Magnetic Tape.



ETS Kernel File System.



Local File System.



Remote File System.



File I/O in the POS Project.


8. A Simple UPS.


How the UPS Project Works.



Designing the Simulation.



Software Subsystems.



Software Interfaces.



Start-up and Shutdown Processes.



Error Handling.



Building the UPS Project.



Running the UPS Project.



A Quick Tour of the Source.


9. Interrupts.


How Interrupts Work.



Hardware Interrupts.



Software Interrupts.






ISR Fundamentals.



Using High-Level Languages.






Interrupt Latency.



Chaining ISRs.



Multitasking Considerations.



Interrupts on the PC Architecture.



Interrupt Handling Under ETS Kernel.



C Interrupt Handlers.



IDT Interrupt Handlers.



Timer and Keyboard Callbacks.



Interrupts in the UPS Project.



Keyboard Callbacks.



Timer Callbacks.


10. Timers.


Timer Applications.



Selecting Timer Hardware.



Software Considerations.



ETS Kernel Timers.



Timers in the UPS Project.


11. A Smart UPS.


How the Smart UPS Project Works.



Designing the Simulation.



Software Subsystems.



Software Interfaces.



Start-up and Shutdown Processes.



Error Handling.



Building the Smart UPS Project.



Running the Smart UPS Project.



A Quick Tour of the Source.


12. Multitasking.


Processes and Multiprocessing.



Threads and Multithreading.



Processes versus Threads.






Round-Robin Scheduling.



Task Priorities.



vPriority Inversion.












Mutex Objects.



Semaphore Objects.



Event Objects.



Interlocked Variable Access.



Intertask Communication.






Message Queues.



Shared Memory.



Remote Procedure Calls.



Interrupt Handling.



Choosing an RTOS.






Threads in the Smart UPS Project.



Starting a Thread.



Controlling Thread Priority.



Terminating a Thread.



Writing ISRs.



The Smart UPS Code.


13. Serial I/O.


Fundamentals of Serial I/O.



Baud Rate versus Bits Per Second.



Asynchronous versus Synchronous Communications.



Error Detection.



Flow Control.



Electrical Standards and Communication Protocols.






Writing Serial Port ISRs.



The RS-232C Serial Standard.



Mechanical Specification.



Electrical Specification.



Functional Specification.



Procedural Specification.



Peripheral Serial Buses.



Chip-to-Chip Serial Buses.



Serial I/O in the Smart UPS.



The 8250/16x50 UART Family.



Initializing the Serial I/O Subsystem.



Cleaning Up.



The Serial I/O Thread.


14. A Network-Aware UPS.


How the Network-Aware UPS Project Works.



Designing the Simulation.



Software Subsystems.



Software Interfaces.



Start-up and Shutdown Processes.



Error Handling.



Building the Network-Aware UPS Project.



Running the Network-Aware UPS Project.



A Quick Tour of the Source.


15. Networking.


Networking Concepts.



What Is a Network?



Internetworks and the Internet.



Network Technologies.






The ISO/OSI Network Design Model.



Repeaters, Bridges, and Routers.



Virtual Communication.



Comparing Connection-Oriented and Connectionless Protocols.



Comparing Reliable and Unreliable Protocols.



The Client/Server Model.



Networking in Embedded Systems.



Selecting the Protocol Stack.



Selecting a Network Technology.



Selecting an Existing Implementation.



Using Standard Application Protocols.



Popular Network Architectures.



Advantages of the TCP/IP Protocol Stack.



The TCP/IP Network Implementation.



Network Interface Layer.



Internet Layer.



Transport Layer.



Application Layer.



Network Programming for ETS Kernel.



WinSock API.



Building the Finger Server Project.



Running the Finger Server Project.



The Finger Server Code.


16. Connecting to the Web.


HTTP In Embedded Applications.



The HTTP Protocol.



Web Browsers.



Web Servers.



URLs and URIs.



HTTP Messages.



Persistent Connections.






Secure HTTP.



HTML in Embedded Applications.



Dynamic HTML.



ETS Kernel HTTP Server.



HTML-On-The-Fly in the Network-Aware UPS.


17. Java.


A Language and a Platform.



Platform Alternatives.



Compiler Alternatives.



Advantages for Embedded Development.



Processor Independence.



Object-Oriented Programming.



Security and Secure Operations.



Memory Management.



Garbage Collection.






Dynamic Configuration.



Exception Handling.









Limitations of Java.






Garbage Collection Overhead.



JVM Overhead.



Hardware Access.



Language Immaturity.



The Java-Enabled UPS.



Building the Java-Enabled UPS Project.



Running the Java-Enabled UPS Project.



A Quick Tour of the Source.


18. Floating-Point Programming.


Scientific Notation Terminology.



Floating-Point Support on Embedded Systems.



Floating-Point Data Formats.



Exponent Format.



Mantissa Format.



Number Holes.



Special Numbers.



Floating-Point Hardware and Software.









Why Use Floating-Point Emulation Software?



A Bitmap Filter.



How the Bitmap Filter Project Works.



Building the Bitmap Filter Project.



Running the Bitmap Filter Project.



A Quick Tour of the Source.


19. Dynamic Link Libraries.


What Is a DLL?



Advantages of Using DLLs.



Memory Requirements.



System Upgrades.



System Configuration and Customization.



Disadvantages of Using DLLs.



Using DLLs with ETS Kernel.



The ENCDEC Project.



Building the ENCDEC Project.



Running the ENCDEC Project.



A Quick Tour of the Source.


20. C++ Exceptions and Structured Exceptions.


Benefits of Exception Handling.



Exception Handling in Embedded Systems.



Robust Code.



Clean Code.



C++ Exception Handling.



Structured Exception Handling.



Structured Exceptions in C.



Structured Exceptions in C++.



A Restartable UPS.



Building the Restartable UPS Project.



Running the Restartable UPS Project.



A Quick Tour of the Source.


21. ROMing an Application.


Using ROM in Embedded Systems.



Types of ROM.



Mask-Programmed and Fusible-Link ROMs.









Flash Memory.



Programming PROMs.



Device Programmers.



Input Files for Device Programmers.



In-Circuit Programmers.



In-the-Field Software Updates.



Debugging Programs in ROM.



PC Boot Methods.



Boot Jump ROM.



BIOS Extension Boot.



ROM-based File System Boot.



ToolSuite Support for ROM.


Appendix A. A Hardware Resource Guide.

Appendix B. APIs.

Appendix C. Configuring Serial Networking Connections for Windows.

Appendix D. Development Methodologies for Real-Time and Embedded Systems.






1. 嵌入式系統介紹。




























2. 設計和開發您的即時系統。