您的位置: OpenADSP社区论坛 -> Blackfin专区 -> 新手上路 -> ANDY请进,关于BF518的一些启动疑问。
本帖共有851个阅读者
发表帖子 发表投票 回复主题
ANDY请进,关于BF518的一些启动疑问。
xiehaolin1982(论坛新手)
xiehaolin1982
头衔:社区公民
帮派:无帮无派
帖数:15
金钱:237
积分:21
注册时间:2011/10/31
楼主信息 | 留言 | Email | 主页 | 编辑 | 管理 | 离线
ANDY请进,关于BF518的一些启动疑问。
在玩BF518的开发板的时候,对于规格书内所说的一些启动有些疑问,请帮个忙,真是谢谢了:
以下是我从规格书上得到的,不知道对不对,我怕理解有误,请ANDY指导一下:
BF518启动的时候,是BOOT ROM (0XEF00 0000)的程序开始,根据BMODE 的设定,把.LDR的文件解读,后再移到头文件(10BYTES)描述的地方。
那我有如下疑问:
1. 在BOOT的时候,存在一个PRE_BOOT的过程,在这个过程中,设定MMR,PLL等数据,那这样
不是同我们程序里面INIT_CODE的设定会冲突吗?如何理解这个PRE_BOOT的过程?
2. 当BMODE[0:2]设定为000的时候,是NO BOOT --IDLE, 那么不是不执行BOOT ROM的程序了?那么我们烧写的.LDR程序,如何被解读,执行?
3. 为什么BMODE[0:2]设定为101(BOOT from otp memory)是一种stand-alone booting mode?(OTP上空间没有那么大呀,如何放程序?),而且OTP只 能编写一次,万一程序存在BUG,那不是这块片子废了吗?

这家伙很懒,什么也没有留下!
等级:论坛新手 参考IP地址:*.*.*.*
2012/3/18 22:51:37
尊贵身份标志
andy(论坛版主)
andy
头衔:社区公民
帮派:无帮无派
帖数:2287
金钱:11132
积分:2263
注册时间:2011/6/8
1信息 | 留言 | Email | 主页 | 编辑 | 管理 | 离线

1. 我在帮助文档里没有找到PRE_BOOT的相关信息,能否将你看到的描述贴上来。

2. 在这个模式下,处理器上电后检测到NO BOOT 模式,会进入IDDE状态,不会加载和执行代码。这种模式常用于当flash写入代码,该代码能将处理器运行到异常状态,导致仿真器无法挂载,这时可使用该模式,挂入仿真器将flash代码擦除,清除错误代码。

3. OTP 主要用于加密算法,密匙的存储等,在OTPmemory上运行加密算法进行验证,待加密通过以后,再进行二次引到从外部flash读取数据。处于加密考虑,OTP一旦写入数据后,将不能更改,只要你不使用OTP模式,片子还能正常使用。


这家伙很懒,什么也没有留下!
等级:论坛版主 参考IP地址:*.*.*.*
2012/3/19 17:59:59
xiehaolin1982(论坛新手)
xiehaolin1982
头衔:社区公民
帮派:无帮无派
帖数:15
金钱:237
积分:21
注册时间:2011/10/31
2信息 | 留言 | Email | 主页 | 编辑 | 管理 | 离线
是在 BF51×_HardWare 的规格书里提到过:第26章节:SYSTEM RESET AND BOOTING(1247页)提到过:
There is a subroutine in the boot kernel known as "preboot", which is executed
prior to the boot mode being processed. This preboot routine can
customize default values of MMR registers, such as the PLL and SDRAM
controller registers. Furthermore, the SPI master mode can be customized.
The preboot behavior is controlled through OTP programming.
To enable booting from volatile memories such as SDRAM, the SDRAM
controller must be programmed before data can be loaded into the memory.
Either the preboot or the initialization code mechanism can be used
for this purpose.

这家伙很懒,什么也没有留下!
等级:论坛新手 参考IP地址:*.*.*.*
2012/3/19 23:11:10
尊贵身份标志
andy(论坛版主)
andy
头衔:社区公民
帮派:无帮无派
帖数:2287
金钱:11132
积分:2263
注册时间:2011/6/8
3信息 | 留言 | Email | 主页 | 编辑 | 管理 | 离线

看上面描述像是OTP Memory加载时对处理器进行的初始化,之前听说过可以通过OTP启动模式初始化这些东西。如果OTP对处理器进行了初始化, INIT_CODE再次初始化的话,会以最后一次初始化为标准,不会冲突。就像我们main函数里面对SDRAM初始化函数的保留一样,同样可以正常启动,不会和INIT_CODE冲突。

没有找到过多的描述,具体不是很清楚。


这家伙很懒,什么也没有留下!
等级:论坛版主 参考IP地址:*.*.*.*
2012/3/20 9:45:36
Powered by OpenADSP Copyright © 2010 www.Openadsp.com. All rights reserved.159276 Call, 1 Queries, Processed in 0.030762 second(s),