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 100
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 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
Comentarios