HOME  |  NEWS  |  BLOGS  |  MESSAGES  |  FEATURES  |  VIDEOS  |  WEBINARS  |  INDUSTRIES  |  FOCUS ON FUNDAMENTALS
  |  REGISTER  |  LOGIN  |  HELP
Comments
You must login to participate in this chat. Please login.

Thanks for a very nice presentation

 

Iron

Thanks Jack, Alex and Digikey for wonderful presentation.

Iron

Jack best debug info I have found

Thanks

 

Iron

going through the slides...very informative Thanks Jack.

Iron

thanks again to the digikey and design news for the whole class lesson...much appreciated...

tomorrow, i will be going back for the next class lessons to finish before June 10 live class...

goodnight and thanks to all...thanks sir jack once again...

listening for the Q & A of the subject course...great explaination...

it's about to end the lesson and that'great presentation sir jack...hoping that you will come back again for another class...thanks alot...

i am now on slide 28 of the presentation...

just downloading first the presentation slides for reference of day 5 lecture...

good evening sir jack, i am here again for day 5 class session...

voltmeter measuring cpu duty cycle - classic !

Iron

Great session, thanks Jack and Alex

Iron

Great Class. Thank you Jack and Alex.

Iron

Thank you Jack and Alex! 

Thank you Jack and Alex for another great presentation.

Iron

How did you come up with that volt meter showing the duty cycle?

Iron

Some powerful imagery here, Jack.  I am sure that more than one viewer is going to be using some images like these in future meetings when being backed into a corner with deadlines! (I know I intend to!)

Iron

That is great with the sailing equipment prices!

Iron

excellent! & thanks

Iron

Great session, and excellent series!

Iron

Good presentation again, very good series on Microcontroller Fundamentals from both courses.  One of the comments mentioned 'homework'.  I was going to suggest a ten question 'for thought' listing (ok, call it a quiz) or for further research.  Jack (and the work) is going to India ...

Which RTOS is preffered in Automotive Industry. I want to do work in embedded systems for Automotives. Thanks to DesignNews and DigiKey for such courses.

Iron

Great idea on measuring task activity Jack !  (R-2R ladder)

Iron

Excellent session, Jack!

Iron

 I know a couple that use Fortran.

Iron

I know of one guy that still uses Forth. 

Iron

Is Forth still being used?

Iron

Great series! Thanks!!!

Iron

Great info! Thanks!

Iron

Thanks for a very informative series. I am looking forward to the next group.

Iron

Many thanks to Jack and Alex! Looking forward for the next track...

Iron

Great lecture today - some real eye openers for me...

Iron

Great idea to use GPIO pins as debug outputs to be analyzed with oscilloscope... I'm used to timestamped debug prints - this is something new to me... (may be obvious for an experienced embedded eng).

Iron

Sitting in a cold hotel room in Dresden, Germany, enjoying the recorded lecture... it's very very cold in europe...

Iron

Oops - missed the live lecture due to travel...

Iron

Thanks Jack, I up alot of tips this weeks

Iron
Very informative , thanks
Iron

Great to have Jack Hanssle!

Iron

Thank you for great week!

Iron

Have a safe trip, Jack! See you guys soon...

Iron

Thanks Jack for a great week. I've got lots of things to study now...

s.schmiedl: Thanks on ADA link. Haven't heard much about it for years. Is it still the defailt software for DOD?

