最近在开发280039C
重新安装了CCS开发环境,版本12.8.1
在固化自己建立的工程的时候,发现memcpy函数总是定位到string.h标准库中的定义,从而导致编译报错
另,导入C2000ware中的gpio控制led闪烁工程,调整为固化版本后,发现是memcpy无法找到定义,但是编译并不会报错,固化工程后重启电源工作也是正常的。
所以,我在想,有没有可能是和工程编译选项中是否开启了使用标准库这样类似的功能有关呢
不知道大家遇到过类似的问题没有
您好!我有了一些新的进展。
注意到C2000ware下的280039基础例程中的led闪烁工程使用的是eABI格式,所以我也将我自己建立的280039的Flash版本工程由原本的COFF格式调整为eABI格式,并将运行支持库由rts2800_fpu32.lib调整为rts2800_fpu32_eabi.lib,只改了这一点,工程中的其余配置均未改变,再进行编译就不会报告缺少RamfuncsRunStart、RamfuncsLoadStart、RamfuncsLoadSize了,并且烧录工程后,脱离仿真器、重新上电,程序执行都是正常的。
我之前的工程是COFF格式的,编译出错了以后,虽然在文件中定义RamfuncsRunStart、RamfuncsLoadStart、RamfuncsLoadSize这三个变量如下可以编译成功:
Uint16 RamfuncsRunStart;
Uint16 RamfuncsLoadStart;
Uint16 RamfuncsLoadSize;
但是程序运行后会跑飞。
我在开发TI C2000系类的其他型号处理器时都没有遇到这样的情况。
请问这是为什么呢?
这个l路径下的
\C2000Ware_5_04_00_00\device_support\f28003x\examples\led_ex1_blinky工程
是输出文件是eabi格式,编译就不会报错,如果调整为coff格式,就会报告如下错误
1.能尽快解答一下是为什么吗?或者能告诉下COFF格式下应该怎么定义报错的三个变量呢,还是说280039固化flash只能用eabi格式
2.280049的这个工程,flash版本的输出文件格式是COFF,编译并不会报错,能对比说明下是编译配置有什么区别吗