我是新手。
我想在 Windows CE 7 上开发设备驱动程序。
我在 TI AM33xx 开发板上使用 Adeneo BSP
我想驱动一个 SPI Flash,所以我应该使用 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 函数在启动时从未加载。我在微软白皮书中没有看到任何额外的设置。
另外,
我努力了
ActivateDeviceEx(TEXT("Drivers\\BuiltIn\\SPI1"), NULL, 0, NULL);
和
LoadLibrary(TEXT("am33x_mcspi.dll"));
功能但结果相同。
驱动程序加载是否有任何额外设置?
谢谢
穆拉特。