9644 views|27 replies

87

Posts

0

Resources
The OP

How to load wince 5.0 binfs? [Copy link]

I have a few questions for you guys. 1) I partitioned NAND FLASH using BOOTPART LIB under UBOOT, formatted the first 40M as BINFS, and the rest as FAT. If I have a BIN file that needs to be accessed through the BINFS file system, when I write data to the BINFS partition, should I write directly to the XXX.BIN file, or to the interpreted XXX.NB0 file? By looking at the EBOOT source code, my guess is that the XXX.NB0 file should be written, and the XXX.BIN file is converted to the NB0 file after being downloaded through EBOOT. 2) When I use a single BIN, I directly download the NB0 file to a fixed address, and the entire system can run normally. In order to test the situation of multiple BINs, I made the following modifications to my config.bin: NK 8C200000 02300000 RAMIMAGE CHAIN 8E500000 100000 RESERVED KK 8E600000 100000 NANDIMAGE RAM 8E600000 01600000 RAM pdwXIPLoc 00000000 8E500000 FIXUPVAR I added the KK image file, which only contains one file, cdc-acm.dll. All other things are still in NK. The registry also adds support for BINFS [HKEY_LOCAL_MACHINE\System\StorageManager\PartitionTable] "21"="BINFS" [HKEY_LOCAL_MACHINE\System\StorageManager\BINFS] "Folder"="BINFS" "FriendlyName"="Bin FileSystem" "Dll"="binfs.dll" "Paging"=dword:1 "MountAsROM"=dword:1 "MountHidden"=dword:0 Then I wrote the KK.NB0 file to the BINFS partition, loaded NK.NB0, CHAIN.NB0 to a fixed address, and jumped to execute. The entire system can be started, but the cdc-acm.dll file cannot be seen in the /WINDOWS directory. In the storage manager, it can be seen that the system has recognized 2 partitions, the BINFS partition and the FAT partition. However, the BINFS partition is not mounted, only the FAT partition is mounted. I manually mount the BINFS partition, and it prompts that the partition cannot be loaded. : Also, I did not use the HIVE registry (I don't know if this will have an impact). The following is my NAND FALSH registry [HKEY_LOCAL_MACHINE\Drivers\BuiltIn\FlashDrv] "Prefix"="DSK" "Dll"="FLASHDRV.dll" ; "FSD"="FATFS.DLL" "Order"=dword:2 "Ioctl"=dword:4 "Profile"="FlashDrv" "FriendlyName"="MS Flash Driver" "IClass"=multi_sz:"{A4E7EDDA-E575-4252-9D6B-4195D48BB865}" [HKEY_LOCAL_MACHINE\System\StorageManager\Profiles\FlashDrv] "Folder"="NandFlash" "Name"="Nand Flash Disk" "DefaultFileSystem"="BINFS" "PartitionDriver"="mspart.dll" "AutoMount"=dword:1 "AutoPart"=dword:1 ; "AutoFormat"=dword:1 3) Is it possible to mount the BINFS partition to a directory and make it visible to the user by setting "MountHidden"=dword:0? I searched for relevant information and found that some said it was possible and some said it was not.
This post is from Embedded System

Latest reply

Mark, I am currently working on this aspect.  Details Published on 2009-9-8 11:30

81

Posts

0

Resources
2
As the name implies, binfs is a file system for bin files. You create a nb0 file now. That won't work. I looked at the source code of binfs and felt that I was too inexperienced. I couldn't understand it. I can only look at it when I am more experienced.
This post is from Embedded System

58

Posts

0

Resources
3
I don't have EBOOT now, so I didn't look at it carefully, but I saw that the source code was explained while downloading? Finally, it jumped, or wrote to the flash. I'm not sure now, I want to confirm it
This post is from Embedded System

79

Posts

0

Resources
4
Moreover, when BINFS parses the image, it should only need the TOC of the corresponding image to locate the file.
This post is from Embedded System

73

Posts

0

Resources
5
I don't understand, help me
This post is from Embedded System

63

Posts

0

Resources
6
UP
This post is from Embedded System

66

Posts

0

Resources
7
Friendship UP
This post is from Embedded System

63

Posts

0

Resources
8
Regarding the binfs issue, it will take me two months to have time to look at it in detail. Now we need to lay the foundation. Once you figure it out, write a blog. Then I will also benefit from it.
This post is from Embedded System

67

Posts

0

Resources
9
Use .nb0 format. It doesn't matter if you use Binfs or Hive.
This post is from Embedded System

71

Posts

0

Resources
10
LZ can put the Binfs part under his own BSP and debug it to see why it is not loaded.
This post is from Embedded System

76

Posts

0

Resources
11
To correct a concept, the relationship between nk.bin and nk.nb0 is the difference between a compressed and an uncompressed one.
This post is from Embedded System

80

Posts

0

Resources
12
When using eboot or the like, all files downloaded through serial port, USB, network port, etc. are bin files, unless they are specially modified eboot. nb0 is generally provided for production to be burned directly into flash using a burner before mounting. After the registry is modified, BINFS can be mounted, but it cannot be modified. How is your bin generated? Why is it required to download a bin separately and put it into an existing binfs system? It can be downloaded, but how to ensure that the content contained in this bin file can be recognized by the system?
This post is from Embedded System

71

Posts

0

Resources
13
OK, thank you all first. BINFS is just a file system. I created a BINFS partition on NAND using the OPEN interface provided by BOOTPART. I have to write the .NB0 file to this partition through the WRITE interface provided by BOOTPART, right? That means the data written to the BINFS partition is in the .NB0 format, right? The .BIN format is only used during the download process. ... Later today, I opened the BINFS log and found that when the system was mounted with the BINFS file system, in the InitVolume function, an error occurred when kernellibiocontrol was called at the end. The error message was IOCTL_KLIB_SETROMDLLBASE faild. I don't know what the reason is? Is it related to the configuration in config.bib?




This post is from Embedded System

74

Posts

0

Resources
14
I have configured it like this now NK 8C200000 02300000 RAMIMAGE ----------All image files are in this area CHAIN 8E500000 100000 RESERVED KK 8E600000 100000 NANDIMAGE ----------This is a zone created for testing multiple BINs. I only put one file in this zone RAM 8E600000 01600000 RAM pdwXIPLoc 00000000 8E500000 FIXUPVAR After compiling, nk.bin, kk.bin and chain.bin will be generated. Then use the tool to convert them to nk.nb0, kk.nb0 and chain.nb0. In UBOOT, I first use BP_OpenParition to create a BINFS partition and a FAT partition. Then download KK.NB0 via TFTP, call BP_WriteData to write KK.NB0 into the BINFS partition just created. Finally, download NK.NB0 and CHAIN.NB0 to SDRAM via TFTP, and directly GO to NK.NB0 to run. The system has started normally and has failed to the BINFS partition, but the error mentioned above appears when mounting. I don’t know which configuration/operation is improper to cause this error?
This post is from Embedded System

62

Posts

0

Resources
15
After reading the source code for a day, I understood the implementation principles and processes of BINFS and MULTI-BIN. . . It can be confirmed that the file system image format of BINFS is .NB0 format, not .BIN format, so the .NB0 file can only be written to the BINFS partition. . . But now it is still stuck at IOCTL_KLIB_SETROMDLLBASE faild. . I don’t know what will cause this problem. . . Well, I will continue to read the source code. .
This post is from Embedded System

55

Posts

0

Resources
16
Look for a Xip.bin and Xip.nb0 under your Release directory. According to your writing method, you can directly burn xip.nb0 to the corresponding binfs partition. Pay attention to the burning location, because the partition is marked as BINFS. If the header is cleared, the content in the Binfs partition will not be detected when the system starts. When starting, copy the content of NK size to RAM in eboot, and then jump to run.
This post is from Embedded System

65

Posts

0

Resources
17
Quote from foochow's reply on the 14th floor: After reading the source code for a day, I understood the implementation principle and process of BINFS and MULTI-BIN. . . It can be confirmed that the file system image format of BINFS is .NB0 format, not .BIN format, so the only way is to write the .NB0 file to the BINFS partition. . . But now it is still stuck at IOCTL_KLIB_SETROMDLLBASE faild. . I don't know what will cause this problem. . . I will continue to read the source code. .
That's great! I am not using XIP now, and I don't use binfs at all. If I can burn the nb0 file to implement XIP, it will be much simpler.
This post is from Embedded System

67

Posts

0

Resources
18
BINFS is actually the format of NB0, which has nothing to do with the format of NK.bin. Please don't be misled.
This post is from Embedded System

59

Posts

0

Resources
19
Now the BINFS file system has been mounted successfully, and the files in the /BINFS directory can be seen. However, the following exception message appears during the startup process. 'services.exe' AKY=00000021 PC=8c20a738(NK.EXE+0x0000a738) RA=8c207d40(NK.EXE+0x00007d40) BVA=00000001 FSR=00000001 Unhandled exception c000001c: Terminating thread 8fe0394c OpenADll credsvc.dll OpenADll credprov.dll OpenADll ntlmssp.dll OpenADll HTTPD.DLL OpenADll BTSVC.Dll OpenADll BTDRT.dll OpenADll BTAGSVC.Dll OpenADll btagext.dll RaiseException: Thread=8fe09be0 Proc=8e626530 'services.exe' AKY=00000021 PC=8c20a738(NK.EXE+0x0000a738) RA=8c207d40(NK.EXE+0x00007d40) BVA=00000001 FSR=00000001 Unhandled exception c000001c: Terminating thread 8fe09be0 OpenADll imaging.dll OpenADll ZLIB.dll OpenADll iectl Explorer(V2.0) taskbar thread started. OpenADll LMemDebug.DLL RaiseException: Thread=8fd4c400 Proc=8e626620 'usbcnect.exe' AKY=00000041 PC=8c20a738(NK.EXE+0x0000a738) RA=8c207d40(NK.EXE+0x00007d40) BVA=00000001 FSR=00000001 But the system is not dead, the touch screen is still normal, some programs run abnormally, and some applications can run normally. . I don’t know what the reason is? If it is not mounted on the BINFS file system, the system runs normally.

This post is from Embedded System

81

Posts

0

Resources
20
The address might be wrong somewhere.
This post is from Embedded System

Guess Your Favourite
Find a datasheet?

EEWorld Datasheet Technical Support

Related articles more>>

    EEWorld
    subscription
    account

    EEWorld
    service
    account

    Automotive
    development
    circle

    Robot
    development
    community

    About Us Customer Service Contact Information Datasheet Sitemap LatestNews

    Room 1530, Zhongguancun MOOC Times Building, Block B, 18 Zhongguancun Street, Haidian District, Beijing 100190, China Tel:(010)82350740 Postcode:100190

    Copyright © 2005-2025 EEWORLD.com.cn, Inc. All rights reserved 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号
    快速回复 返回顶部 Return list