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

Back to Subject List

Old thread has been locked -- no new posts accepted in this thread
???
09/20/06 12:28
Read: times


 
#124668 - it is still 'hidden' and BTW why hide it
Responding to: ???'s previous message
The reason to spend some number of machine cycles on the overhead of the function call is so that you can hide the implementation of GlobalSerialBuffer[] from the other modules.

You are using the old mantra "programming ease is more important than process efficiency". That may be a good approach where you make 5 thingies and programming cost far outweigh adding $5 to the cost of the chip to achieve needed speed and/or memory. If you make 1.000.000 thingies, that is pure unadulterated male cow manure. Of course, for a PC it was thought "that does not matter since no hardware is already there", but how often have you wondered why things run slower today on out multigigahertz machines than the did on our old 10MHz XP. I get furious when complaining about the sloveness of a PC app (NOHAU is a great example) and am told "just buy a faster PC".

Assuming that the serial routine does the verification, checksumming etc (as it should do) whatever way you implement the serial routine, there will, somewhere be a "GlobalSerialBuffer[]" with the actual data.

so what we are discussing is nothing but "how to get data from "GlobalSerialBuffer[]"

so, if the method of stuffing, checking or whatever of is changed, the contents of "GlobalSerialBuffer[]" will not change so "then you have to find and fix every single place that references the buffer" is simply not true.

Or suppose that you want to change GlobalSerialBuffer[] from a linear buffer to a circular buffer of some kind.
That simply means that you did not do your homework before you implemented the "GlobalSerialBuffer[]". I can see that, if your approach is to haphazardly set out programming something, then the 'hiding' makes sense.

Say that something changes and you suddenly have to accommodate a ten-byte message preamble that's sitting in the buffer
no problem
.asm
Preamble buffer ds 1034
GlobalSerialBuffer equ Preamble buffer + 10
.h
extern Preamble buffer[1034]
extern GlobalSerialBuffer[1024]

store in Preamble buffer
read from GlobalSerialBuffer

please do understand that I am not, actually, arguaing against what you say, I am arging agaist preaching it as gospel.

Erik


List of 56 messages in thread
TopicAuthorDate
Variables within ISR            01/01/70 00:00      
   static            01/01/70 00:00      
      Static, link            01/01/70 00:00      
   beware            01/01/70 00:00      
      Modular Programming            01/01/70 00:00      
         a rebuttal            01/01/70 00:00      
            A Faq about...            01/01/70 00:00      
            Global variables            01/01/70 00:00      
               "Self Documenting"            01/01/70 00:00      
            Global Variables Compromise Modularity            01/01/70 00:00      
               Module vs Global scope            01/01/70 00:00      
               file static            01/01/70 00:00      
                  RE: file static            01/01/70 00:00      
                     extern does matter            01/01/70 00:00      
                  Undeclared Variables            01/01/70 00:00      
                     to Russ            01/01/70 00:00      
                     try this            01/01/70 00:00      
                        Re: try this            01/01/70 00:00      
               Not Evil            01/01/70 00:00      
               module variables            01/01/70 00:00      
                  yes and no all must be weighed            01/01/70 00:00      
         Hmm            01/01/70 00:00      
            the advantages of not suffering from interruptifob            01/01/70 00:00      
            That is the typical way            01/01/70 00:00      
               yes, absolutely            01/01/70 00:00      
                  Depends on the use            01/01/70 00:00      
                     every rule can (and should) be broken            01/01/70 00:00      
            Fixing Problems vs. Hiding Them            01/01/70 00:00      
               I agree, but many take this as an excuse            01/01/70 00:00      
                  Be Defensive            01/01/70 00:00      
   A Module Example            01/01/70 00:00      
      if we are to give examples            01/01/70 00:00      
         Poor example            01/01/70 00:00      
            not so poor            01/01/70 00:00      
         Reasons to Waste Machine Cycles            01/01/70 00:00      
            it is still 'hidden' and BTW why hide it            01/01/70 00:00      
               I'm Done Preaching            01/01/70 00:00      
                  I hope that as well            01/01/70 00:00      
         to asm programmers..            01/01/70 00:00      
            Poor Logic            01/01/70 00:00      
               what an utterly stupid teacher            01/01/70 00:00      
                  OO            01/01/70 00:00      
                     No            01/01/70 00:00      
                     What OOP tells you            01/01/70 00:00      
                        A long Time ago            01/01/70 00:00      
                  I disagree            01/01/70 00:00      
                     some of the worst 'spaghetti' I have seen            01/01/70 00:00      
               Rules in C            01/01/70 00:00      
                  rules imposed on C            01/01/70 00:00      
                     Language Problems            01/01/70 00:00      
            that is very relevant            01/01/70 00:00      
         what about the library?            01/01/70 00:00      
            OH NO            01/01/70 00:00      
               Experience is the best teacher            01/01/70 00:00      
                  overlay            01/01/70 00:00      
                  to Russell            01/01/70 00:00      

Back to Subject List