Freigeben über


Sharks Cove-Hardwareentwicklungsboard

Warnung

Das Sharks Cove-Hardwareentwicklungsboard wird für Windows IoT Core nicht mehr unterstützt. Eine Liste der derzeit unterstützten Boards finden Sie unter SoCs und benutzerdefinierte Boards.

Sharks Cove ist ein Hardwareentwicklungsboard , mit dem Sie Hardware und Treiber für Windows entwickeln können.

Das Intel Sharks Cove-Board unterstützt die Treiberentwicklung für Geräte, die eine Vielzahl von Schnittstellen verwenden, einschließlich GPIO, I2C, I2S, UART, SDIO und USB. Sie können auch das Sharks Cove-Board verwenden, um Treiber für Kameras und Touchscreens zu entwickeln.

Vorbereitung

Die hier angegebenen Anweisungen erfordern, dass Sie Windows 10, Windows 8.1 oder Windows 7 ausführen. Diese Anweisungen funktionieren nicht, wenn Sie Windows 8 ausführen.

Wenn Sie Windows 7 ausführen, müssen Sie PowerShell 4.0 und das Windows ADK herunterladen und installieren. Navigieren Sie dann im Startmenü zu Alle Programme > Windows Kits > Windows ADK-Bereitstellungs > - und Imageerstellungstools-Umgebung. Öffnen Sie dieses Eingabeaufforderungsfenster als Administrator. Verwenden Sie dieses Eingabeaufforderungsfenster, wenn Sie die in diesen Anweisungen angegebenen Befehle eingeben.

Sie benötigen diese Hardware:

  • Sharks Cove Board mit mitgeliefertem Netzkabel und Adapter.
  • USB-Hub
  • USB-Tastatur
  • USB-Maus
  • USB-Netzwerkadapter
  • Monitor- und HDMI-Kabel (und möglicherweise Adapter)

Sie können ein Sharks Cove-Board bei RCS Components oder Kynix erhalten.

Schritt 2: Herunterladen von Kits und Tools

Eine Treiberentwicklungsumgebung verfügt über zwei Computer: den Hostcomputer und den Zielcomputer. Der Zielcomputer wird auch als Testcomputer bezeichnet. Sie entwickeln und erstellen Ihren Treiber in Microsoft Visual Studio auf dem Hostcomputer. Der Debugger wird auf dem Hostcomputer ausgeführt und ist auf der Visual Studio-Benutzeroberfläche verfügbar. Wenn Sie einen Treiber testen und debuggen, wird der Treiber auf dem Zielcomputer ausgeführt. In diesem Fall ist das Sharks Cove-Board der Zielcomputer.

Um Hardware und Treiber für das Sharks Cove-Board zu entwickeln, benötigen Sie diese Kits und Tools auf dem Hostcomputer:

Laden Sie auf dem Hostcomputer zuerst Visual Studio, dann das WDK herunter, und laden Sie dann das WDK-Test pack herunter. Sie müssen die Debugtools für Windows nicht separat herunterladen, da sie im WDK enthalten sind.

Dokumentation

Schritt 3: Installieren von Windows auf dem Sharks Cove-Board

Sie können eine der folgenden Versionen von Windows auf Ihrem Sharks Cove-Board installieren:

Begriff BESCHREIBUNG
Windows Embedded 8.1 Industry Pro Evaluation Dies ist eine 180-tägige kostenlose Testversion. Dies wird als Evaluierungsversion bezeichnet.
Windows Embedded 8.1 Industry Pro mit Update (x86) – DVD Hierfür ist ein Abonnement erforderlich. Dies wird als Vollversion bezeichnet.

Wenn Sie beabsichtigen, die Evaluierungsversion zu installieren, lesen Sie diese Änderung des Lizenzvertrags:

Änderung der Evaluierungs-Software-Lizenzbedingungen für das Hardwareentwicklerprogramm

