你好!我用ccs连接仿真器在debug模式下跑ccs自带的video_loopback例程,把section段全部分配到ddr,执行正常。可是把程序烧进板子后,显示的结果是彩色横条,采集的视频根本看不到。
开始以为是gel文件里面初始化了某些设置,在ubl文件里没有做到。可是把ubl文件的初始化部分写的和gel文件完全一致,结果还是不对。后来我让gel文件什么都不做,debug下还是正常,这我就不知道为什么了。
求TI的专家们指导一下,谢谢!
kooking:
楼主的开发板应该有nand falsh吧,会不会上电后,直接从nand启动了ubl -> u-boot
feifei ji:
回复 kooking:
不会,因为我就没有烧写uboot,烧写过ubl后紧接着烧写了应用程序。其它例程可以跑,这个例程我不知道哪里出问题了。问个比较基础的问题,我看vpfe里数据送到ddr里面,ddr的地址是32位,设置的是0x04000000,而vpbe里窗口0对应的地址只有23位,设置的是0x00000000,这看着不对应呀,为什么debug里数据传输是对的?谢谢!
feifei ji:
回复 feifei ji:
地址问题我知道了。可还是不知道烧进板子后结果为什么不正确。
Chris Meng:
feifei ji
后来我让gel文件什么都不做,debug下还是正常,这我就不知道为什么了。
代码是放在DDR上的,如果不调用gel,谁来初始化DDR?你是否用CCS运行的时候,调用gel后就没有给板子断过点?
建议你可以把VPFE/VPBE的寄存器在两种情况下都打印出来对比一下。
feifei ji:
回复 Chris Meng:
那是因为我板子里烧写的ubl已经完成了ddr的初始化,ubl里面的初始化几乎完成了gel文件的功能。我现在已经找到是iic在配置tvp5146时失败,不知道调试状态下同样代码为什么能配置成功。
feifei ji:
回复 feifei ji:
最终找到问题是iic的库文件里定义的一个全局变量赋了初值,可在使用的时候却变成了0,。我把这个全局变量改成符号常量是可以的。那为什么在debug模式下这个全局变量是好用的?并且这样做要改lib里的文件,比较麻烦,有没有简单的办法?我感觉改cmd文件可以,可是.const段已有定义,不知道还可以怎么改?