DOC PREVIEW
UNCC ECGR 4101 - Beware of Programmers Carrying Screwdrivers

This preview shows page 1-2 out of 6 pages.

Save
View full document
View full document
Premium Document
Do you want full access? Go Premium and unlock all 6 pages.
Access to all documents
Download any document
Ad free experience
View full document
Premium Document
Do you want full access? Go Premium and unlock all 6 pages.
Access to all documents
Download any document
Ad free experience
Premium Document
Do you want full access? Go Premium and unlock all 6 pages.
Access to all documents
Download any document
Ad free experience

Unformatted text preview:

Click Here!EDTN HomeRegisterContactAdvertisingFeedback Search the EDTN Network REGISTER NOW!SearchMore New Products Embedded.com LinksNEW Products Tasking toolset supports StarCore DSP Video-centric DSPs Suite supports flash micros Company Store Beware of Programmers Carrying Screwdrivers By Jack Ganssle Embedded.com (03/01/02, 02:24:36 PM EDT) The earliest electronic computers were analog machines, really nothing more than a collection of operational amplifiers. "Programs" as we know them did not exist; instead, users created algorithms using arrays of electronic components placed into the amps' feedback loops. Programming literally meant rewiring the machine. Only electrical engineers understood enough of the circuitry to actually use these beasts. In the 1940s the advent of the stored program digital computer transformed programs from circuits to bits saved on various media -- though nothing that would look familiar today! A more subtle benefit was a layer of abstraction between the programmer and the machine. The digital nature of the machines transcended electrical parameters; nothing existed other than a zero or a one. Computing was opened to a huge group of people well beyond just electrical engineers. Programming became its own discipline, with its own skills, none of which required the slightest knowledge of electronics and circuits. Except in embedded systems. Intel's 1971 invention of the microprocessor brought computers back to their roots. Suddenly computers cost little and were small enough to build into products. Despite cheap CPUs, though, keeping the overall system cost low became the new challenge for designers and programmer of these new smart products. This is the last bastion of computing where the hardware and firmware together form a unified whole. It's often possible to Click here!Page 1 of 7Embedded.com - Beware of Programmers Carrying Screwdrivers7/27/2009http://courses.ncsu.edu/ece306/common/Reading/Embedded_com%20-%20Beware%20of...See 320+ hardware and software companies FREE! Embedded Systems Conference San Francisco, March 13-15. Get your FREE Pass today See 320+ hardware and software companies FREE! Embedded Systems Conference San Francisco, March 13-15. Get your FREE Pass today Copyright © 2002 CMP Media LLC Privacy Statement reduce system costs by replacing components with smarter code, or to tune performance problems by taking the opposite tack. Our firmware works intimately with peripherals, sensors and a multitude of real-world phenomena. Traditionally this close coupling of hardware and software meant that most embedded folks were EEs. CS majors generally didn't have the background needed to know exactly which bit to twiddle when. The typical documentation dearth meant we were all supposed to somehow figure out how things work just from the schematic. How many CS folks can do that? But the world is changing. As the firmware grows and dwarfs hardware content perhaps EEs, especially those with the minimal software training most get, are not the ideal developers. I'm astonished that even today most EEs get essentially no training in their college years in real software engineering. Sure, they learn to code, but few graduate knowing much about configuration management, requirements analysis, methodologies, and all of the other aspects of the discipline. Almost anyone can hack 10,000 lines of C into a reasonable product. That's quite impossible, though, when we're working on projects requiring hundreds of thousands of lines. Big code demands disciplined development, the sort that (I hope!) CS folks get, big time, in college. Yet most firmware developers are EEs who drifted into software. That happened to me, though I've managed to keep feet in both hardware and software camps. How many of us EEs have the training for the huge projects that are coming along? My recent experiences teaching at the University of Maryland suggest that few do. Most new EEs still get zero exposure to true software engineering, which is astonishing when we realize that even hardware design in this world of ASICs, FPGAs, VHDL, and Verilog is an awful lot like building code. As usual, schools lag industry. Computer Engineering is an intermediate approach that combines training in both hardware and software. I suspect that these folks may be the ideal candidates for future firmware development. I love working at the margins of the code and the hardware, at making tradeoffs between programming and logic design, building ISRs and manipulating devices. The best projects control something moving, whether a robot or something less esoteric. Yet specialization is setting in. The future will find fewer developers tackling entire projects, and only a handful working with bits, bytes and soldering irons. I fear that unless EEs start getting a solid grounding in true software engineering, we'll be less valuable as developers. What do you think? Are you an EE doing firmware? Did you get a solid background in disciplined software development, and if so, how? Jack G. Ganssle is a lecturer and consultant on embedded Page 2 of 7Embedded.com - Beware of Programmers Carrying Screwdrivers7/27/2009http://courses.ncsu.edu/ece306/common/Reading/Embedded_com%20-%20Beware%20of...development issues. He conducts seminars on embedded systems and helps companies with their embedded challenges. He founded two companies specializing in embedded systems. Contact him at [email protected]. His website is http://www.ganssle.com/. Take the poll Reader Feedback Good points, Jack! As a bonafide EE (BSEE and MSEE), I was once where many are today. However, the dark side beckoned, and I am now like you, living more in software than in hardware (including some projects using VHDL, which I agree is more software-ish than hardware-ish). I am amazed by how many EEs still feel that every clock cycle counts when they are programming for a 40 MHz RISC machine, eventhough the complete loop time (yes, many programs still have round robin loops for these large machines) is only using about 30% of throughput. Someday the benefits of reuse and components will catch up, and these EEs will be saying "What Happened?" as they look for new positions. Joe Lemieux Staff Engineer - System Architect EDS Interesting article! I myself graduated an EE, then did firmware coding for a few years. The product I worked on was easily hundreds of thousands of lines. Like you observe in the article, I learned in


View Full Document

UNCC ECGR 4101 - Beware of Programmers Carrying Screwdrivers

Documents in this Course
Load more
Download Beware of Programmers Carrying Screwdrivers
Our administrator received your request to download this document. We will send you the file to your email shortly.
Loading Unlocking...
Login

Join to view Beware of Programmers Carrying Screwdrivers and access 3M+ class-specific study document.

or
We will never post anything without your permission.
Don't have an account?
Sign Up

Join to view Beware of Programmers Carrying Screwdrivers 2 2 and access 3M+ class-specific study document.

or

By creating an account you agree to our Privacy Policy and Terms Of Use

Already a member?