Making embedded systems: [design patterns for great software]
Gespeichert in:
1. Verfasser: | |
---|---|
Format: | Buch |
Sprache: | English |
Veröffentlicht: |
Beijing [u.a.]
O'Reilly
2012
|
Ausgabe: | 1. ed. |
Schlagworte: | |
Online-Zugang: | Inhaltstext Inhaltsverzeichnis |
Beschreibung: | XIV, 310 S. Ill. graph. Darst. |
ISBN: | 9781449302146 1449302149 |
Internformat
MARC
LEADER | 00000nam a2200000 c 4500 | ||
---|---|---|---|
001 | BV039757672 | ||
003 | DE-604 | ||
005 | 20120202 | ||
007 | t | ||
008 | 111213s2012 ad|| |||| 00||| eng d | ||
016 | 7 | |a 1016259441 |2 DE-101 | |
020 | |a 9781449302146 |9 978-1-449-30214-6 | ||
020 | |a 1449302149 |9 1-449-30214-9 | ||
035 | |a (OCoLC)774131530 | ||
035 | |a (DE-599)DNB1016259441 | ||
040 | |a DE-604 |b ger |e rakddb | ||
041 | 0 | |a eng | |
049 | |a DE-11 |a DE-Aug4 |a DE-862 |a DE-739 |a DE-M347 |a DE-384 | ||
084 | |a ST 153 |0 (DE-625)143597: |2 rvk | ||
084 | |a 004 |2 sdnb | ||
100 | 1 | |a White, Elecia |e Verfasser |4 aut | |
245 | 1 | 0 | |a Making embedded systems |b [design patterns for great software] |c Elecia White |
250 | |a 1. ed. | ||
264 | 1 | |a Beijing [u.a.] |b O'Reilly |c 2012 | |
300 | |a XIV, 310 S. |b Ill. graph. Darst. | ||
336 | |b txt |2 rdacontent | ||
337 | |b n |2 rdamedia | ||
338 | |b nc |2 rdacarrier | ||
650 | 0 | 7 | |a Eingebettetes System |0 (DE-588)4396978-1 |2 gnd |9 rswk-swf |
689 | 0 | 0 | |a Eingebettetes System |0 (DE-588)4396978-1 |D s |
689 | 0 | |5 DE-604 | |
856 | 4 | 2 | |m X:MVB |q text/html |u http://deposit.dnb.de/cgi-bin/dokserv?id=3899698&prov=M&dok_var=1&dok_ext=htm |3 Inhaltstext |
856 | 4 | 2 | |m HBZ Datenaustausch |q application/pdf |u http://bvbr.bib-bvb.de:8991/F?func=service&doc_library=BVB01&local_base=BVB01&doc_number=024618934&sequence=000002&line_number=0001&func_code=DB_RECORDS&service_type=MEDIA |3 Inhaltsverzeichnis |
943 | 1 | |a oai:aleph.bib-bvb.de:BVB01-024618934 |
Datensatz im Suchindex
DE-BY-862_location | 2000 |
---|---|
DE-BY-FWS_call_number | 2000/ST 153 W583 |
DE-BY-FWS_katkey | 478246 |
DE-BY-FWS_media_number | 083000507463 |
_version_ | 1809410258745950208 |
adam_text |
Titel: Making embedded systems
Autor: White, Elecia
Jahr: 2012
Table of Contents
Preface.ix
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
2. Creating a System Architecture.9
Creating System Diagrams 10
The Block Diagram 10
Hierarchy of Control 13
Layered View 14
From Diagram to Architecture 16
Encapsulate Modules 16
Delegation of Tasks 17
Driver Interface: Open, Close, Read, Write, IOCTL 18
Adapter Pattern 19
Getting Started with Other Interfaces 20
Example: A Logging Interface 21
A Sandbox to Play In 27
Further Reading 32
3. Getting Your Hands on the Hardware.35
Hardware/Software Integration 35
Ideal Project Flow 36
Board Bring-Up 37
Reading a Datasheet 38
Datasheet Sections You Need When Things Go Wrong 40
Important Text for Software Developers 42
Evaluating Components Using the Datasheet 45
Your Processor Is a Language 48
Reading a Schematic 50
Having a Debugging Toolbox (and a Fire Extinguisher) 53
Keep Your Board Safe 53
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
Dealing with Errors 69
Consistent Methodology 70
Error-Handling Library 70
Debugging Timing Errors 71
Further Reading 72
Outputs, Inputs, and Timers. 75
Toggling an Output 75
Starting with Registers 76
Set the Pin to Be an Output 77
Turn On the LED 79
Blinking the LED 80
Troubleshooting 80
Separating the Hardware from the Action 82
Board-Specific Header File 82
I/O-Handling Code 83
Main Loop 85
Facade Pattern 86
The Input in I/O 87
A Simple Interface to a Button 88
Momentary Button Press 90
Interrupt on a Button Press 90
Configuring the Interrupt 91
Debouncing Switches 91
Runtime Uncertainty 94
Dependency Injection 95
Using a Timer 96
Timer Pieces 97
Doing the Math 99
iv | Table of Contents
A Long Wait Between Timer Ticks 103
Using the Timer 104
Using Pulse-Width Modulation 104
Shipping the Product 106
Further Reading 108
5. Managing the Flow of Activity. 109
Scheduling and Operating System Basics 109
Tasks 109
Communication Between Tasks 110
Avoiding Race Conditions 110
Priority Inversion 112
State Machines 113
State Machine Example: Stoplight Controller 114
State-Centric State Machine 115
State-Centric State Machine with Hidden Transitions 115
Event-Centric State Machine 116
State Pattern 117
Table-Driven State Machine 118
Choosing a State Machine Implementation 121
Interrupts 121
An IRQ Happens 122
Save the Context 129
Get the ISR from the Vector Table 131
Calling the ISR 133
Restore the Context 136
When to Use Interrupts 136
How Not to Use Interrupts 137
Polling 138
System Tick 138
Time-Based Events 140
A Very Small Scheduler 141
Watchdog 142
Further Reading 144
6. Communicating with Peripherals.147
The Wide Reach of Peripherals 147
External Memory 147
Buttons and Key Matrices 148
Sensors 150
Actuators 153
Displays 158
So Many Ways of Communicating 163
Table of Contents |
Serial 165
Parallel 173
Ethernet and WiFi 175
Putting Peripherals and Communication Together 176
Data Handling 176
Adding Robustness to the Communication 186
Changing Data 189
Changing Algorithms 191
Further Reading 193
7. Updating Code. 197
Onboard Bootloader 198
Build Your Own Updater 199
Modifying the Resident Updater 201
Brick Loader 202
Copy Loader to RAM 203
Run the Loader 204
Copy New Code to Scratch 205
Dangerous Time: Erase and Program 205
Reset to New Code 205
Security 206
Linker Scripts 207
Summary 210
8. Doing More with Less.213
Code Space 214
Reading a Map File (Part 1) 214
Process of Elimination 217
Libraries 218
Functions and Macros 219
Constants and Strings 220
RAM 221
Remove malloc 221
Reading a Map File (Part 2) 223
Registers and Local Variables 224
Function Chains 226
Pros and Cons of Globals 228
Memory Overlays 228
Speed 229
Profiling 230
Optimizing 234
Summary 243
Further Reading 244
vi I Table of Contents
9. Math. 247
Identifying Fast and Slow Operations 248
Taking an Average 249
Use an Existing Algorithm 252
Designing and Modifying Algorithms 255
Factor Polynomials 255
Taylor Series 256
Dividing by a Constant 258
Scaling the Input 259
Lookup Tables 260
Fake Floating-Point Numbers 267
Rational Numbers 268
Precision 269
Addition (and Subtraction) 270
Multiplication (and Division) 271
Determining the Error 272
Further Reading 276
10. Reducing Power Consumption. 279
Understanding Power Consumption 280
Turn Off the Light When You Leave the Room 282
Turn Off Peripherals 282
Turn Off Unused I/O devices 283
Turn Off Processor Subsystems 283
Slowing Down to Conserve Energy 284
Putting the Processor to Sleep 285
Interrupt-Based Code Flow Model 286
A Closer Look at the Main Loop 288
Processor Watchdog 289
Avoid Frequent Wake-Ups 290
Chained Processors 290
Further Reading 290
Index.293
Table of Contents I vii |
any_adam_object | 1 |
author | White, Elecia |
author_facet | White, Elecia |
author_role | aut |
author_sort | White, Elecia |
author_variant | e w ew |
building | Verbundindex |
bvnumber | BV039757672 |
classification_rvk | ST 153 |
ctrlnum | (OCoLC)774131530 (DE-599)DNB1016259441 |
discipline | Informatik |
edition | 1. ed. |
format | Book |
fullrecord | <?xml version="1.0" encoding="UTF-8"?><collection xmlns="http://www.loc.gov/MARC21/slim"><record><leader>00000nam a2200000 c 4500</leader><controlfield tag="001">BV039757672</controlfield><controlfield tag="003">DE-604</controlfield><controlfield tag="005">20120202</controlfield><controlfield tag="007">t</controlfield><controlfield tag="008">111213s2012 ad|| |||| 00||| eng d</controlfield><datafield tag="016" ind1="7" ind2=" "><subfield code="a">1016259441</subfield><subfield code="2">DE-101</subfield></datafield><datafield tag="020" ind1=" " ind2=" "><subfield code="a">9781449302146</subfield><subfield code="9">978-1-449-30214-6</subfield></datafield><datafield tag="020" ind1=" " ind2=" "><subfield code="a">1449302149</subfield><subfield code="9">1-449-30214-9</subfield></datafield><datafield tag="035" ind1=" " ind2=" "><subfield code="a">(OCoLC)774131530</subfield></datafield><datafield tag="035" ind1=" " ind2=" "><subfield code="a">(DE-599)DNB1016259441</subfield></datafield><datafield tag="040" ind1=" " ind2=" "><subfield code="a">DE-604</subfield><subfield code="b">ger</subfield><subfield code="e">rakddb</subfield></datafield><datafield tag="041" ind1="0" ind2=" "><subfield code="a">eng</subfield></datafield><datafield tag="049" ind1=" " ind2=" "><subfield code="a">DE-11</subfield><subfield code="a">DE-Aug4</subfield><subfield code="a">DE-862</subfield><subfield code="a">DE-739</subfield><subfield code="a">DE-M347</subfield><subfield code="a">DE-384</subfield></datafield><datafield tag="084" ind1=" " ind2=" "><subfield code="a">ST 153</subfield><subfield code="0">(DE-625)143597:</subfield><subfield code="2">rvk</subfield></datafield><datafield tag="084" ind1=" " ind2=" "><subfield code="a">004</subfield><subfield code="2">sdnb</subfield></datafield><datafield tag="100" ind1="1" ind2=" "><subfield code="a">White, Elecia</subfield><subfield code="e">Verfasser</subfield><subfield code="4">aut</subfield></datafield><datafield tag="245" ind1="1" ind2="0"><subfield code="a">Making embedded systems</subfield><subfield code="b">[design patterns for great software]</subfield><subfield code="c">Elecia White</subfield></datafield><datafield tag="250" ind1=" " ind2=" "><subfield code="a">1. ed.</subfield></datafield><datafield tag="264" ind1=" " ind2="1"><subfield code="a">Beijing [u.a.]</subfield><subfield code="b">O'Reilly</subfield><subfield code="c">2012</subfield></datafield><datafield tag="300" ind1=" " ind2=" "><subfield code="a">XIV, 310 S.</subfield><subfield code="b">Ill. graph. Darst.</subfield></datafield><datafield tag="336" ind1=" " ind2=" "><subfield code="b">txt</subfield><subfield code="2">rdacontent</subfield></datafield><datafield tag="337" ind1=" " ind2=" "><subfield code="b">n</subfield><subfield code="2">rdamedia</subfield></datafield><datafield tag="338" ind1=" " ind2=" "><subfield code="b">nc</subfield><subfield code="2">rdacarrier</subfield></datafield><datafield tag="650" ind1="0" ind2="7"><subfield code="a">Eingebettetes System</subfield><subfield code="0">(DE-588)4396978-1</subfield><subfield code="2">gnd</subfield><subfield code="9">rswk-swf</subfield></datafield><datafield tag="689" ind1="0" ind2="0"><subfield code="a">Eingebettetes System</subfield><subfield code="0">(DE-588)4396978-1</subfield><subfield code="D">s</subfield></datafield><datafield tag="689" ind1="0" ind2=" "><subfield code="5">DE-604</subfield></datafield><datafield tag="856" ind1="4" ind2="2"><subfield code="m">X:MVB</subfield><subfield code="q">text/html</subfield><subfield code="u">http://deposit.dnb.de/cgi-bin/dokserv?id=3899698&prov=M&dok_var=1&dok_ext=htm</subfield><subfield code="3">Inhaltstext</subfield></datafield><datafield tag="856" ind1="4" ind2="2"><subfield code="m">HBZ Datenaustausch</subfield><subfield code="q">application/pdf</subfield><subfield code="u">http://bvbr.bib-bvb.de:8991/F?func=service&doc_library=BVB01&local_base=BVB01&doc_number=024618934&sequence=000002&line_number=0001&func_code=DB_RECORDS&service_type=MEDIA</subfield><subfield code="3">Inhaltsverzeichnis</subfield></datafield><datafield tag="943" ind1="1" ind2=" "><subfield code="a">oai:aleph.bib-bvb.de:BVB01-024618934</subfield></datafield></record></collection> |
id | DE-604.BV039757672 |
illustrated | Illustrated |
indexdate | 2024-09-06T04:01:31Z |
institution | BVB |
isbn | 9781449302146 1449302149 |
language | English |
oai_aleph_id | oai:aleph.bib-bvb.de:BVB01-024618934 |
oclc_num | 774131530 |
open_access_boolean | |
owner | DE-11 DE-Aug4 DE-862 DE-BY-FWS DE-739 DE-M347 DE-384 |
owner_facet | DE-11 DE-Aug4 DE-862 DE-BY-FWS DE-739 DE-M347 DE-384 |
physical | XIV, 310 S. Ill. graph. Darst. |
publishDate | 2012 |
publishDateSearch | 2012 |
publishDateSort | 2012 |
publisher | O'Reilly |
record_format | marc |
spellingShingle | White, Elecia Making embedded systems [design patterns for great software] Eingebettetes System (DE-588)4396978-1 gnd |
subject_GND | (DE-588)4396978-1 |
title | Making embedded systems [design patterns for great software] |
title_auth | Making embedded systems [design patterns for great software] |
title_exact_search | Making embedded systems [design patterns for great software] |
title_full | Making embedded systems [design patterns for great software] Elecia White |
title_fullStr | Making embedded systems [design patterns for great software] Elecia White |
title_full_unstemmed | Making embedded systems [design patterns for great software] Elecia White |
title_short | Making embedded systems |
title_sort | making embedded systems design patterns for great software |
title_sub | [design patterns for great software] |
topic | Eingebettetes System (DE-588)4396978-1 gnd |
topic_facet | Eingebettetes System |
url | http://deposit.dnb.de/cgi-bin/dokserv?id=3899698&prov=M&dok_var=1&dok_ext=htm http://bvbr.bib-bvb.de:8991/F?func=service&doc_library=BVB01&local_base=BVB01&doc_number=024618934&sequence=000002&line_number=0001&func_code=DB_RECORDS&service_type=MEDIA |
work_keys_str_mv | AT whiteelecia makingembeddedsystemsdesignpatternsforgreatsoftware |
Beschreibung
Schweinfurt Zentralbibliothek Lesesaal
Signatur: |
2000 ST 153 W583 |
---|---|
Exemplar 1 | ausleihbar Verfügbar Bestellen |