Wenn die Verwendung dieser Software zur Unterstützung des Hardware-Entwicklerprogramms erfolgt, gelten die folgenden Bedingungen:

  • Sie stimmen den Bedingungen der Microsoft Evaluation Software License Terms for Windows Embedded 8.1 Industry Pro ("Evaluation Software License Terms") in ihrer Gesamtheit zu, mit Ausnahme von:
    • Abschnitt 1.b. (Demonstrationsrechte) der Evaluierungssoftware-Lizenzbedingungen werden teilweise geändert, als: - Sie können potenziellen Kunden, eine Anzahl, die für Demonstrationszwecke vernünftigerweise erforderlich ist, Windows Embedded 8.1 Industry Pro-Geräte, die von Ihnen durch Ihre Verwendung der Software entwickelt wurden, demonstrieren oder zur Demonstration bereitstellen ("Demonstrationsgerät"). Sie können Demonstrationsgeräte vorführen und an Kunden ausliefern, die keine Geheimhaltungspflichten unterliegen.
    • Es gelten alle Bestimmungen in Ziffer 1.b., die dem geänderten Abschnitt nicht unmittelbar widersprechen.
  • Durch Verwendung der Software akzeptieren Sie diese Bedingungen. Wenn Sie diese Bedingungen nicht akzeptieren und einhalten, dürfen Sie die Software oder ihre Funktionen nicht verwenden.

Herunterladen von Windows Embedded 8.1 Industry (x86) Pro Evaluation oder Windows Embedded 8.1 Industry Pro mit Update (x86) – DVD. Suchen Sie die heruntergeladene Datei. Beispiel:

9600.17050.WINBLUE_REFRESH... X86FRE_EN-US_DV9. ISO.

Erstellen Sie einen Ordner, der das Stammverzeichnis für Ihre Sharks Cove-Setupdateien ist (z. B. C:\SharksCoveWindows). Wir nennen diesen Ordner Root. Erstellen Sie im Stamm die folgenden Unterordner:

  • Einrichten
  • SharksCoveBsp

Doppelklicken Sie auf Ihre ISO-Datei, und kopieren Sie diese Dateien nach Stamm\Setup.

  • Start
  • Efi
  • Quellen
  • Support
  • Autorun.inf
  • Bootmgr
  • Bootmgr.efi
  • Setup.exe

Hinweis

Wenn Sie Windows 7 ausführen, klicken Sie mit der rechten Maustaste auf die ISO-Datei, und wählen Sie Datenträgerimage brennen aus. Brennen Sie das Bild auf eine bespeicherbare DVD. Kopieren Sie dann die Dateien von der DVD nach Root\Setup.

Holen Sie sich das Sharks Cove Board Support Package (BSP). Kopieren Sie alle Dateien im Paket nach Root\SharksCoveBsp.

Rufen Sie das WDK Development Boards-Add-On Kit ab. Öffnen Sie die Registerkarte SourceCode . Klicken Sie auf Herunterladen (nicht auf die Registerkarte Downloads), um die Kit-Skripts abzurufen. Öffnen Sie den Ordner Skripts, und kopieren Sie diese beiden Elemente in das Stammverzeichnis.

  • Create-DevboardImage.ps1
  • DevBoard-Ordner

Hinweis

Der Ordner DevBoard enthält mehrere Skripts und Module (DevboardImage.ps1, Devboard.psm1, enable-telnet.ps1 und andere).

Öffnen Sie ein Eingabeaufforderungsfenster als Administrator, und geben Sie PowerShell ein. Navigieren Sie zu Stamm. Um den BSP zu Ihrem Windows-Image hinzuzufügen, geben Sie einen der folgenden Befehle ein:

Wenn Sie die Evaluierungsversion von Windows verwenden, geben Sie diesen Befehl ein:

.\Create-DevboardImage -SourcePath Setup\sources\install.wim -Index 2 -BspManifest SharksCoveBsp\SharksCoveBsp.xml

Wenn Sie die Vollversion von Windows verwenden, geben Sie diesen Befehl ein:

