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

Warning message

Hi

After compiling my codes, I get the warning message: SECTION OUTSIDE CLASS AREA
SECTION:
CLASS:

I assume that it means that the data are not with address range.

Can any of you pleas kindly advise me to eliminate this problem?

Thank you in advance

AJ

Parents
  • I would add to Mike's comment... and if you wanted to use the ERAM on the XC16x1 for data (as an option).

    Have a look to the following link…
    http://www.keil.com/support/docs/2899.htm

    This talks about using the ERAM on XC16x devices for data. Follow the directions but with one exception, I would use far "FDATA, FDATA0" instead of near.

    FDATA (0xE00000-0xE007FF), FDATA0 (0xE00000-0xE007FF),
    Now, if you are using a small memory model then the default data is near and will have fast access (single cycle) and then use the far keyword on the variables that are accessed infrequently.

      int near_data; /* defaults to near memory */
      int far far_data /* far data memory */
    
    From the map file
    00C246H     near_data  VAR   ---  NDATA0  ?ND0?MAIN
    E00000H     far_data     VAR   ---  FDATA0  ?FD0?MAIN
    

    Perhaps you are a very experienced embedded programmer but for those who are not. It is very important to understand the architecture of the device you are using and willfully choose in which memory area to locate your variables. When a chip manufacturer includes different memory areas on a device there are generally performance implications. Why, because this usually translates into the performance/cost ratios to construct and sell such devices.

    -Chris

Reply
  • I would add to Mike's comment... and if you wanted to use the ERAM on the XC16x1 for data (as an option).

    Have a look to the following link…
    http://www.keil.com/support/docs/2899.htm

    This talks about using the ERAM on XC16x devices for data. Follow the directions but with one exception, I would use far "FDATA, FDATA0" instead of near.

    FDATA (0xE00000-0xE007FF), FDATA0 (0xE00000-0xE007FF),
    Now, if you are using a small memory model then the default data is near and will have fast access (single cycle) and then use the far keyword on the variables that are accessed infrequently.

      int near_data; /* defaults to near memory */
      int far far_data /* far data memory */
    
    From the map file
    00C246H     near_data  VAR   ---  NDATA0  ?ND0?MAIN
    E00000H     far_data     VAR   ---  FDATA0  ?FD0?MAIN
    

    Perhaps you are a very experienced embedded programmer but for those who are not. It is very important to understand the architecture of the device you are using and willfully choose in which memory area to locate your variables. When a chip manufacturer includes different memory areas on a device there are generally performance implications. Why, because this usually translates into the performance/cost ratios to construct and sell such devices.

    -Chris

Children
No data