Tool News
 
 
 

Tool News

Products Info
Downloads
Tools FAQs
MESC TOOL NEWS: MESCT-NC30WA-001116D

NC30WA
Precaution

Please take note of the following problem in using C compiler NC30WA for the M16C/60 and M16C/20 series MCUs:
  • On using assembler macro functions smovf_b, smovf_w, smovb_b, and smovb_w



  1. Versions Concerned
    NC30WA V.3.10 Release 1 -- V.4.00 Release 1


  2. Problem
    Executing any of the assembler macro functions smovf_b, smovf_w, smovb_b, and smovb_w may result in no data being transferred from the specified transfer source.


  3. Condition
    This problem occurs if the values of the lower 4 bits of register R1H are not 0s at the execution of any of the above assembler macro functions.


  4. Workaround
    Modify the descriptions of the assembler macro functions smovf_b, smovf_w, smovb_b, and smovb_w as shown below.
    They are contained in the inc30\asmmacro.h file saved in the directory where NC30WA has been installed (\mtool by default).

    4.1 For assembler macro function smovf_b
         ------------------------------------------------------------
         _smovf_b    .macro
                     pushm     R1,R3,A0,A1    <--- R1 (register) added
                     mov.w     #0,R1          <--- This line added
                     smovf.b
                     popm      R1,R3,A0,A1    <--- R1 (register) added
         ------------------------------------------------------------
    
    4.2 For assembler macro function smovf_w
         ------------------------------------------------------------
         _smovf_w    .macro
                     pushm     R1,R3,A0,A1    <--- R1 (register) added
                     mov.w     #0,R1          <--- This line added
                     smovf.w
                     popm      R1,R3,A0,A1    <--- R1 (register) added
         ------------------------------------------------------------
    
    4.3 For assembler macro function smovb_b
         ------------------------------------------------------------
         _smovb_b    .macro
                     pushm     R1,R3,A0,A1    <--- R1 (register) added
                     mov.w     #0,R1          <--- This line added
                     smovb.b
                     popm      R1,R3,A0,A1    <--- R1 (register) added
         ------------------------------------------------------------
    
    4.4 For assembler macro function smovb_w
         ------------------------------------------------------------
         _smovb_w    .macro
                     pushm     R1,R3,A0,A1    <--- R1 (register) added
                     mov.w     #0,R1          <--- This line added
                     smovb.w
                     popm      R1,R3,A0,A1    <--- R1 (register) added
         ------------------------------------------------------------
    


  5. Schedule of Fixing Problem
    We plan to modify the descriptions of the above assembler macro functions in our next release.





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