Preface |
|
vii | |
Who Is the Reader? |
|
ix | |
What's Covered in this Book? |
|
ix | |
Conventions |
|
xii | |
Source Code |
|
xii | |
Acknowledgments |
|
xii | |
|
|
1 | (28) |
|
|
2 | (1) |
|
|
3 | (7) |
|
|
10 | (2) |
|
|
12 | (3) |
|
|
15 | (2) |
|
|
17 | (1) |
|
|
18 | (1) |
|
|
19 | (8) |
|
|
27 | (2) |
|
|
29 | (32) |
|
|
30 | (15) |
|
|
45 | (2) |
|
|
47 | (8) |
|
|
55 | (1) |
|
Hardware Sanity Tests for the Firmware Developer |
|
|
55 | (5) |
|
|
60 | (1) |
|
|
61 | (8) |
|
An Embedded System Boot Platform |
|
|
61 | (8) |
|
|
69 | (18) |
|
|
70 | (6) |
|
|
76 | (1) |
|
Establish Exception Handlers |
|
|
76 | (10) |
|
|
86 | (1) |
|
|
87 | (30) |
|
|
88 | (1) |
|
CLI Data Structure and the Command Table |
|
|
89 | (1) |
|
|
90 | (1) |
|
The Functions Beneath the Command Name |
|
|
91 | (5) |
|
Shell Variable and Symbol Processing |
|
|
96 | (3) |
|
|
99 | (6) |
|
Command Line Editing and History |
|
|
105 | (6) |
|
|
111 | (4) |
|
|
115 | (1) |
|
|
116 | (1) |
|
Interfacing to Flash Memory |
|
|
117 | (20) |
|
|
118 | (14) |
|
|
132 | (4) |
|
|
136 | (1) |
|
|
137 | (36) |
|
The Role of TFS in the Platform |
|
|
138 | (1) |
|
|
138 | (1) |
|
|
139 | (2) |
|
|
141 | (2) |
|
Flash Space Overhead Required by TFS |
|
|
143 | (1) |
|
|
144 | (2) |
|
|
146 | (9) |
|
Adding and Deleting Files |
|
|
155 | (10) |
|
|
165 | (5) |
|
|
170 | (1) |
|
|
171 | (1) |
|
|
172 | (1) |
|
|
173 | (20) |
|
|
173 | (8) |
|
|
181 | (6) |
|
|
187 | (4) |
|
|
191 | (2) |
|
|
193 | (18) |
|
|
194 | (1) |
|
|
194 | (1) |
|
|
195 | (1) |
|
|
196 | (1) |
|
|
197 | (1) |
|
|
198 | (1) |
|
Applied to Embedded Systems |
|
|
199 | (10) |
|
|
209 | (2) |
|
|
211 | (22) |
|
|
211 | (8) |
|
|
219 | (11) |
|
|
230 | (1) |
|
|
231 | (2) |
|
|
233 | (14) |
|
|
233 | (1) |
|
|
234 | (1) |
|
Establishing an Application Stack |
|
|
235 | (1) |
|
Connecting to the Monitor's API |
|
|
235 | (5) |
|
The Application start( ) Function |
|
|
240 | (1) |
|
The Application main( ) Function |
|
|
241 | (1) |
|
Application-Originated Drivers |
|
|
242 | (1) |
|
Application-Based CLI Uses Monitor CLI |
|
|
242 | (2) |
|
Scripts Run Through the Application's CLI |
|
|
244 | (1) |
|
|
245 | (2) |
|
|
247 | (54) |
|
Different Type of Debug Philosophy |
|
|
248 | (1) |
|
|
249 | (5) |
|
Adding Symbolic Capabilities |
|
|
254 | (1) |
|
|
255 | (6) |
|
Overlaying a C Structure onto Memory |
|
|
261 | (16) |
|
|
277 | (6) |
|
Testing for Stack Overflow |
|
|
283 | (6) |
|
|
289 | (10) |
|
|
299 | (2) |
|
Porting MicroMonitor to the ColdFire™ MCF5272 |
|
|
301 | (34) |
|
Source Code Directory Tree |
|
|
302 | (2) |
|
|
304 | (9) |
|
The Configuration Header File |
|
|
313 | (6) |
|
Stepping Through the Port |
|
|
319 | (13) |
|
|
332 | (3) |
Conclusion |
|
335 | (2) |
Appendix A Building a Host-Based Toolbox |
|
337 | (12) |
|
Interfacing to Files on the Host |
|
|
338 | (4) |
|
Interfacing to the PC Serial Port |
|
|
342 | (2) |
|
PC-Based UDP Transactions: moncmd |
|
|
344 | (4) |
|
|
348 | (1) |
Appendix B RTOS Overview |
|
349 | (10) |
|
|
350 | (1) |
|
Tasks, Threads, and Processes |
|
|
351 | (1) |
|
Preemption, Time Slicing, and Interrupts |
|
|
352 | (1) |
|
Semaphores, Events, Messages, and Timers |
|
|
353 | (3) |
|
|
356 | (1) |
|
Good Concurrency vs. Bad Concurrency |
|
|
357 | (1) |
|
|
358 | (1) |
Index |
|
359 | (13) |
What's on the CD-ROM? |
|
372 | |