我现在在做C6657的IBL,严格按照官方提供的文档来操作,但是目前发现烧写完EEPROM以及FLASH断电重启后,通过示波器观察DSP读完I2C之后并没有去读spi nor flash?挂载仿真器观察电脑指针指到了0x20B00F70、DEVSTAT的值为0x00000001.我之前通过一个简单的不带系统与DDR的闪灯程序验证过SPI的启动方式是可以正常启动的,通过挂载仿真器观测DEVSTAT的值也是按照设定好的spi的boot方式,证明时序应该是没有问题的,不知道为什么会出现这个现象,请各位大神帮帮忙!
Denny%20Yang99373:
“我之前通过一个简单的不带系统与DDR的闪灯程序验证过SPI的启动方式是可以正常启动的”
现在的软硬件和以前有什么区别?
Peishu Yan:
回复 Denny%20Yang99373:
你好 不好意思 刚刚看到您的答复。现在的硬件和以前没有任何区别的,都是在同一块板子完成的。这种方式并不是IBL的启动方式、只是单纯的spi加载方式,软件上的话没有加载成功是因为我加入了DDR的使用程序以及sysbios系统后,程序就不能加载了,我观看生成的.map文件后发现C程序的入口地址居然跑到了0x80000000处,无论我怎么更改.cmd文件还是修改platform都是无法改变这个入口地址。所以我最后选择了IBL的启动方式,但是这种方式下,我发现IBL没有正常加载,挂载仿真器后pc指针为0x20B0F70,说明没有boot。利用示波器观看DSP读完I2C之后没有去读SPI。同时我发现了两个十分怪异的问题,希望能得到您的回答:
1.为什么IBL 的I2C以及SPI程序烧写完成后,选择正确的IBL启动方式后通过仿真器连接core0发现devstat的值是0x00000001呢?!这是不是非常的怪异呢。我之前观测过spi的加载方式时,devstat的值是正确锁存的而且我把I2C芯片拆掉后再次挂仿真器观看devstat的值是正确的IBL加载方式。这是什么原因造成的呢???
2.IBL启动时我通过示波器观看I2C的启动时钟发现并不是程序里配置的100K,而是大致分成了两部分的加载时钟。加载过程中的大概三分之二的时间sclk为12K左右,后三分之一的时间过程中频率也就3、4K的样子。这会是什么原因呢???
Peishu Yan:
回复 Denny%20Yang99373:
希望可以得到回复,急急急!!
Peishu Yan:
回复 Denny%20Yang99373:
修正一下:刚才我又重新那示波器确认了一下DSP读取I2C的时钟。
加载过程中的大概三分之二的时间sclk为200K,后三分之一的时间过程中频率也就10K。这会是什么原因呢???
Peishu Yan:
回复 Peishu Yan:
请各位大侠帮忙回复一下!
lutao wang:
回复 Peishu Yan:
你好!
我跟你遇到一样的问题了。eeprom和nor在自己做的板子上加载不起来,换到开发板上可以加载,感觉很奇怪。eeprom、nor的程序都是在自己板子上烧写的,放到开发板就可以运行,真的搞不懂了。。。。。。
lutao wang:
回复 Peishu Yan:
Hi Yan,
不知你问题解决了吗,能否分享下?
Peishu Yan:
回复 lutao wang:
可以加QQ 819590597 来交流!