您的位置: OpenADSP社区论坛 -> Blackfin专区 -> 新手上路 -> 开发Blackfin,LDR和DXE仿真可以烧写不行怎... 
本帖共有2261个阅读者
发表帖子 发表投票 回复主题
开发Blackfin,LDR和DXE仿真可以烧写不行怎么办?
尊贵身份标志
OpenADSP(管理员)
OpenADSP
头衔:社区公民
帮派:无帮无派
帖数:5187
金钱:34761
积分:6369
注册时间:2011/6/7
楼主信息 | 留言 | Email | 主页 | 编辑 | 管理 | 离线
开发Blackfin,LDR和DXE仿真可以烧写不行怎么办?
相信很多朋友都有遇到过这样一个问题,在VDSP或者CCES下调试Blackfin,明明仿真都可以,但是把生成的LDR烧写到板子上却发现板子无法启动,这种问题OP早年间也经常遇到,多是SDRAM初始化等问题,如何来解决,这里有ADI的同事写的一个文档,供大家参考。

有问题联系OP的QQ:5516164

我是OP...
等级:管理员 参考IP地址:*.*.*.*
2015/8/3 9:22:27
尊贵身份标志
OpenADSP(管理员)
OpenADSP
头衔:社区公民
帮派:无帮无派
帖数:5187
金钱:34761
积分:6369
注册时间:2011/6/7
1信息 | 留言 | Email | 主页 | 编辑 | 管理 | 离线
下面以BF518和BF609为例,来看看如何调试LDR。

上传的图片
  201583925832.jpg [ 74.89 KB 696×403 ] (缩略时请点击查看原图)

 


我是OP...
等级:管理员 参考IP地址:*.*.*.*
2015/8/3 9:25:13
尊贵身份标志
OpenADSP(管理员)
OpenADSP
头衔:社区公民
帮派:无帮无派
帖数:5187
金钱:34761
积分:6369
注册时间:2011/6/7
2信息 | 留言 | Email | 主页 | 编辑 | 管理 | 离线

上传的图片
  2015839255432.jpg [ 128.05 KB 574×703 ] (缩略时请点击查看原图)

 


我是OP...
等级:管理员 参考IP地址:*.*.*.*
2015/8/3 9:25:55
尊贵身份标志
OpenADSP(管理员)
OpenADSP
头衔:社区公民
帮派:无帮无派
帖数:5187
金钱:34761
积分:6369
注册时间:2011/6/7
3信息 | 留言 | Email | 主页 | 编辑 | 管理 | 离线

上传的图片
  201583927632.jpg [ 51.36 KB 607×325 ] (缩略时请点击查看原图)

 




上传的图片
  2015839271232.jpg [ 111.78 KB 657×846 ] (缩略时请点击查看原图)

 


我是OP...
等级:管理员 参考IP地址:*.*.*.*
2015/8/3 9:27:13
尊贵身份标志
OpenADSP(管理员)
OpenADSP
头衔:社区公民
帮派:无帮无派
帖数:5187
金钱:34761
积分:6369
注册时间:2011/6/7
4信息 | 留言 | Email | 主页 | 编辑 | 管理 | 离线
这时,你的系统应该被VisualDSP++的这个新Session挂起,但不会复位。你就可以看到当前程序执行到什么地方了。
5.通常,系统无法正常BOOT,当VisualDSP++连接到目标板挂起程序时,程序已经出错。我们通过程序是否停在jump.s0来判断BOOT过程是否完成。如果BOOT完成,系统在这里循环等待VisualDSP++接管控制权。刚连接session
时,会执行一个仿真器中断程序,在0xEFxxxxxx处,按F5或者点击RUN之后,如果程序没有执行到0xFFA00000,说明Boot过程出错,则需要查看SDRAM是否配置正确,Boot模式选择是否正确,如果这两者都正确,则可能需要用示波器观察启动器件的时序。进一步分析。如果正常BOOT,程序会在0xFFA00000等待。你可以在寄存器窗口里修改PC的值到下一条指令的位置,这样,你就可以单步跟踪以后的执行情况了。

