|
|
||||||
You may redistribute this newsletter for noncommercial purposes. For commercial use contact jack@ganssle.com. |
||||||
Contents | ||||||
Editor's Notes | ||||||
You still have a couple of days to get a $50 discount for early signup. Did you know it is possible to create accurate schedules? Or that most projects consume 50% of the development time in debug and test, and that it’s not hard to slash that number drastically? Or that we know how to manage the quantitative relationship between complexity and bugs? Learn this and far more at my Better Firmware Faster class, presented at your facility. See https://www.ganssle.com/onsite.htm. |
||||||
Embedded Video | ||||||
The videos are on hiatus for a couple of weeks due to an excess of other activities here. |
||||||
Quotes and Thoughts | ||||||
"The trouble with programmers is that you can never tell
what a programmer is doing until it's too late." - Seymour
Cray |
||||||
Tools and Tips | ||||||
Please submit clever ideas or thoughts about tools, techniques and resources you love or hate. Here are the tool reviews submitted in the past. At ARM TechCon last week Micrium demonstrated the latest version of their uC/Probe that monitors firmware in real time. Wow! I've used it in the past with great success, but the new version offers many new features and a stunning UI. |
||||||
More Responses to Margin in Software | ||||||
In response to some of the reader comments in Muse 269 Bill Gatliff wrote:
He replied:
Nick P wrote:
|
||||||
== Considered Harmful? | ||||||
In his comments in the last Muse Ray Keefe suggested preferring ">=" (or, of course, "<=") to "==" in making decisions. His thinking is that adding the greater/lesser operator makes the code more robust in case it doesn't exactly hit an equality condition. It's an interesting idea that assumes we make mistakes. But should we take it a step further? If our design tells us "==" will work, then a situation where the greater-than construct takes action means there's something we missed. Perhaps a better approach is to, first, add a comment so future maintainers understand what we're doing, and, second, instrument decisions where we've used the broader ">=" construct. An example: if(i >= SOME_VALUE) // Note: >= used just as insurance { assert(i == SOME_VALUE);// If assert fires there's a design error more code } (To be clear, this makes sense only in the case where i is incrementing in some manner). As I have written before, the default behavior of assert consumes a lot of memory. It's trivial to write a more firmware-friendly one that uses few resources. I have been astonished at how little code an assert can generate on modern CPUs even when the argument looks complicated. What do you think? |
||||||
Sequence Points | ||||||
Chip Overclock's most recent blog posting has a fun snippet of code. Do you know what this will do? #include <stdio.h> void main() { int x; int y; y = (x = 3) + (x = 4); printf("%d %d\n", x, y); } For the answer go here. |
||||||
Jobs! | ||||||
Let me know if you’re hiring embedded engineers. No recruiters please, and I reserve the right to edit ads to fit the format and intents of this newsletter. Please keep it to 100 words. |
||||||
Joke For The Week | ||||||
Note: These jokes are archived at www.ganssle.com/jokes.htm. Jim Hanley was told a story rather like the one in Muse 268: This reminds me of a story I heard years ago from my father who worked for NYT (New York Tel). They supplied the audio feed to WKBW AM, a high powered radio station whose antennas were located in the town of Hamburg, south of Buffalo. A woman complained that when she flushed her toilet, she could hear the radio station faintly in the bathroom for a while. She lived on Big Tree Road, right across the street from the antenna farm. |
||||||
Advertise With Us | ||||||
Advertise in The Embedded Muse! Over 23,000 embedded developers get this twice-monthly publication. . |
||||||
About The Embedded Muse | ||||||
The Embedded Muse is Jack Ganssle's newsletter. Send complaints, comments, and contributions to me at jack@ganssle.com. The Embedded Muse is supported by The Ganssle Group, whose mission is to help embedded folks get better products to market faster. |