Papan pengembangan perangkat keras Sharks Cove

Peringatan

Papan pengembangan perangkat keras Sharks Cove tidak lagi didukung untuk Windows IoT Core. Untuk daftar papan yang saat ini didukung, lihat SoC dan papan kustom.

Sharks Cove adalah papan pengembangan perangkat keras yang dapat Anda gunakan untuk mengembangkan perangkat keras dan driver untuk Windows.

Papan Intel Sharks Cove mendukung pengembangan driver untuk perangkat yang menggunakan berbagai antarmuka, termasuk GPIO, I2C, I2S, UART, SDIO, dan USB. Anda juga dapat menggunakan papan Sharks Cove untuk mengembangkan driver untuk kamera dan layar sentuh.

Sebelum memulai

Instruksi yang diberikan di sini mengharuskan Anda menjalankan Windows 10, Windows 8.1, atau Windows 7. Instruksi ini tidak berfungsi jika Anda menjalankan Windows 8.

Jika Anda menjalankan Windows 7, Anda perlu menginstal PowerShell 4.0 dan Unduh dan instal Windows ADK. Kemudian pada menu Mulai , buka Semua Program > Windows Kit Windows > ADK > Deployment dan Imaging Tools Environment. Buka jendela Prompt Perintah ini sebagai Administrator. Gunakan jendela Prompt Perintah ini saat Anda memasukkan perintah yang diberikan dalam instruksi ini.

Anda akan memerlukan perangkat keras ini:

  • Papan Sharks Cove dengan kabel daya dan adaptor yang disertakan.
  • Hub USB
  • Keyboard USB
  • Tetikus USB
  • Adaptor jaringan USB
  • Kabel Monitor dan HDMI (dan mungkin adaptor)

Anda bisa mendapatkan papan Sharks Cove di RCS Components atau Kynix.

Langkah 2: Unduh kit dan alat

Lingkungan pengembangan driver memiliki dua komputer: komputer host dan komputer target. Komputer target juga disebut komputer uji. Anda mengembangkan dan membangun driver Anda di Microsoft Visual Studio di komputer host. Debugger berjalan di komputer host dan tersedia di antarmuka pengguna Visual Studio. Ketika Anda menguji dan men-debug driver, driver berjalan pada komputer target. Dalam hal ini, papan Sharks Cove adalah komputer target.

Untuk mengembangkan perangkat keras dan driver untuk papan Sharks Cove, Anda memerlukan kit dan alat ini di komputer host:

Di komputer host, pertama-tama unduh Visual Studio, lalu unduh WDK, lalu unduh Paket Uji WDK. Anda tidak perlu mengunduh Alat Penelusuran Kesalahan untuk Windows secara terpisah, karena disertakan dalam WDK.

Dokumentasi

Langkah 3: Instal Windows di papan Sharks Cove

Anda dapat menginstal salah satu versi Windows ini di papan Sharks Cove Anda:

Istilah Deskripsi
Evaluasi Windows Embedded 8.1 Industry Pro Ini adalah uji coba gratis 180 hari. Kami akan menyebutnya sebagai versi evaluasi.
Windows Embedded 8.1 Industry Pro with Update (x86) - DVD Ini memerlukan langganan. Kami akan menyebutnya sebagai versi lengkap.

Jika Anda ingin menginstal versi evaluasi, baca amandemen ini ke perjanjian lisensi:

Amandemen Syarat Lisensi Perangkat Lunak Evaluasi untuk Program Pengembang Perangkat Keras

Jika penggunaan perangkat lunak ini mendukung Program Pengembang Perangkat Keras, persyaratan berikut akan berlaku:

  • Anda menyetujui ketentuan Ketentuan Lisensi Perangkat Lunak Evaluasi Microsoft untuk Windows Embedded 8.1 Industry Pro ("Ketentuan Lisensi Perangkat Lunak Evaluasi") secara keseluruhan kecuali untuk:
    • Bagian 1.b. (Hak Demonstrasi) dari Ketentuan Lisensi Perangkat Lunak Evaluasi diubah sebagian, sebagai: - Anda dapat menunjukkan atau mengirimkan untuk penggunaan demonstrasi kepada calon pelanggan, sejumlah yang cukup diperlukan untuk tujuan demonstrasi, perangkat Windows Embedded 8.1 Industry Pro yang dikembangkan oleh Anda melalui penggunaan perangkat lunak ("Perangkat Demonstrasi"). Anda dapat menunjukkan dan mengirimkan Perangkat Demonstrasi kepada pelanggan yang tidak berada di bawah kewajiban non-pengungkapan.
    • Semua ketentuan dalam Pasal 1.b. yang tidak secara langsung bertentang dengan bagian yang diubah di atas, akan berlaku.
  • Dengan menggunakan perangkat lunak, Anda menerima persyaratan ini. Jika Anda tidak menerima dan mematuhi persyaratan ini, Anda tidak boleh menggunakan perangkat lunak atau fitur-fiturnya.