.\Create-DevboardImage -SourcePath Setup\sources\install.wim -Index 1 -BspManifest SharksCoveBsp\SharksCoveBsp.xml

Hinweis Möglicherweise müssen Sie Ihre Ausführungsrichtlinie festlegen, bevor Sie das Skript Create-DevboardImage ausführen. Beispiel:

Set-ExecutionPolicy -ExecutionPolicy Unrestricted

Nachdem Sie dem Windows-Image den BSP hinzugefügt haben, kopieren Sie diese Ordner und Dateien aus Root\Setup auf einen USB-Speicherstick (FAT32).

  • Start
  • Efi
  • Quellen
  • Support
  • Autorun.inf
  • Bootmgr
  • Bootmgr.efi
  • Setup.exe

Richten Sie Ihre Sharks Cove-Hardware wie hier gezeigt ein:

Bild des Boards und der Verbindungen.

Schließen Sie den Speicherstick an den Hub an, der mit dem Sharks Cove-Board verbunden ist. Halten Sie die Lautertaste gedrückt, während Sie das Sharks Cove-Board starten oder neu starten. Die Lautertaste ist die obere Schaltfläche in der Gruppe der drei Schaltflächen auf der linken Seite der Platine, wie im vorherigen Diagramm dargestellt. (Wenn das Board bereits gestartet wurde, können Sie es deaktivieren, indem Sie die Ein/Aus-Taste für einige Sekunden halten.) Wenn das Board gestartet wird, wird die EFI-Shell auf dem Bildschirm angezeigt.

Hinweis

Möglicherweise müssen Sie zur EFI-Shell navigieren. Wechseln Sie zu Boot Manager > EFI Internal Shell.

Notieren Sie sich den Namen des USB-Speichersticks (z. B. fs1:).

(Hier verwenden wir fs1: für den Namen des USB-Speichersticks.) Geben Sie an der Shell-Eingabeaufforderung> die folgenden Befehle ein:

fs1:cd efi\bootdir Überprüfen Sie, ob sich bootia32.efi im Verzeichnis befindet. Geben Sie diesen Befehl ein:

bootia32.efi Befolgen Sie die Windows-Setupanweisungen auf dem Bildschirm.

Schritt 4: Bereitstellen des Sharks Cove-Boards für die Treiberbereitstellung und -tests

Bei der Bereitstellung wird ein Computer für die automatische Bereitstellung, das Testen und Das Debuggen von Treibern konfiguriert.

Richten Sie Ihre Hardware wie hier gezeigt ein.

Abbildung des Boards mit Verbindungen für die Bereitstellung.

Die Bereitstellung des Sharks Cove-Boards ähnelt der Bereitstellung eines beliebigen anderen Computers. Befolgen Sie die Anweisungen in diesem Thema, um das Sharks Cove-Board bereitzustellen:

und dieses Thema, das online und in debugger.chm verfügbar ist.

Hinweis

Bevor Sie das Sharks Cove-Board bereitstellen, müssen Sie den sicheren Start deaktivieren. Starten Sie das Sharks Cove-Board neu. Während das Board neu gestartet wird, halten Sie die Lautertaste gedrückt. Wechseln Sie zu Geräte-Manager Start des > Systemsetups>. Legen Sie UEFI-Sicherheitsstart auf Deaktiviert fest.

Schritt 5: Schreiben eines Softwaretreibers für das Sharks Cove-Board

Bevor Sie einen Gerätetreiber für das Sharks Cove-Board schreiben, ist es hilfreich, sich mit den Treiberentwicklungstools vertraut zu machen, indem Sie einen Softwaretreiber schreiben. Das Verfahren ähnelt dem Schreiben eines Softwaretreibers für jeden anderen Zielcomputer. Um zu beginnen, folgen Sie den praktischen Übungen hier:

Schritt 6: Ändern der sekundären Systembeschreibungstabelle (Secondary System Description Table, SSDT)

