

Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.

# Memenuhi syarat dewan Anda
<a name="freertos-qualification"></a>

## Prasyarat
<a name="prerequistes-qualification"></a>

Persyaratan perangkat keras:

Papan pengembangan berbasis MCU tempat pustaka FreeRTOS dijalankan harus AWS IoT memiliki:
+ Ethernet, Wi-Fi, atau kemampuan konektivitas seluler

Persyaratan perangkat lunak:

[Diagram alur Porting](https://docs.aws.amazon.com/freertos/latest/portingguide/porting-chart.html) di *Panduan Porting FreeRTOS mengidentifikasi pustaka FreeRTOS* yang diperlukan untuk papan pengembangan berbasis MCU AWS IoT tertentu. Subset minimum adalah:
+ Kernel FreeRTOS
+ CoreMQTT
+ AWS IoT Over-The-Air pembaruan (OTA)

Persyaratan pengujian:
+ Verifikasi implementasi platform perangkat keras khusus yang APIs diperlukan oleh pustaka FreerTOS terhadap GitHub repositori pengujian yang [ditentukan](https://github.com/FreeRTOS/FreeRTOS-Libraries-Integration-Tests) menggunakan untuk FreeRTOS. AWS IoT Device Tester Lihat [Verifikasi pustaka FreeRTOS yang di-porting menggunakan (IDT) AWS IoT Device Tester](#qualifying-your-device-idt).
+ Verifikasi interoperabilitas dengan AWS IoT Core menggunakan Device Advisor. Lihat Langkah 4 dari[Verifikasi pustaka FreeRTOS yang di-porting menggunakan (IDT) AWS IoT Device Tester](#qualifying-your-device-idt).

## Rekomendasi
<a name="recommendations-qualification"></a>

Untuk keamanan yang lebih baik, kami merekomendasikan yang berikut ini.
+ Untuk mencegah kompromi offline atau sementara menjadi permanen, simpan rahasia dan kredensyal di Akar Kepercayaan Perangkat Keras yang menahan serangan fisik, seperti [Elemen Aman, atau Enklave Aman](https://wikipedia.org/wiki/Secure_element).
+ Untuk mengurangi risiko [spoofing](https://wikipedia.org/wiki/Spoofing_attack) jaringan dan [man-in-the-middle](https://wikipedia.org/wiki/Man-in-the-middle_attack)serangan yang dapat mengakibatkan pengungkapan data yang tidak sah, gunakan [True Random Number Generator (TRNG)](https://wikipedia.org/wiki/Hardware_random_number_generator) untuk pustaka FreeRTOS yang menerapkan protokol seperti DHCP, DNS, TCP/IP, dan TLS. Untuk informasi lebih lanjut, lihat halaman 50 di [Rekomendasi untuk Pembuatan Angka Acak Menggunakan Generator Bit Acak Deterministik](https://csrc.nist.gov/publications/detail/sp/800-90a/rev-1/final) (NIST SP 800-90A). 

## Langkah-langkah kualifikasi
<a name="qualifying-your-device"></a>

### Verifikasi pustaka FreeRTOS yang di-porting menggunakan (IDT) AWS IoT Device Tester
<a name="qualifying-your-device-idt"></a>

1. Port pustaka FreeRTOS ke papan Anda. Lihat Panduan [Porting FreeRTOS](https://docs.aws.amazon.com/freertos/latest/portingguide/) untuk instruksi.

1. Buat proyek pengujian, dan port pengujian yang diperlukan dari repositori [ GitHub Freertos-Libraries-Integration-Tests](https://github.com/FreeRTOS/FreeRTOS-Libraries-Integration-Tests). Panggil tugas [ RunQualificationTest](https://github.com/FreeRTOS/FreeRTOS-Libraries-Integration-Tests/blob/a8cafefc714cdbb4ee1d0f97c92e9c4cc75059fd/src/qualification_test.c#L52)pelari uji. 
**catatan**  
Untuk pengalaman pengembang yang baik, disarankan untuk mem-port pustaka FreeRTOS, dan menjalankan grup pengujian individu yang sesuai secara lokal menggunakan IDE untuk memverifikasi integrasi.  
Tugas test runner berjalan dalam proyek pengujian individual, atau dalam proyek aplikasi demo Anda.

1. Buat `manifest.yml` file untuk mencantumkan semua dependensi yang digunakan dalam kualifikasi Anda. Dependensi termasuk pustaka FreeRTOS, dan repositori pengujian. Lihat [Instruksi file manifes FreeRTOS](afq-checklist-manifest-instr.md) untuk detail. 
**catatan**  
`manifest.yml`Ini digunakan oleh IDT untuk menemukan dependensi yang diperlukan untuk pemeriksaan integritas terhadap versi pustaka FreeRTOS tertentu, dan untuk mengonfigurasi proyek pengujian untuk membangun, mem-flash, dan menjalankan binari pengujian.   
IDT tidak mengamanatkan struktur proyek tertentu, dan menggunakan jalur referensi yang disertakan dalam file. `manifest.yml`

1. <a name="qualifying-your-device-da"></a>Verifikasi AWS IoT interoperabilitas menggunakan Device Advisor.

   1. Buat proyek demo yang menggunakan komponen yang sama termasuk pustaka FreerTOS, porting, tugas integrasi seperti OTA yang digunakan dalam pengujian di atas.

      Untuk kualifikasi, aplikasi demo harus menyediakan fitur-fitur berikut:
      + Lakukan publikasi MQTT dan berlangganan topik.
      + Lakukan pembaruan OTA.
      + Buat bootloader yang mendukung pembaruan OTA. Gunakan bootloader Anda sendiri atau [MCUBoot](https://freertos.org/mcuboot/). Lihat [Labs-freertos-plus-](https://github.com/FreeRTOS/Lab-Project-FreeRTOS-MCUBoot). MCUBoot
**catatan**  
Repositori [ GitHubFreeRTOS](https://github.com/FreeRTOS/FreeRTOS) memiliki contoh pra-konfigurasi yang menunjukkan tugas individu. Ada juga [Demo Agen CoreMQTT](https://github.com/FreeRTOS/coreMQTT-Agent-Demos) terintegrasi yang menggabungkan tugas CoreMQTT dan OTA. Juga, lihat Integrasi IoT Unggulan FreeRTOS di. [Contoh proyek kualifikasi](examples-qualification.md) 

   1. AWS IoT Device Tester akan menjalankan demo Anda terhadap [AWS IoT Device Advisor](https://docs.aws.amazon.com/iot/latest/developerguide/device-advisor.html). Kasus uji Device Advisor berikut diperlukan untuk kualifikasi.  
**Kasus uji**    
[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/id_id/freertos/latest/qualificationguide/freertos-qualification.html)

1. Jalankan pengujian dari AWS IoT Device Tester dan buat laporan pengujian.
   + IDT mengonfigurasi pengujian, dan melakukan build dan flash ke papan Anda secara otomatis. Untuk mengaktifkan ini, Anda harus mengkonfigurasi IDT untuk menjalankan perintah build dan flash untuk perangkat Anda dalam `userdata.json` file. Lihat [Mengonfigurasi pengaturan build, flash, dan pengujian](https://docs.aws.amazon.com/freertos/latest/userguide/lts-qual-steps.html#lts-cfg-dt-ud) di [IDT for FreeRTOS User Guide](https://docs.aws.amazon.com/freertos/latest/userguide/device-tester-for-freertos-ug.html).
   + Menyediakan fitur yang didukung perangkat dalam `device.json` file seperti jenis konektivitas, algoritma kriptografi, metode penyediaan kunci untuk IDT untuk menentukan pengujian yang berlaku untuk dijalankan. [Lihat [Membuat kumpulan perangkat di IDT untuk FreeRTOS di IDT untuk](https://docs.aws.amazon.com/freertos/latest/userguide/lts-qual-steps.html#lts-cfg-dt-dp) Panduan Pengguna FreeRTOS.](https://docs.aws.amazon.com/freertos/latest/userguide/device-tester-for-freertos-ug.html) 
   + Buat dan konfigurasikan AWS akun Anda untuk IDT untuk membuat sumber daya cloud yang diperlukan. Lihat [Membuat dan mengonfigurasi AWS akun untuk IDT untuk membuat sumber daya cloud yang diperlukan](https://docs.aws.amazon.com/freertos/latest/userguide/lts-qual-steps.html#lts-cfg-aws-afr) di [IDT untuk Panduan Pengguna FreeRTOS](https://docs.aws.amazon.com/freertos/latest/userguide/device-tester-for-freertos-ug.html). 

### Mempersiapkan pengajuan
<a name="qualifying-your-device-preparation"></a>

1. Tulis **Panduan Memulai** untuk menjalankan proyek demo MQTT atau OTA di perangkat Anda. Lihat [Membuat panduan memulai dengan FreeRTOS untuk perangkat Anda untuk petunjuk](https://docs.aws.amazon.com/freertos/latest/qualificationguide/afq-gsg.html).

1. *Berikan dokumen pemodelan ancaman yang memverifikasi bahwa Anda mengurangi risiko yang ditentukan dalam [Pemodelan Ancaman untuk bootloader AWS IoT perangkat yang](https://docs.aws.amazon.com/freertos/latest/portingguide/afr-porting-ota.html#afr-bootloader) dijelaskan dalam [Porting perpustakaan OTA di Panduan Porting](https://docs.aws.amazon.com/freertos/latest/portingguide/afr-porting-ota.html) FreerTOS.* Dokumen ini harus diunggah sebagai Aset Pendukung saat mengirimkan perangkat Anda di [APN](https://partnercentral.awspartner.com) Partner Central. 

1. Menyediakan repositori publik untuk download kode. Kami menyarankan Anda menyediakan tautan GitHub repositori perusahaan.

### Pengajuan kualifikasi
<a name="qualifying-your-device-submission"></a>
+ Laporan uji IDT.
+ AWS IoT Laporan pengujian Device Advisor.
+ Dokumen pemodelan ancaman.
+ GitHub repositori dengan kode sumber untuk unduhan.

# Membuat panduan Memulai dengan FreeRTOS untuk papan Anda
<a name="afq-gsg"></a>

Agar memenuhi syarat untuk FreeRTOS, Anda harus membuat panduan Memulai dengan FreeRTOS untuk papan Anda. Panduan ini memandu pengguna melalui pengaturan perangkat keras dan lingkungan pengembangan untuk mengembangkan aplikasi untuk perangkat FreeRTOS, dan membangun, menjalankan, dan mem-flash aplikasi demo yang dibuat pada perangkat.

Panduan ini harus tersedia untuk pelanggan dari situs web publik. URL panduan adalah persyaratan untuk mencantumkan papan yang memenuhi syarat di Katalog Perangkat AWS Mitra.

Panduan Anda harus menyertakan instruksi berikut:
+ Menyiapkan perangkat keras perangkat.
+ Menyiapkan lingkungan pengembangan.
+ Membangun dan menjalankan proyek demo.
+ Debugging.
+ Pemecahan masalah.

Kami juga merekomendasikan agar panduan Anda mencakup:
+ Tautan ke lembar data MCU.
+ Skema Papan Sirkuit Cetak (PCB).
+ Log konsol boot up gambar default.

**penting**  
Jika instruksi berbeda menurut sistem operasi, Anda harus memberikan instruksi untuk sistem operasi Windows, Linux, dan macOS.

Ikuti [Templat panduan memulai](getting_started_template.md) sambil menulis panduan untuk papan Anda. Anda dapat menemukan contoh panduan yang diterbitkan untuk papan berkualitas lainnya di Panduan Pengguna [FreeRTOS](https://docs.aws.amazon.com/freertos/latest/userguide/freertos-getting-started.html). Template untuk Panduan Memulai tersedia di [APN Partner Central](https://partnercentral.awspartner.com/).

# Templat panduan memulai
<a name="getting_started_template"></a>

Tulis ikhtisar yang memberikan deskripsi singkat tentang papan. Bagian ini harus menjawab pertanyaan-pertanyaan berikut:
+ Perangkat keras mana yang diperlukan untuk menjalankan aplikasi demo?

  Berikan tautan ke halaman di situs web perusahaan Anda untuk detail lebih lanjut.
+ Yang IDEs didukung untuk mengembangkan aplikasi untuk papan?

  Berikan tautan ke panduan pengguna IDE dan halaman unduhan.
+ Rantai alat dan utilitas perangkat lunak lain mana yang diperlukan untuk pengembangan?

  Berikan tautan ke panduan pengguna dan halaman unduhan.
+ Apakah ada prasyarat lain untuk memulai dengan FreeRTOS di papan tulis?

  Berikan tautan ke halaman pembelian, panduan pengguna, dan halaman unduhan.

## Menyiapkan perangkat keras Anda
<a name="template-setup-hardware"></a>

Di bagian ini, berikan instruksi untuk menyiapkan perangkat keras platform. Pastikan Anda memberikan tautan ke panduan pengguna atau dokumentasi lain untuk menyiapkan perangkat keras.

Instruksi ini meliputi yang berikut:
+ Mengkonfigurasi pengaturan jumper.
+ Mengunduh dan menginstal driver.

  Berikan tautan ke halaman unduhan dan dokumentasi lain untuk versi driver yang didukung.
+ Menghubungkan papan ke komputer.
+ Langkah lain yang diperlukan untuk mengatur perangkat keras.

## Menyiapkan lingkungan pengembangan
<a name="template-setup-dev"></a>

Di bagian ini, berikan instruksi untuk menyiapkan lingkungan pengembangan yang didukung platform. Pastikan Anda memberikan tautan ke halaman unduhan, panduan pengguna, atau dokumentasi lain untuk setiap item.

Instruksi ini meliputi yang berikut:
+ Membangun koneksi serial.
+ Mengunduh dan menginstal rantai alat.
+ Mengunduh dan menginstal IDE yang didukung.
+ Perangkat lunak lain apa pun yang diperlukan untuk mengembangkan dan men-debug aplikasi untuk perangkat.

## Membangun dan menjalankan aplikasi demo
<a name="template-build-and-run-example"></a>

### Bangun aplikasi demo
<a name="template-freertos-import-project"></a>

Pada bagian ini, berikan instruksi untuk membangun aplikasi demo yang disediakan dalam IDE yang didukung, atau dengan alat baris perintah yang didukung.

### Jalankan proyek aplikasi demo
<a name="template-run-examples"></a>

Di bagian ini, berikan instruksi untuk mem-flash dan menjalankan kode demo FreeRTOS di papan Anda.

## Debugging
<a name="template-debugging"></a>

Di bagian ini, berikan instruksi untuk menggunakan debugger on-board atau eksternal.

## Pemecahan masalah
<a name="template-troubleshooting"></a>

Di bagian ini, berikan tips pemecahan masalah untuk menyelesaikan masalah umum atau potensial.

Template **Panduan Memulai** tersedia untuk diunduh dari [Portal Mitra APN](https://partnercentral.awspartner.com/ContentFolderPartner?id=0690h000009VVzsAAG) di sini. Kredensyal untuk masuk diperlukan.

# Instruksi file manifes FreeRTOS
<a name="afq-checklist-manifest-instr"></a>

File manifes diperlukan AWS IoT Device Tester untuk mengidentifikasi versi dan pustaka yang digunakan. Ini membantu pelanggan menggambarkan versi, dependensi perpustakaan, dan metadata.

File harus memenuhi persyaratan berikut:
+ File tersebut harus diberi nama `manifest.yml`.
+ Itu harus di folder dasar perpustakaan atau paket.
+ Itu harus dalam format YAMG dan ikuti spesifikasi [YAMG 1.2](https://yaml.org/spec/1.2/spec.html).

Parameter dapat dalam urutan apa pun, tetapi kami sarankan Anda menempatkannya dalam urutan yang tercantum di bawah ini untuk keterbacaan yang optimal. Tambahkan komentar ke file untuk membantu pelanggan menggunakan paket Anda.

**Jalur berkas**  
Terletak di root paket atau perpustakaan. Hanya ada satu file manifes per paket. Dependensi yang dibawa masuk mungkin memiliki file manifes sendiri.

**Parameter**    
**name**  
Nama paketnya. Semua spasi harus diganti dengan garis bawah (\$1). Misalnya, `My project name - 2020` harus diubah menjadi`My_project_name_-_2020`.  
+ jenis: string
+ diperlukan: benar
+ MinLength: 1
+ MaxLength: 40  
**versi**  
Versi paketnya. Versi dapat berupa versi rilis atau tag versi.  
+ jenis: string
+ diperlukan: benar
+ MinLength: 1
+ MaxLength: 30  
**deskripsi**  
Deskripsi paket yang dapat dibaca manusia. Deskripsi harus dengan jelas menggambarkan apa paket itu dan apa yang disediakannya.  
+ jenis: string
+ diperlukan: benar
+ MinLength: 30
+ MaxLength: 255  
**dependensi**  
Daftar semua dependensi tingkat pertama yang diperlukan bagi pengguna untuk berhasil membangun paket ini dan yang dapat diambil oleh host kode sumber Git, Subversion, atau Mercurial. Jangan sertakan dependensi yang tidak tersedia melalui Git, SVG, atau hg. Jangan sertakan dependensi yang digunakan untuk pengujian, pembuatan dokumentasi, atau pengembangan. Untuk mempromosikan pengalaman yang baik, kami sarankan Anda menghindari daftar dependensi yang terjaga keamanannya atau pribadi.  
+ jenis: array
+ diperlukan: palsu
+ MinLength: 0  
**dependensi [] .name**  
Nama paket dependensi. Ini harus cocok dengan nama paket yang ditemukan dalam `name` parameter dependensi.  
+ jenis: string
+ diperlukan: benar
+ MinLength: 1
+ MaxLength: 40  
**dependensi [] .version**  
Versi ketergantungan. Versi dapat berupa versi rilis atau tag versi. Jika ada dependensi yang disertakan dalam paket itu sendiri, versi harus cocok dengan file manifes yang ada di dependensi.  
+ jenis: string
+ diperlukan: benar
+ MinLength: 1
+ MaxLength: 30  
**dependensi [] .repositori**  
Menjelaskan lokasi kode sumber ketergantungan.  
+ jenis: kamus
+ diperlukan: benar  
**dependensi [] .repository.type**  
Jenis repositori.  
+ jenis: string
+ diperlukan: benar
+ enum: [git, svn, hg]  
**dependensi [] .repository.url**  
URL lokasi repositori. Ini harus berupa URL lengkap dengan awalan protokol (misalnya, https://github.com/*ACCOUNT\$1NAME*/*REPO\$1NAME*).  
+ jenis: string
+ diperlukan: benar  
**dependensi [] .repository.path**  
Jalur relatif dari ruang kerja proyek untuk ketergantungan.  
+ jenis: string
+ diperlukan: benar  
**dependensi [] .repository.branch**  
Cabang ketergantungan yang digunakan. Jika paket menggunakan cabang rilis pustaka, jangan sertakan parameter ini untuk menjaga panjang manifes seminimal mungkin.  
+ jenis: string
+ diperlukan: palsu  
**lisensi**  
Pengidentifikasi lisensi SPDX perpustakaan. Untuk daftar lengkapnya, lihat [https://spdx.org/licenses/](https://spdx.org/licenses/). Itu harus cocok dengan `LICENSE` file yang termasuk dalam root repositori jika ada.  
+ jenis: string
+ diperlukan: benar

# Contoh manifest.yml.
<a name="afq-checklist-manifest-example"></a>

```
---
# This is an example of the manifest file that is included at the root of all FreeRTOS GitHub repositories.

name : "Project_Name"
version: "202012.00-LTS"
description: "Clear concise description of this project."         

dependencies:
  - name: "dependency_1"
    version: "v1.0.0"
    repository:
      type: "git"
      url: "https://github.com/account/dependency_1"
      path: "/relative/path/from/project/root/to/dependency_1"
      branch: "1.x"
  - name: "dependency_2"
    version: "v1.0.1_LTS"
    repository:
      type: "git"
      url: "https://github.com/account/dependency_1"
      path: "/relative/path/from/project/root/to/dependency_2"

license: "MIT"
```