2012-07-31 85 views
0

我是新手。启动时未加载Windows CE 7 SPI驱动程序

我想在Windows CE 7

开发设备驱动程序,我使用Adeneo BSP上TI AM33xx发展局

我想要驾驶SPI闪存,所以我应该使用SPI驱动程序。

我写了我的驱动程序,当我调试它时,所有函数调用正确。但是当我拨打

CreateFile(_T("SPI1:"), 
      GENERIC_READ | GENERIC_WRITE, 
      FILE_SHARE_READ | FILE_SHARE_WRITE, 
      NULL, OPEN_EXISTING, 0, NULL); 

deviceHandle总是返回无效值。因此,当我调试低级SPI驱动程序时,我看到,SPI_Init()流功能从未调用。

有这个脚在我的platform.reg文件

;=============================================================================== 
; MCSPI driver 
#include "$(_PLATFORMROOT)\AM33x_BSP\SRC\DRIVERS\MCSPI\mcspi.reg" 

而且

我mcspi.reg文件

;-- SPI Driver ----------------------------------------------------------------- 
IF BSP_AM33X_MCSPI1 
[HKEY_LOCAL_MACHINE\Drivers\BuiltIn\SPI1] 
    "Prefix"="SPI" 
    "Dll"="am33x_mcspi.dll" 
    "Index"=dword:1 
    "Port"=dword:1 
    "Order"=dword:8 
    "MemBase"=multi_sz:"48030000" 
    "MemLen"=multi_sz:"00000100" 
    "Timeout"=dword:300 
    "PowerFlags"=dword:00000103    ; send pre/post device state changes 
    ; PMCLASS_PMEXT_GUID 
    "IClass"=multi_sz:"{0AE2066F-89A2-4D70-8FC2-29AEFA68413C}" 
ENDIF 

[HKEY_LOCAL_MACHINE \ DRIVERS \ BUILTIN \ SPI1]这条线告诉我们,“SPI1驱动程序将在启动时加载”,不是吗?但是spi驱动程序SPI_Init函数在启动时从未加载过。我在Microsoft白皮书中没有看到任何额外的设置。

,额外的,

我已经试过

ActivateDeviceEx(TEXT("Drivers\\BuiltIn\\SPI1"), NULL, 0, NULL); 

LoadLibrary(TEXT("am33x_mcspi.dll")); 

功能,但结果是一样的。

是否有任何额外的驱动程序加载设置?

谢谢

穆拉。

回答

0

确保您的驱动程序已编译到您的平面版本目录。然后,将您的驱动程序添加到您的platform.bib文件中。像这样:

am33x_mcspi.dll $(_FLATRELEASEDIR)\am33x_mcspi.dll NK SH