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

Memori Partisi di Nucleus RTOS/SE: Layanan Utilitas dan Struktur Data

Memori Partisi di Nucleus RTOS/SE: Layanan Utilitas dan Struktur Data
Lihat seri RTOS Revealed

Membangun eksplorasi sebelumnya kami mengenai memori partisi RTOS, artikel ini menguraikan utilitas praktis dan struktur data yang mendasari manajemen memori efisien di Nucleus RTOS dan edisi sederhananya, Nucleus SE.

Layanan Utilitas Kolam Partisi

Nucleus RTOS menawarkan tiga panggilan API khusus yang menyediakan informasi penting dan kemampuan manajemen untuk kolam partisi: mengambil informasi detail kolam, menentukan jumlah total kolam dalam aplikasi, dan memperoleh pointer ke semua struktur kolam. Dua fungsi pertama sepenuhnya didukung di Nucleus SE, meskipun dengan beberapa perbedaan fitur karena himpunan fitur yang terkurang.

Memperoleh Informasi Kolam Partisi

Layanan NU_Partition_Pool_Information mengembalikan gambaran komprehensif dari kolam partisi yang ditentukan. Di Nucleus SE, fungsi mengembalikan sekelompok data yang disederhanakan, mencerminkan ketidakadaan penamaan objek, urutan penangguhan, dan dukungan penangguhan tugas.

Panggilan API Nucleus RTOS untuk Informasi Kolam Partisi

Prototipe panggilan layanan:

STATUS NU_Partition_Pool_Information(NU_PARTITION_POOL *pool, CHAR *name, VOID **start_address, UNSIGNED *pool_size, UNSIGNED *partition_size, UNSIGNED *available, UNSIGNED *allocated, OPTION *suspend_type, UNSIGNED *tasks_waiting, NU_TASK **first_task);

Parameter:

pool – pointer ke kolam partisi yang informasinya diminta.

name – pointer ke buffer 8 karakter yang akan menerima nama kolam (termasuk null terminator).

start_address – pointer ke variabel yang akan menerima alamat dasar area data kolam.

pool_size – pointer ke variabel yang akan menerima ukuran total kolam dalam byte.

partition_size – pointer ke variabel yang akan menerima ukuran setiap partisi.

available – pointer ke variabel yang akan menerima jumlah partisi yang saat ini tersedia.

allocated – pointer ke variabel yang akan menerima jumlah partisi yang digunakan.

suspend_type – pointer ke variabel yang akan menerima kebijakan penangguhan (nilai yang valid: NU_FIFO atau NU_PRIORITY).

tasks_waiting – pointer ke variabel yang akan menerima jumlah tugas yang tertangguhan pada kolam ini.

first_task – pointer ke variabel yang akan menerima pointer ke tugas tertangguhan pertama.

Mengembalikan:

NU_SUCCESS – operasi berhasil.

NU_INVALID_POOL – pointer kolam yang disediakan tidak valid.

Panggilan API Nucleus SE untuk Informasi Kolam Partisi

Di Nucleus SE, fungsionalitas sama disediakan melalui antarmuka sederhana di bawah ini. Karena SE tidak mendukung penangguhan tugas, bidang terkait dihilangkan.

Prototipe panggilan layanan:

STATUS NUSE_Partition_Pool_Information(NUSE_PARTITION_POOL pool, ADDR *start_address, U32 *pool_size, U16 *partition_size, U8 *available, U8 *allocated, U8 *tasks_waiting, NUSE_TASK *first_task)

Parameter:

pool – indeks kolam partisi.

start_address – pointer ke variabel yang akan menerima alamat dasar area data kolam.

pool_size – pointer ke variabel yang akan menerima ukuran total kolam dalam byte.

partition_size – pointer ke variabel yang akan menerima ukuran setiap partisi.

available – pointer ke variabel yang akan menerima jumlah partisi yang tersedia.

allocated – pointer ke variabel yang akan menerima jumlah partisi yang digunakan.

tasks_waiting – pointer ke variabel yang akan menerima jumlah tugas menunggu (nol jika penangguhan tugas dinonaktifkan).

first_task – pointer ke variabel yang akan menerima indeks tugas tertangguhan pertama (nol jika penangguhan tugas dinonaktifkan).

Mengembalikan:

NUSE_SUCCESS – operasi berhasil.

NUSE_INVALID_POOL – indeks kolam tidak valid.

NUSE_INVALID_POINTER – satu atau lebih argumen pointer null.

Implementasi Nucleus SE untuk Informasi Kolam Partisi

Implementasi SE ringkas: rutin mengisi bidang yang diminta dan, ketika API pemblokiran diaktifkan, menetapkan jumlah tugas menunggu dan indeks tugas pertama (jika tidak, bidang ini di-nolkan).

Memori Partisi di Nucleus RTOS/SE: Layanan Utilitas dan Struktur Data

Memperoleh Jumlah Kolam Partisi

Layanan ini mengembalikan jumlah total kolam partisi yang didefinisikan dalam aplikasi. Di Nucleus RTOS, jumlah dapat berubah secara dinamis saat kolam dibuat atau dihancurkan; di Nucleus SE, jumlah tetap pada waktu build.

Panggilan API Nucleus RTOS untuk Jumlah Kolam Partisi

Prototipe panggilan layanan:

UNSIGNED NU_Established_Partition_Pools(VOID);

Parameter: Tidak ada.

Mengembalikan: Jumlah saat ini kolam partisi aktif.

Panggilan API Nucleus SE untuk Jumlah Kolam Partisi

Prototipe panggilan layanan:

U8 NUSE_Partition_Pool_Count(void);

Parameter: Tidak ada.

Mengembalikan: Jumlah kolam partisi yang dikonfigurasi pada waktu kompilasi.

Implementasi

Rutin SE hanya mengembalikan nilai konstanta waktu kompilasi NUSE_PARTITION_POOL_NUMBER.


Tertanam

  1. Cloud versus Server Internal: Memilih Solusi Hosting yang Tepat
  2. Microsoft Azure Resmi Luncurkan Layanan Tokenisasi Blockchain & Manajemen Data
  3. Dasar-Dasar Memori Digital: Alamat, Akses, dan Volatilitas
  4. Mikroprosesor: Evolusi Komputasi Program Tersimpan
  5. Struktur vs Kelas C++: Panduan Praktis untuk Pengembang Terintegrasi
  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. Grup Flag Event di Nucleus SE: Panduan Pengantar untuk Konfigurasi dan Penggunaan API