Avr denetleyicilerinde mikro işletim sistemleri. Mikrodenetleyiciler eski mi? Gerçek zamanlı işletim sistemleri

Golovna / Kişiler

10'dan fazla Troch yaptım elektronik aletler ve işletim sistemi olmadan tamamen düşük seviyeli robotlarında yönetilir. Saldırgan cihazın işlevselliği önemli ölçüde genişlediğinde durum değişti. Ek olarak, görevde olduğu gibi vinil gereklidir. aralıkları ayarla saat, ayrıca haftanın doğruluğu sonuca eklenir. Böylece, saatin vizyonu için tüm yazılımları yazmanın görülmediği ve daha sonra yapılacağı ortaya çıktı. Biraz düşündükten sonra projenin gerçek zamanlı bir işletim sistemi (RTOS ve RTOS) içermesi gerektiğini anladım.

PC'nin önünde, de OS - sistem kaynaklarına sahip robotlar için daha fazla top var, RTOS mikrodenetleyicisi için - "gerçek saatte" kazanan ve ana rolü oynayan zamanlayıcının ön yüzü. Şu anda sözde paralel vikonannya zavdan'ı güvenceye almak benim için önemli. Tobto є kіlka zavdan aynı önceliğe sahiptir ve saatin belirli aralıklarında verilen sırayla aramak önemlidir.

Açık bir saldırgan popo: Eurobot 2011 projesinde sistem 18 çevre binaları. İki elektronik ödeme, işlevsel olarak bir arada birleştirilebilir. Bileşen sayısı değişti, bileşen sayısı arttı (sistemdeki bileşen sayısı değişti), bileşen sayısı arttı boş alan gövdede. Mobilyalar, orantılı olarak büyüyen ve işletim sistemi olmadan yapamayanlar için daha kolay hale getirir. Ayrıca, RTOS robotik işlemcideki olası boşta kalma sürelerini ortadan kaldırmaya yardımcı olur, örneğin, ADC'nin dönüştürüldüğü saatte görevi engelleyebilir ve devre dışı bırakabilirsiniz ve aynı şekilde robotu doğru bir şekilde genişleteceğim. Şu anda görevin tuzağına düşmeyenlerin özel muayenehaneden tasarruf edebilmeleri önemlidir (ancak bunu devredilemez sonuçlara getirebilirsiniz). Ne uğruna bu şovların büyümesini önemsiyoruz? Vlasne, michavlyuєmo'nun MK'si çok güçlü, vikoristovuyuchi yogo sayma fizibilitesidir.

Bazı son aramalardan sonra, freeRTOS'ta bir lig seçin. RTOS, C'de genişliyor ve 27 mimariye taşınıyor. Benim için mobilyaların geri kalanı virishal. Diğer toplayıcıların MC'sinden işçilik maliyetlerini ve çalışma saatlerini azaltmak gerekir. Bir seferde, AVR için bağlantı noktasına tıklamak daha azdır.

Projede freeRTOS RTOS'un bulunması, yaklaşık olarak 9,8 KB program belleğine ve 1,8 KB RAM'e sahip olmanızı gerektirir. Örneğin, ATmega32 ve WinAVR derleyicisi için %60 ve %85 geçerlidir. Zaten bu model için harika bir işlevsellikten bir cihaz oluşturmak kolaydır - hafızayı unutmayın. Ale tsia sorunu v_dpadaє vykoristannya yeni modeller AVR'yi içeriyor. 256Kb program belleği ve 8Kb RAM ile Mega2560 için fiyat kesinlikle hiçbir şey değildir. Gelecekteki MK'lerin eğilimine artık RTOS'un başarısı eşlik etmiyor.

Pobіzhshi, RuNet'te sorun yaşıyor, merak ediyorum vyvelyuv, Rus işletim sistemi madeni hakkında hiçbir belge yok. O yak burada! Orijinal belgeler ek sürüme genişletildi. Durum, Andriy Kurnytsya ( [e-posta korumalı]) "Bileşen ve Teknologlar" dergisinden. Yıllar boyunca, yazarla birlikte, gözden geçirilmiş versiyondaki makalenin materyalini gözden geçirdim. Yogo makalesi bir bütün olarak Rus madeninin dokümantasyonu olabilir. Ancak orijinali bir arkadaşın gözüyle erişilemez, derginin sitesi yalan söylüyor, bu malzeme biraz yeniden işlenebilir. Genel olarak, yazar makalenin kapsamlı bir incelemesini yapmıştır ve teorik olarak bir kez daha üzerinden geçmenin bir anlamı yoktur, burada tekrar yayınlanacaktır. Makalenin orijinali yayına ek olacaktır. RTOS'u derlerken çok az zorluk olduğundan da bahsetmiştim. Bunun nedeni, mevcut makefile'nin bozuk olması, bu şekilde klasörlerin yolunun yazılmasıdır. Buna AVR Studio ve AVR Eclipse için benzer bir şablon için hazır bir proje ekleyeceğim. Ne yazık ki orijinal makefile, RAM ve program hafıza seviyeleri gibi yasal bilgileri göstermiyor, standart bir tweet ekleyerek düzeltmek mümkün oldu.

Bu nedenle, kısaca ihtiyaç hakkında, projenizin gerekli olan RTOS'u kazanması gerekiyor:

Çoklu görev ve yazma görevlerini düzenleyin

Görevin sonraki zaman aralıklarında başlatıldığından emin olun

Bilgileri bir görevden diğerine aktarın

Gerekirse yeni sipariş ekleyin

M'den önce RTOS'un avantajlarıÖnceki:

  1. Bagatozachnіst. RTOS, programcıya bagatalite için hazır, ödüllendirici bir mekanizma sağlar. Vipad kafasının derisi okremo programlanabilir, tüm iş ekip üyeleri arasında yapılabilir. Sadece planlayıcıyı kırmak için kafalar arasında yeniden mikrofonlama hakkında konuşmanıza gerek yok.
  2. Timchas üssü. Saat aralıklarını dikkate almak gerekir. RTOS, aracın anasıdır. Vіn, vikonuvaty'nin saatin açıkça görülen aralıklarla geçmesine izin verir.
  3. Zavdannyami arasında veri alışverişi. RTOS'ta kimin için vikoristovuetsya cherga.
  4. Senkronizasyon. Yakscho farklı görevler aynı kaynak üzerinden örneğin son port üzerinden kazanabilirsiniz, muteksler ve kritik bölümler üzerinden kazanabilirsiniz. Suvoria sekansında veya mevcut şarkı sesinde görevi kazanmak gerekir, görevin senkronizasyonu için semafor veya sinyalleri kazanabilirsiniz.

Nedoliki RTOS:

1. Çekirdek uygulaması için artırılmış program belleği

2. Sistem çekirdeğinin dış görünüm yönetimi, semaforlar, cherg, muteksler ve diğer nesneler yığınını kaydetmek için artan RAM tüketimi.

3. Bağlamı kaydetmek için görevler arasında bir saatlik geçiş için püf noktaları.

TanımücretsizRTOS:

FreeRTOS, geçerli bir kodla kısa bir gerçek zamanlı için ücretsiz bir işletim sistemidir. Önemli olarak C ile yazılmıştır, ancak montaj ekleri vardır. Real Time Engineers ltd tarafından özellikle dikkate alınması gereken sistemler için ayrılmıştır. Son zamanlarda, "SafeRTOS" projesi gelişmeye başladı - IEC 61508 güvenlik standardı FreeRTOS varyantına uygunluk için ek destek, belgeler, protestolar ve sertifika. Bu proje bir Alman şirketi tarafından üstlenildi ve artık safeRTOS havacılık ve tıp teknolojisinde liderdir. Ayrıca openRTOS projesi, oluşturucu garantisi ile ticari bir versiyondur.

freeRTOS'un temel özellikleri:

1. Planner, 3 tür zengin görevi destekler:

Vitisnyuyuchy

kooperatif

melez

2. AVR için derlenmiş görünümde çekirdek boyutunu 9.8 Kb olarak değiştirin. (WINAVR)

3. Çekirdeğin temeli - Z başına 4 dosya.

4. Spiv programlarının görevini destekleyin. Az miktarda RAM ile MK için özel olarak oluşturulmuş Spivprogramlar.

5. İzleme için zengin fırsatlar.

6. Yığın yeniden akışını kontrol edebilirsiniz.

7. Bir kerede sabitlenen birkaç gün için program ücreti yoktur.

8. Öncelikli görevlerin değişimi yoktur.

9. Dekіlkom zavdannyam atanabilir ancak aynı öncelik

10. "zavdannya-zavdannya" ve "zavdannya-pererivannya" senkronizasyonunun nedenleri:

Çergi

çift ​​semafor

Rakhunkov'un semaforu

özyinelemeli semafor

M'utexi

11. Miras önceliği olan M'yuteksy.

12. Cortex-M3 için bellek koruma modülü desteği

13. Çeşitli platformlar ve derleyiciler için yeni görünümlü bir demo projesinde teslim edildi.

14. Bezkoshtovna. Genişletilmiş GPL lisansına kadar kodu açmadan proje kazanabilirsiniz.

