Hassas PCB İmalatı, Yüksek Frekanslı PCB, Yüksek Hızlı PCB, Standart PCB, Çok Katmanlı PCB ve PCB Montajı.
PCB Teknik

PCB Teknik - PCB tasarım sürecinde yazılım yanlışlarını nasıl bulacağız

PCB Teknik

PCB Teknik - PCB tasarım sürecinde yazılım yanlışlarını nasıl bulacağız

PCB tasarım sürecinde yazılım yanlışlarını nasıl bulacağız

2021-10-23
View:438
Author:Downs

PCB tasarım sürecindeki gizli fakat ortak yazılım hatalarının kaçınmasını ve mühendislere PCB kopyalama tahtasında gizli hataları bulmasına yardım etmek için birkaç teknik tanıtmayı nasıl sağlayacağız? Yazılım geliştirme projelerinin çoğu yazılım yanlışlarını tanımak için kodu inceleme, yapısal testi ve fonksiyonel testi kombinasyonuna dayanıyor. Bu geleneksel teknikler çok önemli ve çoğu yazılım sorunlarını bulabilirler. Bugünkü karmaşık sistemlerinde birçok ortak hata bulamazlar.

Yapılacak testi ya da beyaz kutu testi kodda mantıklı, kontrol akışı, hesaplama ve veri hatalarını etkili olarak bulabilir. Bu test in yazılım yapısının detaylarını anlamak için yazılım içerisindeki çalışmalarını (bu yüzden adı\\ white box\" ya da\\ glass box\) gözlemi gerekiyor. Her şartlı ifade, matematik operasyonu, girdi ve çıkışı kontrol ediyor. Teste ihtiyacı olan birçok detaylar yüzünden yapısal testi birbirinde bir yazılım birimi kontrol eder, genellikle bir fonksiyon ya da sınıf.

Kod incelemeleri aynı karmaşık teknikleri uygulama hataları ve potansiyel sorunları bulmak gibi kullanır. Beyaz kutu testi gibi, denetimler genellikle yazılım birimi için yapılır, çünkü etkili bir denetim süreci ortalamalı ve detaylı denetimler gerekiyor.

Araştırma ve beyaz kutu testi, fonksiyonel testi veya siyah kutu testi programının uygulaması hakkında hiçbir şey bilmediğini tahmin ediyor. Kontrol verileri tarafından kullanılan çıkışları test ediyor. Funksiyonel testler tester veya geliştiriciler tarafından yazılmış test prosedürlerinden oluşturulmuş. Belirli bir program a girişimlerine uyumlu beklenen program ın çıkışını belirttiler. Test çalıştıktan sonra, tester gerçek çıkışı sorunu bulmak için beklenen çıkışla karşılaştırır. Siyah kutu testi program ın en sık kullanılan fonksiyonlarında uyumlu olmayan ihtiyaçları, arayüz sorunları, performans sorunları ve hataları olabilir.

pcb tahtası

Bu teknikleri birleştirmese rağmen özel bir yazılım program ında gizlenen hataların çoğunu bulabilir, bunların de sınırları var. Kod inceleme ve beyaz kutu testi sadece bir zamanda kodun küçük bir parçasını hedef alır, sistemin geri kalanını görmezden. Siyah kutu testi genelde sistemi tamamen tedavi ediyor, uygulama detaylarını görmezden. Bazı önemli sorunlar tüm sistemde etkileşimlerinin detaylarına odaklanıp keşfedilir. geleneksel metodlar bu sorunları güvenilir olarak tanımayamaz. Yazılım sistemi özel sorunun özel sebebini bulmak için tamamen kontrol edilmeli. Programdaki her detayları ve kodunun diğer parçaları ile etkileşimlerini tamamen analiz etmek imkansız olduğundan dolayı analiz sorunları sebep etmek için bilinen program ın özel aspektlerine hedef alınmalıdır.

Bu makale üç potansiyel sorun alanını keşfetecek:

* Stack overflow

* Competition conditions

* Deadlock

Okuyucular internette bu makalenin ikinci bölümünü okuyabilir, bu konuları keşfetecek:

* Zaman sorunları

* Reentrant şartları

Üstündeki tüm sorunlar çok görev tasarım teknolojisini kullanan sistemlerde oldukça yaygın.

Stack overflow

Prozesör, geçici değişkenleri depolamak için, fonksiyona parametreleri göndermek, yiyeceği "durum" kaydetmek için kullanır. Sistem sanal hafıza kullanmazsa (başka sözleriyle, hafıza sayfalarını diğer kullanımlar için hafıza alanını boşaltmak için disk'e gönderemez), fiyat fabrikadan ayrıldığında ürün boyutuna ayarlanacak. Eğer bazı sebeplere göre takımın programcısı tarafından ayırdığı menzilden çıkarsa, program ı kesin olacak. Bu sürekli sistem başarısızlarına sebep olabilir. Bu yüzden sistemin en kötü durumda yeterince paket ayırabileceğini sağlamak önemli.

Tek yol, bir paket a şırı akışı olmadığını sağlamak, kodu analiz etmek, program ın bütün mümkün koşullar altında maksimum paket kullanımını belirlemek, sonra yeterince paket ayırdığını kontrol etmek. Testin, acil giriş kombinasyonu tetikleyecek ve sistemdeki en kötü durumda en kötü senaryosu sebebi olamaz.

Stak derinlik analizinin konsepti relatively basit:

1. Her bağımsız ipe için bir arama a ğacı oluştur.

2. Arama ağacındaki her fonksiyonun kullanımını belirleyin.

3. Ağacın kökünden dışarıdaki "yaprak" tarafından hangi arama yolunu bulmak için her arama ağacını kontrol edin.

4. Her bağımsız yip arama ağacının maksimum stack kullanımını ekle.

5. Her bölünme öncelik seviyesinde her bölünme hizmet rutininin (ISR) maksimum stack kullanımını belirleyin ve toplamını hesaplayın. Ancak, eğer ISR'nin kendisi bir topu yoksa ve kesilmiş iplerin topunu kullanırsa, ISR'nin kullandığı topu maksimum sayısı her iplerin topuna eklenmeli.

6. PCB düzenindeki ve tasarımdaki her öncelik için, bir bölüm gerçekleştiğinde işlemci durumunu kurtarmak için kullanılan yerler sayısını ekle.

7. Eğer RTOS kullanıyorsanız, RTOS'nun kendisi için gereken en yüksek sayısını ekleyin (2. adım içinde dahil olan uygulama kodu tarafından sebep olan sistem çağrısından farklı).

Ayrıca düşünecek iki önemli şey var. İlk olarak, yüksek seviye dil kaynak kodundan inşa edilen bir arama a ğacı muhtemelen tamamlanmış olabilir. Çoğu kompiler, büyük değerli büyük sayılar, yüzücü noktalar operasyonları, vb. gibi ortak hesap görevlerini iyileştirmek için çalışma zamanı kütüphanelerini kullanır. Bu aramalar sadece kompiler tarafından oluşturulan toplama dilinde görünür. Çalışma zamanı kütüphanesi işlemleri kendileri birçok paket alanını kullanabilir ve analizi dahil edilmeli. Eğer C+++ dilini kullanıyorsanız, tüm aşağıdaki tür fonksiyonlar (metodlar) de arama ağacına dahil olmalıdır: yapıcı, yıkıcı, fazla yüklenen operatörler, kopyalama yapıları ve dönüştürme fonksiyonları. Bütün fonksiyon göstericileri de analiz edilmeli ve aradığı fonksiyonlar analiz içinde dahil edilmeli.