
So, You Wanna Be an Embedded Engineer This Page Intentionally Left Blank So, You Wanna Be an Embedded Engineer The Guide to Embedded Engineering, from Consultancy to the Corporate Ladder by Lewin A.R.W. Edwards AMSTERDAM • BOSTON • HEIDELBERG • LONDON NEW YORK • OXFORD • PARIS • SAN DIEGO SAN FRANCISCO • SINGAPORE • SYDNEY • TOKYO Newnes is an imprint of Elsevier Newnes is an imprint of Elsevier 30 Corporate Drive, Suite 400, Burlington, MA 01803, USA Linacre House, Jordan Hill, Oxford OX2 8DP, UK Copyright © 2006, Elsevier Inc. All rights reserved. No part of this publication may be reproduced, stored in a retrieval system, or transmitted in any form or by any means, electronic, mechanical, photocopying, recording, or otherwise, without the prior written permission of the publisher. Permissions may be sought directly from Elsevier’s Science & Technology Rights Department in Oxford, UK: phone: (+44) 1865 843830, fax: (+44) 1865 853333, e-mail: [email protected]. You may also complete your request on-line via the Elsevier homepage (http://elsevier.com), by selecting “Support & Contact,” then “Copyright and Permission” and then “Obtaining Permissions.” Recognizing the importance of preserving what has been written, Elsevier prints its books on acid-free paper whenever possible. Library of Congress Cataloging-in-Publication Data Edwards, Lewin A. R. W. So, you wanna be an embedded engineer : the guide to embedded engineering, from consultancy to the corporate ladder / Lewin A.R.W. Edwards. p. cm. Includes index. ISBN-13: 978-0-7506-7953-4 (pbk. : alk. paper) ISBN-10: 0-7506-7953-0 (pbk. : alk. paper) 1. Embedded computer systems—Programming—Vocational guidance. I. Title. TK7895.E42E378 2006 004.16--dc22 2006015867 British Library Cataloguing-in-Publication Data A catalogue record for this book is available from the British Library. ISBN-13: 978-0-7506-7953-4 ISBN-10: 0-7506-7953-0 For information on all Newnes publications visit our Web site at www.books.elsevier.com 06 07 08 09 10 10 9 8 7 6 5 4 3 2 1 Printed in the United States of America This book is dedicated to the philosophy of making what you need out of what you can get. This Page Intentionally Left Blank Contents Chapter 1: Introduction . 1 1.1 About This Book . 1 1.2 What Is an Embedded Engineer? . 3 Chapter 2: Education . 5 2.1 Traditional Education Paths into Embedded Engineering . 5 2.2 Getting in Without Traditional Education (and Acquiring It Thereafter) . 11 2.3 I Write Software—How Much Electronics Must I Learn? . 23 2.4 Educational Traps, Dead-Ends, and Scams to Avoid . 27 2.5 Practical Skills You’ll Want to Acquire . 32 Chapter 3: Teaching Yourself, Bottom-Up (Small Embedded Systems) . 37 3.1 Target Audience . 37 3.2 Intel (Et al.) 8051 Variants . 41 3.3 Atmel AVR . 52 3.4 Texas Instruments MSP430 . 61 3.5 Microchip PICmicro . 70 3.6 Less Common Architectures for Special Needs . 77 3.7 What Programming Languages Should I Learn? C++ vs. C vs. Assembly Language in Small Embedded Systems . 82 3.8 Brief Ravings on Copy-Protected Development Tools . 87 3.9 An Example 8-Bit Project Using AVR and Free Tools . 91 Chapter 4: Teaching Yourself, Top-Down (Large Embedded Systems) . 125 4.1 Target Audience . 125 4.2 Embedded x86 Solutions . 127 4.3 ARM . 139 4.4 PowerPC . 151 4.5 Linux . 155 4.6 eCos . 165 viii Contents 4.7 What Programming Languages Should I Learn for Large Embedded Systems? . 167 4.8 A Final Word on Part Selection . 169 Chapter 5: Working for Yourself as an Embedded Engineer 173 5.1 Is Self-Employment for You? Risks and Benefits . 173 5.2 From Moonlighting to Full-Time Consultant Status— Bookkeeping, Taxes and Workload . 175 5.3 Ways to Find and Keep Customers . 182 5.4 Iterative Projects: Never-Ending Horror? . 187 5.5 Pricing Your Services Appropriately . 191 5.6 Establishing Your Own Working Best Practices . 194 5.7 More Than a Handshake: The Importance of Contracts . 197 Chapter 6: Working for a Small Company . 201 6.1 Analyze Your Goals: Benefits and Downsides of the Small Company . 201 6.2 How to Get the Job . 203 6.3 Responsibilities and Stresses in a Small Company . 206 6.4 Personal Dynamics in Small Companies . 208 6.5 Managing Tightly Limited Resources . 211 6.6 Task Breakdown: A Typical Week . 215 Chapter 7: Working for a Larger Company . 217 7.1 Analyze Your Goals: Benefits and Downsides of the Large Company . 218 7.2 How to Get the Job . 220 7.3 Globalization: Outsourcing and Temporary Worker Visas . 222 7.4 Procedures and You: Keeping Your Head Above Water . 228 7.5 Managing Relationships with Marketing . 236 7.6 Task Breakdown: A Typical Week . 239 Chapter 8: Conclusion . 241 Go Forth and Conquer . 241 1 Introduction 1.1 About This Book Both online and in real life, nearly every day I see people asking what they need to do in order to become embedded engineers. Some are new graduates; some are still college students; a few are teenagers in high school; and a large minority are hobbyists, hardware technicians, or application-level programmers looking to improve their salary prospects and/or diversify their skills in order to avoid the 21st century plague of white-collar commoditization. Why do so many people want to become embedded gurus? The obvious explanation is that young (and not-so-young) programmers and technicians are being lured by the glamorous, high-profile work, easy conditions, relaxed lifestyle and limitless wealth, delivered by adoring crowds, that only embedded engineer- ing can provide. Since none of that last sentence is remotely true, however (I’ve been working in the field full time for somewhat more than ten years, and I don’t clearly recall the last time I was pelted with cash by an adoring crowd), I can only assume that there is some major marketing campaign in progress and it is drawing people to the embedded field. This, of course, leads to an intractable moral dilemma. Should existing embed- ded engineers steer these young hopefuls toward other fields, thereby keeping the pool of fresh embedded talent small, and consulting rates correspondingly lucrative? Or, should we beckon these poor innocents in the door to work on the bottom level, thereby pushing all of us embedded guys one step up the pyramid? Humor aside, it is a generally accepted fact that the number of new graduate engineers of all types is shrinking (at least in the United States). Various theories are posited to explain this phenomenon. In the specific case of embedded 1 2 Chapter 1 engineering, I see several factors causing the decline. One such factor is the unavailability in this day and age of well-documented home computers of the style my generation enjoyed—Acorn BBC, Commodore VIC-20, Sinclair ZX Spectrum, and so on. Modern personal computers are black boxes designed to run shrink-wrapped software. They are shipped without programming tools1 and with no technical documentation whatsoever. These times in which we live are dark indeed. Operating system vendors are actively working to confine third-party software development to an exclusive club of paid-up licensees (in the same way that video game console development is controlled), and lower-level programming at the direct hardware-access layer is at best very difficult due to the unavailability of chipset documentation—in many cases, due to the manu- facturers’ contractual obligations to preserve trade secret information related to intellectual property protection mechanisms. In addition to this, we are faced with the mere complexity and heterogeneity of PC hardware. Back in the good old days, we could develop a homebrew program on our Commodore 64, fine- tune it to the last instruction cycle, and show it to other people with pride. This type of skill set is a vital component of embedded engineering, and it is more or less impossible to practice on mainstream home computers of the current era. There are other factors that raise the bar or discourage people from becoming an embedded engineer, too—and I’ll deal with them in the appropriate sections of this book—but the point I’m making here is that it’s simply more difficult these days for kids to experiment with what they have at home; their opportuni- ties to do so are, at best, constrained. The good news is that a decline in the supply of engineering talent leads— inevitably—to an increased price to meet demands. Despite the specters of outsourcing and high-tech worker visas (more on these topics in Chapter 7, if you’re the chapter-skipping type), right now it’s a great time to be looking for work in this field. There are of course cycles and cataclysms in everything—there was an enormous crash in telecommunications engineering jobs not so long ago, for example—but over time, the trend for total employed hours and investment dol- lars going into high-tech engineering projects is headed relentlessly upward. 1 Apple’s Mac OS is the only mainstream retail exception to this rule. While some PC vendors do offer Linux as a preload option, the people who would choose this are, in the main, people who would have installed it themselves anyway. Introduction 3 Note, by the way, that this book is something of a work of management heresy, almost to the point where I considered publishing it under a pseud- onym. It’s written for embedded engineers, or people who want to be embedded engineers, not people who are counting the days until the moment when they can put “manager” at the end of their job title.
Details
-
File Typepdf
-
Upload Time-
-
Content LanguagesEnglish
-
Upload UserAnonymous/Not logged-in
-
File Pages257 Page
-
File Size-