List of Listings

Chapter 2: Getting Started

Listing 2.1: A Simple Sample.
Listing 2.2: Link Editor File
Listing 2.3: A Program That Uses Text, Data, and BSS Sections.
Listing 2.4: Initialization Section for the ColdFire 5206 Makefile.
Listing 2.5: Top Level all Target.
Listing 2.6: Rules Section.
Listing 2.7: Miscellaneous Section.
Listing 2.8: Marking Code to Confirm Position.
Listing 2.9: Sample Dump
Listing 2.10: Confirming the Boot Address
Listing 2.11: Blinking a LED.

Chapter 4: Assembly Required

Listing 4.1: Pseudo-Code for reset.s.
Listing 4.2: start().
Listing 4.3: Testing RAM.
Listing 4.4: A Polled-Mode putchar () .
Listing 4.5: Initializing Exception Vectors.
Listing 4.6: Naming Registers.
Listing 4.7: Saving Registers.
Listing 4.8: Exception-Specific Processing Prior to Reset.
Listing 4.9: MicroMonitors main() .
Listing 4.10: getreg() .
Listing 4.11: Installing the Vector Table.
Listing 4.12: Copying to RAM.

Chapter 5: Command Line Interface

Listing 5.1: CLI Data Structure.
Listing 5.2: A Section of the Command Table.
Listing 5.3: Help Text and Function Code for the add Command.
Listing 5.4: Parsing the Command Table.
Listing 5.5: Expanding Shell Variables and Symbols.
Listing 5.6: expandshellvars().
Listing 5.7: Adding Redirection to putchar().
Listing 5.8: RedirectCharacter().
Listing 5.9: Parsing Redirection Commands.
Listing 5.10: RedirectionCmdDone().
Listing 5.11: linedit.c.
Listing 5.12: lcmd().
Listing 5.13: Adding User Levels to docommand().
Listing 5.14: Setting Up the User Level for a Command.
Listing 5.15: A Scrambling Function.

Chapter 6: Interfacing to Flash Memory

Listing 6.1: Copying a Flash Function to RAM.
Listing 6.2: Flash Device Descriptors.
List 6.3: RAM Arrays.
Listing 6.4: Initializing Flash-Related Structures.
Listing 6.5: Initializing the Flash Descriptors.
Listing 6.6: The Flash Write Operation.
Listing 6.7: Flasherase() .
Listing 6.8: The flash Command.
Listing 6.9: Abstracting Flash Memory Characteristics.

Chapter 7: A Flash File System

Listing 7.1: Output of the Command tfs ls .
Listing 7.2: TFS Header Structure.
Listing 7.3: tfsclean() .
Listing 7.4: tfsadd() .
Listing 7.5: The Trace Feature.
Listing 7.6: Checking Operation Validity.
Listing 7.7: Processing Attribute Flags.
Listing 7.8: Computing the Initial Checksum.
Listing 7.9: Identifying Flash Device.
Listing 7.10: Finding the Last Header.
Listing 7.11: Checking for Free Space.
Listing 7.12: Testing for Stable Data.
Listing 7.13: Creating the Header.
Listing 7.14: tfsunlink() .
Listing 7.15: ELF File Format Loader.

Chapter 8: Executing Scripts

Listing 8.1: tfsscript() .
Listing 8.2: The exit Command.
Listing 8.3: The goto Command.
Listing 8.4: The gosub and return Commands.
Listing 8.5: gosub and return Under the Hood.
Listing 8.6: Conditional Branch Support: The if Command.
Listing 8.7: Parsing Else Clauses.
Listing 8.8: Performing the Test or Comparison.
Listing 8.9: Execute the Appropriate Action.
Listing 8.10: Building ping .
Listing 8.11: Implementing Simple Arrays.
Listing 8.12: Using a Script to Load an Executable.
Listing 8.13: The Load Statistics.

Chapter 9: Network Connectivity