Wenn Sie einen Treiber für einen Treiber für ein Gerät schreiben, das eine Verbindung mit einem einfachen Peripheriebus (SPB) auf dem Sharks Cove-Board herstellt, müssen Sie die Sekundäre Systembeschreibungstabelle (Secondary System Description Table, SSDT) in der Sharks Cove-Firmware aktualisieren. Ein Beispiel hierfür ist das Schreiben eines Treibers für einen Beschleunigungsmesser, der Daten über einen I2C-Bus überträgt und Unterbrechungen über einen GPIO-Pin (Universelle E/A) generiert. Weitere Informationen finden Sie unter Simple Peripheral Buses.

Im Folgenden finden Sie ein Beispiel für die Änderung des SSDT. Wir fügen einen Tabelleneintrag für den ADXL345 Beschleunigungsmesser hinzu.

Hinweis

Eine schritt-für-Schritt-Anleitung zum SpbAccelerometer-Beispieltreiber und zum ADXL345 Beschleunigungsmesser finden Sie im SpbAccelerometer-Treiber-Cookbook.

  1. Kopieren Sie die x86-Version von ASL.exe auf das Sharks Cove-Board. ASL.exe ist im WDK enthalten.

    Beispiel: C:\Programme (x86)\Windows Kits\8.1\Tools\x86\ACPIVerify\ASL.exe

  2. Öffnen Sie ein Eingabeaufforderungsfenster als Administrator. Dekompilieren Sie das SSDT, indem Sie den folgenden Befehl eingeben:

    asl /tab=ssdt

    Dadurch wird die Datei Ssdt.asl erstellt.

  3. Öffnen Sie Ssdt.asl (z. B. in Editor).

    DefinitionBlock("SSDT.AML", "SSDT", 0x01, "Intel_", "ADebTabl", 0x00001000)
    {
        Scope()
        {
            Name(DPTR, 0x3bf2d000)
            Name(EPTR, 0x3bf3d000)
            Name(CPTR, 0x3bf2d010)
            Mutex(MMUT, 0x0)
            Method(MDBG, 0x1, Serialized)
            {
                Store(Acquire(MMUT, 0x3e8), Local0)
                If(LEqual(Local0, Zero))
                {
                    OperationRegion(ABLK, SystemMemory, CPTR, 0x10)
                    Field(ABLK, ByteAcc, NoLock, Preserve)
                    {
                        AAAA, 128
                    }
                    Store(Arg0, AAAA)
                    Add(CPTR, 0x10, CPTR)
                    If(LNot(LLess(CPTR, EPTR)))
                    {
                        Add(DPTR, 0x10, CPTR)
                    }
                    Release(MMUT)
                }
                Return(Local0)
            }
        }
    
        // Insert a Scope(_SB_) and a Device entry here.
    
    }
    
  4. Fügen Sie einen Scope(_SB_)-Eintrag ein. Fügen Sie in Ihrem Bereichseintrag Ihren eigenen Geräteeintrag ein. Hier sehen Sie beispielsweise einen scope(_SB_)-Eintrag und einen Geräteeintrag für den ADXL345 Beschleunigungsmesser.

    Scope(_SB_)
    {
        Device(SPBA)
        {
            Name(_HID, "SpbAccelerometer")
            Name(_UID, 1)



        Method(_CRS, 0x0, NotSerialized)
        {
            Name(RBUF, ResourceTemplate()
            {
                I2CSerialBus(0x53, ControllerInitiated, 400000, AddressingMode7Bit, "\\_SB.I2C3", 0, ResourceConsumer)
                GpioInt(Edge, ActiveHigh, Exclusive, PullDown, 0, "\\_SB.GPO2") {0x17}
            })

            Return(RBUF)
        }


        Method(_DSM, 0x4, NotSerialized)
        {
            If(LEqual(Arg0, Buffer(0x10)
            {
                0x1e, 0x54, 0x81, 0x76, 0x27, 0x88, 0x39, 0x42, 0x8d, 0x9d, 0x36, 0xbe, 0x7f, 0xe1, 0x25, 0x42
            }))
            {
                If(LEqual(Arg2, Zero))
                {
                    Return(Buffer(One)
                    {
                        0x03
                    })
                }

                If(LEqual(Arg2, One))
                {
                    Return(Buffer(0x4)
                    {
                        0x00, 0x01, 0x02, 0x03
                    })
                }
            }
            Else
            {
                Return(Buffer(One)
                {
                    0x00
                })
            }
        } // Method(_DSM ...)

    } // Device(SPBA)

} // Scope(_SB_)

