目前使用CCS软件版本是3.3,DSP工程为带有Bios的,由于程序过大以及项目的要求,决定使用HPI进行引导;使用HPI引导时,将IPRAM存储删除,留下IDRAM来存储程序的数据段,以及其他的程序代码段存储在外挂的SRAM上,并且,编译通过。但是在烧入C6701 DSP后出现程序直接飞了,而且跳转不了main。所以有如下考虑:
1、在烧入带有Bios的工程之前,先加载C6701 对应的gel文件(因为本人认为gel首先会初始化Emif接口,时钟等等,会使得程序稳定一些),但是这个gel文件TI官方并没有提供
2、将带有Bios的工程修改为无Bios的工程,同样按照这种方式配置段;
请教一下TI工程师,如上两个考虑是否合理?除了上面两个考虑,是否还有别人思路呢?谢谢
Shine:
这句没看懂“在烧入C6701 DSP后出现程序直接飞了”? 如果是用HPI boot,直接加载到RAM就好了,不需要烧写代码,host在加载代码前可以通过HPI口对EMIF口等进行初始化操作。
Gangping Li:
回复 Shine:
sorry,Shine,是我没有表达好。是这样的,目前还只是将所有的程序放置在外挂的SRAM上进行测试,看看程序是否能正常运行,模拟HPI引导后的过程,还没有没有真正使用引导。
Shine:
回复 Gangping Li:
“目前还只是将所有的程序放置在外挂的SRAM上进行测试”和“在烧入C6701 DSP后出现程序直接飞了”这两句矛盾啊,"烧入"是烧到哪里?SRAM不需要烧入。
Gangping Li:
回复 Shine:
由CCS load program将.out文件载入到SRAM和IDRAM上之后,程序不能跳转Main。
Shine:
回复 Gangping Li:
代码在片内RAM是可以运行吗?放在片外RAM后,不能跳转到Main,那代码跑到哪里了?有没有对SRAM进行过读写测试?
Gangping Li:
回复 Shine:
现在每次测试结果都有所不一样,目前将所有的code放到外部ram上又可以了,我们有两块板子,有时候一块可以一块不可以,不可以的那块板子经常出现如下现象:将所有的code段(包括所有的与bios段相关的段,如.bios)全部放置在片外ram上,载入程序后程序一直运行到GBL_init这条语句,一直阻塞。
Gangping Li:
回复 Shine:
之前有对ram进行过读写测试的
Shine:
回复 Gangping Li:
可能硬件不够稳定,检查一下CLKIN, RESET信号是否足够长,CVDD, DVDD供电电压是否稳定,纹波是否在手册范围内。