Email: Password: Remember Me | Create Account (Free)

Back to Subject List

Old thread has been locked -- no new posts accepted in this thread
???
08/19/09 14:25
Read: times


 
#168396 - The embedded world is larger than your tiny island
Responding to: ???'s previous message
Richard Erlacher said:
Per Westermark said:
Richard said:
I can say that because much of the code I've worked on was written in ASM 20-30 years ago and the product is still in operation being used as intended, and simply required a bit of upgrading to add or support additional equipment or features.

Maybe not so relevant. The question is: Do you have recent knowledge from extensive work in both assembler and C? To compare an apple to a pear, you need similar experiences with both.

I'm not sure I need recent experience with HLL's to make the decision that the macroassembler does the job adequately. Further, I don't believe the HLL is particularly helpful for the small programs that can be managed on an 805x.

The question is: Without recent experience with HLL's, you will have a hard time to figure out how good a C compiler can be at doing the job.

Next thing - what "small programs that can be managed on an 805x"? A 8051 with 64kB of code space (and not filling the flash with just lookup tables) can handle very complex operations. It is most often the fantasy of the developer who sets the limit. Remember that most control systems don't need reaction times in the low us range but are fine with 10ms or 100ms response times. 64kB is room enough for a huge set of rules, and 10ms or 100ms is enough time for a huge number of computations.

Richard said:
Nobody produces the same hardware. We simply continue to use the same hardware that was built 30 years ago. There's been no need to produce anything except as requirements have crept up. It is, after all, a one-off.

So, you are giving an example of a one-off product, while your main thing all the time is the production costs of your high-volume products? You are switching directions wildly with your arguments - are you feeling cornered, or just having a hard time focusing on what your arguments are?

For a one-off, I would not consider the potential to save cents on the processor. I would consider the development time.

Richard said:
Richard said:
Don't forget the microcontroller task:

Examine inputs (including current context) and take appropriate action.

But the controlling part can be quite complex. And when a system is non-linear, or you have unknown constants, it may not be applicable to use lookup tables.

The "controlling" part is just a set of jump-tables. That's why it's large but fast. For each set of inputs, in each context, there's a jump table. That's what does the lookup. It's just about six lines of ASM, of which four are always the same.

Yes, I do know that your jump-tables are used for lookups. That is what they are used for... But the issue is that jump tables can only solve a limited set of problems without having the size (and number of lookup levels) quickly explode into infinity.

Richard said:
Richard said:
What simpler method than table-lookup could there be?

It may be simple, but only capable of handling a subset of problems without exploding to infinite size. And if the customer is allowed to configure the behaviour, you may have to build the tables dynamically and store in way more expensive RAM. And if the system is non-trivial, you would normally not build your tables by hand, but instead use software to generate them.


It can't become infinite because the number of inputs is finite. It can only handle a subset of all possible problems, but every other MCU has a finite number of inputs, too, and that regardless of whether it's in ASM or HLL.

Did you really read what I wrote?
Did you understand it?

When you add time as a parameter, then a limited number of inputs will still represent an infinite state. Input A is low. Input A is high and changed "now". Input A is high and changed within 5 seconds. Input A is high and changed within 10 seconds. ...

The processor may have 8 analog inputs. Each input may have a 10-bit range. Now you have 80 bits of input. Combine your analog readings with filtering for short-term noise and then add long-term trend processing and the states will grow quickly.

And when the customer may adjust parameters (or the system is self-learning), you will either have to use explicit code, or dynamically build your tables. If you store dynamically built (and large) tables in RAM, you will quickly need a lot of RAM, which will limit the number of applicable processors.

And if you need code to build the lookup tables in the product, then that code is way faster to write in C than in assembler.