Listing 9.1: Initializing a Block of Buffer Descriptors.
Listing 9.2: processPACKET() .
Listing 9.3: Verifying the Packet Integrity.
Listing 9.4: Dispatching for Protocol-Specific Processing.
Listing 9.5: Processing UDP Packets.
Listing 9.6: A Structure Declaration for the IP Header.

Chapter 10: File/Data Transfer

Listing 10.1: The Xmodem Control Structure.
Listing 10.2: Xup().
Listing 10.3: Xdown().
Listing 10.4: processTFTP() .
Listing 10.5: Initiating a Download.
Listing 10.6: Initiating an Upload.
Listing 10.7: Receiving a Data Packet.
Listing 10.8: Saving the Data.
Listing 10.9: Processing and ACK .
Listing 10.10: Handling Errors.

Chapter 11: Adding the Application

Listing 11.1: Another look at moncomptr .
Listing 11.2: Function-to-Function Pointer Connection.
Listing 11.3: The monConnect() Function.
Listing 11.4: Adding Locking to putchar() .
Listing 11.5: A Typical start() Function.
Listing 11.6: main() .
Listing 11.7: putchar() .

Chapter 12: Monitor-Based Debugging

Listing 12.1: Code for Display Memory Command.
Listing 12.2: Formatting the Results.
Listing 12.3: Binary and ASCII Formatting.
Listing 12.4: Controlling Data Width.
Listing 12.5: Structure Definition.
Listing 12.6: A Structure Definition File Used by the cast Command.
Listing 12.7: cast Command.
Listing 12.8: Checking for a Structure File.
Listing 12.9: Displaying Multiple Structures.
Listing 12.10: showStruct() .
Listing 12.11: Searching Through the Structure Definition File
Listing 12.12: Displaying the Structure.
Listing 12.13: Using mbrinfotbl[].
Listing 12.14: Dealing with an Embedded Structure.
Listing 12.15: showStruct() .
Listing 12.16: strace Command.
Listing 12.17: AddrToSym()
Listing 12.18: Undetected Stack Overrun.
Listing 12.19: Creating a Stack-Check Hook.
Listing 12.20: The prof Command.
Listing 12.21: profiler() .
Listing 12.22: Printing the Profile Statistics.
Listing 12.23: BBC Example.

Chapter 13: Porting MicroMonitor to the ColdFire MCF5272

Listings 13.1: Basic Makefile.
Listings 13.2: Object List for the ColdFire 5272 Make File
Listings 13.3: Release vs. Development Build Versions.
Listings 13.4: Miscellaneous Rules Section.
Listiing 13.5: info .h .
Listings 13.6: Individual Module Targets.
Listing 13.8: clobber1 Target.
Listing 13.8: Common Miscellaneous Targets.
Listing 13.9: PLATFORM_XXX Definition.
Listing 13.10: Flash Bank Configuration Definitions.
Listing 13.11: TFS Definitions in config.h .
Listing 13.12
Listing 13.13: Output for MicroMonitor Startup.
Listing 13.14: Type help as a Sanity Check.
Listing 13.15: Expanded Help List.
Listing 13.16: Sector Size Array.
Listing 13.17: Device Sector Map.
Listings 13.18: Front End of Flashwrite16() Function.
Listings 13.19: Middle Block of Flashwrite16() Function.
Listings 13.20: Back End of Flashwrite16() Function.
Listing 13.21: MicroMonitor Command Set with TFS Included.

Appendix A: Building a Host-Based Toolbox

Listing A.1: Chunker.
Listing A.2: Filling the Buffers.
Listing A.3: Base for a Home-Grown Serial Port Interface.
Listing A.4: do_moncmd().

Appendix B: RTOS Overview

Listing B.1: LedOn() .
Listing B.2: task_BLINKER().
Listing B.3: BLINKER_BAD()


Embedded Systems Firmware Demystified
Embedded Systems Firmware Demystified (With CD-ROM)
ISBN: 1578200997
EAN: 2147483647
Year: 2002
Pages: 118
Authors: Ed Sutter

flylib.com © 2008-2017.
If you may any questions please contact us: flylib@qtcs.net