Preface
Chapter 1: A Hard Start
System Requirements
Central Processing Unit
System Memory
CPU Supervision
Serial Port Drivers
Ethernet Interface
Flash Device Options
The CPU/Memory Interface
Summary
Chapter 2: Getting Started
How Is It Done on a PC?
Building Libraries
Up Front
Run Time
Hardware Sanity Tests for the Firmware Developer
Summary
Chapter 3: Introducing MicroMonitor
An Embedded System Boot Platform
Chapter 4: Assembly Required
Just After Reset
I/O Initialization
Establish Exception Handlers
Summary
Chapter 5: Command Line Interface
CLI Features
CLI Data Structures and the Command Table
CLI Processing
The Functions Beneath the Command Line
Shell Variable and Symbol Processing
Command-Line Redirection
Command Line Editing and History
User Levels
Password Protection
Summary
Chapter 6: Interfacing to Flash Memory
The Interface Functions
Flash Driver Front End
Summary
Chapter 7: A Flash File System
The Role of TFS in the Platform
File Attributes
High-Level Details
Flash Space Overhead Required by TFS
Defragmentation
TFS Implementation
Adding and Deleting Files
To Load or Not to Load
File Decompression
Execute in Place
Summary
Chapter 8: Executing scripts
The script Runner
Conditional Branching
A Few Examples
Summary
Chapter 9: Network Connectivity
Ethernet
ARP
IP
ICMP
UDP and TCP
DHCP/BOOTP
Applied to Embedded Systems
Summary
Chapter 10: File/Data Transfer
Xmodem
TFTP
Field Upgrade Capability
Summary
Chapter 11: Adding the Application
Different Memory Map
Less Intense Startup
Establishing an Application Stack
Connecting to the Monitor's API
The Application start () Function
The Application main () Function
Application-Originated Drivers
Application-Based CLI Uses Monitor CLI
scripts Run Through the Application's CLI
Summary
Chapter 12: Monitor-Based Debugging
Different Type of Debug Philosophy
Breakpoints
Adding Symbolic Capabilities
Displaying Memory
Overlaying a C Structure onto Memory
Stack Trace
Testing for Stack Overflow
System Profiling
Summary
Chapter 13: Porting MicroMonitor to the ColdFire(TM) MCF5272
Source Code Directory Tree
The Makefile
The Configuration Header File
Stepping Through the Port
Summary
Conclusion
Appendix A: Building a Host-Based Toolbox
Interfacing to Files on the Host
Interfacing to the PC Serial Post
PC-Based UDP Transactions: moncmd
Summary
Appendix B: RTOS Overview
The Scheduler
Tasks, Threads, and Processes
Preemption, Time Slicing, and Interrupts
Semaphores, Events, Messages, and Timers
Reentrancy
Good Concurrency vs. Bad Concurrency
Summary
Index