Pertanyaan perbedaan antara jam sistem dan jam bantu


Di Vxworks kami memiliki berbagai jam seperti jam sistem dan jam bantu dan memiliki berbagai API sesuai seperti di bawah ini

  • sysClkConnect () - menghubungkan rutin ke interupsi jam sistem
  • sysClkDisable () - mematikan interupsi sistem jam
  • sysClkEnable () - mengaktifkan interupsi jam sistem
  • sysClkRateGet () - dapatkan tarif jam sistem
  • sysClkRateSet () - atur laju jam sistem
  • sysAuxClkConnect () - menghubungkan rutin ke interupsi jam bantu
  • sysAuxClkDisable () - matikan interupsi jam tambahan
  • sysAuxClkEnable () - aktifkan interupsi jam tambahan
  • sysAuxClkRateGet () - dapatkan tarif jam tambahan
  • sysAuxClkRateSet () - mengatur tarif jam tambahan

Pertanyaan saya adalah apa perbedaan antara jam sistem dan jam bantu. Kapan programmer harus menggunakan apa dan di bawah skenario apa?


4
2017-08-20 09:33


asal


Jawaban:


Jam sistem membentuk dasar bagaimana VxWorks melacak waktu dan waktu habis.

Sebagian besar objek OS mendukung timeout (semaphores, antrian pesan, acara) serta panggilan taskDelay dalam satuan clock tick, yang didasarkan pada jam sistem.

Secara umum, tarif jam sistem dipilih oleh desainer papan karena suatu alasan.

Cranking up speed clock meningkatkan overhead sistem sedikit karena selama setiap kutu jam sistem, OS perlu melayani berbagai elemen timeout, penghitung slice waktu dan hal-hal internal lainnya.

Jika Anda perlu melakukan tugas dengan kecepatan tinggi (2000 - 8000 Hz), Anda dapat menggunakan jam bantu. API auxClock adalah antarmuka yang disederhanakan untuk Rutin Layanan Interrupt. Setiap kali jam berakhir, rutin yang ditentukan oleh sysAuxClockConnect akan dipanggil dari jam aux ISR.

Tidak ada overhead sistem yang terkait dengan aux Clock saat waktu servis ISR.

Tentu saja, Anda perlu jam hardware ke-2 untuk menggunakan auxClock. Juga, beberapa komponen vxWorks seperti mata-mata memanfaatkan auxClock. Jika Anda memiliki komponen seperti itu, Anda mungkin tidak dapat menggunakannya karena ada konflik.

Perhatikan bahwa jika Anda memiliki lebih dari 2 pengatur waktu pada platform perangkat keras Anda, Anda dapat menulis rutinitas Anda sendiri untuk melakukan hal yang sama seperti yang dilakukan oleh API Jam aux.


5
2017-08-20 14:00



Jam auxillary (bila didukung oleh perangkat keras) misalnya dapat digunakan untuk polling berkecepatan tinggi. Ini laju jam dapat diatur oleh sysAuxClkRateSet() untuk menyimpang dari periode interupsi jam sistem.

Contoh: Pemrograman Interupsi: Contoh untuk MVME 162 Menggunakan VxWorks.


0
2017-08-20 09:54