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.
在编译程序时出错,请问是什么问题?
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的解释
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位,问题解决。谢谢!