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

Back to Subject List

Old thread has been locked -- no new posts accepted in this thread
???
03/24/10 11:52
Modified:
  03/24/10 11:53

Read: times


 
#174467 - compiler specific
Responding to: ???'s previous message
Yaniv K. said:
First of all, Just would like to point out that I am new with x51 Microprocessors (or Microprocessors in general)

Does that also include 'C' programming in general?

so please excuse my lack of in-depth knowledge and lack of experience.

Do take time to check-out the tutorials & FAQs on this site - see the sidebar.

And, of course, the Keil Manuals: http://www.keil.com/support/man_c51.htm

There's also a booklist here: http://www.keil.com/books - they aren't all Keil-specific.

I dont really understand how do I specify to the compiler to use the build in EPROM?

The standard 'C' language knows absolutely nothing whatsoever about that - so it's down to specific language extensions provided by the compiler.

For Keil, their C51 language extensions are summarised here: http://www.keil.com/support/m...nsions.htm


I tried "idata" and just "data"

First, you need to check the Datasheet for the specific chip that you're using; that will tell you whether the EEPROM appears in IDATA or DATA or some other memory space.

Note, however, that the EEPROM might not be memory-mapped at all; you might just have to access it via SFRs (Special Function Registers) - as if it were an external device connected to a port.

Only the Datasheet for the specific chip can tell you this.


but the compiler gave me an error.

It's really not useful to just say that!

You need to show the actual code that you used, and the full text of the message from the compiler - use copy & paste; do not manually re-type it.

And I assume Xdata isnt going to work.

Never just assume - always check for specific details in the Datasheet!

I use Keil uVision4 as compiler, 80C5131A-UM for Micro and C51 as programming language.


heres the code segment that giving me a hard time

unsigned char idata encrypted_password[7000] _at_ 0x0000;
unsigned char idata user_name[22400] _at_ 0x1B5A;
unsigned char idata user_level[1400] _at_ 0x72DB;

 

Yes, it's basic tutorial time - check the sizes of DATA and IDATA...

See also: http://www.keil.com/support/m...atamem.htm



List of 15 messages in thread
TopicAuthorDate
Atmel 89C5131A-UM Internal memory programming            01/01/70 00:00      
   compiler specific            01/01/70 00:00      
      Reply            01/01/70 00:00      
         Sample code?            01/01/70 00:00      
   Timers            01/01/70 00:00      
      Timers Reply            01/01/70 00:00      
         Have you looked at the tutorials yet?            01/01/70 00:00      
         it's all for assembler - but that doesn't matter!            01/01/70 00:00      
   Huge amounts of data            01/01/70 00:00      
      disregard the large numbers            01/01/70 00:00      
         No compiler support for EEPROM            01/01/70 00:00      
            compiler handling the EEPROM transparently            01/01/70 00:00      
               I did not know Keil helper functions.            01/01/70 00:00      
                  It's part of the "xdata banking" support            01/01/70 00:00      
                     Previously, on 8052.com...            01/01/70 00:00      

Back to Subject List