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.

CCS3.3编译出错

在编译程序时出错,请问是什么问题?

addr = (unsigned long)&g_sysTime;该语句编译出错,告警如下:warning: integer conversion resulted in truncation

另外还有连个链接告警:

>> warning: load address of uninitialized section ramfuncs ignored

>> warning: entry point other than _c_int00 specified

请教是什么问题?

  • addr = (unsigned long)&g_sysTime;中

    addr的定义是什么?按照警告的提示是产生了数据的截断。

    >> warning: load address of uninitialized section ramfuncs ignored

    ramfuncs在cmd中没有指定存储SECTIONS

    类似 ramfuncs         : > RAMM0      PAGE = 0

    >> warning: entry point other than _c_int00 specified

    请查看下面链接中Jones Chen的解释

    www.deyisupport.com/.../266.aspx

  • typedef union

    {

    unsigned int all;

    struct _AddressBit bit;

    } Addr;

    为addr的定义;

    在cmd中有指定SECTIONS为

    ramfuncs           : LOAD = FLASHD, PAGE = 0

    RUN = RAML0_1, PAGE = 0

    LOAD_START(_RamfuncsLoadStart),

    LOAD_END(_RamfuncsLoadEnd),

    RUN_START(_RamfuncsRunStart)

    第三问题解决。但为何故?

    且再次编译时出现以下错误,请教为何故?

    error: symbol referencing errors - './Debug/solar.out' not built

  • 您好,

    1、你的Addr为16位的,unsigned long为32位,所以会出现警告。

    2、建议你采用例程中的cmd。

    3、error: symbol referencing errors - './Debug/solar.out' not built提供的信息太少了,将这句话以上的错误部分发上来看看。

  • undefined                        first referenced

    symbol                              in file

    ---------                        ----------------

    _Get_Lo_I                        F:\zjfiles\solar\solar\solar\Debug\solar_MPPT.obj

    >>   error: symbol referencing errors - './Debug/solar.out' not built

    addr改为16位(unsigned int)后出现以下错误:

    "solar_SysData.c", line 970: warning: conversion from pointer to smaller integer

    "solar_SysData.c", line 970: warning: integer conversion resulted in truncation

    请教为何故?

    谢谢!

  • 1、

    _Get_Lo_I                        F:\zjfiles\solar\solar\solar\Debug\solar_MPPT.obj

    Get_Lo_I  这个函数或者变量在solar_MPPT.c中没有声明,查一下你的程序,如果是全局变量或者全局使用的函数,在头文件中加一个extern声明一下即可。

    2、

    addr = (unsigned long)&g_sysTime;

    Addr为16位的,unsigned long为32位,将一个32位的地址赋值给一个16位的变量,会出现警告。

    改为

    addr = (unsigned int)&g_sysTime;

    或者修改addr的定义。

  • 谢谢!

    1.第一个问题已解决,为函数定义时出错;

    2.改为addr = (unsigned int)&g_sysTime;出现以下错误:

    "solar_SysData.c", line 970: warning: conversion from pointer to smaller integer

    "solar_SysData.c", line 970: warning: integer conversion resulted in truncation

    请教何解?

  • 您的addr是怎么定义的? unsigned int 是32bit的。

    您的addr是定义成Uint16了,是么?

  • g_sysTime定义为uint32,改addr为32位,问题解决。谢谢!