您的位置: OpenADSP社区论坛 -> Blackfin专区 -> 技术讨论区 -> BF609烧写500KB以上程序不能正常RUN
本帖共有3521个阅读者
发表帖子 发表投票 回复主题
BF609烧写500KB以上程序不能正常RUN
zhaoshengkeji(论坛新手)
zhaoshengkeji
头衔:社区公民
帮派:无帮无派
帖数:15
金钱:225
积分:19
注册时间:2014/7/23
楼主信息 | 留言 | Email | 主页 | 编辑 | 管理 | 离线
BF609烧写500KB以上程序不能正常RUN
BF609的LDR程序大于500KB就不能RUN,程序烧写和校验都是正确的,用JTAG仿真都是正常的,如果注释部分代码,让程序小于500K左右就能在烧写后正常RUN。同样的代码,我用优化选项,选择0,即代码体积最小,这时候一个560K左右的程序就缩小成440K左右,440K的程序能正常RUN,560K的程序不能RUN,但能JTAG在线RUN.跪求高手帮忙分析

这家伙很懒,什么也没有留下!
等级:论坛新手 参考IP地址:*.*.*.*
2014/7/24 23:56:29
尊贵身份标志
OpenADSP(管理员)
OpenADSP
头衔:社区公民
帮派:无帮无派
帖数:5187
金钱:34761
积分:6369
注册时间:2011/6/7
1信息 | 留言 | Email | 主页 | 编辑 | 管理 | 离线
是不是SDRAM的初始化配置不对?

我是OP...
等级:管理员 参考IP地址:*.*.*.*
2014/7/25 10:30:16
zhaoshengkeji(论坛新手)
zhaoshengkeji
头衔:社区公民
帮派:无帮无派
帖数:15
金钱:225
积分:19
注册时间:2014/7/23
2信息 | 留言 | Email | 主页 | 编辑 | 管理 | 离线
初始化应该是对的,因为400KB左右的程序有部分代码在DDR中运行正常,也许是我的程序有BUG

这家伙很懒,什么也没有留下!
等级:论坛新手 参考IP地址:*.*.*.*
2014/7/25 12:13:51
尊贵身份标志
OpenADSP(管理员)
OpenADSP
头衔:社区公民
帮派:无帮无派
帖数:5187
金钱:34761
积分:6369
注册时间:2011/6/7
3信息 | 留言 | Email | 主页 | 编辑 | 管理 | 离线
有可能,ICE能跑BOOT不行的有见过挺多。在线仿真有时候会掩盖掉一些问题和bug

我是OP...
等级:管理员 参考IP地址:*.*.*.*
2014/7/25 12:46:28
zhaoshengkeji(论坛新手)
zhaoshengkeji
头衔:社区公民
帮派:无帮无派
帖数:15
金钱:225
积分:19
注册时间:2014/7/23
4信息 | 留言 | Email | 主页 | 编辑 | 管理 | 离线
这个问题有了新情况:DDR的代码没有被ROM程序从SPI FLASH加载,初始化程序BF609_init_v01.dxe是CCES1.0.3自带的,我的DDR型号与开发板的一样。为什么我去掉一部分代码后,程序变成460KB左右,大概有100KB左右的代码和数据在DDR中运行,这个程序能被ROM程序从SPI FLASH正确加载到DDR中,掉电后运行也正常。我个人觉得可能是ROM的程序有BUG,不能正确加载程序,请高手给分析下

这家伙很懒,什么也没有留下!
等级:论坛新手 参考IP地址:*.*.*.*
2014/7/25 15:40:10
zhaoshengkeji(论坛新手)
zhaoshengkeji
头衔:社区公民
帮派:无帮无派
帖数:15
金钱:225
积分:19
注册时间:2014/7/23
5信息 | 留言 | Email | 主页 | 编辑 | 管理 | 离线
程序加载成功后,查看DDR的寄存器配置与JTAG仿真的配置一样。

这家伙很懒,什么也没有留下!
等级:论坛新手 参考IP地址:*.*.*.*
2014/7/25 16:42:11
zhaoshengkeji(论坛新手)
zhaoshengkeji
头衔:社区公民
帮派:无帮无派
帖数:15
金钱:225
积分:19
注册时间:2014/7/23
6信息 | 留言 | Email | 主页 | 编辑 | 管理 | 离线
晕倒,ROM加载程序死在了bootrom.spi.load.tfifo_empty的地方,也就是发送SPI读FLASH命令时,发送FIFO一直不为空,导致死循环

这家伙很懒,什么也没有留下!
等级:论坛新手 参考IP地址:*.*.*.*
2014/7/25 17:25:10
zhaoshengkeji(论坛新手)
zhaoshengkeji
头衔:社区公民
帮派:无帮无派
帖数:15
金钱:225
积分:19
注册时间:2014/7/23
7信息 | 留言 | Email | 主页 | 编辑 | 管理 | 离线
加载代码死循环在下面
_bootrom.spi.load.tfifo_empty:
    r1 = [p4+OFF_SPI_STAT];
    r1 = r0 & r1;
    r1>>= BITP_SPI_STAT_TFS;
    cc = r2==r1;
    if !cc jump _bootrom.spi.load.tfifo_empty;

这家伙很懒,什么也没有留下!
等级:论坛新手 参考IP地址:*.*.*.*
2014/7/25 17:30:25
zhaoshengkeji(论坛新手)
zhaoshengkeji
头衔:社区公民
帮派:无帮无派
帖数:15
金钱:225
积分:19
注册时间:2014/7/23
8信息 | 留言 | Email | 主页 | 编辑 | 管理 | 离线
SPI0_STAT.TFF为0,表示发送FIFO满。BF609这个问题应该是个BUG,就是读写SPI0的FLASH也经常出现问题,比如上电后,SPI的寄存器的值有可能出现复位不正常的值或被程序跑飞后乱掉,导致读写FLASH错误,而且例子烧写程序也没有,它里面必须把寄存器配置正常后才能达到目的。

这家伙很懒,什么也没有留下!
等级:论坛新手 参考IP地址:*.*.*.*
2014/7/25 17:39:09
zhaoshengkeji(论坛新手)
zhaoshengkeji
头衔:社区公民
帮派:无帮无派
帖数:15
金钱:225
积分:19
注册时间:2014/7/23
9信息 | 留言 | Email | 主页 | 编辑 | 管理 | 离线
上面说错了,应该是“而且例子烧写程序也没用”

这家伙很懒,什么也没有留下!
等级:论坛新手 参考IP地址:*.*.*.*
2014/7/25 17:40:47
13
1
1/2
Powered by OpenADSP Copyright © 2010 www.Openadsp.com. All rights reserved.154170 Call, 1 Queries, Processed in 0.015625 second(s),