您的位置: OpenADSP社区论坛 -> Blackfin专区 -> 新手上路 -> BF51X技术支持专区 -> 关于BF512F核心板上的NorFlash驱动的问题
本帖共有1390个阅读者
发表帖子 发表投票 回复主题
关于BF512F核心板上的NorFlash驱动的问题
Runner(论坛新手)
Runner
头衔:社区公民
帮派:无帮无派
帖数:29
金钱:332
积分:36
注册时间:2012/10/9
楼主信息 | 留言 | Email | 主页 | 编辑 | 管理 | 离线
关于BF512F核心板上的NorFlash驱动的问题
管理员你好,

我正尝试读写核心板载的NorFlash,我使用光盘里带的flash driver修改,现在偶尔能够读到数据,但每次调试载入的时候都出现以下错误:

Warning: External memory is disabled for this region of memory. (出现四行)

而且运行的时候,很容易就unexpected exception。

请问,这有可能是什么原因呢?我应该从哪个方面去排查错误?

这家伙很懒,什么也没有留下!
等级:论坛新手 参考IP地址:*.*.*.*
2012/12/27 18:00:09
Runner(论坛新手)
Runner
头衔:社区公民
帮派:无帮无派
帖数:29
金钱:332
积分:36
注册时间:2012/10/9
1信息 | 留言 | Email | 主页 | 编辑 | 管理 | 离线
但也不是完全读不到数据,如果运气好是可以读到的,只要程序不死,读到都是正确的。

这家伙很懒,什么也没有留下!
等级:论坛新手 参考IP地址:*.*.*.*
2012/12/27 18:01:21
尊贵身份标志
andy(论坛版主)
andy
头衔:社区公民
帮派:无帮无派
帖数:2287
金钱:11132
积分:2263
注册时间:2011/6/8
2信息 | 留言 | Email | 主页 | 编辑 | 管理 | 离线
代码中可能使用了SDRAM的地址存储数据,但SDRAM的空间是关闭的,导致弹出警告。

这家伙很懒,什么也没有留下!
等级:论坛版主 参考IP地址:*.*.*.*
2012/12/27 19:04:47
Runner(论坛新手)
Runner
头衔:社区公民
帮派:无帮无派
帖数:29
金钱:332
积分:36
注册时间:2012/10/9
3信息 | 留言 | Email | 主页 | 编辑 | 管理 | 离线
谢谢Andy的回复!

但从你这个回复看来,我的程序似乎有几个问题:

1,“SDRAM空间是关闭的”,这是否代表我的SDRAM没有正确的初始化?

2,“代码中使用了SDRAM地址”,请问SDRAM地址和Norflash地址分别是什么?我看到代码中有一个宏定义:#define FLASH_START_ADDR 0x20000000,这是否意味着Norflash地址是正确的?

3,我用排除法,一个个查,查到只要有adi_dev_Open、adi_dev_Control这样的库函数,就肯定出警告。

请指教!

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

1. 可以这么认为。但也可能使用了SDRAM之外的内存地址,如SDRAM是32MB,但你使用了33MB的地址空间。

2. SDRAM地址是从0开始一直到你SDRAM容量大小位置,但不会超过128MB。norflash使用bank0地址,起始地址为0x2000 0000,每个bank大小为1MB,但通常NorFlash占用2个Bank,共2MB,其地址包含BANK1的1MB地址。

3. 不清楚,尽量使用代码兼容的flash,这样就不用修改代码,避免麻烦。


这家伙很懒,什么也没有留下!
等级:论坛版主 参考IP地址:*.*.*.*
2012/12/28 11:32:53
Runner(论坛新手)
Runner
头衔:社区公民
帮派:无帮无派
帖数:29
金钱:332
积分:36
注册时间:2012/10/9
5信息 | 留言 | Email | 主页 | 编辑 | 管理 | 离线
我使用的sdram初始化代码是

void Init_EBIU(void)
{
*pEBIU_AMBCTL0 = 0x7bb07bb0;
*pEBIU_AMBCTL1 = 0xffc07bb0;
*pEBIU_AMGCTL = 0x000f;
}

void Init_SDRAM(void)
{
*pEBIU_SDRRC = 0x00000817;
*pEBIU_SDBCTL = 0x00000025;
*pEBIU_SDGCTL = 0x0091998d;
ssync();
}

这个初始化的函数是从光盘里提供的代码里扒下来的,我是否还需要做一下其他工作?

这家伙很懒,什么也没有留下!
等级:论坛新手 参考IP地址:*.*.*.*
2012/12/28 11:58:51
Runner(论坛新手)
Runner
头衔:社区公民
帮派:无帮无派
帖数:29
金钱:332
积分:36
注册时间:2012/10/9
6信息 | 留言 | Email | 主页 | 编辑 | 管理 | 离线
能否提供板载的nor flash的读写驱动?光盘里提供的驱动是供固件烧录用的,我引入项目之后就出警告

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

没有这个代码


这家伙很懒,什么也没有留下!
等级:论坛版主 参考IP地址:*.*.*.*
2012/12/28 15:27:43
Powered by OpenADSP Copyright © 2010 www.Openadsp.com. All rights reserved.159219 Call, 1 Queries, Processed in 0.046875 second(s),