Resmi içeri alınan PCB anne tablosu tasarımı ve geliştirme mühendisi olmak zor bir süreçtir, geliştiricilere sistemin her parçasını ve bitlerini koruması ve yönetmesi gerekiyor. Yüksek güvenilir sistemlerini geliştirmek için çok fazla teknoloji var. Bugün çalışmak kolay ve uzun zamandır kullanılabilecek 7 PCB tekniklerini tanıtacağım. Sistemin daha güvenilir ve abnormal davranışlarını yakalamasını sağlamak için çok yardımcı oldular.
Yazılım geliştiricileri genellikle çok iyimsik bir grup insandır, kodları uzun süre güvenilir çalıştığı sürece, daha fazla bir şey yok. Bir mikrokontrolörün uygulama alanından atlaması ve beklenmedik bir kod alanında çalışması çok nadir görünüyor. Ancak, bu olayın şansı buferin a şırı akışı ya da yanlış bir gösterge kaybetmesinden az değil. Olacak! Bu olaydan sonra sistemin davranışı kesin bir durumda, çünkü hafıza alanı öntanımlı olarak 0xFF'dir, ya da hafıza alanı genelde yazılmıyor, değeri ancak Tanrı'ya tanınabilir.
Fakat bu olayları tanımaya yardım etmek için kullanılabilecek tamamen bağlantı veya IDE yetenekleri var. Trik, kullanmadığınız ROM'u bilinmeyen bir bit örnekle doldurmak için FILL komutunu kullanmak. Kullanmadığınız hafıza doldurmak için kullanılabilecek çok farklı mümkün kombinasyon var, ama daha güvenilir bir sistem in şa etmek istiyorsanız, en a çık seçim, bu yerlerde ISR hata yöneticilerini yerleştirmek. Sistemde bir şey yanlış giderse ve işlemci program ın uzaydan dışında kodu çalıştırmaya başlarsa, ISR'i tetikleyecek ve işlemci, kayıtlar ve sistem durumunu düzeltmeden önce düzeltmeye karar vermek için bir fırsat sağlayacak.
İçeriden mühendisler için büyük bir avantaj, IDE ve araç zincirimiz uygulama veya hafıza uzay kontrol toplamı (Checksum) otomatik olarak oluşturabileceği ve bu yüzden uygulama bu kontrol toplamı temel olup olmadığını kontrol ediyor. Bu durumlardan çok ilginç ki, program ın kodu cihaza yüklendiğinde kontrol toplamı kullanılır.
Ancak, eğer CRC veya kontrol toplamı hafızada tutulursa, uygulamaların hala başlangıçta (ya da uzun süren bir sistem için periyodik olarak bile) beklenmedikleri şeylerin olmamasını sağlamak için harika bir yoldur. Bugünlerde programlandırılmış bir uygulama değişiminin muhtemelesi çok küçük, fakat her yıl sağlayan milyarlarca mikrokontrolör ve muhtemelen zor çalışma çevresini düşünerek, tıbbi araç uygulamalarının çarpma şansı sıfır değil. Daha büyük ihtimalle, sistemdeki bir defeksi belirli bir sektörde flaş yazısı veya flaş silmesi sebebi olabilir, bu yüzden uygulama tamamını yok ediyor.
Başlangıçta RAM kontrolünü gerçekleştir
Daha güvenilir ve sabit bir sistem inşa etmek için sistem donanımın normalde çalışmasını sağlamak çok önemlidir. Sonuçta, donanım başarısız olacak. (Neyse, yazılım asla başarıs ız olmaz, yazılım sadece şifrenin yapmasını istediğini yapar, do ğru ya da yanlış). Başlangıçta iç veya dış RAM ile bir sorun olmadığını kontrol etmek, donanımın beklediği gibi çalışabileceğini sağlamak için iyi bir yoldur.
RAM kontrollerini gerçekleştirmek için çok farklı yöntemler var, ama ortak yöntem bilinen bir örnek yazmak ve sonra geri okumadan kısa bir süre beklemektir. Sonuç okuduğunuz şey yazdığınız şeydir. Gerçek şu ki, çoğu durumda RAM kontrolü geçti, bu da istediğimiz sonuç. Ancak, kontrol geçmeyecek çok küçük bir ihtimal var ki, bu sistemin bir donanım sorunu göstermesi için harika bir fırsat sağlar.
Stak monitorini kullan
Çoğu içeri alınan geliştirmenler için, bu tabak oldukça gizemli bir kuvvet gibi görünüyor. Garip şeyler olmaya başladığında mühendisler sonunda sıkıldılar ve orada neler olabileceğini düşünmeye başladılar. Sonuç, çubuğun boyutunu ve konumunu kör olarak ayarlamak. Fakat hata sık sık çubuğuna bağlı değil, ama nasıl bu kadar emin olabilir? En azından, kaç mühendislik gerçekten en kötü durumda bir paket ölçü analizi yaptı?
Stak boyutu düzenleme zamanında statik olarak ayrılır, ama stack dinamik bir şekilde kullanılır. Kod çalıştırıldığında, değişkenler, geri adresler ve uygulama tarafından ihtiyacı olan diğer bilgi sürekli stacada saklanır. Bu mekanizma, bölümünün bağlı hafızasında sürekli büyümesini sağlar. Ancak bu büyüme bazen birleştirme zamanında belirlenmiş kapasitet sınırını aştırır ve buna yakın hafıza bölgelerinde verileri yok ediyor.
Topun do ğru çalıştığını kesinlikle emin etmenin bir yolu sistemin "s a ğlık" kodunun bir parça s ı olarak bir stack monitori uygulamak (kaç mühendislik bunu yapıyor?). stack monitor stack ile "diğer" hafıza alanı arasında bir buffer alanı oluşturur ve bilinen bir bit örnekle doldurur. Sonra monitor modelde değişiklikler olup olmadığını sürekli izleyecek. Eğer küçük örnek değişirse, bunun anlamı, çubuk çok büyüdü ve sistem karanlık cehenneme basılacak! Bu zamanda monitor olayların, sistem durumunun ve gelecekte sorun teşhisi için kullanışlı diğer verileri kaydetebilir.
Hafıza koruması birimi (MPU) uygulayan en çok gerçek zamanlı işleme sistemlerinde (RTOS) veya mikro kontrol sistemlerinde temin ediliyor. Korkunç olan şey, bu fonksiyonlar öntanımlı olarak kapatılır ya da genellikle geliştiriciler tarafından delil olarak kapatılır. İnternette hızlı bir araştırma, birçok insan, 56 bytes flash hafıza alanını kurtarmak için gerçek zamanlı operasyon sistemindeki stack monitori kapatmayı önerdiğini gösteriyor. Bu kazanmaya değer değil!
MPU kullan
Geçmişte, küçük ve ucuz mikrokontrolörde bir hafıza koruma birimi (MPU) bulmak zordu ama bu durum değişmeye başladı. Yüksek sondan düşük sonlara kadar mikrokontrolörler çoktan MPUs'lar vardır ve bu MPUs'lar şirketlerinin soygunluğunu büyük bir şekilde geliştirme fırsatını sağladılar.
MPU, işleme ayrıldığı bir hafıza alanı oluşturmak için operasyon sistemi ile yavaşça birleştirildi, ya da görev kodunu bastırmadan koruyabilir. Eğer bir şey olursa, kontrolsiz işlem iptal edilecek ve diğer koruma ölçüleri uygulanacak. Lütfen bu tür komponentlerle mikrokontrolöre dikkat edin, eğer varsa lütfen özelliklerini daha fazla kullanın.
Güçlü bir gözlemci sistemi inşa et
Her zaman en sevdiğiniz izleyici uygulamalarından birisi, çoğunlukla izleyici kapatıldığı yerdir (bu iyi bir başlangıç), ama izleyici temizlendiği yere periyodik bir zamanlayıcı kullanabilirsiniz. programda oluşan her durumdan tamamen ayrıldı. Gözleyici kullanmanın amacı, bir hata olursa, gözlemci temizlenmeyeceğini sağlamak, yani işi durdurulduğunda, sistem iyileştirmek için bir donanım reseti yapmak zorunda kalacaktır. Sistem etkinliğinden bağımsız bir timer kullanarak sistem başarısız olsa bile gözlemci temizlenmesine izin verir.
Uygulama görevlerini izleme sistemine nasıl integre etmek, içerikli PCB anal tahtası geliştiricileri dikkatli düşünmek ve tasarlamak zorundadır. Örneğin, görevini başarıyla tamamlayabileceğini gösteren her görevi belirli bir süre içinde çalışan bir teknik var. Bu durumda gözlemci temizlenmiyor ve yeniden ayarlanmak zorunda. Ayrıca başka PCB işlemcisinin nasıl davranışlarını izlemek için kullanılabilir bir dış izleme işlemcisinin kullanılması gibi gelişmiş teknolojiler de var. Güvenilir bir sistem için güçlü bir gözetim sistemi kurulmak çok önemli.
Aşırı hafıza bölümünden kaçın
Kısıtlı kaynaklar olan çevrede çalışmaya kullanılmayan mühendisler programlama dillerinin özelliklerini kullanmaya çalışabilir ki bu, onlara volaklı PCB hafıza ayırmasını sağlayabilir. Sonuçta bu, sık sık hesap sistemlerinde kullanılan PCB teknolojisi. Hesaplayıcı sistemlerinde, hafıza yalnızca gerekli zaman atalır. Örneğin, C'de geliştirildiğinde mühendisler, toprakta uzay ayırmak için malloc kullanabilir. İşlenecek bir operasyon var. Tamamlandığında, yığının kullanımı için bağlı hafızanı geri getirmek için özgür kullanabilirsiniz.