List of 131 messages in thread
TopicAuthorDate
Article: "Real engineers program in C"            01/01/70 00:00      
   C and Latin            01/01/70 00:00      
      similarities between English and C            01/01/70 00:00      
         all sorts of similarities            01/01/70 00:00      
      NOT engineers.....            01/01/70 00:00      
         I think that was his point?            01/01/70 00:00      
            I know            01/01/70 00:00      
               I also don't know if his diagram on Page 3 is right            01/01/70 00:00      
   fewer ASM developers            01/01/70 00:00      
   languages            01/01/70 00:00      
   Muscle Vs Fat            01/01/70 00:00      
      apples vs bears            01/01/70 00:00      
         Wait a minute, pilgrim!            01/01/70 00:00      
            pilgrim has arrived            01/01/70 00:00      
            Break out that DOS Computer            01/01/70 00:00      
               I do that quite often!            01/01/70 00:00      
            blame drivers            01/01/70 00:00      
               Equip them right and they seem to work ... sort-of            01/01/70 00:00      
                  Engineers and Marketing guys            01/01/70 00:00      
            jeeziz x kryst            01/01/70 00:00      
               So ... Why do you do all that?            01/01/70 00:00      
                  wrong choice of word            01/01/70 00:00      
                     It's just a millstone ...            01/01/70 00:00      
                  re: why?            01/01/70 00:00      
      My computer _boots_ faster than that.            01/01/70 00:00      
         DMA?            01/01/70 00:00      
      Maybe it's the amount of memory            01/01/70 00:00      
         The cost of mutlitasking..            01/01/70 00:00      
         haven't any time to waste            01/01/70 00:00      
            That would be too slow!            01/01/70 00:00      
               I see no ships!            01/01/70 00:00      
               Isn't 4k plenty for a '51?            01/01/70 00:00      
                  which '51 does have that?            01/01/70 00:00      
                     Erik would call those "deviates".            01/01/70 00:00      
                        nope            01/01/70 00:00      
                        pipelines, cars, and real engineers            01/01/70 00:00      
                           It's also pipelined.            01/01/70 00:00      
                              then it's irrelevant            01/01/70 00:00      
                  If you can ignore those features            01/01/70 00:00      
               keeping up            01/01/70 00:00      
                  I feel your pain ...            01/01/70 00:00      
                     Don't see problems - see possibilities            01/01/70 00:00      
                        Do you really want to hide from reality?            01/01/70 00:00      
                           Always hiding behind excuses            01/01/70 00:00      
                              What excuses?            01/01/70 00:00      
                                 Your excuses            01/01/70 00:00      
                                    Do you directly or indirectly work for Keil?            01/01/70 00:00      
                                       BULL!!            01/01/70 00:00      
                                          I don't harbor any animosity, but I don't like being lied-to            01/01/70 00:00      
                                             you "understand well enough"            01/01/70 00:00      
                                                I have to agree ... evaluation takes time ...            01/01/70 00:00      
                                                   this is where I think I'm the realist            01/01/70 00:00      
                                                      If only the pieces were separately available ...            01/01/70 00:00      
                                                         I can't and would never            01/01/70 00:00      
                                                            So ... Who's a simulator specialist?            01/01/70 00:00      
                                                               don't know, don't care            01/01/70 00:00      
                                                                  So why even mention it?            01/01/70 00:00      
                                                                     because someone (you?) brought it up            01/01/70 00:00      
                                       Tangential Richard at work            01/01/70 00:00      
                           the pot calling the kettle black            01/01/70 00:00      
                     that's the crux            01/01/70 00:00      
                        It's a matter of realism            01/01/70 00:00      
                           well, if you do not have the time to evaluate, your points            01/01/70 00:00      
                              I have to disagree ...            01/01/70 00:00      
                                 no need            01/01/70 00:00      
                                    That would be an ideal fix!            01/01/70 00:00      
                  no way            01/01/70 00:00      
                     but only if we both define a project            01/01/70 00:00      
                        oh, that's no proof then...            01/01/70 00:00      
                           It would be a nice idea, but how would you time it?            01/01/70 00:00      
                           you did not read what I said            01/01/70 00:00      
                              implication and how to challenge it            01/01/70 00:00      
                                 disassembly            01/01/70 00:00      
                                    Encryption module?            01/01/70 00:00      
                                    not at all            01/01/70 00:00      
                                       It's clear to see that some folks really like 'C'            01/01/70 00:00      
                                          can you only like one thing?            01/01/70 00:00      
                                             Yes, but ...            01/01/70 00:00      
                                                you can boil steak too            01/01/70 00:00      
                                                   but you don't have to do that            01/01/70 00:00      
                                                      but you just said            01/01/70 00:00      
                                       no praise, just not hate            01/01/70 00:00      
                                          That makes sense            01/01/70 00:00      
                                          not that claim            01/01/70 00:00      
                                             again you miss 'usually', 'mostly', 'often', etc            01/01/70 00:00      
                                                Not so ... exactly            01/01/70 00:00      
                                                   Based on what experience?            01/01/70 00:00      
                                                      That's not how it works            01/01/70 00:00      
                                                         maintenance is a totally different issue            01/01/70 00:00      
                                                         apples to pears?            01/01/70 00:00      
                                                            I don't need to compare/contrast apples and pears            01/01/70 00:00      
                                                               The embedded world is larger than your tiny island            01/01/70 00:00      
                                                   IF            01/01/70 00:00      
                                                      It's all about initial hardware cost, not maintenance cost.            01/01/70 00:00      
                                                         Value of investment            01/01/70 00:00      
                                                         Not Here            01/01/70 00:00      
                                                         Whose business?            01/01/70 00:00      
                                                            What do you mean by "code analysis tools"?            01/01/70 00:00      
                                                               Some important tests            01/01/70 00:00      
                                                                  Yes, those come up in HLL, but ...            01/01/70 00:00      
                                                                     Memory leaks nothing to do with HLL            01/01/70 00:00      
                                                                        Yeah, you can do that ... but it's not recommended            01/01/70 00:00      
                                                                           More way than one to create memory leaks            01/01/70 00:00      
                                                                           that is not applicable to small embedded            01/01/70 00:00      
                                                                     Way easier to analyse non-goto code            01/01/70 00:00      
                                                                        and why would that be?            01/01/70 00:00      
                                                                           General purpose languages normally allows dangers            01/01/70 00:00      
                                                                              You still don't get the point, Per            01/01/70 00:00      
                                                                                 Wrong question            01/01/70 00:00      
                                                                                    what view?            01/01/70 00:00      
                                                                                       and the answer is            01/01/70 00:00      
                                                                                       can be seen as a leading question            01/01/70 00:00      
                                                                        Careful now! Some folks like Pascal for the '51            01/01/70 00:00      
                                                                           Why?            01/01/70 00:00      
                                                                        Some things depend on your point of view            01/01/70 00:00      
                                                                           Richard has never, ever, in his whole life implemented a bug            01/01/70 00:00      
                                                                              I may have written 'em, but I've never shipped 'em            01/01/70 00:00      
                                                               QAC and Polyspace            01/01/70 00:00      
                                                                  thanks, Oliver            01/01/70 00:00      
                                                                     MISRA and assembly don't mix well.            01/01/70 00:00      
                                                                        you can write FORTRAN in any language            01/01/70 00:00      
                                                                           I know ... but MISRA rules are explicit.            01/01/70 00:00      
                                                                              Not happy will all parts of MISRA            01/01/70 00:00      
                                                                                 Interesting discussion of MISRA C:            01/01/70 00:00      
                                                                                 Flawed but useful            01/01/70 00:00      
                                                                              Nested comments can produce different results            01/01/70 00:00      
                                                                           That's the thing with rules            01/01/70 00:00      
                                                                     Polyspace            01/01/70 00:00      
            Also in VB            01/01/70 00:00      
               Amazing!            01/01/70 00:00      
   You really are very naughty Andy            01/01/70 00:00      

Back to Subject List