您的位置:
OpenADSP社区论坛
->
Blackfin专区
->
技术讨论区
-> BF609烧写500KB以上程序不能正常RUN
本帖共有
3784
个阅读者
BF609烧写500KB以上程序不能正常RUN
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.跪求高手帮忙分析
这家伙很懒,什么也没有留下!
等级:
2014/7/24 23:56:29
编辑帖子
帖子评价
单帖屏蔽
删除帖子
OpenADSP
(管理员)
头衔:
社区公民
帮派:
无帮无派
帖数:
5195
金钱:
34806
积分:
6378
注册时间:
2011/6/7
小
大
第
1
楼
信息
|
留言
|
Email
|
主页
|
编辑
|
管理
|
是不是SDRAM的初始化配置不对?
我是OP...
等级:
2014/7/25 10:30:16
编辑帖子
帖子评价
单帖屏蔽
删除帖子
zhaoshengkeji
(论坛新手)
头衔:
社区公民
帮派:
无帮无派
帖数:
15
金钱:
225
积分:
19
注册时间:
2014/7/23
小
大
第
2
楼
信息
|
留言
|
Email
|
主页
|
编辑
|
管理
|
初始化应该是对的,因为400KB左右的程序有部分代码在DDR中运行正常,也许是我的程序有BUG
这家伙很懒,什么也没有留下!
等级:
2014/7/25 12:13:51
编辑帖子
帖子评价
单帖屏蔽
删除帖子
OpenADSP
(管理员)
头衔:
社区公民
帮派:
无帮无派
帖数:
5195
金钱:
34806
积分:
6378
注册时间:
2011/6/7
小
大
第
3
楼
信息
|
留言
|
Email
|
主页
|
编辑
|
管理
|
有可能,ICE能跑BOOT不行的有见过挺多。在线仿真有时候会掩盖掉一些问题和bug
我是OP...
等级:
2014/7/25 12:46:28
编辑帖子
帖子评价
单帖屏蔽
删除帖子
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,不能正确加载程序,请高手给分析下
这家伙很懒,什么也没有留下!
等级:
2014/7/25 15:40:10
编辑帖子
帖子评价
单帖屏蔽
删除帖子
zhaoshengkeji
(论坛新手)
头衔:
社区公民
帮派:
无帮无派
帖数:
15
金钱:
225
积分:
19
注册时间:
2014/7/23
小
大
第
5
楼
信息
|
留言
|
Email
|
主页
|
编辑
|
管理
|
程序加载
不
成功后,查看DDR的寄存器配置与JTAG仿真的配置一样。
这家伙很懒,什么也没有留下!
等级:
2014/7/25 16:42:11
编辑帖子
帖子评价
单帖屏蔽
删除帖子
zhaoshengkeji
(论坛新手)
头衔:
社区公民
帮派:
无帮无派
帖数:
15
金钱:
225
积分:
19
注册时间:
2014/7/23
小
大
第
6
楼
信息
|
留言
|
Email
|
主页
|
编辑
|
管理
|
晕倒,ROM加载程序死在了bootrom.spi.load.tfifo_empty的地方,也就是发送SPI读FLASH命令时,发送FIFO一直不为空,导致死循环
这家伙很懒,什么也没有留下!
等级:
2014/7/25 17:25:10
编辑帖子
帖子评价
单帖屏蔽
删除帖子
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;
这家伙很懒,什么也没有留下!
等级:
2014/7/25 17:30:25
编辑帖子
帖子评价
单帖屏蔽
删除帖子
zhaoshengkeji
(论坛新手)
头衔:
社区公民
帮派:
无帮无派
帖数:
15
金钱:
225
积分:
19
注册时间:
2014/7/23
小
大
第
8
楼
信息
|
留言
|
Email
|
主页
|
编辑
|
管理
|
SPI0_STAT.TFF为0,表示发送FIFO满。BF609这个问题应该是个BUG,就是读写SPI0的FLASH也经常出现问题,比如上电后,SPI的寄存器的值有可能出现复位不正常的值或被程序跑飞后乱掉,导致读写FLASH错误,而且例子烧写程序也没有,它里面必须把寄存器配置正常后才能达到目的。
这家伙很懒,什么也没有留下!
等级:
2014/7/25 17:39:09
编辑帖子
帖子评价
单帖屏蔽
删除帖子
zhaoshengkeji
(论坛新手)
头衔:
社区公民
帮派:
无帮无派
帖数:
15
金钱:
225
积分:
19
注册时间:
2014/7/23
小
大
第
9
楼
信息
|
留言
|
Email
|
主页
|
编辑
|
管理
|
上面说错了,应该是“而且例子烧写程序也没用”
这家伙很懒,什么也没有留下!
等级:
2014/7/25 17:40:47
编辑帖子
帖子评价
单帖屏蔽
删除帖子
13
1
2
1/2
Powered by
OpenADSP
Copyright © 2010
www.
Openadsp
.com
. All rights reserved.159727 Call, 1 Queries, Processed in 0.019531 second(s),