Manufaktur industri
Industri Internet of Things | bahan industri | Pemeliharaan dan Perbaikan Peralatan | Pemrograman industri |
home  MfgRobots >> Manufaktur industri >  >> Industrial Internet of Things >> Tertanam

Grup Flag Event di Nucleus SE: Panduan Pengantar untuk Konfigurasi dan Penggunaan API

Grup Flag Event di Nucleus SE: Panduan Pengantar untuk Konfigurasi dan Penggunaan API
Lihat seri RTOS Revealed

Grup flag event menyediakan mekanisme ringan dan fleksibel untuk komunikasi antar-tugas di Nucleus SE, mirip dengan sinyal tetapi dengan fungsionalitas yang lebih kaya.

Menggunakan Flag Event

Di Nucleus SE, flag event dikonfigurasi pada waktu build. Maksimal 16 grup dapat didefinisikan. Jika tidak ada yang dikonfigurasi, RTOS menghilangkan semua struktur data dan kode API terkait.

Mengonfigurasi Grup Flag Event

Jumlah Grup Flag Event

Konfigurasi dikendalikan oleh direktif #define dalam nuse_config.h. Makro kunci NUSE_EVENT_GROUP_NUMBER menentukan berapa banyak grup yang akan digunakan aplikasi (default 0). Nilai di atas 16 atau nilai negatif memicu #error waktu kompilasi yang dihasilkan oleh nuse_config_check.h.

Mengatur nilai non-nol mengaktifkan subsistem flag-event: struktur data dialokasikan dan enable API dipertimbangkan.

API Enables

Setiap panggilan layanan memiliki makro enable dalam nuse_config.h:

NUSE_EVENT_GROUP_SET NUSE_EVENT_GROUP_RETRIEVE NUSE_EVENT_GROUP_INFORMATION NUSE_EVENT_GROUP_COUNT 

Secara default semuanya FALSE, menonaktifkan fungsi yang sesuai. Untuk menggunakan API, setel makro yang diinginkan ke TRUE. Ketidakcocokan (mengaktifkan API sementara NUSE_EVENT_GROUP_NUMBER adalah 0) menyebabkan kesalahan waktu kompilasi, kecuali untuk NUSE_Event_Group_Count(), yang selalu tersedia.

Contoh cuplikan dari nuse_config.h default:

#define NUSE_EVENT_GROUP_NUMBER 0 /* Jumlah grup event – 0-16 */ #define NUSE_EVENT_GROUP_SET FALSE /* Enabler panggilan layanan */ #define NUSE_EVENT_GROUP_RETRIEVE FALSE /* Enabler panggilan layanan */ #define NUSE_EVENT_GROUP_INFORMATION FALSE /* Enabler panggilan layanan */ #define NUSE_EVENT_GROUP_COUNT FALSE /* Enabler panggilan layanan */ 

Jika kode Anda merujuk ke API yang tidak diaktifkan, pem-link akan menghasilkan kesalahan karena implementasi dihilangkan.

Panggilan Layanan Flag Event

Nucleus SE menawarkan tujuh panggilan layanan terkait flag event, meskipun hanya empat yang diimplementasikan:

Tidak ada fungsi reset khusus; grup dapat di-reset ke semua nol menggunakan NUSE_Event_Group_Set() dengan operasi OR pada mask flag nol.

Operasi Set dan Retrieve

Karena flag event adalah bit, mereka paling baik diekspresikan sebagai nilai biner. Nucleus SE menyediakan nuse_binary.h, yang mendefinisikan makro seperti b01010101 untuk setiap pola 8-bit.

Mengatur Flag Event

Kedua RTOS dan SE mengekspos API yang serupa. Prototipe RTOS adalah:

STATUS NU_Set_Events(NU_EVENT_GROUP *group, UNSIGNED event_flags, OPTION operation); 

Parameter:

Nilai pengembalian:

Setara SE adalah:

STATUS NUSE_Event_Group_Set(NUSE_EVENT_GROUP group, U8 event_flags, OPTION operation); 

Parameter dan kode pengembalian mencerminkan versi RTOS, dengan NUSE_SUCCESS, NUSE_INVALID_GROUP, dan NUSE_INVALID_OPERATION.

Highlight Implementasi

Rutina inti memeriksa operation dan menerapkan mask:

NUSE_CS_Enter(); if (operation == NUSE_OR) { NUSE_Event_Group_Data[group] |= event_flags; } else { /* NUSE_AND */ NUSE_Event_Group_Data[group] &= event_flags; } 

Ketika pemblokiran diaktifkan (NUSE_BLOCKING_ENABLE), fungsi mengulang semua tugas, membangunkan yang tertangguhan pada grup ini, dan memperbarui counter pemblokiran. Setelah itu, reschedule dapat terjadi jika scheduler prioritas aktif.

Tugas yang tertangguhan melanjutkan setelah status flag berubah, memungkinkan mereka mengevaluasi kondisi tunggu mereka.

Lanjutkan ke halaman dua >>


Tertanam

  1. Cam Locks Dijelaskan: Cara Mengamankan Lemari dengan Discret
  2. Apa Itu Eye Screws? Panduan Profesional tentang Desain dan Penggunaan
  3. Memahami Grommet: Jenis, Penggunaan, dan Cara Melindungi Peralatan Anda
  4. Baja Stainless Dijelaskan: Komposisi, Produksi, dan Dampak Global
  5. Dasar-Dasar C#: Esensial Input dan Output
  6. Kotak Surat dalam Nucleus SE: Panduan Praktis Konfigurasi dan Penggunaan
  7. Semafor dalam Nucleus RTOS: Layanan Utilitas & Struktur Data
  8. Semafor dalam Nucleus SE: Ringkasan, Konfigurasi, dan Esensial API
  9. Menguasai Grup Flag Event: Layanan Utilitas & Struktur Data di Nucleus RTOS/SE
  10. Antrian di Nucleus SE: Pengantar dan Panggilan Layanan Inti