3631|4

1

帖子

0

TA的资源

一粒金砂(初级)

楼主
 

将剩余nor flash 划分分区问题 [复制链接]

我的平台是PXA270+Wince6.0,32M Intel P30 NOR Flash
使用MSFALH来将flash剩余容量利用起来,遇到了一些问题,也有一些疑问,请大家帮忙一下。
如果使用RAM运行, 分区划分成功,可正常显示盘符,也可以正常读写。
但如果选择 IMGFLASH 写入flash后, fmd_driver 一调用  write_command 命令读写flash就死机。造成没法启动。

我查了很多资料,也参考了前辈大侠们的一些帖子,我现在的做法是:
1、在catolog中加入MSFLASH驱动
2、修改注册表和platform.bib文件。
有几个疑问如下:
3、对于MS提供的MSFLASH驱动,我查了一些资料,发现似乎不用修改这个驱动,直接使用即可,只需要在注册表中进行正确的设置。请问是这样吗?

NK.bin 大小是 20M, 我将最后5M划分为一个分区。
OEMtable中关于flash的信息如下:

C/C++ code

        DCD     0x9CA00000, 0x00000000, 32      ; MAINSTONEII: nCS0: Boot Flash (32MB).



我的注册表资料如下:

; HIVE BOOT SECTION
;-------------------------------------------------------------
; MsFlash(Strata Flash Driver)
;-------------------------------------------------------------
; StrataFlash block driver.
[HKEY_LOCAL_MACHINE\Drivers\BuiltIn\StrataFMD]
  "Dll"="stratad.dll"
  "Order"=dword:2
  "Prefix"="DSK"
  "Ioctl"=dword:4
  "Profile"="MSFlash"
  "IClass"="{A4E7EDDA-E575-4252-9D6B-4195D48BB865}"
  "IsPairedFlash"=dword:1
  "BlockSize"=dword:40000
  "WriteBufferSize"=dword:40
  "MemBase"=dword:Be500000     
  "MemLen"=dword:00500000

; Support XIP in IMGFS
[HKEY_LOCAL_MACHINE\System\StorageManager\Profiles\MSFlash\IMGFS]
    "XIP"=dword:1

; Override names in default profile
[HKEY_LOCAL_MACHINE\System\StorageManager\Profiles\MSFlash]
    "Name"="MSFLASH for STRATAFLASH"
    "Folder"="NOR Flash"
   

[HKEY_LOCAL_MACHINE\System\StorageManager\AutoLoad\MSFlash]
    "DriverPath"="Drivers\\BuiltIn\\StrataFMD"
    ; LoadFlags 0x01 == load synchronously
    "LoadFlags"=dword:1
    "Order"=dword:0
    "BootPhase"=dword:0


; Override names in default profile
[HKEY_LOCAL_MACHINE\System\StorageManager\Profiles\MSFlash]
"DefaultFileSystem"="FATFS"
"PartitionDriver"="mspart.dll"
"AutoMount"=dword:1
"AutoPart"=dword:1
"AutoFormat"=dword:1
"BootPhase"=dword:0
"Name"="MSFLASH for STRATAFLASH"
"Folder"="Flash"
"MountFlags"=dword:2
"MountAsBootable"=dword:1

[HKEY_LOCAL_MACHINE\System\StorageManager\Profiles\MSFlash\FATFS]
"FriendlyName"="FAT FileSystem"
"Dll"="fatfsd.dll"
;"Flags"=dword:00000024
"Paging"=dword:1
"CacheSize"=dword:0
"EnableCacheWarm"=dword:0
"EnableCache"=dword:1
"MountFlags"=dword:2

; Valid Bits for Flags registry value
; If no flags are set, the hive will be stored in the object store.
;
; 0x00000001    Start storage manager in boot phase 1 for hive-based registry
; 0x00000002    Start device manager in boot phase 1 for hive-based registry
; 0x00000004    Start storage manager in boot phase 1 for registry in
;              external ROM (such as BINFS)
; 0x00000008    Start device manager in boot phase 1 for registry in
;              external ROM (such as BINFS)

;[HKEY_LOCAL_MACHINE\init\BootVars]
;  "SystemHive"="Documents and Settings\\system.hv"
;  "ProfileDir"="Documents and Settings"
;  "Start DevMgr"=dword:1
;  "Flags"=dword:3
;  "RegistryFlags"=dword:1

;[HKEY_LOCAL_MACHINE\init\BootVars]
;"DefaultUser"="default"
; END HIVE BOOT SECTION

最新回复

大侠,在norflash用xip跟不用xip差别不大啊,相反不断对norflash进行读写会降低其使用寿命  详情 回复 发表于 2009-5-11 10:18
点赞 关注

回复
举报

3

帖子

0

TA的资源

一粒金砂(初级)

沙发
 
从debug(imgflash)版本输出信息来看
在操作 write_command 发生 Data Abort 异常,
但是如果是RAM运行,则正常, 望指导下,谢谢