15. Belgeler ücretlidir, ancak burada çevrimiçi olarak mevcuttur.

16. 16 MHz kristalli AVR için bağlam seğirme saati 20.8 µs'den daha az olur. Tarzın kendisi, görev yığınındaki verilerin korunması ve saldırının ardından gereklidir. (PIC18xxx için aynı saygıdan dolayı, AVR kontrolörü 4 kat daha hızlı çalışmalıdır!

Vytіsnyuyuchi zengin görevi, düşük öncelikli galip gelen görevin, daha yüksek öncelikli bitmiş görevle örtüşmesi anlamına gelir. Peremikannya mizh zavdannyami eşit miktarda saat boyunca vіdbuvaєtsya. Bu nedenle, ilk düşük öncelikli görev daha yüksek önceliklidir, düşük öncelikli ise saatin mevcut kuantumu sona erebilir.

Bu şekilde, çoklu görev modunda çağrılara FreeRTOS yanıtının saati, ayarlarda ayarlanabilen planlayıcının bir saatine bir kuantumdan fazla değildir. umovchannyam için dorovnyuє 1 ms.

Görevi aynı önceliğe sahip olarak bitirmeye hazırsanız, o zaman böyle bir zamanda planlayıcı bunların dış görünüşünü bir saatlik bir kuantum kadar görür, ardından yönetim aynı önceliğe sahip bir sonraki görevi alır, vb.

İşbirlikçi zengin görev, planlamayı büyük bir öncelikle tamamlamaya hazırlanmak için planlayıcının bağımsız olarak hat içi görevin zamanlamasını kesintiye uğratamaması gerçeğine rağmen titremektedir. Dış görünüm yöneticisi, kontrolü planlayıcıya bağımsız olarak aktarabilir. Bu sıralamada, yüksek öncelikli zavdannya chekatime, düşük öncelikli ise işinizi tamamlar ve kontrolü planlayıcıya verir. Sistemin günün çağrısına tepki verme saati önemsiz hale gelir ve kontrolün devri için uzun süre beklemek için alçakta kalır. Görevin işbirlikçi zenginliği, Windows 3.x ailesinde canlandı.

Vitisnyayucha ve işbirlikçi zenginlik kavramları, hibrit zenginlikte bir kerede birleştirilir, eğer planlayıcının döngüsü bir miktar zaman ise, ale, zenginlik karşısında, programcının gelecekte çalışabileceği açıktır. Sistemin sıfırlamaya tepki süresini hızlandırmak gerekirse, bu mod özellikle bayattır. Düşük öncelikli bir görevin hemen kazanıldığını ve yüksek öncelikli bir görevin bir sonraki görevi puanladığını varsayalım. Ardından, işlemcinin çalışması tamamlandıktan sonra, kesinti düşük öncelikli iş parçacıklı bir göreve dönüştürülür ve yüksek öncelikli bir pencere, saatin iş parçacıklı kuantumu bitene kadar çevrilir. Ancak yeniden yapılanma sürecinin tamamlanmasından sonra, kontrolü planlayıcıya devretmek, kontrolü yüksek öncelikli bir göreve devretmek, bu da mevcut durum nedeniyle sistemin hızlı tepki vermesini sağlar.

niye yaüzerindesohbet etmekb?

FreeRTOS uygulaması için kullanılan mikrodenetleyici eklentisinin dağıtımını ilgiden genişletmek mümkündür. sürümün geri kalanı.

FreeRTOS dağıtım kiti, görünüşte harika bir şekilde mevcuttur veya bir ZIP arşivine kendi kendine ayıklanabilir. Dağıtım Çekirdek kodu aracı olmadan temizleyin (başlık dosyalarına ve çıktı kodlu dosyalara bakmak için) ve demo projeleri (dış görünüm portu için dış görünüm geliştirme ortamı başına bir proje). Paket açma istasyonunda herhangi bir yerde aşağıdaki arşivlerin açılmasını verdiler.

Arşivde kaç dosya olursa olsun, dizin yapısı gerçekten basittir. 1-2 dağıtım merkezinde 2-3 mimaride bir uzantı tasarlanması planlanıyorsa, gösteri projeleri ve diğer dağıtım merkezlerinden önce görülebilecek daha fazla dosyaya ihtiyaç duyulmayacaktır.

Dizinlerin ayrıntılı yapısı küçük olana işaret edilir.

Tüm çıktı çekirdek kodu /Source dizininden taşınır.

Vmist:

1.görevler.c- planlama, planlama mekanizmasının uygulanması

2. sıra.c- gerçekleştirme cherg

3. liste.c- Planlamacının iç ihtiyaçları, koruma fonksiyonları uygulama programlarında kullanılabilir.

4. krutin.c- spiv programlarının uygulanması (spiv programları kazanmadığı için zaman zaman günlük olarak kullanılabilir).

Dizindeki başlık dosyaları kaynak/dahil

1. görevler.h, kuyruk.h, tist.h, krutin.h- başlık dosyaları, kodlu tek menü dosyaları için geçerlidir.

2. ÜcretsizRTOS.h- Derlemeyi düzeltmek için önişlemci yönergelerini değiştirin.

3.mpu_wrappers.h- Bellek koruma modülünü (MPU) desteklemek için FreeRTOS yazılım arayüzünün (API işlevleri) sis yeniden eşlemesi.

4.taşınabilir.h-platform biriktirilmiş çevre düzenlemesi.

5.projdefs.h- sistemli atama işlemleri

6. semfr.h- Cherg'e dayalı uygulamalar gibi semaforlarla çalışmak için API işlevlerini tasarlama.

7. StackMacros.h- Yığın yeniden akışını kontrol etmek için makroları sisleyin. Dış görünüm donanım platformu, bu platformla FreeRTOS birlikte çalışabilirliğini uygulayan çekirdek kodunun küçük bir bölümünü korur. Tüm platform mevduat kodu alt dizinde bulunur /Kaynak/Taşınabilir, dağıtım ortamının (IAR, GCC, vb.) ve donanım platformlarının (örneğin, AtmelSAM7S64, MSP430F449) sistematizasyonlarında. Örneğin, alt dizin /Kaynak/Taşınabilir/GCC/ATMega323 Winmega'da görev bağlamını kaydetme/kurtarma, zaman tabanını ayarlamak için zamanlayıcı başlatma, dış görünüm görev yığınının başlatılması ve AVR mikro denetleyicisinin diğer donanım biriktirme işlevlerini uygulamak için port.c ve portmacro.h dosyalarını geçirin sistem.

Alt dizini görmek için Okremo /Kaynak/Taşınabilir/MemMang, hangi dosyaların yerleştirileceği heap_l.c, heap_2.c, heap_3.c FreeRTOS ihtiyaçları için 3 farklı bellek görüntüleme mekanizması uygulayan , daha sonra bildirilecektir.

/Demo dizini, demo projelerini derlemeye ve seçmeye hazırdır. Tüm gösteri projeleri için kodun ana kısmı alt dizinde görüldü /Demo/Commo n.

FreeRTOS'u projenize dahil etmek için çekirdek çıktı kodu dosyalarını ve beraberindeki başlık dosyalarını eklemeniz gerekir. Bunları değiştirmeye veya uygulamalarını anlamaya gerek yoktur.

Örneğin, MSP430 mikrodenetleyicileri ve GCC derleyicisi için bağlantı noktasının değiştirilmesi planlanıyorsa, projeyi sıfırdan oluşturmak için bir alt dizine ihtiyacınız vardır. /Kaynak/ Taşınabilir/GCC/MSP430_GCC ta / Kaynak/Taşınabilir/MemMang. /Source/Portable dizinindeki diğer tüm alt dizinler silinebilir.

Ana demo projesini değiştirmeyi planlıyorsanız (ki bu, FreeRTOS'un koçanı üzerinde çalışmaya başlamanız önerilir), o zaman bir alt dizine de ihtiyacınız vardır. /Demo/msp430_GCCі /Demo/Ortak. /Demo'da bulunan diğer alt dizinler gerekli değildir ve değiştirilebilir.

Programın oluşturulduğu saatin altında kazanmanız önerilir. makefile(veya dağıtım projesinin ortası için bir dosya) demo projesi için geçerli bir nokta olarak. İsteğe bağlı olarak, /Demo dizininden derleme dosyalarını devre dışı bırakın, bunları kendinizinkiyle değiştirin ve /Source dizinindeki dosyaları - küçük boyutlu. Slayt ayrıca başlık dosyası hakkında tahminde bulunun FreeRTOSConfig.h, cilt gösteri projesi ile bilinir. FreeRTOSConfig.h FreeRTOS çekirdeğinin özelleştirilmesine izin veren bir #define tanımlayın:

1. Sistem fonksiyonları seti.

2. Wikoristannya spіvprogramı.

3. Görev ve spivprogram için öncelik sayısı

4. Belleğinizi genişletin (bir yığın satın alın).

5. saat frekansı MK.

6. Planlayıcının çalışma süresi, 1 ms'den fazla ses çıkaran cilt zavdannya vikonannya tarafından görülen bir saattir. Bazı sistemik işlevlerin kaldırılması ve öncelik sayısında değişiklik (bellek değişikliği).

FreeRTOS dağıtım kitlerinden önce, planlayıcıdan alınan izleme bilgilerini metin biçimine (dizin) dönüştürmek için araçlar da içeriyordu. /TgazCon) ve lisans metni (dizin /Lisans).

