0

我是新手。

我想在 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"));

功能但结果相同。

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

谢谢

穆拉特。

4

1 回答 1

0

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

am33x_mcspi.dll $(_FLATRELEASEDIR)\am33x_mcspi.dll NK SH
于 2013-01-17T18:36:02.733 回答