Hi, I have the following two doubts: 1) When should I use Dallas contiguous mode:512k vs Dallas contiguous mode: 16M ? 512k is enough for me but I do not know if I get some advantages with 16M mode!? 2) How to locate all functions in a file to a specific location: example 102H? filename: ulm.c Thanks joao
When should I use Dallas contiguous mode:512k vs Dallas contiguous mode: 16M ? 512k is enough for me but I do not know if I get some advantages with 16M mode!? Refer to the compiler manual for an explanation of 512K vs 16M. http://www.keil.com/support/man/docs/c51/c51_rom.htm The only real difference is the size of jmp and call instructions. Obviously, the longer instructions (for 16M) take longer to execute because they must fetch an extra byte. They also use up more code space. Jon
1) Mr. Jon Ward Thanks. I have a program with just 4355 bytes of code on both modes! It uses Cx51 and Lx51. Probably you are wright regarding speed but size is not very clear to me since 19 and 24 bit both use 3 byte pointers! My guess is that the compiler must know if we are using paged or segmented mode but I was wondered if any other "compiler effects" could happen! speed if of course important:) 2) Mr.Andrew Neil Thanks. After looking I have found and tested with success : ?PR?*?ulm(C:0x0102) But looking at the map another doubt come in to me: I use FVAR on ulm.c FVAR is calling ?C?CLDPTR and ?C?CSTPTR Also I am seing a call to ?C?ULSHR and ?C?CLDPTR. I need to have every code executed "within" ulm.c placed on internal memory so I also have to locate these functions. Do they belong to ?C?LIB_CODE ? So, I just need to locate it!
Probably you are wright regarding speed but size is not very clear to me since 19 and 24 bit both use 3 byte pointers! Wrong. The size of an AJMP instruction on the Dallas 390/400/5240 is 3 bytes and the size of the LJMP instruction is 4 bytes. The AJMP instruction has a 19-bit address. 3 of those bits are encoded in the opcode. Ergo, there are 8 AJMP instructions. Jon
View all questions in Keil forum