ah, well ... I have to leave. My wife's uncle's daugther's son's laptop needs fixing (I'm on my way to ***********i = 0)

Iron

Mr. E: I'd interpret that data as you said, too. "some bugs slip through" and the first customer finds one during the first seconds of using the device.

Iron

Thanks everyone .... ina couple of weeks.

Iron

Have a great trip to India, Jack.

Iron

luizcosta: but they're nice and small caps :-) don't worry about it

Iron
Iron I'm sorry for the caps. This time I hit by mistake. :o)
Iron

On the far right of slide 4 "Benchmarking Your Group" it seems to say that less than 1% of projects achieve >99% Defect Removal Efficiency, but even when they do, they leave 66 bugs/KLOC on average. Is that right?

Iron

kenstan: http://www.atmel.com/microsite/avr_studio_5/default.asp?source=redirect

Iron usually what we do is benchmark with the simplest argument possible, and measure the overhead of the method.
Iron

Thanks for your tips, Jack

http://www.eetimes.com/discussion/beginner-s-corner/4024497/Introduction-to-Ada-95

Iron

luizcosta: that depends on what you put inside. It might require a single comparison or executing a complex callchain...

Iron

Is ADA the Defense Department's take on a properly designed software language, or just a coding guideline to eliminate obfuscation?

Thanks for your classes, Jack. :)

Thanks for another informative class!

Jack, what is the typical time spent on a assert() and pre/postcondition() macros?

Iron

thanks much you take care

Iron

depending on the kind of interfaces you already have, logging to sd-cards might be possible, too

Iron

Jack, maybe you should do a class on Ada. :)

Sorry, folks, I have to run to the airport; headed to India. Thanks for all of the great questions!

Iron

kenstan, you have to tell us what chips you want to use it on for us to have any meaningful suggestions. :)

I can't think of a text about using hardware in debugging.

Iron

Any texts on the use of hardware techniques in debugging?

Iron

i what to upgrade to embedded c any sugestion?

 

Go for it! GCC is free, and there are a ton of other compilers out there.

Iron

i what to upgrade to embedded c any sugestion?

Iron

Error retention: Seems that storing a failure sequence in flash is the only way to go. Then the customer can sent the unit back to you to perform forensics...much better than having him complaign on the phone, and possibly the only way to capture real world failures you didn't find during development.

Jack, should we "assert(malloc())"?

 

You could; I prefer to use an IF in case the asserts are turned off for shipping. Malloc failures are unpredictable and you may not catch them all in the lab.

Iron

Thanks much Jack...been a great week..rewarding information

Iron

Jack, should we "assert(malloc())"?

I'm back after severe computer problems.

Iron

Thanks Jack. A great presentation

Iron

Is Jack's book available on Amazon?

 

Yep.

Iron

Alaskaman66: a few minutes ago, they had 8 left

Iron

Right, but shouldn't something like "assert()" be part of the language spec, if it's so important?


Well, assert() is part of C's spec, but I sure wish we had more powerful constructs like they do in Eiffel.

Iron

thanks Jack and Alex

Iron

When is seeding to catch bugs best done....while writing every few lines of code or after writing a few hundred lines, personally reviewing work you have done?

 

I put them in as I go along. Promising to go back and do work generally means the work doesn't get done.

Iron

Is Jack's book available on Amazon?

hehe .... http://www.eetimes.com/discussion/other/4008214/Why-aren-t-developers-interested-in-Ada- by Jack Ganssle

Iron

Jack, I don't get why preconditions and postconditions are costly but asserts are free.

Right, but shouldn't something like "assert()" be part of the language spec, if it's so important?

When is seeding to catch bugs best done....while writing every few lines of code or after writing a few hundred lines, personally reviewing work you have done?

Iron

Thanks, Jack per the scope recommendation. I had a problem determining the amplitude of voltage spikes in a system, and only after I checked a digital scope out of the tool crib was I able to capture that info - plus the rise time

Thanks for another good one, Jack.  Been a great week!

Iron

I mean, frankly, how preconditions and postconditions are dealt with should probably be part of a function's interface...

 

Sure, but to handle a lot of these may take a ton of code. And often no one knows what to do when a certain error happens. Asserts are cheap - you can sprinkly them around like Johny Appleseed!

Iron

Jack, are there any languages that might replace C that address the issues with C you've talked about? The preconditions, postconditions, malloc, exc.?

 

My favorite is Ada, and Ada has a free compiler and has been used on tons of embedded systems, even 8 bitters.

Iron

I mean, frankly, how preconditions and postconditions are dealt with should probably be part of a function's interface...

