This discussion has been locked.
You can no longer post new replies to this discussion. If you have a question you can start a new discussion

how to force constants into hconst

I am having a bit of a problem with constant arrays on the ds80c400 i.e. char y[] = {1,2,3,4};

Note: the ds80c400 has a 16M contiguous memory map.

example 1:
in the following code the array is placed in segment CONST.

#include <stdio.h>
char foo (int x)
{
  char y[] = { 1,2,3,4};
  return(y[x]);
}

example 2:
in the following code the array is placed in segment CODE.

#include <stdio.h>
char foo (int x)
{
  char y[] = { 1,2,3,4};
  printf("1234%d",1);
  return(y[x]);
}


Is there a compliler switch to force the compiler to place these in HCONST or ECODE by default?

Parents
  • It's very interesting problem, I cannot find the solution.
    the idea to create userclass
    #pragma UCL(CODE =my)
    and locate it in the upper half of memory
    CODE (C:0X0-C:0XFFFF), ECODE (C:0X0-C:0X1FFFF),CODE_MY (C:0x10000-C:0x1FFFF)
    does not works!
    Does Dallas has the possibility to read constants with MOVC from upper memory?

Reply
  • It's very interesting problem, I cannot find the solution.
    the idea to create userclass
    #pragma UCL(CODE =my)
    and locate it in the upper half of memory
    CODE (C:0X0-C:0XFFFF), ECODE (C:0X0-C:0X1FFFF),CODE_MY (C:0x10000-C:0x1FFFF)
    does not works!
    Does Dallas has the possibility to read constants with MOVC from upper memory?

Children