Author: wogoyixikexie @ gliet
------------------------------------
I saw some things in my previous post. Very interesting
--------------------
Wikee |
|
Check D:/wince500/public/common/oak/Drivers/sdcard D:/wince500/public/common/oak/CSP/ARM/Samsung/S3C2410X/sdhc All have code. However, I checked the sources file in the process. The generated types are lib and no DLL is generated. The bib file contains three drivers. sdbusdriver. dll sdcsdcard. dll sdmemary. dll seems to exist in BSP files. Does the development board provider that provides BSP not provide this part of code, but provides DLL usage? However, none of the above two paths are in platform and are included in Pb. Is it standard? The Interrupt Port of my sdcard is to check whether crad exists or not and whether the PIN is inserted or not. It is different from the Development Board. Which files and functions need to be modified? Thank you for your guidance. |
Shuiii |
|
The three drivers in the bib file are provided by the Development Board vendors. The three DLL files do not have source code. D:/wince500/public/common/oak/Drivers/sdcard D:/wince500/public/common/oak/CSP/ARM/Samsung/S3C2410X/sdhc This is actually the source code under 5.0. You can modify the source file and compile it into a DLL. |
|
Zhuxiaofeng |
|
Sdbusdriver. dll Sdcsdcard. dll Sdmemary. dll Oh, the upstairs is wrong. All three of them have source code. Provided by Microsoft, under public/common/oak/driver/sdcard. On the first floor, modify your source file and generate the DLL file directly. "| I checked the sources file in progress. The generated types are lib and no DLL is generated" You are right, It is used to generate the DLL when it is actually sysgen, I cannot find the file now. You just need to change it to DLL .. Haha .. |
|
Wikee |
|
Why is the three DLL generated so concealed? It seems that you have to modify the sources file by yourself.The relationship is not very understandable. I don't know if I understand it like this, right: Client DRIVER: sdmemary. dll Folder path: D:/wince500/public/common/oak/Drivers/sdcard/sdclientdrivers/sdmemory Bus driver: sdbusdriver. dll Folder path: D:/wince500/public/common/oak/Drivers/sdcard/sdbusdriver Host DRIVER: sdhc_sc2410.dll instead of sdcsdcard. dll Folder path: D:/wince500/public/common/oak/CSP/ARM/Samsung/S3C2410X/sdhc Modify the registry and platform bib file so that the kernel can load the three new DLL files? |
|
Zhuxiaofeng |
|
No, no need to modify, You only need to load it in platform. Reg and bib. Host DRIVER: sdhc_sc2410.dll That's all, Do not change anything. It is all system and will be automatically loaded, Those all in common .. |
|
Wikee |
|
This sdcsdcard. dll does not belong to the host driver layer? Does sdhc_sc2410.dll conflict with it? Or is there no host driver layer at all? Do you need to add sdhc_sc2410.dll as the host driver?Added an sdhc_sc2410.dll in builtin in platform. Reg? I used to replace the sdcsdcard. dll name. Can you give me a closer look upstairs? |
|
Zhuxiaofeng |
|
What about pb5.0 ?? What is the development version ?? |
|
Wikee |
|
It is pb500, and the development board is Li yutai. I am now calling my own board, but I am not very familiar with the SD driver. I have changed the SD Interrupt Port, so I need to modify the driver. I tried the Development Board to find the sdcard. It is estimated that you can change the driver. If you cannot change the hardware, you will regret it. |
|
Wikee |
|
Modified the interrupt. You can see the interrupt response. But there is no disk. Check that sdmemary. dll is not loaded. Under deveic. EXE, only sdcsdcard. dll and sdbusdriver. dll are available.What should I do to let the system load sdmemay. dll? |
|
Zhuxiaofeng |
|
There is no sdcsdcard. dll in the pb500 registry. It targets some standard interfaces. And sdhc_sc2410.dll. No need to add, you can look .. |
|
Wikee |
|
Zhuxiaofeng My Pb does not contain sdhc_sc2410.dll and only sdcsdcard. dll. You may need to modify it yourself. Below are the SD registry content and bib file content. Please take a look at it for me.; SD bus driver Sdbusdriver. dll $ (_ flatreleasedir)/sdbusdriver. dll NK sh ; SD host Sdcsdcard. dll $ (_ flatreleasedir)/sdcsdcard. dll NK sh Sdmemory. dll $ (_ flatreleasedir)/sdmemory. dll NK sh ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;;;;;;;;;;;;;;;;;;;;;;;;;;;; ; Charlie, sdio ; Two Step Load process, the bus driver will perform it's ; Own activatedevice call in the entry point provided ; This way the driver even though it is a builtin device, it can be unloaded [HKEY_LOCAL_MACHINE/Drivers/builtin/sdbusdriver] "Order" = DWORD: 20 "DLL" = "sdbusdriver. dll" "Entry" = "sdbusdriverstartup" [HKEY_LOCAL_MACHINE/Drivers/sdcard/sdbusdriver] "Order" = DWORD: 20 "DLL" = "sdbusdriver. dll" "Prefix" = "SDC" "Threadpriority" = DWORD: 64; default thread priority for dispatch thread "Requestlistdepth" = DWORD: 30; pre-allocated requests ; "Zonemask" = DWORD: e01d; example zone mask [HKEY_LOCAL_MACHINE/system/storagemanager/profiles/sdmemory] "Name" = "SD memory card" "Folder" = "storage card" ; "Partitiondriver" = ""; removable storage cannot have partitions [HKEY_LOCAL_MACHINE/system/storagemanager/profiles/MMC] "Name" = "MMC card" "Folder" = "storage card" ; "Partitiondriver" = ""; removable storage cannot have partitions ; SD memory storage class driver [HKEY_LOCAL_MACHINE/Drivers/sdcard/clientdrivers/class/sdmemory_class] "DLL" = "sdmemory. dll" "Prefix" = "DSK" "FSD" = "fatfs. dll" "IOCTL" = DWORD: 4; disk_ioctl_initialize, sent to driver by devicemanager "Blocktransfersize" = DWORD: 40; send no more than 64 blocks of data per bus transfer ; "Singleblockwrites" = DWORD: 1; alternatively force the driver to use single block access "Profile" = "sdmemory" "Iclass" = multi_sz: "{A4E7EDDA-E575-4252-9D6B-4195D48BB865 }", "{A32942B7-920C-486b-B0E6-92A702A99B35 }"
; MMC storage class driver [HKEY_LOCAL_MACHINE/Drivers/sdcard/clientdrivers/class/mmc_class] "DLL" = "sdmemory. dll" "Prefix" = "DSK" "FSD" = "fatfs. dll" "IOCTL" = DWORD: 4; disk_ioctl_initialize, sent to driver by devicemanager "Blocktransfersize" = DWORD: 40; send no more than 64 blocks of data per bus transfer ; "Singleblockwrites" = DWORD: 1; alternatively force the driver to use single block access "Profile" = "MMC" "Iclass" = multi_sz: "{A4E7EDDA-E575-4252-9D6B-4195D48BB865 }", "{A32942B7-920C-486b-B0E6-92A702A99B35 }" ; Setting for SD bus driver to load driver [HKEY_LOCAL_MACHINE/Drivers/sdcard/hostcontrollers/SDSC] "DLL" = "sdcsdcard. dll" "Prefix" = "SDC" |
|
Wikee |
|
A registry is found in the sdhc folder. However, this registry has an error. It must be changed to your own hardware.In addition, I read the code and use it as an input port. No interruption method is used to detect card insertion. Strange. After the targettype of the sources file is changed to dynlink, the link fails. Many extern variables cannot be found. Zhuxiaofeng: can you talk to me directly? I 've added QQ. Thank you! |
|
Hyhappy |
|
Can you tell me how to develop a driver? |
|
Qlb211999 |
|
Excuse me, do I need to change the source files of the three DLL files from LIB to DLL? |
|
--------------------------------
Wait, And I will close this old post.
-- In fact, this 2410 sdhc is under the Microsoft Installation File.
C:/wince500/public/common/oak/CSP/ARM/Samsung/S3C2410X/sdhc
See the following posts for answers.
Http://topic.csdn.net/u/20080916/16/00d9a2be-e4f8-4bea-b892-f25e20ac4c83.html
Http://bbs.driverdevelop.com/htm_data/48/0811/114421.html
Http://www.itpub.net/archiver/tid-1058350.html