If the MCU project does not have a fancy GUI, what is the best way of alerting the user that an error has occured in code execution? We had Motorola products where the error code could be read only with a laptop, but when you powered the unit off, the error code was erased, and there was no way to recover what happened. (Some error codes covered multiple failures.)

 

I've done lots of things, even blinking an LED, like five blinks for error 5x, pause, and 3 for error x3, for a complete error of 53. Or put to LEDs, or store in flash memory.

Iron

@snadu13 : chek it's price on their site

Iron

Jack, are there any languages that might replace C that address the issues with C you've talked about? The preconditions, postconditions, malloc, exc.?

What are the units for the axes on slide 16?

 

Vertical is cost to fix the bug in normalized units; horizontal is the bug number.

Iron

When is seeding to catch bugs best done....while writing every few lines of code or after writing a few hundred lines, personally reviewing work you have done?

The reason I ask is that while construction code not all can immeadiately look critically at few lines of code just written....... so seeding might best be handled as a recursive exercise as a programmer re-assesses the composed logical paths written.

Iron

@s.schmiedl - Yep, I saw  "The Art of Designing Embedded Systems" by a certain Jack G. Ganssle on Jack's website but haven't ordered it yet.

Iron

If the MCU project does not have a fancy GUI, what is the best way of alerting the user that an error has occured in code execution? We had Motorola products where the error code could be read only with a laptop, but when you powered the unit off, the error code was erased, and there was no way to recover what happened. (Some error codes covered multiple failures.)

What would be the cost of MSO 2024 Iin sale?

Iron

S.Schmiedl - Good point, also may be easier to force messages that are out of range to see if you are covering error conditions.  Thanks.

Iron

What are the units for the axes on slide 16?

Iron

MSO 2024 scope from Tektronix is more than good for all your needs, and also has a 16 bit logic analizer.    and it is in sale !

 

That's a great scope.

Iron

tcryar: you might also want to look at "The Art of Designing Embedded Systems" by a certain Jack G. Ganssle

Iron

MSO 2024 scope from Tektronix is more than good for all your needs, and also has a 16 bit logic analizer.    and it is in sale !

Iron

Jack. Sorry for my ignorance. The vom is connected at what points of the board?

 

I should have been clearer - it goes to the I/O pin your code toggles when the system is idle.

Iron

Thank You, both series very informative.

Iron

Slide 23: the scope trace for debug IO's ... Considering the current speeed of MCU's what speed in MHZ does the scope need to be. And how much more useful is a digital memory scope? Thanks.

 

Oh, say 100 MHz for most CPUs. My main scope is 500 MHz and has been great. Today I HIGHLY recommend a digital scope. They do so much for you!

Iron

Tony H: I'd expect partitioning to make things easier to debug. Not least because you can "fake" input without having to use real hardware

Iron

Jack. Sorry for my ignorance. The vom is connected at what points of the board?

Iron

Thanks Jack!  Top notch stuff!!

Iron

@jack21:  With your verbal explanations, I do feel I understand (most) of what was presented.  

Thanks.  And special thanks for the "real-world" tips like the analog voltmeter technique.

 

Iron

Jack, does the hardware partitioning discussed earlier this week add complexity to debugging and embedded system due to the communications between the hardware modules versus a non-partitioned system?

 

Sure, but in the example I used, I showed that even with a 10% overhead for comm, the schedule is much shorter than a single CPU.

Iron

Thank you Jack, Alex and all for a great week of learning and shared experience.

Iron

