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 07:59
Modified:
  03/16/05 07:59

Read: times


 
#89761 - Great suggestions
Responding to: ???'s previous message
Massimo Battiston said:
Hi,
j think the suggestion of using sdcc is a good idea for a student.
Anyway if you want to continue using Keil j can suggest :
- Use a higher optimisation level.
- Use the small memory model
- Set the "code Rom Size" to "small".
- Enable the "global register coloring" option. This will increase the compile time but usually save some bytes of code.
- If you use pointers try to use memory specific pointers like :
char data* Pchar. This will help a lot but however you loose flexibility.
- Try to use variables of 8 bit lenght maximun (remember 8051 is a 8 bit microcontroller).

However the effect of the solutions depends on your application, and how the code is written.

Best regards.

Massimo.

These are all excellent suggestions. Of course it is also worth mentioning that use of large standard library routines (i.e., printf()) will add signficantly to code size as well.

The bottom line is that a lot of constructs that are perfectly reasonable on a PC are remarkably inefficient on an 8051 (i.e., non-memory specific pointers). Keil lets us use these constructs both for convenience and compatibility, but that does not necessarily make them appropriate. Effectively programming an 8051 in C requires not only knowledge of C, but also a good understanding of the underlying architecture and how the C code being written maps on to it.

Chapter 3 of the "Getting Started with uVision2" manual nicely summarizes some of the key issues discusssed here. It is definitely worthwhile reading for anyone that is new to the toolchain.

--Sasha Jevtic

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