This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

CCS11 Compiler cg430.exe application crash

Good day for all. Recently I updated CCS from 8 to 11 version. During my project building there was a windows error occured:

Signature of the problem:

Name of the event of the problem: APPCRASH

Application name: cg430.exe

Applicatin version: 21.6.0.0

Application timestamp: 60b0659c

Module name of the problem: ntdll.dll

Module version of the problem: 6.1.7601.23714

Timestamp of the problem module: 58bf89e8

Exception code: c00000fd

Exception offset: 000000000004f42f

OS Version: 6.1.7601.2.1.0.256.1

Language code: 1049

Extra info 1: edaf

Extra info 2: edaf31470ab0549e8bae3de7f29bf714

Extra info 3: 821f

Extra info 4: 821f6a067ef88b0b2493011ba4b74761

According to "How to Submit a Compiler Test Case" I uploaded the case:

flow.zip

  • Thank you for notifying us of this problem, and submitting a detailed test case.  I cannot reproduce the exact same result, but I do see an unexpected error.  I filed the entry EXT_EP-10733 to have this investigated.  You are welcome to follow it with that link.

    Thanks and regards,

    -George

  • To understand why I marked this thread resolved, please see the first FAQ in the CCS Forum Usage Guidelines.

    Thanks and regards,

    -George

  • A workaround just got added to EXT_EP-10733.

    To apply the workaround in your specific case, change the function ussHandle as follows ...

    void ussHandle(DWORD*regAddr){
    
      volatile DWORD usd_begin = (DWORD) usdLeaBunker;
      volatile DWORD usd_end   = (DWORD) usdLeaBunker+2*372;
      volatile DWORD gus_begin = (DWORD) gUSSLEATempMemBlock;
      volatile DWORD gus_end   = (DWORD) gUSSLEATempMemBlock+2*372;
    
      if((*regAddr >= (gus_begin + 0x50) && (*regAddr < gus_end - 0x50))){
        if(ussActive != 0)
          *regAddr = *regAddr - gus_begin - 0x50 + usd_begin;
      }else if((*regAddr >= usd_begin) && (*regAddr < usd_end)){
        if(ussActive == 0)
          *regAddr = *regAddr - usd_begin + gus_begin + 0x50;
      }
    }

    I realize that, in your source code, this function probably uses a lot of #define macros.  So, the actual code changes will be different.  Still, I hope these suggested changes are helpful.

    Thanks and regards,

    -George

  • I hope this issue will be taken into account in future versions of the compiler.