In diesem Beispiel geben die Einträge unter ResourceTemplate() an, dass der Beschleunigungsmesser zwei Hardwareressourcen benötigt: eine Verbindungs-ID zu einem bestimmten I2C-Buscontroller (I2C3) und einen GPIO-Interrupt. Der Interrupt verwendet pin 0x17 auf dem GPIO-Controller namens GPO2.

  1. Nachdem Sie Ihren eigenen Geräteeintrag zu Ssdt.asl hinzugefügt haben, kompilieren Sie Ssdt.asl, indem Sie den folgenden Befehl eingeben:

    asl ssdt.asl

    Dadurch wird die kompilierte Ausgabe in einer Datei namens Ssdt.aml gespeichert.

  2. Stellen Sie sicher, dass die Testsignatur für das Sharks Cove-Board aktiviert ist.

Hinweis

Die Testsignatur wird während der Bereitstellung automatisch aktiviert.

Öffnen Sie auf dem Sharks Cove-Board ein Eingabeaufforderungsfenster als Administrator. Geben Sie diesen Befehl ein.

bcdedit /enum {current}

Vergewissern Sie sich, dass in der Ausgabe angezeigt wird testsigning Yes .

Windows Boot Loader
-------------------
identifier              {current}
...
testsigning             Yes
...

Wenn Sie die Testsignatur manuell aktivieren müssen, sind die folgenden Schritte aufgeführt:

  1. Öffnen Sie ein Eingabeaufforderungsfenster als Administrator, und geben Sie diesen Befehl ein.

    bcdedit /set TESTSIGNING ON

  2. Starten Sie das Sharks Cove-Board neu. Während das Board neu gestartet wird, halten Sie die Lautertaste gedrückt. Wechseln Sie zu Geräte-Manager Start des > Systemsetups>. Legen Sie UEFI-Sicherheitsstart auf Deaktiviert fest.

  3. Speichern Sie Ihre Änderungen, und fahren Sie mit dem Starten von Windows fort.

  4. Öffnen Sie zum Laden Des aktualisierten SSDT ein Eingabeaufforderungsfenster als Administrator, und geben Sie den folgenden Befehl ein:

    asl /loadtable ssdt.aml

    Starten Sie das Sharks Cove-Board neu.

Schritt 7: Verbinden Ihres Geräts mit dem Sharks Cove-Board

Verwenden Sie die Spezifikation, um zu bestimmen, welche Pins für Ihr Gerät verwendet werden sollen. Angenommen, Sie möchten den ADXL345 Beschleunigungsmesser mit einem I2C-Bus verbinden. In der Spezifikation sehen Sie, dass der J1C1-Header über die benötigten Pins verfügt. Hier sind einige, aber nicht alle Der Pins, die Sie für den J1C1-Header verwenden würden.

Pin Pinname Kommentare ACPI-Objekt
7 GPIO_S5[23] Beschleunigungsmesser-Interruptsignal _SB. GPO2 {0x17}
13 SIO_I2C2_DATA I2C-Datenleitung für I2C-Controller 2 _SB. I2C3
15 SIO_I2C2_CLK I2C-Taktlinie für I2C-Controller 2 _SB. I2C3

Beachten Sie die Beziehung zum Geräteeintrag im SSDT.

I2CSerialBus(... "\\_SB.I2C3", , )
GpioInt(... "\\_SB.GPO2") {0x17}

Schritt 8: Schreiben, Erstellen und Bereitstellen eines Treibers für Ihr Gerät

