0

私は初心者です。

Windows CE 7 でデバイス ドライバーを開発したいと考えています。

TI AM33xx 開発ボードで Adeneo BSP を使用しています

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"));

機能しますが、結果は同じです。

Driver Loading の追加設定はありますか?

ありがとう

ムラト。

4

1 に答える 1

0

ドライバーがフラット リリース ディレクトリにコンパイルされていることを確認します。次に、ドライバーを platform.bib ファイルに追加します。このようなもの:

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