Please note: We are aware of an issue affecting replies on the Arm Community forums, which may not be loading as expected.

We apologize for any inconvenience and appreciate your patience while we investigate and work to resolve the issue.

Thank you for your understanding.


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

unsigned long long undefined identifier.


I m integrating TCP/IP stack and compiling it with C166 Kiel compiler. The TCP/IP stack is from microchip.
I m getting the error

"GENERICTYPEDEFS.H(144): error C27: illegal type specifier"
line 144 contains
"typedef unsigned long long QWORD; "

This 64 bit dataype is being used frequently by TCP/IP stack.
How can we get this datatype in keil?

I found out that there is a file limits .h which defines the limits of the datatype

/*--------------------------------------------------------------------------
LIMITS.H

ANSI standard include file
for C166/EC++ Version 5.
Copyright (c) 1992-2004 Keil Elektronik GmbH and Keil Software, Inc.
All rights reserved.
--------------------------------------------------------------------------*/

#ifndef __LIMITS_H__
#define __LIMITS_H__

#define CHAR_BIT         8              /* Number of bits in any "char" */
#define CHAR_MAX         127            /* Max             "char" value */
#define CHAR_MIN        -128            /* Min             "char" value */
#define SCHAR_MAX        127            /* Max "signed"    "char" value */
#define SCHAR_MIN       -128            /* Min "signed"    "char" value */
#define UCHAR_MAX        255            /* Max "unsigned"  "char" value */
#define SHRT_MAX         32767          /* Max ("signed") "short" value */
#define SHRT_MIN       (-32767-1)       /* Min ("signed") "short" value */
#define USHRT_MAX        0xFFFF         /* Max "unsigned" "short" value */
#define INT_MAX          32767          /* Max ("signed")   "int" value */
#define INT_MIN        (-32767-1)       /* Min ("signed")   "int" value */
#define UINT_MAX         0xFFFF         /* Max "unsigned"   "int" value */
#define LONG_MAX         2147483647L    /* Max ("signed")  "long" value */
#define LONG_MIN       (-2147483647L-1) /* Min ("signed")  "long" value */
#define ULONG_MAX        0xFFFFFFFF     /* Max "unsigned"  "long" value */

#endif

Parents
  • "long long" is not ANSI 'C' - so C166 may well not support it - you'll have to check the documentation

    "The TCP/IP stack is from microchip"

    Have you read the licence carefully?
    Vendor-provided software like this usually has an "only to be used on our products" clause...

    There are plenty of generic (and free) TCP/IP stacks available for "small" microcontrollers - why not look at them?
    They would not be using non-standard extensions...

Reply
  • "long long" is not ANSI 'C' - so C166 may well not support it - you'll have to check the documentation

    "The TCP/IP stack is from microchip"

    Have you read the licence carefully?
    Vendor-provided software like this usually has an "only to be used on our products" clause...

    There are plenty of generic (and free) TCP/IP stacks available for "small" microcontrollers - why not look at them?
    They would not be using non-standard extensions...

Children