Is that uC Probe from Micrium ONLY for use on uC projects (running micrium's OS)?

 

No, it'll work with most any OS.

Iron

Slide 23: the scope trace for debug IO's ... Considering the current speeed of MCU's what speed in MHZ does the scope need to be. And how much more useful is a digital memory scope? Thanks.

@tcryar that good but which have you been using?

Iron

@tcryar : you will need to do it on your particula chip you use.

Iron

Jack, does the hardware partitioning discussed earlier this week add complexity to debugging and embedded system due to the communications between the hardware modules versus a non-partitioned system?

Iron

The analog meter is used as current meter. Right?

 

It's a VOM - a volt-ohmmeter.

Iron

I kept loosing audio with refresh timeouts. I lost alot of the conversation, thanks to all for the blog.

Iron

Jack, any email we can contact you for further future questions, concerns, issues?

Iron

Very much informative sessions.. Thanks Jack for sharing..

Iron

Very good two series.  I liked them and would like more of them.

Iron

Perfect series! Thank you very much Jack and Alex.

Iron

Thanks you Jack and Alex!

Iron

OK, I get it.  I will be digging out my ASM coding books and study them (again).

Iron

Amazing sessions, thank you so much!

Iron

Is that uC Probe from Micrium ONLY for use on uC projects (running micrium's OS)?

Iron

It is painful if you don't have a good library of tested small modules. If you do, the task becomes much easier

Iron

Alex, is there a Design East?

I remember a project  that used address states to generate xy vectors on a scope. low 8 bits on one axis, high 8 bits on the other and you could watch the code execution for problems. It gererated a signature.

Iron

Jack. Excellent presentation.

Iron

@danlafleur : and also very understandable.   you know every time "who" is going and where.

Iron

I like writing assembly but I have found writing large applications in assembly is VERY painful.  There are things compilers do that are non trivial that you have to do yourself if you don't use one.

Iron

Slide 14 - Don't check for correct inputs from error prone soirces, such as people...

What about situations like multiple button pushes, or improper value inputs - two decimal points in a number, for example. Don't these need to be addressed?

Thank you Jack, Alex, and Digikey for this great concept of continuing education. Any place we can give you 5 stars? If not, I am giving it here. Thanks a bunch!

Iron

Thank You for so many great thoughts, concepts and tips. It's very generous of you. Thank You!

Iron

C was designed for writing OSes.  If that is what you are writing, it is probably a good fit

Iron

asm is as simple as it gets.

Iron

The analog meter is used as current meter. Right?

Iron

jack21: Let's assume that you have enough code space to leave assertions in the production code.
What should do assert do in production? Trigger a special interrupt?

Iron

we use "RESET" instruction to fill memory in production code, often other instruction when developing.  this way things should continue to run for the application but it is easy to detect the restart

Iron

@danlafleur : base on that, asm is quite simple, no ?

Iron

Kind of low pass filter

 

thanks alex and jack. great learning experience, very informative this track is! 

Iron

Back in the 80's, when I was designing keyboards, we would look at the keycode table to make sure there were no unknown code loops that the processor could get stuck running.

Iron

@syakovac: here you can read more: http://en.wikipedia.org/wiki/INT_%28x86_instruction%29

Iron

thanks for the lecture

Iron

@slk, remember your roots. I learned how computers worked at the bit and machine language level, some time ago. That level of detail doesn't leave easily.

Iron

Great information, Thank you for the lecture

Iron

Is that uC Probe from Micrium ONLY for use on uC projects (running micrium's OS)?

 

Iron

what is macro assembler

Iron

Thank you, Jack & Alex.

Iron

thanks Jack.  you helped with some very perplexing problems.

kenstan - it all depends - I'd use C mostly but fine tune with assembly for critical routines

Iron

great job, I can't wait to listen to the ones that I missed.

Many thanks , Jack, for this wonderful presentation.

Iron

thanks for the tips !

Iron

Good presentation. Several ideas I had been exposed to previuosly.

break interrupt.  I am not familiar with that.  Thanks.

Iron

Thanks so much, Jack/Alex

Iron

Lots of good ideas I can't wait to try!

Iron

@john even what is  your take c or assembly

Iron

Jack - well done sir.

Iron

Thanks Alex and Jack

Iron

@danlafleur: i so agree!

Iron

@syakovac: break interrupt

Iron

Great presentation again, jack..

Iron

Thanks Jack. Great advices !

Thanks again Jack.  Excellent week of sessions.

 

What is an INT3 on slide 34?

Iron

@danlafleur : what is strange is how people are looking at you when you say that you are doing your code in asm.  C is all over, and asm for some is forgotten completely.

Iron

@EugeneM, with great power comes great responsibility!

Iron

if you have a powerful macro assembler, you can do a lot of higher level things (function and proc calls) but with assembly (I recall the pdp11 days)

Iron

@eugenem how do u mean?

Iron

yes, asm is more complicated, more powerful, more dangerous ;)

Iron

Is that uC Probe from Micrium ONLY for use on uC projects (running micrium's OS)?

 

Iron

can real time measurements be easily accomplised with c

Iron

after you get used to it, you don't want to use anything else

Iron

Comparison of setup trigger in C code vs. setup trigger on the board(external clock) in terms of accuracy and tracebility?

Iron

assy is harder to debug, but for me, it's much more comfortable to know the detail of what the code is doing.

Iron

in asm you have more control on what you are doing, even for some, it is more complicated.

Iron

I'm going to have to seriously think about these hardware approaches to software debugging - seem pretty cool.

Iron

personally I do, because most of my code tasks are real time measurements, and doing in assembly helped me to avoid many headaches I had in C

Iron

am still having audio problem

Iron

@ceribeiro do you think assembly is better than c

Iron

i find it faster to handle isr in assembly...

Iron

for critical timing, is it better to use machine langage

great h/w approach, and simple to peer into the code.

Iron

I like the $15 performance analyzer.  I used to work at Tektronix. That is funny.

Iron

ISR are better handled in .asm

Iron

kenstan, I don't read it that way.  C "may" be good for firmware, but from the slides it is good to use C to demo pseudocode.

Iron

not for me. I do it in assembly

Iron

are all this examples in c, does it mean c is the best for firmware 

Iron

As long as you don't have any subroutine calls

Iron
latency it is the most important thing to be consider for an ISR
Iron

malloc() is baaaaaad

Iron

with assembly, we should be able to calculate execution times based upon individual instructions.

Iron

Jack, should we simply do "assert(malloc())"?

 

Side effects??

Iron

Jack, should we simply do "assert(malloc())"?

Another "gotcha" that leads to hard to find errors is the fact that that digial numbers don't convert exactly to binary!  Go from decimal to binary and back to decimal and you may get things like 3.00000 turns into 2.999999999.

Iron

Alex, please provide a PDF Slide Deck next time.

I am on this session now, slide 15 right?

yes, indeed! do check for "impossible" conditions

Iron

If you get a chance, please join our Digi-Key Continuing Education Center LinkedIn Group at http://linkd.in/yoNGeY

Blogger

I missed alot of the previous lessons so I need to go to archive...But one comment that I have now is that sometimes both the engineer and programmer agree on the what the anwser is...it is getting there that sometimes creates bugs...elsewhere

Your thoughts?

 

yes, stack over/under flow is tricky to solve sometimes

 

Iron

are all this examples in c?

Iron

My code spews pea soup all the time...

Iron

"warning 666" - satanic side effects?  :)

 

in code like this the compiler changes the inner terms into some temp number

and sometimes these temp values change type and bad things happen

precise but not accurate

Iron

OK, so Jack's bill was off by 12 orders of magnitude, but at least the mantissa was right!

Iron

you are very rich if you could buy it. :-)

Iron

Slide 4: 1000 bugs/KLOC == a bug in every line?

 

Iron

Audio is lost here suddenly

Iron

yeah, audio is excellent today

Iron

@Jack, In real world, what is the approx percentage achieved??

Iron

Interesting start, but online.

Iron

Is there anyway to download these lectures or do you have to stream it from the archive?

 

Iron

slide 2. Refresh browser if no audio player.

Blogger

Hi Alex and Jack. Good to be here.

Iron

They'll start talking soon...

Iron

@joerock - You wouldn't happen to be the JR that used to be stationed in Colorado Springs, would you?

Iron

Ready for todays' class.. :-)

Iron

while(1) {

block talk radio

}

Iron

Happy Friday everyone!

Iron

Yes. Audio started here too.

Iron

romanw, I am in Colorado Springs - the front range got hit last night and today with about a foot or so of snow.  We need the moisture but it cancelled a Jazz competition that my daughter was looking forward to.

Iron

Hello all on this fine friday.

Iron

@jack21:  Today's session looks like some really heavy-duty information.  I may not understand it all today, but I appreciate your exposing me to the new info.  Seems like we should have homework assignments to drive the info home.  8-)

 

Iron

Oooh... just noticed that in my calender, today's session is called "Professional Bugging II", which should be a nice counterpoint to yesterday's "Professional DEbugging" :-D

Iron

John.evens: where are you; I have not seen the snow in a long time.

Iron

Grenning's book on Test Driven Development for Embedded C is available from The Pragmatic Bookshelf as a physical or eBook

 

Iron

@jack21: Thanks, Test Driven Development for Embedded C (Pragmatic Programmers), by James Grenning

Iron

hey jack21: look what popped up in my mailbox today:

 

Interesting - can't wait to read it.

Iron

page 2 has the graph for amdahl's law with different percentages of parallelizability (is that a word?)

Iron

Hello everybody.

Jack thanks again for sharing your excellent experience with us.

Iron

@jack21: Is there any book regarding TDD (Test Driven Development) for embedded systtems  ?

Sure, there's one by James Grenning; I forget the exact name.

Iron

correction: embedded systems ;)

