私は初心者です。
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 の追加設定はありますか?
ありがとう
ムラト。