Vişnovki

Döngünün ilk makalesinin yardımı için okuyucu, FreeRTOS mikro denetleyicilerinin işletim sistemini tanıdı. Robotun özellikleri gösterilir. FreeRTOS dağıtım kiti için açıklama. FreeRTOS'u geliştirmek için kullanılacak geliştirmeyi genişleteceğim ana eskizleri tanıttı.

Gelecekteki yayınlarda, zengin görevlendirme mekanizmasına ve bu spiv programının yöneticilerine saygı gösterilecektir. Robotik planlayıcı, Atmel AVR mikro denetleyicilerinin ve WinAVR (GCC) derleyicisinin uygulamasına tanıtılacaktır.

Duyarsan düşünceye ne düşer işletim sistemi? Chantly kvatirki, linux, makos .. aksi takdirde böyle. Bu doğru ve yemek için gerekli, her şeye tavsiye verilecek: müzik dinleyin, oyun oynayın (İnternette!), Skype'ta bir arkadaşınızla dolaşın. Aynı zamanda, parlak bir ışık gibi bakmak, otrimavshi byte z yuarta \u003d).

Ve daha derine inerseniz, müzik dinlemek, İnternet üzerinden veri aktarımı - hepsi tek işlemlerdir ve sadece bir işlemcimiz var, o zaman bir saat sadece bir görev kazanabilirsiniz. Bu nedenle, siparişler küçük “kısımlar” uğruna dövülür, OS çalışmasının özü bir koristuvach için tanınmaz: böylece ses hırıltılı olmaz ve baytlar gönderilir ve her şey aynı anda çalışır. Eğer öyleyse, günlerden biri “asılı” idi, o zaman her şey çalışmaya devam etti.

Tüm güzellikleri atar ve hedefi kaybederseniz, işletim sistemi sadece bir zamanlayıcıdır, bir saatlik eşit aralıklarla bir tür nefes alır ve ayrıca coristuvach'ın katılımı olmadan görevler arasında karışır, bir parçası olarak vikonu ve yeniden taklit eder. Aynı zamanda, daha büyük göreve bir saatlik bir kuantumda ulaşılamayacağını, görevi diğerine geçiş anında ve kampı değiştirmek için yaklaşan zamanda kaydetmek gerekir. Yöneticisi planlama müdürü ile meşgul.

İki ana işletim sistemi türü vardır: vitіsnyayucha ve kooperatif. İlk tesadüfte, liderler arasındaki konuşma zhorstky, tobto olacak. bir saatin kuantumu 1ms ise, bir dahaki sefer görev tam olarak 1ms olarak sayılır, o zaman diğer süre 1ms'ye eşittir, vb. Böyle bir saate gerçek saat (RTH) denir. Kooperatifler için daha kolay, sürecin kendisi “ben buradayım” demekten suçludur ve bunu RTOS'a getirmek imkansızdır.

Vgamuvati vytіsnyayuchu, drіbnі AVR'de az miktarda RAM ile görünmüyor. Kooperatifler için en yeni seçeneklerden mRTOS tarafından onurlandırıldım, sistemin ayrıntılarını yazarın web sitesinde okuyabilirsiniz (google'a kolay). Varyansın ana nedeni basitliktir, anlaşılması için hazır bir CAVR versiyonunun mevcudiyeti temel prensipler kendin.

Otzhe, baş yemek kayboldu, her şeyi durdurursan gerekli. Teorik olarak, hepsi aynı, shobi z vіssyu, onsuz indirebilirsiniz, tek başınıza daha fazla kaynak. Projeye neye uyduğunuza bağlı olarak, megahertz'i uzaya uçurmayın, kendi başınıza almanız yeterli, kaynaklar orada.

Bunun için kendi baharatınızı iktidara getirin:
1. Kaynakları akıllıca yönetebilir misiniz?
2. Chi, şarabın ürün yazılımının yazılması sürecinde aktarılmaz ve aynı bisiklet planlayıcıya benzer mi?
3. Kodunuz ne kadar okunabilir? pіvroku-rіk vіdkriti yogo i vіdrazu razіbratisya aracılığıyla size nasıl yardımcı olabilirsiniz?
4. Yalnız mısınız Grup olarak mı yazıyorsunuz?

İlk gün erzak vermek zordur çünkü her şey perakendecinin çarpık eli şeklinde kalır. Diğerleriyle birlikte, çok sayıda bağımsız zavdan olduğu için her şey daha iyi anlaşıldı ve Bik OS'ye hayran kalmak yerine onları bir saatlik şarkı aralıklarıyla kazanmayı planladı. Üçüncüsü, okremu bitkisinde tasnif edilmesi daha net, daha kolay hale geldi, ana döngüde nadas alanını azalttı. Birden fazla yazarsanız, artıları da vardır, çünkü başkalarına saygı duymadan kendi görevinizi iyi yazabilirsiniz.

Daha önce söylenenlere göre, stosuvannya'nın dosit kapsamı, tıpkı önceki gün olduğu gibi spesifiktir. Deri projesinde varto phati її değil. Amatör radyo projelerinin çoğu için, tüm proje, daha önce duyurulsa bile, tek tek birkaç projeye yer veriyor.

Şimdi kaputun altında zazirnemo. Projeden önce mRTOS'u çalıştırmak için mrtos.c'yi eklemeniz ve mrtos.h'yi düzeltmeniz gerekir. Trocho coda'nın yapısı sesli gibi görünüyor

#Dahil etmek #include "mrtos.h" // işte süper kodunuzu yazma işlevinin gövdesi void task1() ( while (1) //durdurulmamış bir döngü temelinde be-yak_y işletim sisteminde başlayın { //görevinizin kodu burada SEVK; // kontrolü planlayıcıya aktarma işlevi } ; } // zamanlayıcı sıfırlama tutamacı 0 interrupt [ TIM0_OVF] void timer0_ovf_isr(void ) ( char ii; #asm("cli") TCNT0= 0x9C ; inc_systime() ; for (ii = 0 ; ii)< init_tasks; ii++ ) if (tasks[ ii] .delay ) -- tasks[ ii] .delay ; #asm("sei") } void main(void ) { // çevrenin başlatılması init_mRTOS(); // işletim sisteminin başlatılması //burada görevler oluşturuyoruz(görevler) Burada 3 görev yaratılıyor create_task(görev1, 1, Aktif); //bir görev oluştur (görevim, önceliğim, durumum) create_task(görev2, 1, Aktif); create_task(görev3, 1, Aktif); zamanlayıcı(); //planlayıcıyı başlat süre(1); )

#Dahil etmek #include "mrtos.h" // süper kodumuzu yazdığımız de mi fonksiyonunun gövdesi burada void task1() ( while(1)//herhangi bir işletim sistemindeki görev durdurulmamış bir döngü temelinde çağrılır ( / /işte GÖNDERİM görevinizin kodu; / / kontrolü zamanlayıcıya aktarma işlevi );) // zamanlayıcı kesinti rutini 0 kesinti void timer0_ovf_isr(void) ( char ii; #asm("cli") TCNT0=0x9C; inc_systime (); for(ii = 0; ii

Şimdi rapor ver. görevin sayısı mrtos.h'de varsayılan APPTASKS N'ye belirtilir. Görev, task1()()'in ortasında seslendirilir, task2()() gayet iyi, while(1)'in ortasında değil herhangi bir şey yazmak gerekli, işlevi çağırmak gerekli değildir, sizin için planlayıcı oluşturmak gerekli değildir. Gördüğünüz gibi, görev tükenmez bir döngüden katlanmış, ancak bu normal ve olabilir, ancak görevin ortasında, planlayıcıyı kontrol etmek için obov'yazkovo gereklidir. Veya BEKLE işlevi veya GÖNDER. Mümkün olduğu kadar, sonra vikonuvatimes görevi amansızca.

Nasıl çalışıyorsun? Işıkla bir blimannya görevi oluşturalım.

void task1() ( while (1) ( PORTB.0 = ! PORTB.0; WAIT(100 ) ; ) ; )

void task1() ( while(1) ( PORTB.0 = !PORTB.0; WAIT(100); ); )

WAIT yalnızca bir delay() analogu değildir, bir saat boyunca mikrodenetleyici hiçbir şeyi kaçırmaz ve boş döngüler gerçekleştirir. Saat altı BEKLEME yönetimi diğer çalışanlara aktarılır. Tobto. Farklı bir BEKLEYİN ile birkaç farklı yanıp sönen farklı ışık hareketi oluşturabilirsiniz ve tüm koku farklı bir frekansta parlayacaktır. Zatrymki'ye ihtiyacınız yoksa, kintsi vikoristovuemo DISPATCH'de.

