现有的程序是在C6747上面开发的,没有任何问题,最近在现有的工程上做增量开发,遇到了一个奇怪的问题,还请各位专家给指导下:
程序修改以后编译出来的.out文件使用CCS在线load到板卡中以后可以正常运行,但是将编出来的程序转化为.bin文件,然后烧写到片外的flash以后,发现程序不能正常运行了。使用CCS连上板卡,并加载symbol以后发现程序中定义的const类型的变量(程序中在定义const变量的时候初始化为非零值)的值全是零,导致程序不能正常运行,并且还发现一个问题,程序中使用的sprintf函数无法将数据写入到一个全局变量的buffer中(原来的程序没有该问题),导致无法正常输出数据。
这两个问题我怀疑是不是因为linker.cmd文件对程序块划分的有问题导致的,但是我尝试了各种办法修改linker.cmd以后还是没能解决这两个问题,还请各位专家能给一个解决办法,谢谢。
Shine:
看一下编译选项有没有用-c (–rom_model选项)?
user3943843:
回复 Shine:
我使用的是CCS3.3版本,linker选项中已经选择了-c
我为了测试,选择了-c和-cr两种方式,但是这两种方式都不行。
Shine:
回复 user3943843:
应用程序是基于BIOS的吗?