Unduh Windows Embedded 8.1 Industry (x86) Pro Evaluation atau Windows Embedded 8.1 Industry Pro with Update (x86) - DVD. Temukan file yang diunduh. Misalnya,

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

Buat folder yang akan menjadi akar untuk file penyiapan Sharks Cove Anda (misalnya, C:\SharksCoveWindows). Kami akan memanggil folder ini Root. Di Root, buat subfolder ini:

  • Siapkan
  • SharksCoveBsp

Klik dua kali file ISO Anda, dan salin file-file ini ke Root\Setup.

  • Boot
  • Efi
  • Sumber
  • Dukungan
  • Autorun.inf
  • Bootmgr
  • Bootmgr.efi
  • Setup.exe

Catatan

Jika Anda menjalankan Windows 7, klik kanan file ISO, dan pilih Bakar gambar disk . Bakar gambar ke DVD yang bisa direkam. Kemudian salin file dari DVD ke Root\Setup.

Dapatkan paket dukungan papan Sharks Cove (BSP). Salin semua file dalam paket ke Root\SharksCoveBsp.

Dapatkan Kit Add-on Papan Pengembangan WDK. Buka tab SourceCode . Klik Unduh (bukan tab Unduhan) untuk mendapatkan skrip kit. Buka folder Skrip, dan salin kedua item ini ke Root.

  • Create-DevboardImage.ps1
  • Folder DevBoard

Catatan

Folder DevBoard berisi beberapa skrip dan modul (DevboardImage.ps1, Devboard.psm1, enable-telnet.ps1, dan lainnya).

Buka jendela Wantian Perintah sebagai Administrator, dan masukkan Powershell. Navigasi ke Root. Untuk menambahkan BSP ke gambar Windows Anda, masukkan salah satu perintah berikut:

Jika Anda menggunakan versi evaluasi Windows, masukkan perintah ini:

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

Jika Anda menggunakan versi lengkap Windows, masukkan perintah ini:

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

Catatan Anda mungkin perlu mengatur kebijakan eksekusi sebelum menjalankan skrip Create-DevboardImage . Contohnya:

Set-ExecutionPolicy -ExecutionPolicy Unrestricted

Sekarang setelah Anda menambahkan BSP ke gambar Windows Anda, salin folder dan file ini dari Root\Setup ke USB flash drive (FAT32).

  • Boot
  • Efi
  • Sumber
  • Dukungan
  • Autorun.inf
  • Bootmgr
  • Bootmgr.efi
  • Setup.exe

Siapkan perangkat keras Sharks Cove Anda seperti yang ditunjukkan di sini:

gambar papan dan koneksi.

Colokkan flash drive ke hub yang terhubung ke papan Sharks Cove. Tahan tombol volume-up saat Anda memulai atau menghidupkan ulang papan Sharks Cove. Tombol volume-up adalah tombol atas di set tiga tombol di sisi kiri papan seperti yang ditunjukkan pada diagram sebelumnya. (Jika papan sudah dimulai, Anda dapat mematikannya dengan menahan tombol Daya selama beberapa detik.) Ketika papan dimulai, Anda akan melihat shell EFI di layar.

Catatan

Anda mungkin perlu menavigasi ke EFI Shell. Buka Boot Manager > EFI Internal Shell.

Perhatikan nama flash drive USB (misalnya, fs1:).

(Di sini kita akan menggunakan fs1: untuk nama usb flash drive.) Pada prompt Shell> , masukkan perintah ini:

fs1:cd efi\bootdir Verifikasi bahwa bootia32.efi ada di direktori. Masukkan perintah ini:

bootia32.efi Ikuti instruksi penyiapan Windows di layar.

Langkah 4: Memprovisikan papan Sharks Cove untuk penyebaran dan pengujian driver

Provisi adalah proses mengonfigurasi komputer untuk penyebaran, pengujian, dan penelusuran kesalahan driver otomatis.

Siapkan perangkat keras Anda seperti yang ditunjukkan di sini.

gambar papan dengan koneksi untuk provisi.