WAIT farklı olduğunda, tüm sistemin minimum tik (saat kuantumu) olduğunu anlamak önemlidir, bu nedenle WAIT (50) 50 milisaniye değil, 50 sistem tikini kontrol ederiz. Zamanlayıcı 0 genellikle tobto olarak adlandırıldığından, ilk etapta keneyi uzanacak şekilde ayarlamak. kesintiyi 1ms olarak ayarladığımız gibi, eylemimizin 1ms sürmesine izin verebiliriz. Şimdiye kadar, 16 MHz saat hızında sistem geçişini ~20 µs'ye kadar değiştirmenin mümkün olduğunu gösterdik.

Zamanlayıcının ayarı hiçbir şekilde daha önce dikkate alınmaz, çünkü zamanlayıcı yalnızca yeniden sıralanabilir, tüm ayarlar fiyata bağlıdır. CAVR'nin diğer sürümlerinde, otomatik olarak oluşturulan zaman gereksinimlerini manuel olarak da yazabilirsiniz.

create_task(görev1, 1, Aktif);

create_task(görev1,1,Aktif);

Önceliklerle her şeyi başarmak kolay değil. Farklı önceliğe sahip iki görev ve yüksek önceliğe sahip bir görev sürekli olarak çalışılsa bile, düşük öncelikli bir görev hiçbir şekilde girilmeyecektir. Bu nedenle robotu, yöneticilerin erişimi engelleyebileceği şekilde düzenlemek gerekir. Kimseye saygı gösteremeyeceğiz, hücum zamanından tasarruf edeceğiz. Başlangıç ​​Değirmeni, Aktif – çalışıyor, StopTask zupinena.

Otzhe, isteyenler için sadece ışıkla göz kırpın:

#Dahil etmek #include "mRTOS.h" void task1() ( while (1) ( WAIT(1000 ) ; PORTB.0=! PORTB.0; ) ) // Zamanlayıcı 0 taşma kesintisi servis rutini interrupt [ TIM0_OVF] void timer0_ovf_isr(void ) ( char ii; #asm("cli") TCNT0= 0xb2 ; inc_systime() ; for (ii = 0 ; ii)< init_tasks; ii++ ) if (tasks[ ii] .delay ) -- tasks[ ii] .delay ; #asm("sei") } void main(void ) { DDRB= (1 << DDB7) | (1 << DDB6) | (1 << DDB5) | (1 << DDB4) | (1 << DDB3) | (1 << DDB2) | (1 << DDB1) | (1 << DDB0) ; PORTB= (0 << PORTB7) | (0 << PORTB6) | (0 << PORTB5) | (0 << PORTB4) | (0 << PORTB3) | (0 << PORTB2) | (0 << PORTB1) | (0 << PORTB0) ; // Zamanlayıcı/Sayaç 0 başlatma// Saat kaynağı: Sistem Saati // Saat değeri: 7.813 kHz TCCR0= (0<< CS02) | (1 << CS01) | (1 << CS00) ; TCNT0= 0x83 ; // Zamanlayıcı(lar)/Sayaç(lar) Kesinti(ler) başlatma TİMSK = (0<< OCIE2) | (0 << TOIE2) | (0 << TICIE1) | (0 << OCIE1A) | (0 << OCIE1B) | (0 << TOIE1) | (1 << TOIE0) ; Init_mRTOS() ; create_task(task1, 1 , Active) ; Sheduler() ; while (1 ) ; }

#Dahil etmek #include "mRTOS.h" void görev1() ( while(1) ( WAIT(1000); PORTB.0=!PORTB.0; ) ) // Zamanlayıcı 0 taşma kesintisi servis rutini interrupt void timer0_ovf_isr(void) #asm( "cli") TCNT0=0xb2; inc_systime(); for(ii = 0;ii

Bonus olarak çok sesli (çift sesli) melodiyi "Dr. Mario chill" denedim. Buradaki fikir, denetleyicinin derisinin sürekli olarak gerçek bir özleme dönüşmesi ve böylece frekansın kendisini oluşturmasıdır. Yamayı değiştirerek notun yüksekliğini değiştirebilirsiniz.