Das Schreiben eines Gerätetreibers für das Sharks Cove-Board ähnelt dem Schreiben eines Gerätetreibers für jeden anderen Computer. In Visual Studio können Sie mit einer Treibervorlage beginnen oder mit einem Treiberbeispiel beginnen.

Wenn Sie bereit sind, Ihren Fahrer auf dem Sharks Cove-Board zu testen, führen Sie die folgenden Schritte aus:

  1. Klicken Sie auf dem Hostcomputer in Visual Studio mit der rechten Maustaste auf Ihr Paketprojekt, und wählen Sie Eigenschaften aus. Wechseln Sie zu Treiberinstallationsbereitstellung>. Aktivieren Sie Bereitstellung aktivieren und vorherige Treiberversionen vor der Bereitstellung entfernen. Wählen Sie unter Zielcomputername den Namen Ihres Sharks Cove-Boards aus. Wählen Sie Installieren und Überprüfen aus.

  2. Navigieren Sie auf den Eigenschaftenseiten zu Treibersignatur > allgemein. Wählen Sie unter Sign Mode (Sign-Modus) die Option Test Sign (Testzeichen) aus. Klicken Sie auf OK.

  3. Öffnen Sie in Ihrem Treiberprojekt Die INF-Datei. Bearbeiten Sie die Hardware-ID so, dass sie mit der Hardware-ID (_HID) übereinstimmt, die Sie im SSDT erstellt haben. Angenommen, Sie fügen diesen Geräteeintrag im SSDT ein.

    Device(SPBA)
    {
       Name(_HID, "SpbAccelerometer")
       ...
    

    Dann wäre die Hardware-ID in Ihrer INF-Datei ACPI\SpbAccelerometer.

    [Standard.NT$ARCH$]
    %KMDFDriver1.DeviceDesc%=KMDFDriver1_Device, ACPI\SpbAccelerometer
    
  4. Wählen Sie in Visual Studio im Menü Debuggen die Option Debuggen starten aus.

  5. Microsoft Visual Studio zeigt zuerst den Fortschritt im Fenster Ausgabe an. Anschließend wird das Debugger-Direktfenster geöffnet und der Fortschritt wird weiterhin angezeigt.

    Warten Sie, bis Ihr Treiber auf dem Sharks Cove-Board bereitgestellt, installiert und geladen wurde. Dies kann ein oder zwei Minuten dauern.

  6. Wenn der Debugger nicht automatisch einbricht, wählen Sie im Menü Debuggen die Option Alle unterbrechen aus. Der Debugger auf dem Hostcomputer wird in den Zielcomputer (Kernelmodus) oder in die richtige instance von Wudfhost.exe (UMDF) unterteilt. Im Direkten Debuggerfenster wird eine Debugger-Eingabeaufforderung angezeigt.

  7. Geben Sie lm ein, um die geladenen Module anzuzeigen. Stellen Sie sicher, dass Ihr Treiber in der Liste der geladenen Module angezeigt wird.

Verwenden von WinDbg zum Debuggen des Sharks Cove-Boards

Alternativ zur Verwendung von Visual Studio zum Einrichten des Kernelmodusdebuggens können Sie das Setup manuell durchführen.

Als Alternative zur Verwendung von Visual Studio für das Debuggen können Sie WinDbg verwenden.

Unabhängig davon, ob Sie Visual Studio oder WinDbg verwenden, sind diese praktischen Anleitungen hilfreich, um Debuggerbefehle zu lernen:

Beispieltreibercode

Grundlegendes zu einfachen Peripheriebussen

Informationen zur Funktionsweise von Windows-Treibern mit einfachen Peripheriebussen finden Sie unter Einfache Peripheriegerätebusse.

Konzepte für alle Treiberentwickler

Entwickeln, Testen und Bereitstellen von Treibern

Windows-Treiberframeworks

Windows Hardware Developer Center

WDK-Beispiele für Windows

Technischer Support