Penyediaan papan Sharks Cove mirip dengan penyediaan komputer lain. Untuk menyediakan papan Sharks Cove, ikuti instruksi dalam topik ini:

dan topik ini, yang tersedia di baris dan di debugger.chm.

Catatan

Sebelum Anda memprovisikan papan Sharks Cove, Anda perlu menonaktifkan Boot Aman. Mulai ulang papan Sharks Cove. Saat papan dimulai ulang, tahan tombol Volume-up. Buka Boot Penyiapan > Sistem Manajer > Perangkat. Atur Boot Keamanan UEFI ke Dinonaktifkan.

Langkah 5: Tulis driver perangkat lunak untuk papan Sharks Cove

Sebelum Anda menulis driver perangkat untuk papan Sharks Cove, sangat membantu untuk membiasakan diri dengan alat pengembangan driver dengan menulis driver perangkat lunak. Prosedur ini mirip dengan menulis driver perangkat lunak untuk komputer target lainnya. Untuk memulai, ikuti latihan langsung di sini:

Langkah 6: Mengubah Tabel Deskripsi Sistem Sekunder (SSDT)

Jika Anda menulis driver untuk driver untuk perangkat yang terhubung ke bus periferal sederhana (SPB) pada papan Sharks Cove, Anda perlu memperbarui Tabel Deskripsi Sistem Sekunder (SSDT) di firmware Sharks Cove. Contohnya adalah menulis driver untuk akselerometer yang mentransfer data melalui bus I2C dan menghasilkan gangguan melalui pin I/O (GPIO) tujuan umum. Untuk informasi selengkapnya, lihat Bus Periferal Sederhana.

Berikut adalah contoh mengubah SSDT. Kami akan menambahkan entri tabel untuk akselerometer ADXL345 .

Catatan

Lihat buku masak driver SpbAccelerometer untuk panduan langkah demi langkah ke driver sampel SpbAccelerometer dan akselerometer ADXL345.

  1. Salin versi x86 ASL.exe ke papan Sharks Cove. ASL.exe disertakan dalam WDK.

    Contoh: C:\Program Files (x86)\Windows Kits\8.1\Tools\x86\ACPIVerify\ASL.exe

  2. Buka jendela Prompt Perintah sebagai Administrator. Dekompilasi SSDT dengan memasukkan perintah ini:

    asl /tab=ssdt

    Ini membuat file Ssdt.asl.

  3. Buka Ssdt.asl (misalnya, di Notepad).

    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. Sisipkan entri Scope(_SB_). Di dalam entri cakupan Anda, masukkan entri Perangkat Anda sendiri. Misalnya, berikut adalah entri lingkup(_SB_) dan entri Perangkat untuk akselerometer ADXL345.

    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_)

Dalam contoh ini, entri di bawah ResourceTemplate() menentukan bahwa akselerometer membutuhkan dua sumber daya perangkat keras: ID koneksi ke pengontrol bus I2C tertentu (I2C3) dan gangguan GPIO. Gangguan menggunakan pin 0x17 pada pengontrol GPIO bernama GPO2.

  1. Setelah Anda menambahkan entri Perangkat Anda sendiri ke Ssdt.asl, kompilasikan Ssdt.asl dengan memasukkan perintah ini:

    asl ssdt.asl

    Ini menempatkan output yang dikompilasi dalam file bernama Ssdt.aml.

  2. Verifikasi bahwa penandatanganan pengujian diaktifkan untuk papan Sharks Cove.

Catatan

Penandatanganan pengujian diaktifkan secara otomatis selama provisi.

Pada papan Sharks Cove, buka jendela Prompt Perintah sebagai Administrator. Masukkan perintah ini.

bcdedit /enum {current}

Verifikasi bahwa Anda melihat testsigning Yes dalam output.

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

Jika Anda perlu mengaktifkan penandatanganan pengujian secara manual, berikut adalah langkah-langkahnya:

  1. Buka jendela Prompt Perintah sebagai Administrator, dan masukkan perintah ini.

    bcdedit /set TESTSIGNING AKTIF

  2. Mulai ulang papan Sharks Cove. Saat papan dimulai ulang, tahan tombol Volume-up. Buka Boot Penyiapan > Sistem Manajer > Perangkat. Atur Boot Keamanan UEFI ke Dinonaktifkan.

  3. Simpan perubahan Anda dan lanjutkan booting ke Windows.

  4. Untuk memuat SSDT yang diperbarui, buka jendela Prompt Perintah sebagai Administrator, dan masukkan perintah ini:

    asl /loadtable ssdt.aml

    Mulai ulang papan Sharks Cove.

