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
  • first VARBANKING and XBANKING.A51 are not required for the ds80c400 as it is not a "classic 8051 device"

    but even supposing the the XBANKING.A51 was re-written it would not stop the compiler from placing the data in the const or hconst segments... this would have to be done on the compiler for the source file in question.

Reply
  • first VARBANKING and XBANKING.A51 are not required for the ds80c400 as it is not a "classic 8051 device"

    but even supposing the the XBANKING.A51 was re-written it would not stop the compiler from placing the data in the const or hconst segments... this would have to be done on the compiler for the source file in question.

Children