||For novel ideas about building embedded systems (both hardware and firmware), join the 25,000+ engineers who subscribe to The Embedded Muse, a free biweekly newsletter. The Muse has no hype, no vendor PR. It takes just a few seconds (just enter your email, which is shared with absolutely no one) to subscribe.
- Bailing Frantically - In panic mode? You'll never exit it till you take time to stop bailing and plug the leaks.
- Banking Basics - Ideas to help you expand your system's address space.
- Beginner's Corner - In-Circuit-Emulators - A beginner's guide to the best debugging tool of all, the in-circuit emulator.
- Beginner's Corner - Reentrancy - A beginner's guide to reentrancy issues.
- Big Systems - Another piece on using x86 Protected Mode.
- Bit Banging - You don't need a UART to send and receive serial data. Software alone suffices. Here's the code.
- Boolean Algebra - Do you get the boolean blues? Those hardware weenies keep chatting about DeMorgan, truth and evil... and you're feeling left out? Read on.
- Boss Management - Bosses need to be managed too.
- Built-in Debuggers - More and more processors have built-in debugging resources. Here's a look at what features they offer.
- Built-In Diagnostics - No system is useful unless it can be built in production. Add simple diagnostics.
- Bus Cycles - Software folks need to understand how a microprocessor handles data on its busses. Here's the short intro.
- Business 101 - You can't be an effective engineer unless you understand how your engineering role impacts the business as a whole. Step back, get a new zeitgeist, and expand your horizons a bit.
- Data Compression - Transmission bandwidth is always limited (hey... if you're reading this over a 28.8kb link, you get the picture!). Data compression can help a lot.
- Dear Abbey - Abbey talks to developers about building embedded systems.
- Debuggable designs - Tips for improving hardware designs
- Debugging ISRs - Part 1 - This is part 1 of a two part series on debugging interrupt service routines.
- Debugging ISRs - Part 2 - This is part 2 of a two part series on debugging interrupt service routines.
- Deconstructing XP - eXtreme Programming has some fabulous ideas. And some really dumb ones. This is a review of two XP books.
- Definitions - Funny definitions of common embedded terms.
- Depot Repair - Thoughts on our throwaway economy, and our role in it.
- Design For Performance - Make the system as fast as it needs to be!
- Developing a Good Bedside Manner - Thoughts about being a great debugger.
- Digital Engineering is More Fun - Core memory was all we had years ago. It's interesting stuff.
- Disaster - A description of some embedded disasters, and what we can learn from them.
- DMA - Too many of us don't really understand DMA. Read on...
- Do You Need A Degree - Is a degree needed? Useful?
- Drawing Systems - Most small companies never organize their drawings in a logical fashion, and instead all-too-often rely on memory when building production units. Here's an easy system that will get your drawings in order.
- DSP - An introduction to Digital Signal Processing.
- Farewell, ESD - My final column in the last print edition of Embedded Systems Design magazine.
- Faster! - Time to market dominates. We need new development approaches.
- Fire Code For Software - As a collector of software disasters, I have to ask, why is there no fire code for software?
- Firmware Disasters - Test like you fly, fly what you have tested.
- Firmware Disasters Redux! - Those who forget history are condemned to repeat it.
- Globals - Advice about using - and avoiding - global variables.
- Green Motor Control - As a designer, you can make decisions that greatly impact the environment. Here's how to save energy.
- Guardian Angels - Every project needs a guardian angel, someone who watches over the code.
- Guestimating - Sometimes close enough is good enough
- Habits - The 7 Habits of Highly Dysfunctional Developers
- Hardware for Better Firmware - A few changes to the system's hardware design can greatly improve the code.
- How Microsoft Saved The World - The Big Bad Beast or a a force of good? Jack's inviting flames by claiming that without Microsoft we would still be computing on our fingers and toes.
- Huge Data on the Z180 - The Z180's banking scheme is great for handling code; data is a bit more complex. Here's example code.
- Jack's Rules of Thumb - Engineers use rules of thumb to quickly estimate rather than do detailed calculations. Firmware can benefit from the same idea. Here's a sampling of such rules.
- Jack's Top Ten - The top reasons projects fail.
- Jake Busts Out - Jake busts out of jail to help the VCs get a product to market.
- Java - Ready for Prime Time? - Is Java really the next silver bullet for embedded programming?
- Keep it Small - Get the product out faster by better partitioning
- Kids - In praise of kids these days
- Kids These Days - Back in my day, we had to build our own equipment
- Magic - an article about our society's inability to embrace the new technologies we techies create.
- Measuring Bugs - If you don't measure bug rates you'll never improve your coding. Besides, the right measures will accelerate the schedule.
- Memo To My Boss - Jake Schmidt quits and fires off a memo to his ex-boss. It's flaming, but full of useful lessons.
- Memorial Day - Years in the future a wealthy man looks back on how the embedded world collapsed.
- Memory as a Device - Clever use of memory devices can really enhance your products.
- Memory is a Fragile Thing - Thoughts on remembering.
- Metastability and Firmware - A very subtle reentrancy-like situation develops when software needs two or more reads of hardware to input a value.
- Minimizing Analog Noise - Analog noise is a tough problem. Here are a few ways to minimize it.
- MISRA - The MISRA standard defines rules for the safer use of C.
- Momisms - Things your mom should have taught you
- Multicore: Hype or Reality - Shedding some light on vendor claims about multicore.
- Multiplying Monitors - Multiple monitors == increased productivity.
- Musings on People - Process and people - good management takes good care of the people.
- On Management - Thoughts on managing development
- On Measurements - Managers chant "If you can't measure it, you can't manage it." What should we measure in firmware development?
- Open Source? - Opening the open source debate
- Oscilloscope Up ate - The wise embedded engineer will be a master of many tools. The scope is one of the most important.
- Passion and the Developer - Use reason, not emotions.
- Perfect Software - Perfection is hard, but we can get to Pretty Darn Perfect.
- Perform or Perish - How do you deal with software performance problems?
- Picking a CPU - How do you decide what CPU to use? Here's some factors to consider.
- Pipelines and Prefetchers - All modern processors use pipelines and/or prefetchers to increase performance. Here's how they work.
- Position Encoders - Encoders transmit position or frequency info to the computer. Here's a few ways to make life with them easier.
- Power Management - Managing power in embedded systems is getting extremely complicated - and effective.
- Proactive Debugging - Seed your code with simple tricks to find bugs
- Programming Quotations - A number of good quotes about this field.
- Programming Style - Programming style is just as important as any other parameter that goes into a coding task. Here are a few ideas, rants, and raves.
- Promise Management - We make lots of promises to our boss, our employees, spouse and children. Promises are a sort of social currency. Manage them properly or they'll lose their value.
- Protecting Your IP - What's the deal with patents?
- Prototyping with SMT - One person's experience with using SMT devices on prototypes.
- Quirky Chips - There have been some strange microprocessors introduced over the years.
- Radio Days - Radios and noise reduction
- Read That Datasheet - Never assume a part has certain electrical or timing parameters. Often little surprises lurk. Did you know that virtually all microprocessors do not accept TTL levels for clock and reset?
- Real Time - The basics of real-time programming
- Reentrancy - Most real time systems require a certain amount of reentrant code, yet too many programmers have no idea what this entails
- Refreshing Software - Refresh is yet one more thing that software can, in some situation, replace.
- Religious Wars - Choosing a programming language is a place where people often get really dysfunctional.
- Relocatable Code - Some embedded code must run at more than on address.
- Resistors - Be careful how you design resistors and R-packs into your digital circuits. This article tells how.
- Resource Hunters - A huge part of engineering is finding information and sources. Here's some hints.
- Robots Everywhere - What happens when robots can build robots?
Do you need to reduce bugs in your firmware? Shorten schedules? My one-day Better Firmware Faster seminar will teach your team how to operate at a world-class level, producing code with far fewer bugs in less time. It's fast-paced, fun, and covers the unique issues faced by embedded developers. Here's information about how this class, taught at your facility, will measurably improve your team's effectiveness.
Class in India - I'll do a 3 day version of this class in Bangalore in July. Contact Santosh Iyer for more information.
New Video! A backup strategy for small offices.
Win a free oscilloscope! Drawing June 1. More info here.
Advertise here! More info.