This book is to help you learn the basic pr inciples of writingsoftware for embedded systems. It surveys the issues and discussesthe various techniques for dealing with them. In particular, itdiscusses approaches to the appropriate use of the real-timeoperating systems upon which much embedded software is based. Inaddition to explaining what these systems do, this book points outhow you can use them most effectively.
You need know nothing about embedded-systems software and itsproblems to read this book; we'll discuss everything from the verybeginning. You should be familiar with basic computer programmingconcepts: you might be a software engineer with a year or more ofexperience, or perhaps a student with a few programming coursesunder your belt. You should understand the problems involved inwriting application programs. This book requires a readingknowledge of the C programming language; since C is the linguafranca of embedded systems, you will have to learn it sooner orlater if you hope to get into the field. A little knowledge ofassembly language will also be helpful.
David E Simon An Embedded Software Primer Pdf Free 16
any embedded system project. When you need to know the specificsof your microprocessor and your real-time operating system, look inthe voluminous manuals that hardware and software vendors providewith their products. This book will help you know what informationto look for.
First, thanks are due to the people at Probitas Corporation: toA. J. Nichols, who has made the company the thoughtful,high-quality software environment that it is; to Michael Grischyfor the ongoing debates on embedded-system design and coding style;to Richard Steinberg, who checked the code examples in this book;and to Ric Vilbig, who reviewed the two chapters on hardware andcorrected a number of my misconceptions.
Because of this and because of the wide variety of applications,embedded software is a field in which no wisdom is universal. Anyrule followed by 85 percent of engineers as part of the acceptedgospel of best practice has to be broken by the other 15 percentjust to get their systems to work. This book will focus on theru)es of the 85 percent, emphasizing the concepts and the reasoningbehind th
As microprocessors have become smaller and cheaper, more andmore products have microprocessors "embedded" in them to make them"smart." Such products as VCRs, digital watches, elevators,automobile engines, thermostats, industrial control equipment, andscientific and medical instruments are driven by thesemicroprocessors and their software. People use the term embeddedsystem to mean any computer system hidden in any of theseproducts.
Software for embedded systems must handle many problems beyondthose found in application software for desktop or mainframecomputers. Embedded systems often have several things to do atonce. They must respond to external events (e.g., someone pushes anelevator button). They must cope with all unusual conditionswithout human intervention. Their work is subject to deadlines.
Examples of Embedded Systems To understand the issues ofembedded-systems software and to make the problems a little moreconcrete, let's start by examining a few sample systems. We'll lookback at these examples from time to time as we discuss specificissues and specific solutions.
Telegraph Development Challenges To satisfy the list ofrequirements given above; Telegraph has a microprocessor embeddedin it .. Its software is more extensive and sophisticated than itsexternal appearance might lead you to believe. What problems arisein developing such software? Before reading on, you might considerwriting down what you think these problems might be.
To begin with, of course, software for Telegraph must belogically correct. It can't lose track of which omputer is printingor drop data or report incorrect status. T his is the samerequirement placed on every piece of software in both the embeddedand the applications arenas.
software must be written to make this happen. We will discussresponse extensively, because it is a common problem in embeddedsystems and because all of the solutions represent compromises ofvarious kinds.
Testability It is not at all easy to determine whether Telegraphreally works. T he problem is that a lot of the software deals withuncommon events. Telegraph is typical of embedded systems in thisregard, because these systems must be able to deal with anythingwithout hum.an intervention. For example, lots of the Telegraphcode is dedicated to the problem that data might get lost on thenetwork. However, data doesn't get lost very often, especially in atesting laboratory, where the network is probably set up perfectly,is made entirely of brand-new parts, and is all of 15 feet long.This makes it hard to test all those lines of code.
Unfortunately, having Telegraph stop working doesn't give youmuch information about a bug. Further, with no keyboard and screenyou can't run a debugger on Telegraph. You must find other ways tofigure out what has happened. We will discuss techniques fordebugging embedded-systems software,
Reliability Like most other embedded systems, Telegraph is notallowed to crash. Although customers seem to have some tolerancefor desktop systems that must be rebooted once in a while, nobodyhas any patience with little plastic boxes that crash. Inparticularly awkward situations, application software can put amessage on the screen and ask the user what to do. Embedded systemsdo not have that option; whatever happens, the software mustfunction without human intervention.
A1emory Space Telegraph has only a very finite amount ofmemory-specifically, 32 KB of memory for its program and 32 KB ofmemory for its data. T his was as much memory as Telegraph couldhave if its price were to be reasonable. Memory gets nothing butcheaper, but it still isn't free. Making software fit into theavailable space is a necessary skill for many embedded-systemsoftware engineers, and we'll discuss it.
Program Installation T he software in Telegraph didn't get therebecause somebody clicked a mouse on an icon. We will discuss thespecial tools that are needed to install the software into embeddedsystems.
Response-Your system may need to react to events quickly.Testability-Setting up equipment to test embedded software can bedifficult. Debugability-Without a screen or a keyboard, finding outwhat the software
Although a software engineer \Vho writes only applications mayspend an entire career and learn nothing about hardware, anembedded-systems software engineer usually runs up against hardwareearly on. The e1nbedded--systems software engineer must oftenunderstand the hardware in oner to write correct software; mustinstall the software on the hardware; musr sometimes figure outwhether a problem is caused by a software hug or by something wrongin the hardware; may evt'r: be responsible for reading the hardwareschematic diagram and suggesting corrections.
The term RISC dates from about 1980.[16] Before then, there was some knowledge that simpler computers can be effective (e.g., John Cocke at IBM Research), but the design principles were not widely described. Simple, effective computers have always been of academic interest, and resulted in the RISC instruction set DLX for the first edition of Computer Architecture: A Quantitative Approach in 1990 of which David Patterson was a co-author, and he later participated in the RISC-V origination. DLX was intended for educational use; academics and hobbyists implemented it using field-programmable gate arrays, but it was never truly intended for commercial deployment. ARM CPUs, versions 2 and earlier, had a public-domain instruction set and are still supported by the GNU Compiler Collection (GCC), a popular free-software compiler. Three open-source cores exist for this ISA, but were never manufactured.[17][18] OpenRISC is an open-source ISA based on DLX, with associated RISC designs, and is fully supported with GCC and Linux implementations, although it too has few commercial implementations.
As of 2019[update], RISC-V International freely publishes the documents defining RISC-V and permits unrestricted use of the ISA for design of software and hardware. However, only members of RISC-V International can vote to approve changes, and only member organizations use the trademarked compatibility logo.[23]
Several memory systems are supported in the specification. Physical-only is suited to the simplest embedded systems. There are also three UNIX-style virtual memory systems for memory cached in mass-storage systems. The virtual memory systems support MMU with three sizes, with addresses sized 32, 39 and 48 bits. All virtual memory systems support 4 KiB pages, multilevel page-table trees and use very similar algorithms to walk the page table trees. All are designed for either hardware or software page-table walking. To optionally reduce the cost of page table walks, super-sized pages may be leaf pages in higher levels of a system's page table tree. SV32 has a two-layer page table tree and supports 4 MiB superpages. SV39 has a three level page table, and supports 2 MiB superpages and 1 GiB gigapages. SV48 is required to support SV39. It also has a 4-level page table and supports 2 MiB superpages, 1 GiB gigapages, and 512 GiB terapages. Superpages are aligned on the page boundaries for the next-lowest size of page.[2]
The almost complete lack of regulation means that there are strong incentives for employers to use digital technologies at will, in ways that can directly or indirectly harm workers. Similarly, developers are largely free to sell untested and faulty systems based on dubious science, exacerbating the potential harms against workers.[9] Those harms can take the form of work intensification and speed-up; deskilling and automation; hazardous working conditions; growth in contingent work; loss of autonomy and privacy; discrimination; and suppression of the right to organize. Of particular concern is that workers of color, women, and immigrants can face direct discrimination via systemic biases embedded in these technologies, and are also most likely to work in occupations at the front lines of experimentation with artificial intelligence. A future where workers labor in digital sweatshops, micro-managed with no autonomy and under constant pressure, is not too difficult to imagine.[10] This is already the reality for some workers. 2ff7e9595c
Comments