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

Back to Subject List

Old thread has been locked -- no new posts accepted in this thread
???
03/16/05 16:55
Read: times


 
Msg Score: +1
 +1 Good Answer/Helpful
#89783 - C limitations
Responding to: ???'s previous message
Many others have have given excellent posts on the limitations of C in general and some on the specific problems on an 8 bit micro. I would just like to add that most C compilers pass parameters to functions on the stack and also use the stack for variables that are local to a function. Most 8051 C compilers do not do this because of the very small size of stack available on the 8051. Many use the registers to pass parameters but this causes problems as soon as you nest subroutines. Some compilers even look at the call sequence of your code and try to minimise the number of registers used by reusing ones that they reckon will not overlap in execution.

All this means is that once the code has been optimised, if you make a small change to the call sequence, the code timing could change a lot. One way to minimise this is to pass as few parameters as possible and use global variables wherever possible. This will certainly reduce code size and speed up execution but goes against the software gurus ideas of code modularity and managing the scope of variables.

Of course, in assembler none of this is a problem.

Ian

List of 63 messages in thread
TopicAuthorDate
Optimized Code for Keil C Compiler            01/01/70 00:00      
   well            01/01/70 00:00      
      optimize Keil            01/01/70 00:00      
         Great suggestions            01/01/70 00:00      
            Have we been taken over            01/01/70 00:00      
               Thanks for great suggestion!            01/01/70 00:00      
                  SDCC without headaches...            01/01/70 00:00      
   student??            01/01/70 00:00      
      cost?            01/01/70 00:00      
      SDCC            01/01/70 00:00      
   C51 Primer            01/01/70 00:00      
   If you need to be optimum - don't use C            01/01/70 00:00      
      Search; Manual            01/01/70 00:00      
   does not jive            01/01/70 00:00      
   glue code            01/01/70 00:00      
   Post it if...            01/01/70 00:00      
   C limitations            01/01/70 00:00      
      Kind of is a problem            01/01/70 00:00      
         Poor old 'C'            01/01/70 00:00      
            I disagree            01/01/70 00:00      
               Let's talk about goto...            01/01/70 00:00      
                  file-scope globals            01/01/70 00:00      
            Asm vs C            01/01/70 00:00      
               absolutotally beautiful            01/01/70 00:00      
               Asm vs C            01/01/70 00:00      
                  Old Chestnuts            01/01/70 00:00      
                     perfectly valid for a one man project            01/01/70 00:00      
                        many men            01/01/70 00:00      
                        re my above post            01/01/70 00:00      
                     Known to every 'C' programmer            01/01/70 00:00      
                        Asset or Liability?            01/01/70 00:00      
                           Standard library a liability?            01/01/70 00:00      
                              C Library            01/01/70 00:00      
                                 ASM library            01/01/70 00:00      
                                    Libraries            01/01/70 00:00      
                                       Or not            01/01/70 00:00      
                                          Stuff            01/01/70 00:00      
                                          My Stuff            01/01/70 00:00      
                           Certainly not a liability!            01/01/70 00:00      
                  Passe            01/01/70 00:00      
                     Graphics and Hieroglyphics...            01/01/70 00:00      
                        I disagree!            01/01/70 00:00      
                           Fully agree            01/01/70 00:00      
                              Graphical design & code-generation            01/01/70 00:00      
                                 Here is some appple to apple comparison            01/01/70 00:00      
                                    a small correction            01/01/70 00:00      
                                    Apples vs Apple Trees?            01/01/70 00:00      
                                    OT labview            01/01/70 00:00      
                                       OT- Replied...            01/01/70 00:00      
      gurus            01/01/70 00:00      
         Best Person for the Job            01/01/70 00:00      
            Best of both worlds            01/01/70 00:00      
               Becoming effective with embedded C            01/01/70 00:00      
      More thoughts on C            01/01/70 00:00      
         Software Engineering            01/01/70 00:00      
            Agree, with caveat            01/01/70 00:00      
               One project, One file            01/01/70 00:00      
                  One project, One file - metalink            01/01/70 00:00      
                     Of course will do..            01/01/70 00:00      
                  One file development            01/01/70 00:00      
                  One project, Multiple files            01/01/70 00:00      
   In a land far far away....            01/01/70 00:00      
      some loon            01/01/70 00:00      

Back to Subject List