Embedded programming with modern C++ cookbook: practical recipes to help you build robust and secure embedded applications on Linux
This book is a collection of practical examples for understanding how embedded development is different from other desktop application development. You'll learn to build an embedded application and use specialized memory and custom allocators. By the end of the book, you'll be able to buil...
Gespeichert in:
1. Verfasser: | |
---|---|
Format: | Elektronisch E-Book |
Sprache: | English |
Veröffentlicht: |
Birmingham ; Mumbai
Packt Publishing
April 2020
|
Schlagworte: | |
Online-Zugang: | DE-Aug4 DE-1050 DE-573 DE-M347 DE-860 DE-91 DE-355 DE-706 |
Zusammenfassung: | This book is a collection of practical examples for understanding how embedded development is different from other desktop application development. You'll learn to build an embedded application and use specialized memory and custom allocators. By the end of the book, you'll be able to build robust and secure embedded applications with C++20 |
Beschreibung: | 1 Online-Ressource (ix, 382 Seiten) Illustrationen |
ISBN: | 9781838823207 |
Internformat
MARC
LEADER | 00000nam a2200000 c 4500 | ||
---|---|---|---|
001 | BV046717720 | ||
003 | DE-604 | ||
005 | 20250108 | ||
007 | cr|uuu---uuuuu | ||
008 | 200512s2020 xx a||| o|||| 00||| eng d | ||
020 | |a 9781838823207 |9 978-1-83882-320-7 | ||
035 | |a (OCoLC)1155078950 | ||
035 | |a (DE-599)BVBBV046717720 | ||
040 | |a DE-604 |b ger |e rda | ||
041 | 0 | |a eng | |
049 | |a DE-1050 |a DE-83 |a DE-573 |a DE-860 |a DE-706 |a DE-355 |a DE-11 |a DE-Aug4 |a DE-M347 |a DE-91 | ||
100 | 1 | |a Viarheichyk, Igor |e Verfasser |4 aut | |
245 | 1 | 0 | |a Embedded programming with modern C++ cookbook |b practical recipes to help you build robust and secure embedded applications on Linux |c Igor Viarheichyk |
264 | 1 | |a Birmingham ; Mumbai |b Packt Publishing |c April 2020 | |
300 | |a 1 Online-Ressource (ix, 382 Seiten) |b Illustrationen | ||
336 | |b txt |2 rdacontent | ||
337 | |b c |2 rdamedia | ||
338 | |b cr |2 rdacarrier | ||
505 | 8 | |a Cover -- Title Page -- Copyright and Credits -- Dedication -- About Packt -- Contributors -- Table of Contents -- Preface -- Chapter 1: Fundamentals of Embedded Systems -- Exploring embedded systems -- How are they different from desktop or web applications? -- Types of embedded systems -- Microcontrollers -- System on Chip -- Application-specific integrated circuits -- Field programmable gate arrays -- Working with limited resources -- Looking at performance implications -- Working with different architectures -- Endianness -- Alignment -- Fixed-width integer types | |
505 | 8 | |a Working with hardware errors -- Early versions of hardware -- Hardware is unreliable -- The influence of environmental conditions -- Using C++ for embedded development -- You don't pay for what you don't use -- Object-oriented programming to time the code complexity -- Resource acquisition is initialization -- Exceptions -- The powerful standard library -- Threads and a memory model as part of the language specification -- Deploying software remotely -- Running software remotely -- Logging and diagnostics -- Summary -- Chapter 2: Setting Up the Environment | |
505 | 8 | |a Setting up the build system in a Docker container -- How to do it... -- How it works... -- There's more... -- Working with emulators -- How to do it... -- How it works... -- There's more... -- Cross-compilation -- Getting ready -- How to do it... -- How it works... -- There's more... -- Connecting to the embedded system -- Getting ready -- How to do it... -- How it works... -- There's more... -- Debugging embedded applications -- Getting ready -- How to do it... -- How it works... -- There's more... -- Using gdbserver for remote debugging -- Getting ready -- How to do it... -- How it works.. | |
505 | 8 | |a There's more... -- Using CMake as a build system -- Getting ready -- How to do it... -- How it works... -- There's more... -- Chapter 3: Working with Different Architectures -- Exploring fixed-width integer types -- How to do it... -- How it works... -- There's more... -- Working with the size_t type -- How to do it... -- How it works... -- There's more... -- Detecting the endianness of the platform -- How to do it... -- How it works... -- There's more... -- Converting the endianness -- How to do it... -- How it works... -- Working with data alignment -- How to do it... -- How it works.. | |
505 | 8 | |a There's more... -- Working with packed structures -- How to do it... -- How it works... -- There's more... -- Aligning data with cache lines -- How to do it... -- How it works... -- There's more... -- Chapter 4: Handling Interrupts -- Data polling -- Interrupt service routines -- General considerations for ISRs -- 8051 microcontroller interrupts -- Implementing an interrupt service routine -- How to do it... -- How it works... -- Generating a 5 kHz square signal using 8-bit auto-reload mode -- How to do it... -- How it works... -- Using Timer 1 as an event counter to count a 1 Hz pulse | |
520 | |a This book is a collection of practical examples for understanding how embedded development is different from other desktop application development. You'll learn to build an embedded application and use specialized memory and custom allocators. By the end of the book, you'll be able to build robust and secure embedded applications with C++20 | ||
650 | 0 | 7 | |a C |g Programmiersprache |0 (DE-588)4113195-2 |2 gnd |9 rswk-swf |
650 | 0 | 7 | |a Eingebettetes System |0 (DE-588)4396978-1 |2 gnd |9 rswk-swf |
653 | 0 | |a COMPUTERS / Microprocessors | |
653 | 0 | |a COMPUTERS / Hardware / Peripherals | |
689 | 0 | 0 | |a Eingebettetes System |0 (DE-588)4396978-1 |D s |
689 | 0 | 1 | |a C |g Programmiersprache |0 (DE-588)4113195-2 |D s |
689 | 0 | |5 DE-604 | |
776 | 0 | 8 | |i Erscheint auch als |n Druck-Ausgabe |z 978-1-83882-104-3 |
912 | |a ZDB-30-PQE | ||
912 | |a ZDB-4-NLEBK | ||
912 | |a ZDB-5-WPSE | ||
912 | |a ZDB-221-PPR | ||
912 | |a ebook | ||
912 | |a ZDB-221-PPK | ||
943 | 1 | |a oai:aleph.bib-bvb.de:BVB01-032128007 | |
966 | e | |u https://portal.igpublish.com/iglibrary/search/PACKT0005609.html |l DE-Aug4 |p ZDB-221-PPK |q FHA_PDA_PPK_Kauf |x Verlag |3 Volltext | |
966 | e | |u https://ebookcentral.proquest.com/lib/th-deggendorf/detail.action?docID=6178516 |l DE-1050 |p ZDB-30-PQE |q FHD01_PQE_Kauf |x Aggregator |3 Volltext | |
966 | e | |u https://portal.igpublish.com/iglibrary/search/PACKT0005609.html |l DE-573 |p ZDB-221-PPR |x Aggregator |3 Volltext | |
966 | e | |u https://portal.igpublish.com/iglibrary/search/PACKT0005609.html |l DE-M347 |p ZDB-221-PPR |q FHM_PDA_PPR_Kauf |x Verlag |3 Volltext | |
966 | e | |u https://portal.igpublish.com/iglibrary/search/PACKT0005609.html |l DE-860 |p ZDB-221-PPR |q FLA_PPR_PDA_Kauf |x Verlag |3 Volltext | |
966 | e | |u https://portal.igpublish.com/iglibrary/search/PACKT0005609.html |l DE-91 |p ZDB-221-PPK |q TUM_PDA_PPK_Kauf |x Aggregator |3 Volltext | |
966 | e | |u https://portal.igpublish.com/iglibrary/search/PACKT0005609.html |l DE-355 |p ZDB-221-PPR |q UBR Paketkauf 2021 |x Verlag |3 Volltext | |
966 | e | |u https://portal.igpublish.com/iglibrary/search/PACKT0005609.html |l DE-706 |p ZDB-221-PPR |x Aggregator |3 Volltext |
Datensatz im Suchindex
_version_ | 1820693310248845312 |
---|---|
adam_text | |
adam_txt | |
any_adam_object | |
any_adam_object_boolean | |
author | Viarheichyk, Igor |
author_facet | Viarheichyk, Igor |
author_role | aut |
author_sort | Viarheichyk, Igor |
author_variant | i v iv |
building | Verbundindex |
bvnumber | BV046717720 |
collection | ZDB-30-PQE ZDB-4-NLEBK ZDB-5-WPSE ZDB-221-PPR ebook ZDB-221-PPK |
contents | Cover -- Title Page -- Copyright and Credits -- Dedication -- About Packt -- Contributors -- Table of Contents -- Preface -- Chapter 1: Fundamentals of Embedded Systems -- Exploring embedded systems -- How are they different from desktop or web applications? -- Types of embedded systems -- Microcontrollers -- System on Chip -- Application-specific integrated circuits -- Field programmable gate arrays -- Working with limited resources -- Looking at performance implications -- Working with different architectures -- Endianness -- Alignment -- Fixed-width integer types Working with hardware errors -- Early versions of hardware -- Hardware is unreliable -- The influence of environmental conditions -- Using C++ for embedded development -- You don't pay for what you don't use -- Object-oriented programming to time the code complexity -- Resource acquisition is initialization -- Exceptions -- The powerful standard library -- Threads and a memory model as part of the language specification -- Deploying software remotely -- Running software remotely -- Logging and diagnostics -- Summary -- Chapter 2: Setting Up the Environment Setting up the build system in a Docker container -- How to do it... -- How it works... -- There's more... -- Working with emulators -- How to do it... -- How it works... -- There's more... -- Cross-compilation -- Getting ready -- How to do it... -- How it works... -- There's more... -- Connecting to the embedded system -- Getting ready -- How to do it... -- How it works... -- There's more... -- Debugging embedded applications -- Getting ready -- How to do it... -- How it works... -- There's more... -- Using gdbserver for remote debugging -- Getting ready -- How to do it... -- How it works.. There's more... -- Using CMake as a build system -- Getting ready -- How to do it... -- How it works... -- There's more... -- Chapter 3: Working with Different Architectures -- Exploring fixed-width integer types -- How to do it... -- How it works... -- There's more... -- Working with the size_t type -- How to do it... -- How it works... -- There's more... -- Detecting the endianness of the platform -- How to do it... -- How it works... -- There's more... -- Converting the endianness -- How to do it... -- How it works... -- Working with data alignment -- How to do it... -- How it works.. There's more... -- Working with packed structures -- How to do it... -- How it works... -- There's more... -- Aligning data with cache lines -- How to do it... -- How it works... -- There's more... -- Chapter 4: Handling Interrupts -- Data polling -- Interrupt service routines -- General considerations for ISRs -- 8051 microcontroller interrupts -- Implementing an interrupt service routine -- How to do it... -- How it works... -- Generating a 5 kHz square signal using 8-bit auto-reload mode -- How to do it... -- How it works... -- Using Timer 1 as an event counter to count a 1 Hz pulse |
ctrlnum | (OCoLC)1155078950 (DE-599)BVBBV046717720 |
format | Electronic eBook |
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">BV046717720</controlfield><controlfield tag="003">DE-604</controlfield><controlfield tag="005">20250108</controlfield><controlfield tag="007">cr|uuu---uuuuu</controlfield><controlfield tag="008">200512s2020 xx a||| o|||| 00||| eng d</controlfield><datafield tag="020" ind1=" " ind2=" "><subfield code="a">9781838823207</subfield><subfield code="9">978-1-83882-320-7</subfield></datafield><datafield tag="035" ind1=" " ind2=" "><subfield code="a">(OCoLC)1155078950</subfield></datafield><datafield tag="035" ind1=" " ind2=" "><subfield code="a">(DE-599)BVBBV046717720</subfield></datafield><datafield tag="040" ind1=" " ind2=" "><subfield code="a">DE-604</subfield><subfield code="b">ger</subfield><subfield code="e">rda</subfield></datafield><datafield tag="041" ind1="0" ind2=" "><subfield code="a">eng</subfield></datafield><datafield tag="049" ind1=" " ind2=" "><subfield code="a">DE-1050</subfield><subfield code="a">DE-83</subfield><subfield code="a">DE-573</subfield><subfield code="a">DE-860</subfield><subfield code="a">DE-706</subfield><subfield code="a">DE-355</subfield><subfield code="a">DE-11</subfield><subfield code="a">DE-Aug4</subfield><subfield code="a">DE-M347</subfield><subfield code="a">DE-91</subfield></datafield><datafield tag="100" ind1="1" ind2=" "><subfield code="a">Viarheichyk, Igor</subfield><subfield code="e">Verfasser</subfield><subfield code="4">aut</subfield></datafield><datafield tag="245" ind1="1" ind2="0"><subfield code="a">Embedded programming with modern C++ cookbook</subfield><subfield code="b">practical recipes to help you build robust and secure embedded applications on Linux</subfield><subfield code="c">Igor Viarheichyk</subfield></datafield><datafield tag="264" ind1=" " ind2="1"><subfield code="a">Birmingham ; Mumbai</subfield><subfield code="b">Packt Publishing</subfield><subfield code="c">April 2020</subfield></datafield><datafield tag="300" ind1=" " ind2=" "><subfield code="a">1 Online-Ressource (ix, 382 Seiten)</subfield><subfield code="b">Illustrationen</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">c</subfield><subfield code="2">rdamedia</subfield></datafield><datafield tag="338" ind1=" " ind2=" "><subfield code="b">cr</subfield><subfield code="2">rdacarrier</subfield></datafield><datafield tag="505" ind1="8" ind2=" "><subfield code="a">Cover -- Title Page -- Copyright and Credits -- Dedication -- About Packt -- Contributors -- Table of Contents -- Preface -- Chapter 1: Fundamentals of Embedded Systems -- Exploring embedded systems -- How are they different from desktop or web applications? -- Types of embedded systems -- Microcontrollers -- System on Chip -- Application-specific integrated circuits -- Field programmable gate arrays -- Working with limited resources -- Looking at performance implications -- Working with different architectures -- Endianness -- Alignment -- Fixed-width integer types</subfield></datafield><datafield tag="505" ind1="8" ind2=" "><subfield code="a">Working with hardware errors -- Early versions of hardware -- Hardware is unreliable -- The influence of environmental conditions -- Using C++ for embedded development -- You don't pay for what you don't use -- Object-oriented programming to time the code complexity -- Resource acquisition is initialization -- Exceptions -- The powerful standard library -- Threads and a memory model as part of the language specification -- Deploying software remotely -- Running software remotely -- Logging and diagnostics -- Summary -- Chapter 2: Setting Up the Environment</subfield></datafield><datafield tag="505" ind1="8" ind2=" "><subfield code="a">Setting up the build system in a Docker container -- How to do it... -- How it works... -- There's more... -- Working with emulators -- How to do it... -- How it works... -- There's more... -- Cross-compilation -- Getting ready -- How to do it... -- How it works... -- There's more... -- Connecting to the embedded system -- Getting ready -- How to do it... -- How it works... -- There's more... -- Debugging embedded applications -- Getting ready -- How to do it... -- How it works... -- There's more... -- Using gdbserver for remote debugging -- Getting ready -- How to do it... -- How it works..</subfield></datafield><datafield tag="505" ind1="8" ind2=" "><subfield code="a">There's more... -- Using CMake as a build system -- Getting ready -- How to do it... -- How it works... -- There's more... -- Chapter 3: Working with Different Architectures -- Exploring fixed-width integer types -- How to do it... -- How it works... -- There's more... -- Working with the size_t type -- How to do it... -- How it works... -- There's more... -- Detecting the endianness of the platform -- How to do it... -- How it works... -- There's more... -- Converting the endianness -- How to do it... -- How it works... -- Working with data alignment -- How to do it... -- How it works..</subfield></datafield><datafield tag="505" ind1="8" ind2=" "><subfield code="a">There's more... -- Working with packed structures -- How to do it... -- How it works... -- There's more... -- Aligning data with cache lines -- How to do it... -- How it works... -- There's more... -- Chapter 4: Handling Interrupts -- Data polling -- Interrupt service routines -- General considerations for ISRs -- 8051 microcontroller interrupts -- Implementing an interrupt service routine -- How to do it... -- How it works... -- Generating a 5 kHz square signal using 8-bit auto-reload mode -- How to do it... -- How it works... -- Using Timer 1 as an event counter to count a 1 Hz pulse</subfield></datafield><datafield tag="520" ind1=" " ind2=" "><subfield code="a">This book is a collection of practical examples for understanding how embedded development is different from other desktop application development. You'll learn to build an embedded application and use specialized memory and custom allocators. By the end of the book, you'll be able to build robust and secure embedded applications with C++20</subfield></datafield><datafield tag="650" ind1="0" ind2="7"><subfield code="a">C</subfield><subfield code="g">Programmiersprache</subfield><subfield code="0">(DE-588)4113195-2</subfield><subfield code="2">gnd</subfield><subfield code="9">rswk-swf</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="653" ind1=" " ind2="0"><subfield code="a">COMPUTERS / Microprocessors</subfield></datafield><datafield tag="653" ind1=" " ind2="0"><subfield code="a">COMPUTERS / Hardware / Peripherals</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="1"><subfield code="a">C</subfield><subfield code="g">Programmiersprache</subfield><subfield code="0">(DE-588)4113195-2</subfield><subfield code="D">s</subfield></datafield><datafield tag="689" ind1="0" ind2=" "><subfield code="5">DE-604</subfield></datafield><datafield tag="776" ind1="0" ind2="8"><subfield code="i">Erscheint auch als</subfield><subfield code="n">Druck-Ausgabe</subfield><subfield code="z">978-1-83882-104-3</subfield></datafield><datafield tag="912" ind1=" " ind2=" "><subfield code="a">ZDB-30-PQE</subfield></datafield><datafield tag="912" ind1=" " ind2=" "><subfield code="a">ZDB-4-NLEBK</subfield></datafield><datafield tag="912" ind1=" " ind2=" "><subfield code="a">ZDB-5-WPSE</subfield></datafield><datafield tag="912" ind1=" " ind2=" "><subfield code="a">ZDB-221-PPR</subfield></datafield><datafield tag="912" ind1=" " ind2=" "><subfield code="a">ebook</subfield></datafield><datafield tag="912" ind1=" " ind2=" "><subfield code="a">ZDB-221-PPK</subfield></datafield><datafield tag="943" ind1="1" ind2=" "><subfield code="a">oai:aleph.bib-bvb.de:BVB01-032128007</subfield></datafield><datafield tag="966" ind1="e" ind2=" "><subfield code="u">https://portal.igpublish.com/iglibrary/search/PACKT0005609.html</subfield><subfield code="l">DE-Aug4</subfield><subfield code="p">ZDB-221-PPK</subfield><subfield code="q">FHA_PDA_PPK_Kauf</subfield><subfield code="x">Verlag</subfield><subfield code="3">Volltext</subfield></datafield><datafield tag="966" ind1="e" ind2=" "><subfield code="u">https://ebookcentral.proquest.com/lib/th-deggendorf/detail.action?docID=6178516</subfield><subfield code="l">DE-1050</subfield><subfield code="p">ZDB-30-PQE</subfield><subfield code="q">FHD01_PQE_Kauf</subfield><subfield code="x">Aggregator</subfield><subfield code="3">Volltext</subfield></datafield><datafield tag="966" ind1="e" ind2=" "><subfield code="u">https://portal.igpublish.com/iglibrary/search/PACKT0005609.html</subfield><subfield code="l">DE-573</subfield><subfield code="p">ZDB-221-PPR</subfield><subfield code="x">Aggregator</subfield><subfield code="3">Volltext</subfield></datafield><datafield tag="966" ind1="e" ind2=" "><subfield code="u">https://portal.igpublish.com/iglibrary/search/PACKT0005609.html</subfield><subfield code="l">DE-M347</subfield><subfield code="p">ZDB-221-PPR</subfield><subfield code="q">FHM_PDA_PPR_Kauf</subfield><subfield code="x">Verlag</subfield><subfield code="3">Volltext</subfield></datafield><datafield tag="966" ind1="e" ind2=" "><subfield code="u">https://portal.igpublish.com/iglibrary/search/PACKT0005609.html</subfield><subfield code="l">DE-860</subfield><subfield code="p">ZDB-221-PPR</subfield><subfield code="q">FLA_PPR_PDA_Kauf</subfield><subfield code="x">Verlag</subfield><subfield code="3">Volltext</subfield></datafield><datafield tag="966" ind1="e" ind2=" "><subfield code="u">https://portal.igpublish.com/iglibrary/search/PACKT0005609.html</subfield><subfield code="l">DE-91</subfield><subfield code="p">ZDB-221-PPK</subfield><subfield code="q">TUM_PDA_PPK_Kauf</subfield><subfield code="x">Aggregator</subfield><subfield code="3">Volltext</subfield></datafield><datafield tag="966" ind1="e" ind2=" "><subfield code="u">https://portal.igpublish.com/iglibrary/search/PACKT0005609.html</subfield><subfield code="l">DE-355</subfield><subfield code="p">ZDB-221-PPR</subfield><subfield code="q">UBR Paketkauf 2021</subfield><subfield code="x">Verlag</subfield><subfield code="3">Volltext</subfield></datafield><datafield tag="966" ind1="e" ind2=" "><subfield code="u">https://portal.igpublish.com/iglibrary/search/PACKT0005609.html</subfield><subfield code="l">DE-706</subfield><subfield code="p">ZDB-221-PPR</subfield><subfield code="x">Aggregator</subfield><subfield code="3">Volltext</subfield></datafield></record></collection> |
id | DE-604.BV046717720 |
illustrated | Illustrated |
index_date | 2024-07-03T14:32:39Z |
indexdate | 2025-01-08T15:00:47Z |
institution | BVB |
isbn | 9781838823207 |
language | English |
oai_aleph_id | oai:aleph.bib-bvb.de:BVB01-032128007 |
oclc_num | 1155078950 |
open_access_boolean | |
owner | DE-1050 DE-83 DE-573 DE-860 DE-706 DE-355 DE-BY-UBR DE-11 DE-Aug4 DE-M347 DE-91 DE-BY-TUM |
owner_facet | DE-1050 DE-83 DE-573 DE-860 DE-706 DE-355 DE-BY-UBR DE-11 DE-Aug4 DE-M347 DE-91 DE-BY-TUM |
physical | 1 Online-Ressource (ix, 382 Seiten) Illustrationen |
psigel | ZDB-30-PQE ZDB-4-NLEBK ZDB-5-WPSE ZDB-221-PPR ebook ZDB-221-PPK ZDB-221-PPK FHA_PDA_PPK_Kauf ZDB-30-PQE FHD01_PQE_Kauf ZDB-221-PPR FHM_PDA_PPR_Kauf ZDB-221-PPR FLA_PPR_PDA_Kauf ZDB-221-PPK TUM_PDA_PPK_Kauf ZDB-221-PPR UBR Paketkauf 2021 |
publishDate | 2020 |
publishDateSearch | 2020 |
publishDateSort | 2020 |
publisher | Packt Publishing |
record_format | marc |
spelling | Viarheichyk, Igor Verfasser aut Embedded programming with modern C++ cookbook practical recipes to help you build robust and secure embedded applications on Linux Igor Viarheichyk Birmingham ; Mumbai Packt Publishing April 2020 1 Online-Ressource (ix, 382 Seiten) Illustrationen txt rdacontent c rdamedia cr rdacarrier Cover -- Title Page -- Copyright and Credits -- Dedication -- About Packt -- Contributors -- Table of Contents -- Preface -- Chapter 1: Fundamentals of Embedded Systems -- Exploring embedded systems -- How are they different from desktop or web applications? -- Types of embedded systems -- Microcontrollers -- System on Chip -- Application-specific integrated circuits -- Field programmable gate arrays -- Working with limited resources -- Looking at performance implications -- Working with different architectures -- Endianness -- Alignment -- Fixed-width integer types Working with hardware errors -- Early versions of hardware -- Hardware is unreliable -- The influence of environmental conditions -- Using C++ for embedded development -- You don't pay for what you don't use -- Object-oriented programming to time the code complexity -- Resource acquisition is initialization -- Exceptions -- The powerful standard library -- Threads and a memory model as part of the language specification -- Deploying software remotely -- Running software remotely -- Logging and diagnostics -- Summary -- Chapter 2: Setting Up the Environment Setting up the build system in a Docker container -- How to do it... -- How it works... -- There's more... -- Working with emulators -- How to do it... -- How it works... -- There's more... -- Cross-compilation -- Getting ready -- How to do it... -- How it works... -- There's more... -- Connecting to the embedded system -- Getting ready -- How to do it... -- How it works... -- There's more... -- Debugging embedded applications -- Getting ready -- How to do it... -- How it works... -- There's more... -- Using gdbserver for remote debugging -- Getting ready -- How to do it... -- How it works.. There's more... -- Using CMake as a build system -- Getting ready -- How to do it... -- How it works... -- There's more... -- Chapter 3: Working with Different Architectures -- Exploring fixed-width integer types -- How to do it... -- How it works... -- There's more... -- Working with the size_t type -- How to do it... -- How it works... -- There's more... -- Detecting the endianness of the platform -- How to do it... -- How it works... -- There's more... -- Converting the endianness -- How to do it... -- How it works... -- Working with data alignment -- How to do it... -- How it works.. There's more... -- Working with packed structures -- How to do it... -- How it works... -- There's more... -- Aligning data with cache lines -- How to do it... -- How it works... -- There's more... -- Chapter 4: Handling Interrupts -- Data polling -- Interrupt service routines -- General considerations for ISRs -- 8051 microcontroller interrupts -- Implementing an interrupt service routine -- How to do it... -- How it works... -- Generating a 5 kHz square signal using 8-bit auto-reload mode -- How to do it... -- How it works... -- Using Timer 1 as an event counter to count a 1 Hz pulse This book is a collection of practical examples for understanding how embedded development is different from other desktop application development. You'll learn to build an embedded application and use specialized memory and custom allocators. By the end of the book, you'll be able to build robust and secure embedded applications with C++20 C Programmiersprache (DE-588)4113195-2 gnd rswk-swf Eingebettetes System (DE-588)4396978-1 gnd rswk-swf COMPUTERS / Microprocessors COMPUTERS / Hardware / Peripherals Eingebettetes System (DE-588)4396978-1 s C Programmiersprache (DE-588)4113195-2 s DE-604 Erscheint auch als Druck-Ausgabe 978-1-83882-104-3 |
spellingShingle | Viarheichyk, Igor Embedded programming with modern C++ cookbook practical recipes to help you build robust and secure embedded applications on Linux Cover -- Title Page -- Copyright and Credits -- Dedication -- About Packt -- Contributors -- Table of Contents -- Preface -- Chapter 1: Fundamentals of Embedded Systems -- Exploring embedded systems -- How are they different from desktop or web applications? -- Types of embedded systems -- Microcontrollers -- System on Chip -- Application-specific integrated circuits -- Field programmable gate arrays -- Working with limited resources -- Looking at performance implications -- Working with different architectures -- Endianness -- Alignment -- Fixed-width integer types Working with hardware errors -- Early versions of hardware -- Hardware is unreliable -- The influence of environmental conditions -- Using C++ for embedded development -- You don't pay for what you don't use -- Object-oriented programming to time the code complexity -- Resource acquisition is initialization -- Exceptions -- The powerful standard library -- Threads and a memory model as part of the language specification -- Deploying software remotely -- Running software remotely -- Logging and diagnostics -- Summary -- Chapter 2: Setting Up the Environment Setting up the build system in a Docker container -- How to do it... -- How it works... -- There's more... -- Working with emulators -- How to do it... -- How it works... -- There's more... -- Cross-compilation -- Getting ready -- How to do it... -- How it works... -- There's more... -- Connecting to the embedded system -- Getting ready -- How to do it... -- How it works... -- There's more... -- Debugging embedded applications -- Getting ready -- How to do it... -- How it works... -- There's more... -- Using gdbserver for remote debugging -- Getting ready -- How to do it... -- How it works.. There's more... -- Using CMake as a build system -- Getting ready -- How to do it... -- How it works... -- There's more... -- Chapter 3: Working with Different Architectures -- Exploring fixed-width integer types -- How to do it... -- How it works... -- There's more... -- Working with the size_t type -- How to do it... -- How it works... -- There's more... -- Detecting the endianness of the platform -- How to do it... -- How it works... -- There's more... -- Converting the endianness -- How to do it... -- How it works... -- Working with data alignment -- How to do it... -- How it works.. There's more... -- Working with packed structures -- How to do it... -- How it works... -- There's more... -- Aligning data with cache lines -- How to do it... -- How it works... -- There's more... -- Chapter 4: Handling Interrupts -- Data polling -- Interrupt service routines -- General considerations for ISRs -- 8051 microcontroller interrupts -- Implementing an interrupt service routine -- How to do it... -- How it works... -- Generating a 5 kHz square signal using 8-bit auto-reload mode -- How to do it... -- How it works... -- Using Timer 1 as an event counter to count a 1 Hz pulse C Programmiersprache (DE-588)4113195-2 gnd Eingebettetes System (DE-588)4396978-1 gnd |
subject_GND | (DE-588)4113195-2 (DE-588)4396978-1 |
title | Embedded programming with modern C++ cookbook practical recipes to help you build robust and secure embedded applications on Linux |
title_auth | Embedded programming with modern C++ cookbook practical recipes to help you build robust and secure embedded applications on Linux |
title_exact_search | Embedded programming with modern C++ cookbook practical recipes to help you build robust and secure embedded applications on Linux |
title_exact_search_txtP | Embedded programming with modern C++ cookbook practical recipes to help you build robust and secure embedded applications on Linux |
title_full | Embedded programming with modern C++ cookbook practical recipes to help you build robust and secure embedded applications on Linux Igor Viarheichyk |
title_fullStr | Embedded programming with modern C++ cookbook practical recipes to help you build robust and secure embedded applications on Linux Igor Viarheichyk |
title_full_unstemmed | Embedded programming with modern C++ cookbook practical recipes to help you build robust and secure embedded applications on Linux Igor Viarheichyk |
title_short | Embedded programming with modern C++ cookbook |
title_sort | embedded programming with modern c cookbook practical recipes to help you build robust and secure embedded applications on linux |
title_sub | practical recipes to help you build robust and secure embedded applications on Linux |
topic | C Programmiersprache (DE-588)4113195-2 gnd Eingebettetes System (DE-588)4396978-1 gnd |
topic_facet | C Programmiersprache Eingebettetes System |
work_keys_str_mv | AT viarheichykigor embeddedprogrammingwithmodernccookbookpracticalrecipestohelpyoubuildrobustandsecureembeddedapplicationsonlinux |