||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?
My Better Firmware Faster seminar has helped thousands of developers improve their products. You can bring this class to your company! Click here to find how I can come to your facility and present the class.
I'm the Conference Chair, and will give several talks at ESC-India July 17-19.
June will find me doing a keynote speech at Ada-Europe.
I'm presenting the keynote and doing another talk at ESC Brazil on August 28.