Iron

@jack21: Is there any book regarding TDD (Test Driven Development) for embedded systtems  ?

Iron

I see a couple of early-birds are here already ... Hi Guys.

Iron

Be sure to click 'Today's Slide Deck' under Special Educational Materials above right to download the PowerPoint for today's session.

Blogger

The streaming audio player will appear on this web page when the show starts at 2pm eastern today. Note however that some companies block live audio streams. If when the show starts you don't hear any audio, try refreshing your browser.

Blogger

Let it snow, let it snow, let it snow !

Iron


Partner Zone
Latest Analysis
Halloween isn’t just a time for creative costumes. Thanks to the element14 online design community, the holiday this year also brings us a number of creative electronic device design ideas aimed at making your Halloween party a unique experience.
The Arduino is great for connecting with hardware but has a limited user interface. Apple’s iOS devices have a great user interface but are limited when connecting with hardware.
After a year or so of missteps, false starts, retractions, and postponements, inkjet office printer giant Hewlett-Packard has finally revealed just what it plans to do in 3D printing.
On April 15, 2010, President Barack Obama gave a major speech at the Kennedy Space Center in Florida, announcing that the US would send astronauts to Mars by the mid-2030s. But in order to do so, NASA would first need to ramp up its capabilities through missions directed toward "a series of increasingly demanding targets," i.e. asteroids.
Selfies have already ruined your nights out and your social media feeds. Now they're after your breakfast.
More:Blogs|News
Design News Webinar Series
10/7/2014 8:00 a.m. California / 11:00 a.m. New York
9/25/2014 11:00 a.m. California / 2:00 p.m. New York
9/10/2014 11:00 a.m. California / 2:00 p.m. New York
7/23/2014 11:00 a.m. California / 2:00 p.m. New York
Quick Poll
The Continuing Education Center offers engineers an entirely new way to get the education they need to formulate next-generation solutions.
Nov 3 - 7, Engineering Principles behind Advanced User Interface Technologies
SEMESTERS: 1  |  2  |  3  |  4  |  5  |  6


Focus on Fundamentals consists of 45-minute on-line classes that cover a host of technologies. You learn without leaving the comfort of your desk. All classes are taught by subject-matter experts and all are archived. So if you can't attend live, attend at your convenience.
Last Archived Class
Sponsored by Littelfuse
Learn More   |   Login   |   Archived Classes
Twitter Feed
Design News Twitter Feed
Like Us on Facebook

Sponsored Content

Technology Marketplace

Copyright © 2014 UBM Canon, A UBM company, All rights reserved. Privacy Policy | Terms of Service