3933|10

59

帖子

0

TA的资源

一粒金砂(初级)

楼主
 

Eboot中InitPartitionMgr()分区格式化问题 [复制链接]

当进入Eboot后想格FLASH
在InitPartitionMgr()中

  1. BOOL InitPartitionMgr(void)
  2. {
  3.         PCI_REG_INFO RegInfo;        // No PCI here, just need registry structure...

  4.         memset(&RegInfo, 0, sizeof(PCI_REG_INFO));
  5.         RegInfo.MemBase.Num    = 1;
  6.         RegInfo.MemLen.Num     = 1;
  7.         RegInfo.MemBase.Reg[0] = FLASH_BIN_START;                // Flash base address.
  8.         RegInfo.MemLen.Reg[0]  = BOOT_FLASH_SIZE - (FLASH_BIN_START - FLASH_START);        // Total flash length.

  9.         if (!BP_Init((LPBYTE)BLOCK_SAVE_START, BLOCK_SAVE_LENGTH, NULL, &RegInfo, NULL))
  10.         {
  11.                 EdbgOutputDebugString("ERROR: InitPartitionMgr: failed to initialize partition manager.\r\n");
  12.                 return(FALSE);
  13.         }

  14.         return(TRUE);
  15. }
复制代码

按上面的肯定会提示:ERROR: InitPartitionMgr: failed to initialize partition manager

我把它改成从物理地址0开始格,对应的虚拟地址是:FLASH_START,长度是BOOT_FLASH_SIZE
这时候能成功,不过把EBOOT及CFG的信息全格没了。
我只想格除EBOOT及CFG所在的其它空间?是哪里的问题呀?
各位英雄!

最新回复

InitializeFlash这个函数贴出来  详情 回复 发表于 2009-9-24 17:14
点赞 关注

回复
举报

81

帖子

0

TA的资源

一粒金砂(初级)

沙发
 
MS的原始BP_Init里只调用了FMD_Init、FMD_GetInfo,然后就初始化内存地址。难道LZ是在FMD_Init里自己做的格式化?那就要看看flash驱动了。
 
 

回复

81

帖子

0

TA的资源

一粒金砂(初级)

板凳
 
你直接到BP_Init这个函数里面去看看。。。。。
 
 
 

回复

90

帖子

0

TA的资源

一粒金砂(初级)

4
 
当然没了有。只是这里初始化内存地址错误,初始化后才会调用其它的格式化函数!
英雄,哪里出了点问题呢?
我可以全部格,但不能只格一部分FLASH
 
 
 

回复

61

帖子

0

TA的资源

一粒金砂(中级)

5
 
不说了。。。。。
 
 
 

回复

75

帖子

0

TA的资源

一粒金砂(初级)

6
 
是FMD_Init()失败
为什么FMD_Init()整个FLASH的区域就可以,只初始化除EBOOT以外的分区就不行呢?
 
 
 

回复

82

帖子

0

TA的资源

一粒金砂(初级)

7
 
你在取看看FMD_Init()这个函数干了什么。。。什么叫初始化eboot以外的分区啊。。你eboot要写NK,eboot以外的分区包括些什么呢。。。eboot还干别的事情。。。。FMD_Init()只是让nandflash能正常工作而已。。。。
 
 
 

回复

69

帖子

0

TA的资源

一粒金砂(初级)

8
 
EBOOT所占的那部分内存空间我不想格。
我这里没有NANDFLASH。只有NORFLASH
 
 
 

回复

64

帖子

0

TA的资源

一粒金砂(初级)

9
 
哦。。。你不是nand啊。。一般前一部分不想格式化那么就将这些部分都写上保护。。。我不知道nor怎么搞的。。你也可以添加个标志位来标记下
 
 
 

回复

61

帖子

0

TA的资源

一粒金砂(初级)

10
 
BOOLEAN InitializeFlash(volatile PULONG pBaseAddress, ULONG FlashLength)
这是方返回FALSE
换成InitializeFlash(FLASH_START,LEN)可以
InitializeFlash(FLASH_BIN_START,LEN)就出错。!
两个地址分别是:FLASH_START 0xB8300000
FLASH_BIN_START 0xB8380000
为什么把EBOOT的地址加上去就出错?
 
 
 

回复

72

帖子

0

TA的资源

一粒金砂(初级)

11
 
InitializeFlash这个函数贴出来
 
 
 

回复
您需要登录后才可以回帖 登录 | 注册

随便看看
查找数据手册?

EEWorld Datasheet 技术支持

相关文章 更多>>
关闭
站长推荐上一条 1/6 下一条

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

About Us 关于我们 客户服务 联系方式 器件索引 网站地图 最新更新 手机版

站点相关: 国产芯 安防电子 汽车电子 手机便携 工业控制 家用电子 医疗电子 测试测量 网络通信 物联网

北京市海淀区中关村大街18号B座15层1530室 电话:(010)82350740 邮编:100190

电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2025 EEWORLD.com.cn, Inc. All rights reserved
快速回复 返回顶部 返回列表