Making Embedded Systems
Making Embedded Systems
Printing History:
ISBN: 978-1-449-30214-6
1310483910
Table of Contents
Preface . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . xi
1. Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1
Compilers, Languages, and Object-Oriented Programming 1
Embedded System Development 2
Debugging 2
More Challenges 4
Principles to Confront those Challenges 5
Further Reading 7
v
Important Text for Software Developers 42
Evaluating Components Using the Datasheet 46
Your Processor Is a Language 49
Reading a Schematic 51
Having a Debugging Toolbox (and a Fire Extinguisher) 54
Keep your Board Safe 54
Toolbox 54
Digital Multimeter 55
Oscilloscopes and Logic Analyzers 56
Testing the Hardware (and Software) 59
Building Tests 60
Flash Test Example 61
Command and Response 64
Command Pattern 67
Handling Errors Gracefully 70
Consistent Methodology 70
Error Handling Library 71
Further Reading 71
vi | Table of Contents
Using the Timer 106
Using Pulse Width Modulation (PWM) 106
Shipping the Product 108
Further Reading 110
9. Math . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 253
Identifying Fast and Slow Operations 254
Taking an Average 255
Use an Existing Algorithm 258
Designing and Modifying Algorithms 260
Factor Polynomials 261
Taylor Series 261
Dividing by a Constant 264
Scaling the Input 265
Lookup Tables 266
Fake Floating Point Numbers 274
Precision 275
Addition (and Subtraction) 276
Multiplication (and Division) 277
Determining the Error 278
Further Reading 282
Table of Contents | ix