FILESYS: Starting boot phase 0.
FSDMGR!STOREMGR_StartBootPhase BootPhase=0 (PrevBootPhase=-1)
FSDMGR: File security disabled.
FSDMGR!AutoLoadFileSystems: CurrentBootPhase=0, LoadFlags=1
FSDMGR!AutoLoadFileSystem: CurrentBootPhase=0, RootKey=System\StorageManager\AutoLoad, FileSystem_t=ObjectStore
FILESYS: RAM File System FSD_MountDisk registering folder "Object Store"
FSDMGR!MountTable_t::RegisterVolumeName: Registered "Object Store" at index 4FSDMGR!MountTable_t::RegisterVolume: RegisteFSDMGR!PNPThread: Using PNPUnloadDelay of 4096
FSDMGR!PNPThread: PNPThread starting!
red volume at index 4 (Name="", MountFlags=0x46)FSDMGR!AutoLoadFileSystem: CurrentBootPhase=0, RootKey=System\StorageManager\AutoLoad, FileSystem_t=MSFlash
FSDMGR!AutoLoadBlockDevice: Auto-loading block driver from "Drivers\BuiltIn\StrataFMD"FSDMGR!MountStore: Attaching new storage device "MSFlash"OSAXST1: >>> Loading Module 'stratad.dll' (0x83F6C408) at address 0xC0FF0000-0xC1011000 in Process 'NK.EXE' (0x80109AA0)
OSAXST1: >>> Loading Module 'k.ceddk.dll' (0x83F6C540) at address 0xC06C0000-0xC06CE000 in Process 'NK.EXE' (0x80109AA0)
Kernel DLL 'stratad.dll' needs thread creation/deletion notification
FMD_Init: Warning, IsPairedFlash not specified in registry.  Using value of 0.
Exception 'Data Abort' (4): Thread-Id=005d0002(pth=83f9d000), Proc-Id=00400002(pprc=80109aa0) 'NK.EXE', VM-active=00400002(pprc=80109aa0) 'NK.EXE'
PC=c06c7390(k.ceddk.dll+0x00007390) RA=c100b450(stratad.dll+0x0001b450) SP=d00be38c, BVA=bea00000
Exception 'Raised Exception' (-1): Thread-Id=005d0002(pth=83f9d000), Proc-Id=00400002(pprc=80109aa0) 'NK.EXE', VM-active=00400002(pprc=80109aa0) 'NK.EXE'
PC=c00ff970(k.coredll.dll+0x0003f970) RA=9cb33db4(kernel.dll+0x00019db4) SP=d00bdb24, BVA=ffffffff
FSDMGR!MountStore: Failed mounting store "MSFlash"; error=50
FSDMGR!StoreDisk_t::~StoreDisk_t: deleting store (D0045CF0)OSAXST1: <<< Unloading Module 'stratad.dll' (0x83F6C408) at address 0xC0FF0000-0xC1011000 in Process 'NK.EXE' (0x80109AA0)
OSAXST1: <<< Unloading Module 'k.ceddk.dll' (0x83F6C540) at address 0xC06C0000-0xC06CE000 in Process 'NK.EXE' (0x80109AA0)
FSDMGR!AutoLoadFileSystems: Unable to auto-load HKLM\System\StorageManager\AutoLoad\MSFlash; error=50FILESYS: Starting boot phase 1.
FSDMGR!STOREMGR_StartBootPhase BootPhase=1 (PrevBootPhase=0)
FSDMGR!AutoLoadFileSystems: CurrentBootPhase=1, LoadFlags=1
FILESYS: Starting device and waiting for boot file system.
 
 

回复

2

帖子

0

TA的资源

一粒金砂(初级)

板凳
 
大家帮忙给个建议,谢谢
 
 
 

回复

7

帖子

0

TA的资源

一粒金砂(中级)

4
 
没人建议?
只好暂时使用 binfs方式将OS NK拷贝到内存来运行,
可是可用内存少了20M,

难道 NOR FLASH XIP模式不能和剩余分区同时存在?
大侠们给个指示.谢谢
 
 
 

回复

3

帖子

0

TA的资源

一粒金砂(初级)

5
 
大侠,在norflash用xip跟不用xip差别不大啊,相反不断对norflash进行读写会降低其使用寿命
 
 
 

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

随便看看
查找数据手册?

EEWorld Datasheet 技术支持

相关文章 更多>>
关闭
站长推荐上一条 1/10 下一条
报名赢【小米双肩包、contigo水杯】 | TI MSPM0 系列 MCU 再添新成员
了解TI 前沿新品——高性能与高性价比的优秀组合 MSPM0G351x / MSPM0L111x,4月24日(周四)上午10:00直播~

查看 »

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

 
机器人开发圈

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

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

北京市海淀区中关村大街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
快速回复 返回顶部 返回列表