Tool News
 
 
 

Tool News

Products Info
Downloads
Tools FAQs
RENESAS TOOL NEWS on July 1, 2005: RSO-M3T-NC30WA-050701D

A Note on Using the C-Compiler Package
M3T-NC30WA V.5.30 Release 02

Please take note of the following problem in using the C-compiler package M3T-NC30WA V.5.30 Release 02 (this compiler package is used for the M16C/60, M16C/30, M16C/20, M16C/10, M16C/Tiny, and R8C/Tiny series of MCUs):
  • On assigning a near-qualified variable of 64-bit data type to a far-qualified variable of the same type


  1. Description
    If a near-qualified variable of 64-bit data type* is assigned to a far-qualified variable of the same type, the values in the lower 3rd and 4th bytes of an 8-byte data piece cannot be done.

    * Omission of the qualifier is interpreted as qualified to be near.
    Example:
    --------------------------------------------------------------------
    far long long l2;
    long long l1; 
    
    void func(void)
    {
       l2 = l1; 
    }
    --------------------------------------------------------------------
  2. Workaround
    When assigning a near-qualified variable of 64-bit data type to a far-qualified variable of the same type, transfer the former variable 2 bytes at a time using asm functions as follows:
    • If the variables to reference are auto variables or arguments, use format "$$," and if they are external variables, use format "$$" or "$@."
    --------------------------------------------------------------------
    far long long l2;
    
    void func(long long l1)
    {
      asm("  ste.w  $$[FB],$@",l1,l2);
      asm("  ste.w  $$+2[FB],$@+2",l1,l2);
      asm("  ste.w  $$+4[FB],$@+4",l1,l2);
      asm("  ste.w  $$+6[FB],$@+6",l1,l2);
    }
    --------------------------------------------------------------------
  3. Schedule of Fixing the Problem
    We plan to fix this problem in the next release of the product.





© 2008. Renesas Technology Corp., All rights reserved. Privacy | Legal