Langkah 7: Sambungkan perangkat Anda ke papan Sharks Cove

Gunakan spesifikasi untuk menentukan pin mana yang akan digunakan untuk perangkat Anda. Misalnya, Anda ingin menyambungkan akselerometer ADXL345 ke bus I2C. Dalam spesifikasi, Anda dapat melihat bahwa header J1C1 memiliki pin yang Anda butuhkan. Berikut adalah beberapa, tetapi tidak semua, dari pin yang akan Anda gunakan pada header J1C1.

Menyematkan Menyematkan nama Komentar Objek ACPI
7 GPIO_S5[23] Sinyal Interupsi Akselerometer _SB. GPO2 {0x17}
13 SIO_I2C2_DATA Baris Data I2C untuk pengontrol I2C 2 _SB. I2C3
15 SIO_I2C2_CLK Garis jam I2C untuk pengontrol I2C 2 _SB. I2C3

Perhatikan hubungan dengan entri Perangkat di SSDT.

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

Langkah 8: Tulis, bangun, dan sebarkan driver untuk perangkat Anda

Menulis driver perangkat untuk papan Sharks Cove mirip dengan menulis driver perangkat untuk komputer lain. Di Visual Studio, Anda dapat memulai dengan templat driver atau Anda dapat memulai dengan sampel driver.

Ketika Anda siap untuk menguji driver Anda di papan Sharks Cove, ikuti langkah-langkah berikut:

  1. Di komputer host, di Visual Studio, klik kanan proyek paket Anda, dan pilih Properti. Buka Penyebaran Penginstalan > Driver. Centang Aktifkan Penyebaran dan Hapus versi driver sebelumnya sebelum penyebaran. Untuk Nama Komputer Target, pilih nama papan Sharks Cove Anda. Pilih Instal dan Verifikasi.

  2. Masih di halaman properti, buka Penandatanganan > Driver Umum. Untuk Mode Tanda Tangan, pilih Tanda Uji. Klik OK.

  3. Di proyek driver Anda, buka file INF Anda. Edit ID perangkat keras sehingga cocok dengan ID perangkat keras (_HID) yang Anda buat di SSDT. Misalnya, Anda menempatkan entri Perangkat ini di SSDT.

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

    Kemudian ID perangkat keras dalam file INF Anda adalah ACPI\SpbAccelerometer.

    [Standard.NT$ARCH$]
    %KMDFDriver1.DeviceDesc%=KMDFDriver1_Device, ACPI\SpbAccelerometer
    
  4. Di Visual Studio, pada menu Debug , pilih Mulai Penelusuran Kesalahan.

  5. Microsoft Visual Studio pertama kali menunjukkan kemajuan di jendela Output . Kemudian membuka Jendela Langsung Debugger dan terus menunjukkan kemajuan.

    Tunggu hingga driver Anda telah disebarkan, diinstal, dan dimuat di papan Sharks Cove. Ini mungkin memakan waktu satu atau dua menit.

  6. Jika debugger tidak masuk secara otomatis, pilih Putuskan Semua dari menu Debug . Debugger pada komputer host akan masuk ke komputer target (mode kernel) atau ke instans Wudfhost.exe (UMDF) yang benar. Di Jendela Langsung Debugger, Anda akan melihat perintah debugger.

  7. Untuk melihat modul yang dimuat, masukkan lm. Verifikasi bahwa driver Anda muncul dalam daftar modul yang dimuat.

Menggunakan WinDbg untuk men-debug papan Sharks Cove

Sebagai alternatif untuk menggunakan Visual Studio untuk menyiapkan debugging mode kernel, Anda dapat melakukan penyiapan secara manual.

Sebagai alternatif untuk menggunakan Visual Studio untuk penelusuran kesalahan, Anda dapat menggunakan WinDbg.

Terlepas dari apakah Anda menggunakan Visual Studio atau WinDbg, panduan langsung ini sangat membantu untuk mempelajari perintah debugger:

Contoh kode driver

Memahami bus periferal sederhana

Untuk mempelajari cara kerja driver Windows dengan bus periferal sederhana, lihat Bus Periferal Sederhana.

Konsep untuk semua pengembang driver

Mengembangkan, Menguji, dan Menyebarkan Driver

Windows Driver Frameworks

Pusat Pengembang Perangkat Keras Windows

Sampel WDK untuk Windows

Dukungan Teknis