http://www.ganssle.com/articles/
- 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!
- 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.
- 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.
- 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.
- Proactive
Debugging - Seed your code with simple tricks to find bugs
- 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.
- Prototyping
with SMT - One person's experience with using SMT devices on
prototypes.
- 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.
- Sailing
stories, linked here by popular demand
- Saving
Your Career - Tips on managing your career.
- Schedule Madness
- Most schedules are dysfunctional
- Scheduling -
It is possible to create accurate schedules, here's how.
- Scheduling
Momisms - Scheduling aphorisms your mom probably taught you.
- Self Calibrating
Systems - Here's an algorithm to make an instrument read correct
values without ever manually setting gain and offset coefficients.
- Sell Yourself
- Guidelines for writing a resume.
- Serial Data
Transmission - Here's a primer to using UARTs in embedded systems.
- Shared
Perceptions - On a stop in Bermuda, Jack meets a wizened
ex-developer. Over too many drinks several interesting lessons emerge.
- Small is Beautiful -
Small Processors dominate this industry. This is why.
- Smoothing Digital
Inputs - There's a lot of way ways to debounce digital inputs. A
few are listed in this article.
- Speed Kills -
Data comm over cheap serial links might be more cost effective than
other, faster, options.
- Survival of the
Fittest -
Do you work hard? How about smart? This article might make you mad, but
hopefully it's start some ideas flowing. Feel free to send flames to us
via email!
|