void task2(void ) ( while (1) ) ( if (mute == 0 ) // nasıl bedavaya izin verilir( if (note_ch2[ n_n] == 0 ) // tıpkı bir duraklama gibi, sonra kontrol edilir, hiçbir şey okunmaz( PORTB.4 = 0 ; WAIT(5 ) ; ) yoksa ( PORTB.4 = ! PORTB.4; // bir duraklama değilse, ayakla gerekli frekansta hareket ediyor BEKLEYİN(note_ch2[n_n]); ) )) )

void task2(void) ( while(1) ( if(mute == 0) //oynamasına izin verilmeli mi ( if(note_ch2 == 0) //duraklama kontrol edilmeli mi, hiçbir şey sessiz olamaz ( PORTB.4 = 0; BEKLEYİN( 5);) başka ( PORTB.4 = !PORTB.4; //duraklama değilse ayağı gerekli frekansta WAIT(note_ch2); ) ) ) )

Fikirle dalga geçmiyorum, 1 görevde solo bölüm için notanın frekansından, diğerinde bas için bir menderes oluşturulur. Dış görünüm notunun yüksekliği dizilerden alınır. Trivality, tıraş ve bir görevde tıraş3.

void task3(void)(while(1)(WAIT(1500)); // notun minimum üç değerliliği graimo for (sessiz = 0; sessiz< 500 ; mute++ ) // sinirlenmemek için notu kes(PORTB.3 = 0; PORTB.4 = 0;); sessiz=0; //Ses çıkarabileceğiniz bir bayrak kurduk n_n++; // sonraki nota git if (n_n == n_max) //yakscho tüm bu demoları tehlikede oynadı( n_n = 0 ; ) ) )

void task3 (void) (while (1) (WAIT (1500); // için not tut (mute = 0; mute)< 500; mute++) //обрываем ноту, чтобы не сливались { PORTB.3 = 0; PORTB.4 = 0; }; mute = 0; //выставляем флаг, что можно воспроизводить звук n_n++; //переходим на следующую ноту if(n_n == n_max) //если сыграли все то идем по кругу { n_n = 0; } } }

Basit bir devreyi çevirerek iki kanalı değiştirmek.

Aynı anda küçük bir parça

Kötü bellenim için

Kendime sürekli olarak ne yapacağımı soruyorum, bir saatliğine hobimi meşgul etmek için - 16 bitlik bir mikro denetleyiciye dayalı küçük bir ev otomatik kontrol sistemi (akıllı kabin) - doğru fikir nedir? İkinci ay önce, blogumda "Mikrodenetleyiciler ve çip üzerinde sistemler" konusunu zaten yazmıştım. Yani eksen, bunun hakkında tekrar yazmaya hazırlanıyorum.

Stellaris Launchpad ve Arduino Due'nin satışının ortaya çıkması beni sık sık hayrete düşürdü. Koku, 32 bit mikrodenetleyicilere dayalıdır ve birçok açıdan benzerdir. Spesifikasyonlarla (veri sayfası) güncelim ve bir fiyata kötü koku almak istiyorum, bir hedef kitle için kokular ücretlendirilir. MSP430'dan Stellaris'e fikrimi değiştirebilecekleri düşünüyordum ve sistemime geçebilirim, Raspberry Pi'ye geçebilirim, mikrodenetleyicileri değiştirebilirim.

Obidva, Stellaris Launchpad ve Arduino Due, daha da zor, ancak Linux çalıştırdığı için tanınmadı. Koku, ya onlar için aracı olmadan yazılan ikonik kod üzerinde ya da gerçek zamanlı işletim sisteminin (RTOS) kontrolü üzerinde çalışır - minimalist bir işletim sistemi, çağrılara bile kısa bir tepki süresi ile. Bu nedenle koku açıkça katlanabilir, daha düşük MSP430 veya 8-bit AVR.

Öte yandan, gerçek hayatta (İnternet dışında), tanıdığım çoğu insan Raspberry Pi veya Linux üzerinde çalışan diğer sistemleri çalıştırıyor. Vykoristannya'nın kendisi mikrodenetleyiciler, öğrendiğim sessizler arasında nadir vipadok dosit. Biraz daha az popüler olan Navit Arduino, aklıma gelen honlanmış, daha düşük Linux'umda. Anladığım kadarıyla Arduino almaya değer, eğer Raspberry Pi alabilirseniz hangisi daha zengin, hangileri daha küçük? Linux altında hazır bir yazılım yoktur ve üzerinde hareket etmek için basit komut dosyaları kullanarak programlayabilirsiniz.

Özellikle benim için nedeni, muzaffer Linux'u umursamıyor olmam, çünkü bugün bir robot üzerinde vicor yoga yapıyorum ve eve dönerken Linux benzeri sistemler üzerinde yeniden pratik yapma ihtiyacından memnun değilim. . Linux hileleriyle pek sorunum yok, ama boğmak için çok fazla, çürüt beni. 8/16 bit mikroçiplere dayalı basit elektronik cihazlarla daha rahatım.

Prote ben gerçeğe dönüşmüyorum. Gerçek dünyayla yalnız kalmak istediğim için, gerçek dünyayla kazanıldığı gibi bu enstrümanları da kazanabilirim. Aksi takdirde, buharlı motorla araba kullanmaya benziyor, daha az, çünkü içten yanmalı motor mükemmel, böyle bir rütbede post-savaşçıyım. Daha modern teknolojiye geçmek gerekiyorsa ona hakim olmak, benim gibi olmak gerekiyor. Özellikle blogumun insanlarla alakalı olmasını ve alakalı olmasını istediğim için.

Akıllı bir kabin projemde, gerçekten bu soruna takıldım. MSP430'da kontrol sistemi için zaten bir yerel ağ sürücüsü oluşturdum ve her şey iyi görünüyor. Aslında bir otomasyon sistemi için ihtiyacınız olan her şeyi MSP430 üzerinde yapabilirim. Tim daha küçük değil, merak ediyorum, hangileri doğru, nasıl yapabilirim? Ben kaçakçılık yapmıyorum, testereli çorba nedir, kaşıksa? Belki, Linux daha benzer bir sistemdir? Açıklamama izin ver.

2012 rock'ın düşüşü için teknolojik başarılar için mevcut duruma bakmaya değer. Kendime soracağım, mevcut mikrodenetleyiciler, çip üzerinde sistemlerle karşılaştırıldığında ne kadar iyi, Linux ne kazanıyor?

Sistemdeki projeler nasıl geri dönüştürülür, aklıma nasıl gelir, tse: dronlar, robotlar, ev otomasyonu, motor kontrolörleri, sensörler, bilek yıllığı, 3D yazıcılar vb. Bu Linux türlerinden herhangi biri, scho vbudovuetsya, daha fazla, daha düşük mikrodenetleyicilere uyar mı? Niye ya?

Mikrodenetleyici en iyi seçimse, üç durum olduğunu gerçekten takdir ediyorum: burada, alt öğeye verilen anlık (gerçek zamanlı) tepki önemlidir; orada, son derece düşük enerjiye ihtiyaç duyar; Ve orada, mümkün olan en düşük değişkenin mikro devrelerini kullanmak gerekir.

Koçanı için ucuz mikro devrelerin kullanımı benim için çok önemli bir an değil. Hobimi kendim için hallediyorum ve rekabetçi ürünler çıkarsam da seçim yapmıyorum. Rozroblyaet olarak, bu diğer projeler için rekabetçi bir fiyat sağlamak için, bir tür muzaffer köle emeği olan üretimin fabrikaya aktarılmasına yenik düşmek zorunda değilim. Mutluyum, yakby zmіg günde birden fazla ödeme ödüyor, rahatınız için zavdyak!

Örneğin akıllı bir kabin projesi için vimikach'ın uzaktan kumandasını geliştirebilirim. Vіn ışığı açabilir / kapatabilir veya başka bir şekilde. Aynı zamanda, yerel elektrik dükkanıma gidebilir ve Çin'de yapılanları 20 dolara satın alabilirim. Chi, vlasny vimikach'ı satmaya çalışarak fiyatı öldürürsen yapabilir miyim? Bunun mümkün olduğunu düşünmüyorum.

Daha düşünceli olmak için ev otomasyonu için gerekli olan diğer konuşmaların zenginliğine ulaşmak gerekiyor. Sıcaklık sensörleri, dima, ruhu vs. bağımsız bir bina yapabilirim ama maddi bir fayda sağlamanız pek mümkün değil. State Goods'ta 20$'a bulabileceklerse, bu tür konuşmaları 75$'a benden satın almak kimin umurunda?

Kendi hobilerinizle ilgilenmeyi düşünüyorsanız, daha pahalı ve katlanabilir ürünlere saygı duymak daha iyidir. Örneğin, bir ev otomasyon kontrolörü veya termostat, ses maliyeti 100 doların üzerindedir ve bireysel yaratıcılık için daha fazla özgürlük sağlar, birini teşvik edebilir, paranızı satabilir ve kendi başınıza para kazanabilirsiniz.

Kalan ekin en yüksek fiyatına ulaşan Ale bazhannya, Dünya'da bulunan mikrodenetleyiciyi yenmenin gerekli olduğu anlamına gelmez. Gerçekten kötü fikir, çünkü rozrobki'nin saati, aynı muzaffer ayrıntılar gibi çok yönlülüğe sahip olabilir. Muhtemelen, mikrodenetleyici ucuzdur, ancak kontrol edilecek kodun yazılması bir saatten fazla sürer. Bir saat bir kuruştur ve daha akıllıca çalışırsanız daha büyük bir erişim elde edersiniz.

Yine de, beni bir visnovka'ya getirmeyi düşünün; bu, Linux'ta akıllı bir kabinin sistemini genişletmek için daha iyi, mikrodenetleyicilerde daha düşük, özel becerilerime bakılmaksızın, Linux'u yenme (düşük bir seviye programlamam gerekiyor, daha düşük komut dosyaları, Linux'un daha az komut dosyasına ihtiyacı vardır).

Bu konulara, mikrodenetleyicilerin fiyatına dönerseniz, yeni bir ürün piyasaya sürmeyi seçen büyük şirketler için önemli bir faktör olabilir, ancak bireysel düzeyde, sanki Kickstarter tarzında iş yapmak istiyormuşsunuz gibi, bu faktör artık o kadar önemli değil, aslında, İsveççe , En önemli, bileşenlerin daha düşük varyansı.

Öte yandan, düşük enerji gerekiyorsa, mikrodenetleyiciler daha iyi bir seçim olabilir, daha düşük bir çip üzerinde sistem olabilir. Bu tür sistemlerin iki anı vardır: bir saatlik çalışma ve kısa bir başlangıç ​​saati için devrenin kendisinin düşük kendi kendine idamesi. Diğer müştemilatlar için pil tasarrufu yapmanın tipik bir yolu, kendi kendine bağlantıdır (kapatma). Linux'ta bir bilgisayarı taklit ederseniz, işe, bazen de dekilkoh hvilin'e dönmek için uygun bir saate ihtiyacınız olacaktır. Kur yapılması gereken sistemler için böyle bir saat kabul edilemez.

MSP430 gibi böyle bir mikro denetleyici alırsanız, bazen bir pil kullanabilirsiniz. Stellaris Launchpad ve Arduino Due, prensipte aynı binada, MSP430'dan daha az enerji kokuyor, ancak yine de biraz daha az, Raspberry Pi'ye eşit. Yine de MSP430'u kapattıktan sonra hemen başlayabilirsiniz.

Bu sıralamada, düşük voltajlı işlemlerin gerekli olduğu her durumda, mikrodenetleyicilerde bir zafer duygusu olduğuna kesinlikle inanıyorum. Pillerle çalışan çok sayıda çeşitli müştemilat vardır, bu da böyle bir ihtiyacın nedenidir.

Üçüncü tip için, daha önce de söylediğim gibi, bir mikro denetleyicinin kullanımı, anlık yanıt (gerçek zamanlı yanıt) gerektiren işlemlerde Linux'tan daha anlaşılır. 3D yazıcılar ve CNC dizgi gibi eklentileri kullanabilirim, neden bahsettiğimi biliyorum, düğünüme çok zaman ayırıyorum. Doğası gereği, komutlara tepki verme saatinde yatma olasılığı daha düşük olduğundan, koku robotlarda yüksek doğruluk gerektirir.

Örneğin, çalışan dairesel bir dosyanız varsa, sanki belirli bir anda tahta veya metal parçaları kesiliyormuş gibi, işlemi başlatamazsınız, bilgisayarın duraklatılması gerekenleri, böylece verilerin bellekten diske aktarılır, aksi takdirde aynı ruhla. PC'yi kazanan, muhteşem çalışmanın saatini periyodik olarak suçlayan vipadkovy podvisannya'yı bilen biri olun. Ve şimdi, raptom'un Windows güncellemesini değiştirmeye başladığı, bir saat boyunca çalıştığı ve üzerinde duracağı çeliği delmeye, delmeye başlayan bir PC başlığı altında harika bir delme iş akışınız olduğunu bildirin, çünkü . bilgisayar onun üzerinde kontrol kazandı.

PC'ler ve çip üzerinde sistem, ne Windows'tan ne de Linux'tan gerçek zamanlı çalışma için tasarlanmamıştır, ancak kendi başlarına pis koku size yaklaşıyor. Örnek olarak, Linux çekirdeği ve özel CNC yazılımı için gerçek zamanlı bir yama kullanıyorum, bu tür robotlar için yaratımlar. cim Linux yaması hakkında fazla bir şey bilmiyorum ve gerçek zamanın daha iyi kontrolü için biraz hantal olup olmadığını bilmiyorum. Ama daha iyi bir alternatif olup olmadığını merak ediyorum, tk. Linux, yamalar askıda kalmasa da mikrodenetleyiciler bu pencerede sistemlerini bozamayacaklar.
Nasamkinets, projelerimde mikrodenetleyicilerin kurulu olduğu alanları bilmeye çalışarak çok zaman harcadıktan sonra kazanabileceğimi söylemek istiyorum. Ve her şey Raspberry Pi ve Beaglebones'un ışık hakimiyeti çağı gelmiş gibi görünüyor. Bu, DIY traversler için güncel bir durumdur. Daha fazla seçeneğe sahiptir, bu sistemlerde geliştirmesi daha hızlı ve kolaydır, bu nedenle daha fazla proje için en iyi seçimdir.

Mikrodenetleyiciler için düşük voltajlı ekler, gerçek zamanlı işlemler ve düşük voltajlı ekler için daha fazla alan yoktur.

Mikrodenetleyicilerin "komik" daha düşük PC'ler yapabileceği konusunda yalan söyleyemezsiniz. Uzlaştığınız kişilerle tanışın.

Orijinal yazının İngilizce filminden çevrildi

Sistem bütçelenir, sistem bütçelenir(eng. gömülü sistem) - bilgisayar sistemi özelse, bilgisayarın kendisi onu kontrol edecek bir ek gibi ses çıkaracaktır.

Karakteristik özellikler:

  • Daha da az enerji tasarrufu, 0,5 ila ~20 W'a yakın
  • küçük güller
  • Büyük ısı temini (soğutma) sistemlerinin sunumu. Çoğu zaman CPU soğumaz, bunun yerine küçük bir soğutucu ısınır.
  • CPU ve sistem mantığının yanı sıra diğer IC'ler genellikle tek bir çip üzerinde birleştirilir (System On Crystal = SOC)

Tomurcuklanma sistemlerinin temeli, tek kartlı veya tek çipli olabilir. mikrodenetleyiciler, özel veya evrensel CPU, PLIS. x86 ailesinin eski işlemcilerini (örneğin, i386, i486, Pentium) ve klonlarını düşük enerji ve düşük maliyetle (yaklaşık 1-5 ABD doları) aşmak, belirli sistem türlerinin özel bir özelliğidir. ARM mimarisinin CPU'su için muzaffer sistemlerde de birçok görüş var.

Şu anda, mikrodenetleyicilere ve RISC mimarisine sahip CPU'lara dayalı tek kartlı bilgisayarlar kullanan çok sayıda şirket (Rusya'dakiler dahil) var. Onların arasında Advantech, AAEON, Advanced Micro Peripherals (AMP), Ampro Computers, Diamond Systems, iBASE, InnoDisk, Fastwel (Rusya), Lippert, Octagon Systems, RTD Embedded Technologies, Tri-M Systems - Mühendislik, SanDisk, STEC. ATM'ler, aviyonikler, PDA'lar, telekomünikasyon sistemleri sistemlerde izmarit olabilir.

Deyakі vbudovanі sistemleri vikoristovuyutsya'yı toplu miktarlarda (örneğin, RFID). Vbudovanie sistemi є shkіdlivogo kodunun yaratıcıları için genişliği ve vіdnosnu bezakhisnіst aracılığıyla prioblyayuschey yöntemi. vbudovanih sistemleri (Cabir, RFID-virus) için adım adım göz kırparak kod; Neyse ki, baskın PZ dahil olmak üzere bina müştemilatlarının çeşitliliği ve bu tür bina müştemilatlarının işlevselliğini sübvanse etmesi nedeniyle bu süreç hala zordur. Öte yandan, anti-virüs şirketlerinin liderleri ve eski bilgisayar güvenliği, genellikle tüm anti-virüs yazılımı güvenliğinin yayılmasına izin vermeyen düşük güçlü sistemlerin yanı sıra ortamlar tarafından da karmaşıktır.

Gelişmekte olan sistemler için ana CPU tüyoları є VIA teknolojileri, Transmeta Corporation, Infineon Technologies.

Olması gereken sistemler için işletim sistemleri

Kurulması gereken sistemlerde, yönetim için kazanırlar tsіyni gerçek zamanlı sistemler (OS RT) .

İşletim sisteminin gerçek saatinin işletim sistemi, saatin aktarılmasına, sağlam olanların görünümünün aktarılmamasına tepki veren işletim sistemidir. Bazı RTOS'lara sürekli hazır olan etkileşimli sistemler denir. RTOS kategorisinde, pazarlama pazarlama uygulamalarına dahil edilirler ve bu nedenle, içeceklerin karanlık, bilinmeyen bir yerden insanlara işlendiği anlamına gelen “gerçek zamanlı çalışma” olarak adlandırılan etkileşimli bir programdır. Bazı insanlar sistemin gerçek zamanını “İsveç sistemi” ile anlıyor, ancak doğru başlatmıyor, çünkü RTOS'un tepkisini durdurmamak önemlidir, ancak ek için saatin yeterli olduğu ve garantili.

Farklı sistemler bölünür "sert" ve "yumuşak" gerçek saat. "Zor" gerçek saatin işletim sistemi, saatin son aralığı için zaman değişimini garanti eder, "yumuşak" gerçek saatin işletim sistemi, kural olarak, saat aralığı için günün yükünü yakalar, ancak yine garanti etmez. Yazılımın çoğu "yumuşak" gerçek saate yöneliktir.

Bu sistemler aşağıdakilerle karakterize edilir:

  • ovnishnі podії'ya bir saatlik tepki garantisi (obladnannya nedeniyle yeniden yerleşim);
  • sadece bir süreç planlaması alt sistemi (yüksek öncelikli görevler, bir tür suçlama için düşük öncelikli görevler için suçlanmamalıdır);
  • çağrılara veya reaktiviteye yanıtın bir saate kadar kayması (geri çağırma döngüsünün kesintiye uğramasındaki gecikme, onlarca mikrosaniyeden fazla değildir, görevlerin geçişindeki gecikme yüzlerce mikrosaniyeden fazla değildir)

RTOS'un ihtiyacı olan yöneticinin klasik poposu, detayı konveyör hattından alan robotun kontrolüdür. Parça çöküyor ve robot, eğer alabilirseniz sadece biraz zaman alabilir. Arıza geciktirilirse, parça artık gerekli konveyör boşluğunda olmayacak ve daha sonra robotun doğru yerde olmasına bakılmaksızın robot kırılmayacaktır. Şaraplar daha erken konumlandırılmışsa, detay henüz yakalanmamıştır ve şaraplar yolu kapatacaktır.
Windows CE (WinCE kazandı)- İhtiyacınız olan gelişmiş bilgisayarlar, cep telefonları ve sistemler için Microsoft Windows işletim sisteminin bu çeşidi. Windows CE, masaüstü bilgisayarlar için Windows'un "kentsel" bir sürümü değildir ve farklı bir çekirdeğe dayanmaktadır. Sistemin ana eksikliklerine kadar gerekli tüm yazılım programlarını görebilirsiniz. x86, MIPS, ARM mimarileri ve Hitachi SuperH işlemcileri desteklenir.

WinCE'nin ana rakipleri: VxWorks, eCos, OSE, QNX, LynxOS, Symbian OS, OS-9 , farklı Linux lezzetlerinin yanı sıra (örneğin, uClinux ) i, en büyük vіdomy, Palm OS . Ek binaların inşaatçıları da bir güç sistemi hazırlıyor.

Windows CE, en az miktarda bellek gerektiren eklentiler için optimize edilmiştir: Windows CE çekirdeği 32 KB bellekte çalışabilir. Windows CE robotları için bir grafik arayüz (GWES) ile 5 MB gerekli olacaktır. Ekler genellikle disk belleğini boşa harcamaz ve sert bir kasa ile genişletme olasılığı olmadan "kapalı" ekler olarak tasarlanabilir (örneğin, işletim sistemi ROM'a "bağlanabilir"). Windows CE, işletim sisteminin gerçek zamanlı saatinin farkındadır.

Windows CE temelinde, bir El Bilgisayarı, Cep Bilgisayarı, Cep Bilgisayarı 2002, Cep Bilgisayarı 2003, Cep Bilgisayarı 2003 SE, Akıllı Telefon 2002, Akıllı Telefon 2003, Windows Mobil'in yanı sıra anonim bir endüstriyel eklenti de dahil olmak üzere anonim bir platform kuruldu. -on ve diğer sistemler. Sega Dreamcast öneki, Windows CE'yi destekler. Windows CE'nin kendisi postayla paketlenmiş bir gönderide, ancak bir CD'den bir konsolda çalışabilir. Deyakі іgri vikoristal tsyu mozhlivіst.

Genellikle Windows CE, Windows Mobile, Pocket PC vicorist'i karşılıklı olarak değiştirilebilir olarak adlandırın. Kesin olarak bilmiyoruz. Windows CE 3.0, birçok sınıf ekinin temeli olarak modüler bir işletim sistemidir. Bir perakendeci olsun, platformu kullanmanıza izin veren tüm bileşenleri ve programları değiştirebilecek bir araç (Platform Oluşturucu) satın alabilirsiniz. Öyleyse, Word Mobile/Pocket Word gibi programlar bu aracın parçası değildir.

Windows Mobile, Windows CE tabanlı platformlar için en iyi vitrindir. Şu anda, bu set şu platformları içeriyor: Cep Bilgisayarı, Akıllı Telefon ve Taşınabilir Medya Merkezi. Dış görünüm platformunun kendi Windows CE bileşenleri kümesinin yanı sıra kendi ilgili özellikler ve eklentiler kümesi vardır.

Windows CE.– Bu, Windows CE sürüm 4.2 için kod adıdır.

Windows Gömülü CE 6.0(kod adı Yamazaki), Windows Embedded işletim sisteminin, denetleyiciler ve eklenti elektronikler üreten işletmelere yönelik altıncı sürümüdür. Windows Embedded CE 6.0'da çekirdek, önceki sürümlerde 32'den 32.000'den fazla işlemi desteklemek için tamamen elden geçirildi. 32 MB'den 2 GB'a kadar işlemler için görülen sanal adres alanı eklendi.

Windows Embedded CE 6.0, 1 Güz 2006'da piyasaya sürüldü.
Windows CE 6.0 R2, 15 Sonbahar 2007'de piyasaya sürüldü.
Windows Embedded CE 6.0, aynı zamanda Windows Mobile 7'nin (kod adı "Photon") temelidir.

QNX- ticari POSIX-summ_sna gerçek zamanlı işletim sistemi, inşa edilmesi gereken sistemler için önemli olarak kabul edilir. Mikronükleer işletim sistemleri kavramının en iyi uygulamalarından birini düşünün.

Yak mikronükleer işletim sistemi, QNX, servis olarak adlandırılan küçük fabrikalar gibi bileşenlerinin ana kısmını çalıştırma fikrine dayanmaktadır. Operasyonel sistemlerin yak çekirdeğindeki geleneksel monolit çekirdeklerin videolarını yayınladı - biri harika bir projeksiyon, büyük kısmın büyük bir kısmı ve deri. QNX mikro çekirdek alt anahtarı, çekirdeklerin (perakendecilerin) çekirdeği değiştirmeden ihtiyaç duymadıkları herhangi bir işlevi açmasına olanak tanır. Natomist, şarkı söyleme sürecini başlatamazsınız.

Sistem küçüktür, böylece minimum konfigürasyon bir diskete yerleştirilebilir, aynı zamanda bir İsveçli ve uygun bir “bitmiş” rütbesi ile bile önemlidir (pratik olarak afların intikamını almamak için).

QNX Nötrino, 2001 yılında piyasaya sürüldü, çok çeşitli platformlara taşındı ve aynı zamanda, geliştirileceği sistem pazarında kazanan herhangi bir modern işlemci üzerinde pratik yapmak pratiktir. Bu platformlar arasında aileler var x86, MIPS, PowerPC ve ayrıca SH-4, ARM, StrongARM ve xScale gibi özel işlemci aileleri.

Ticari olmayan wiki'nin bir sürümü perakendecinin web sitesinde indirilebilir.

Lynx işletim sistemi- Unix benzeri gerçek zamanlı işletim sistemi, POSIX standartlarıyla ve saatin geri kalanında GNU/Linux işletim sistemiyle birleştirilmesi gereken sistemler için ayrıştırılmıştır. LynxOS en önemlisi havacılıkta, endüstriyel süreç yönetim sistemlerinde ve telekomünikasyon odalarında kazanıyor.

ChorusOS- Gerçek zamanlı mikronükleer işletim sistemi, üzerinde çalışılması gereken sistemler için ayrılmış. 1997'de Sun Microsystems, ChorusOS'u yapan şirket olan Chorus sistemlerini satın aldı. 2002'nin sonunda Chorus Systems'in kurucuları yeni bir VirtualLogix şirketi kurdular ve Linux ve ChorusOS geliştirmek için sistemlerin geliştirilmesiyle meşgul oldular.

çekirdek- Çeşitli işlemci platformları için beklenen Mentor Graphics şirketinin sistemlerinin takibi olan Accelerated Systems tarafından oluşturulan gerçek zamanlı bir işletim sistemi. Nabula, televizyon kod çözücülerinde, cep telefonlarında ve diğer taşınabilir ve bağırsak ek binalarında genişledi. Nucleus, Garmin International tarafından sivil havacılık için tanınan bir GPS modülüne verilir.

OS-9- zengin bir şekilde görevlendirilmiş, rozrakhovan, zengin bir koristuvachіv gerçek zamanlı işletim sistemi olan rozroblen Microware Systems Corporation.
Etkileşimli ve gelişen sistemler için kazanma. Bugün OS-9, Oregon'da (ABD) bir perakendeci olan RadiSys Corporation'a aittir.

VxWorks- Wind River Systems (ABD) tarafından geliştirilen gerçek zamanlı işletim sistemi (RTOS).
Diğer RTOS'ların çoğu gibi, VxWorks de akıllı bir zamanlayıcı ve hızlı yeniden oluşturma kılavuzu, çapraz süreç etkileşimleri ve senkronizasyon desteği, ayrıca bir dosya sistemi ve ağ bağlantılı bir alt sistem (TCP/IP protokol yığını) içeren çok görevli bir çekirdek içerir. Paket, çapraz derleme, üretkenlik izleme (WindView), uzaktan karakter geliştirme ve farklı işlemcilerin öykünmesi için araçlar içerir. Ek olarak, çok sayıda farklı protokol yığını, grafik alt sistemi ve diğerleri sağlanır. yanı sıra Wind River Systems'ın kendisinden ve üçüncü şirketlerden. VxWorks platformlarının kişisel olmayan desteği, en büyük RTOS ortamlarından biridir.

Entegre Wind River Workbench geliştirme ortamının kalan sürümü (VxWorks 6.x ve 5.x sürümleriyle birlikte gelir) Eclipse ortamını temel alır. Rozetin ön tescilli ortasına Tornado adı verildi.

Zafer:

  • Mars Reconnaissance Orbiter Mars yörüngesinde (VxWorks sistemi yarışıyor)
  • Spirit ve Opportunity sondaları ile Mars Reconnaissance Orbiter, POWER platformunda VxWorks kullanıyor. Sistem, Deep Impact gibi diğer uzay görevlerinde kazanır.
  • Yeni uçaklarla rekabet etmesi planlanıyor Boeing 787.
  • Zengin şirketlerin iletişimleri (örneğin, Nortel, 3COM, Alcatel ve diğerleri).
  • Linksys WRT54G (sür.5,6,...), NetGear WGR614 (sürüm.5,6,7)
  • Aktif PostScript yazıcılar.
  • Tıbbi olarak Siemens AG'ye aittir (manyetik rezonans görüntüleme kremi).
  • Kalan BMW iDrive arayüzleri

OS2000- Gerçek zamanlı işletim sistemi (RTOS), MIPS ve Intel mikroişlemciler için Rusya Federasyonu Savunma Bakanlığı'nın tasarımı için Rusya Bilimler Akademisi Ulusal Bilim ve Teknoloji Enstitüsü tarafından geliştirilmiştir.
Qia RT OS, gerçek zamanlı modda kullanılan sistemler (yazılım ve donanım kompleksleri) için bir yazılım geliştirme olarak tanınır.
Ek binaları desteklemek:

  • Ethernet ekleri (protokoller NFS, FTP, Telnet);
  • depolama ekleri - disketler ve sabit diskler (vfat ve tar dosya sistemleri)

Є Unix sistemlerinde kazanan X Pencere Sisteminin grafiksel istemci-sunucu alt sistemi için destek.

Bilgisayar, her şeyden önce, esnekliğin güvenliği ve sistem tasarımının basitliği için kazanır. Bir PC'yi görüntülerken, program kodu bir sabit sürücüye değil ROM'a kaydedilmelidir. söze karışmak kіntsevy koristuvach yeni genişletme yazılım güvenliği yerleşik bir ek bina için. VLSI teknolojisinin gelişmesiyle, günümüzün elektronik cihazlarının çoğunda bulunabilen döşeme sistemleri ucuz hale geldi.

vbudovanih sistemlerini uygula

Bir robot, bir marsohid gibi, küçük bir 1.1 є vbudovanoy sistemi için göstergeler. Küçük bir 1.2'de veya yerleşik ek binalarda gösterilen Stilnikovy telefon, PDA veya taşınabilir multimedya oynatıcı. Küçük bir 1.2 є vbudovany sisteminde gösterilen elektrikli bir diş fırçası takın. küçük mikrodenetleyici diş fırçasında, swidkist'in bakımını programlamak güvenlidir ve gösterge pil şarjı olacaktır. Yüksek verimli arabalar, yüze yakın mikrodenetleyicinin intikamını alabilir. Tipik bir orta sınıf ev, 50'ye yakın ek bina olabilir. Cilt PC için, dünyada yüzden fazla yerleşik eklenti var. Zagalom, vbudovanі mikroişlemcilerin hafif üretiminin daha büyük bir bölümünü oluşturmak için pristroї.


Pirinç. 1.1.

Tablo 1.1'de görülebileceği gibi, elektronik ve askeri sistemler, biyomedikal sistemler, otomobiller, iletişim, bilgisayar aletleri, elektronik aletler, ev elektroniği, endüstriyel ekipman, robotik, ofis makineleri, entelektüel oyuncaklar dahil olmak üzere çeşitli endüstriyel ürünlerde cihazlar bulunabilir. Ek binaların nerede olduğunu öğrenebilirsiniz.

Tomurcuklanan sistemlerin tasarımcıları genellikle katlanır tasarım görevleriyle uğraşırlar. Vbudovani sistemleri layık olabilir. Pek çok yerleşik müştemilat, lamatize edilemez ve yeniden değerlendirilemez. yazılım güvenliği müştemilatlardaki zenginliklerde hareket etmek imkansızdır. Pek çok müştemilat, üretkenlik ve enerji tasarrufu için basit bir yapısal değişime sahip olabilir. Deyakі pristroї pratsyuvati sayesinde pil trivaliy saat. Ek olarak, spozhivchі pristroї zazvichay yeni ürünler ve mayyut zhorst tsіnova rekabeti ile pazara daha hızlı giriyor. Zengin eklemelerde, gerçek zamanlı bir alışveriş ve çok sayıda müştemilat var, bir hafıza alışverişi ve tükenmenin bir hesabı var.




Pirinç. 1.2.Tablo 1.1. vbudovanih sistemlerini uygula
Havacılık ve Askeri sistemler Uçak otopilotları, aviyonik ve navigasyon sistemleri, otomatik iniş sistemleri, yönlendirme sistemleri, motor yönlendirme.
biyomedikal sistemler Bilgisayarlı tomografi ve ultrason takip sistemleri, hasta izleme, kalp pilleri.
Arabalar Motor yönetimi, blokaj önleyici galvanik sistemler, patinaj önleyici galvanik sistem, hava yastığı bakımı, ısıtma ve klima kontrolü, GPS navigasyonu, uydu radyosu, sistem teşhisi.
İletişim İletişim uyduları, ağ yönlendiricileri, anahtarlar, yoğunlaştırıcılar.
Spozhivcha elektronik televizyonlar, fırınlar, bulaşık makineleri, DVD oynatıcılar, stereo sistemler, güvenlik sistemleri, çim sulama kontrolü, termostatlar, kameralar, radyo saatleri, otomatik yayınlar, kablolu TV kod çözücüleri ve diğer eklentiler.
Bir bilgisayar için ekler Klavyeler, fareler, yazıcılar, tarayıcılar, ekranlar, modemler, sabit disk ekleri, DVD'ler, grafik kartları, USB ekleri.
elektronik aletler Veri toplama sistemleri, osilografi, voltmetreler, sinyal üreteçleri, mantık analizörleri.
sahip olma vaadi Asansör kontrolü, güvenlik sistemleri, robotlar, CNC dizgi, programlama mantık kontrolörleri, endüstriyel otomasyon sistemleri ve kontrolü.
Ofis makineleri faks makineleri, fotokopi makineleri, telefonlar, hesap makineleri, bankamatikler.
Kişisel müştemilatlar şık telefonlar, taşınabilir MP3 çalarlar, video oynatıcılar, kişisel dijital yardımcılar (PDA), elektronik kol saati, taşınabilir video oyunları, dijital kameralar, GPS sistemleri.
robotik Promislovi roboti, otonom ulaşım hizmetleri, uzay araştırma robotları (örneğin, robotik geziciler)
oyuncaklar video sistemleri, "Aibo", "Furby" ve "Elmo" gibi robot oyuncaklar.

Gerçek zamanlı işletim sistemleri

Gerçek zamanlı sistemler e borçlu harici parametreler küçük 1.3'te gösterildiği gibi, bir saat boyunca yeni gözlem sonuçlarının tanıtılması ve oluşturulması. Saat vіdpovіdі olabilir, ancak obmezhenim olacaktır. Vіdpovіdі'nın önemsiz saati bile, vіdm'in gerçek saat sistemlerinden kaynaklanabilir.

açıklayıcı popo gerçek zamanlı sistemє araba hava yastığının kontrolörü. Hava yastığı dönüş sensörleri (ivmeölçer) boşluğu algılarsa, sistemin tepki vermesi gerekir, hava yastığını 10 ms'lik bir esneme ile eğeceğim, aksi takdirde sistem düzgün çalışmayacaktır. 10 ms'nin üzerindeki bir sıkışmadan yüksek bir hızda, su yastık açılmadan önce kermovy çarkı ile kapanacaktır.


Pirinç. 1.3.

Gerçek zamanlı yumuşak bir sistemde, öncelik kritik derecede önemli görevler olabilir. M'yaka gerçek zamanlı sistem, gerçek zamanlı değiş tokuşlara cıvıltı. popo tipik yumuşak gerçek zamanlı sistemє multimedya oynatıcı. Oynatıcı bazen bir video karesini veya bir ses örneğini atlayabilir ve oynatıcı saatin bir bölümünden daha uzun bir süre boyunca doğru şekilde çalışırken hatırlanamayabilir.

Aynı gerçek zamanlı sistemde, zaman aralıklarında zamanı görerek yeni bir sonuç alınabilir, aksi takdirde sistem çalışmayacaktır. Yak popo zhorstkoy gerçek zamanlı sistem Kermlerle (bir bilgisayar tarafından tedavi edilmek üzere) uzaktan kürleme sistemine bir göz atalım. Uçağın uçuşunu yönetme sisteminde, pilot direksiyonu hareket ettirirse, uçağın uçuş yönetiminin kerması daha da hızlı değişecek veya sonbaharda dayanıklılığı harcayacaktır. Güvenliği sağlamak için FAA, bilgisayarlı uçuş simülatörlerinin gerçek zamanlı yanıtını sürekli olarak gözden geçirir ve onaylar.

Nesneye yönelik mov için gerekli olan sanal belleğin ve katlanan belleğin kenarlarını değiştirme prosedürleri, zor gerçek zamanlı sistemlerdeki sorunları ortadan kaldırabilir. Navit keshuvannya bir sorun değil, kırıklar programın saatinin değişmesine neden olabilir.

Çok sayıda vbudovannyh sistemi є kіlkom giriş ve çıkışları olan gerçek zamanlı sistemler. Dekіlka bağımsız olarak birer birer podіy vіdbuvayutsya. programlama sproshchuєtsya podіlu zavdandır, ancak bu vimagaє CP postiyny remikannya mizh iznimi zavdannyami ile aynıdır. İşletim sistemi, çoklu görev desteği olarak, güvenlik podіl zamanı TsP mizh kіlkom zavdannyami. İşletim sistemi ayrıca senkronizasyon öğelerini, farklı görevler arasında gerekli koordinasyonu sağlar ve paralel olarak çalışır.

İşletim sistemleri genellikle gerçek zamanın özelliklerine göre sınıflandırılır. İşletim sistemi Gerçek zaman, gerçek zamanlı programları desteklemek için nispeten tasarlanabilir. Son zamanlarda, gerçek zamanlı programların %95'inin zamanı 0,5 ila 10 ms aralığında tuttuğu bir noktaya geldi. Havada bir saatte sadece %10 havalandırma (50 mikrosaniyeden 1 ms'ye kadar soğutma) kabul edilebilir. Görünüşe göre, bu kadar çok sayıda operasyonel sistem için şifreli tanıma, gerçek zamanlı sistemler değildir. Bu kriterlere göre Windows XP gibi bir işletim sistemi oluşturuldu, en kısa yoldan ancak soft olarak görülebiliyor. gerçek zamanlı işletim sistemi. Windows XP için, kurtarma saatini iyileştirmek için bazı üçüncü taraf çalışan sonrası araçlar vardır.

Uyandırma sistemleri için işletim sistemleri

Daha fazla yeni müştemilat katlanabilir yazılım güvenliği, çoklu görev için gerekli olduğu için, görev senkronizasyonu, çok çeşitli giriş / çıkış cihazları için destek, giriş / çıkış işlemlerini zamanlama ve arabelleğe alma, bellek yönetimi, grafik ekranlar için destek, dosya sistemleri, depolama, güvenlik ve canlı yönetimi. İşletim sistemi programların perakendecilerine yardımcı olmak için tüm olanakları verebilirsiniz. Uygulanan programlar üretken olacak, pis koku parçaları en üst düzeyde soyutlama üzerinde çalışacak, vicorists işletim sistemine güvenmenize yardımcı olacak.

Son zamanlarda, beş milyon kod satırının yerini alacak bir stil telefon modeli piyasaya sürüldü. Projelerin bir sonucu olarak çok az insan, genellikle tüm kodun bağımsız olarak geliştirilmesi için gerekli fonlara sahiptir. Aynı zamanda, ana işletim sistemini kazanmanın ekonomik bir anlamı vardır. Genişletme süresinin kısalığı ve toplam sürenin azalması, işletim sistemi için lisansın varyansını doğrular.

Tipik bir ticari işletim sisteminin lisans yenilemesi, ekler için birkaç dolardan daha az maliyetli olacaktır. Deyakі daha basit eklemeler işletim sistemi olmadan yapabilir, ancak yeni eklemeler katlanabilir hale gelir.

zv'yazku z tsim'de daha fazla vbudovanih ek binaları vikoristovuyut vbudovanu işletim sistemi. İşletim sistemleri, C/C++ dilinde yerel ses vermek üzere oluşturulmuştur ve perakendecilerin uygulama programları geliştirmesine ve uygulamaları test etmesine yardımcı olmak için bir C/C++ derleyicisi, birleştirici ve hata ayıklama araçlarıyla birlikte teslim edilir. Rozrorobka vbudovanih sistemleri için araçlar arızalı ayrıca ROM veya Flash bellek gibi bağımsız bellekte saklanan yardım kodu için programlar pіdtrimuvat vykonannya.

© 2022 androidas.ru - Android hakkında her şey