我是OP...
等级:管理员 参考IP地址:*.*.*.*
2015/8/3 9:29:19
尊贵身份标志
OpenADSP(管理员)
OpenADSP
头衔:社区公民
帮派:无帮无派
帖数:5187
金钱:34761
积分:6369
注册时间:2011/6/7
5信息 | 留言 | Email | 主页 | 编辑 | 管理 | 离线
BF51x,BF52x,BF54x这几个系列的Blackfin支持Lockbox技术,能够严格地保护客户的代码安全。不过,它们对启动也有特殊的要求:即使你不用Lockbox技术,即不需要用到OTP,也必须给OTP供电,否则芯片将无法正常BOOT。

我是OP...
等级:管理员 参考IP地址:*.*.*.*
2015/8/3 9:30:16
尊贵身份标志
OpenADSP(管理员)
OpenADSP
头衔:社区公民
帮派:无帮无派
帖数:5187
金钱:34761
积分:6369
注册时间:2011/6/7
6信息 | 留言 | Email | 主页 | 编辑 | 管理 | 离线

上传的图片
  2015839304732.jpg [ 156.75 KB 795×704 ] (缩略时请点击查看原图)

 


我是OP...
等级:管理员 参考IP地址:*.*.*.*
2015/8/3 9:30:48
尊贵身份标志
OpenADSP(管理员)
OpenADSP
头衔:社区公民
帮派:无帮无派
帖数:5187
金钱:34761
积分:6369
注册时间:2011/6/7
7信息 | 留言 | Email | 主页 | 编辑 | 管理 | 离线

上传的图片
  2015839311032.jpg [ 93.37 KB 659×629 ] (缩略时请点击查看原图)

 


我是OP...
等级:管理员 参考IP地址:*.*.*.*
2015/8/3 9:31:11
小壹(论坛新手)
小壹
头衔:社区公民
帮派:无帮无派
帖数:10
金钱:191
积分:15
注册时间:2017/6/7
8信息 | 留言 | Email | 主页 | 编辑 | 管理 | 离线
我按照上面的方式验证了我的程序,点击RUN之后,程序没有执行到0xFFA00000。请问OP查看SDRAM是否配置正确,Boot模式选择是否正确,是在哪里查看?是程序代码里面吗?
我用的芯片是BF534,代码初始化了EUIU及SDRAM配置程序如下为:
void Init_SDRAM(void)
{
//SDRAM Refresh Rate Control Register
*pEBIU_SDRRC = 0x00000817;

//SDRAM Memory Bank Control Register
*pEBIU_SDBCTL = 0x00000013;

//SDRAM Memory Global Control Register
*pEBIU_SDGCTL = 0x0091998d;

ssync();

}//end Init_SDRAM

void Init_EBIU(void)
{
*pEBIU_AMBCTL0 = 0x7bb07bb0; // <--|Write access time = 7 cycles, read access time = 11 cycles, no ARDY
*pEBIU_AMBCTL1 = 0x7bb07bb0; //    |Hold time = 2 cycles, setup time = 3 cycles, transition time = 4 cycles
*pEBIU_AMGCTL = 0x00FF; //   |Enable all memory banks

}//end Init_EBIU



共同成长
等级:论坛新手 参考IP地址:*.*.*.*
2017/11/29 18:48:12
尊贵身份标志
OpenADSP(管理员)
OpenADSP
头衔:社区公民
帮派:无帮无派
帖数:5187
金钱:34761
积分:6369
注册时间:2011/6/7
9信息 | 留言 | Email | 主页 | 编辑 | 管理 | 离线
boot模式在芯片手册里有专门讲,哪几个脚是什么状态,就是以什么方式boot,有一个表。SDRAM是否正确,你可以写个SDRAM的遍历。

我是OP...
等级:管理员 参考IP地址:*.*.*.*
2017/12/1 9:35:05
12
1
1/2
Powered by OpenADSP Copyright © 2010 www.Openadsp.com. All rights reserved.154408 Call, 3 Queries, Processed in 0.046875 second(s),