Menü English Ukrainian Rusça Ana Sayfa

Hobiler ve profesyoneller için ücretsiz teknik kütüphane Ücretsiz teknik kütüphane


RADYO ELEKTRONİK VE ELEKTRİK MÜHENDİSLİĞİ ANSİKLOPEDİSİ
Ücretsiz kütüphane / Radyo-elektronik ve elektrikli cihazların şemaları

Yeni başlayanlar ve daha fazlası için mikrodenetleyiciler. Radyo elektroniği ve elektrik mühendisliği ansiklopedisi

Ücretsiz teknik kütüphane

Radyo elektroniği ve elektrik mühendisliği ansiklopedisi / Mikrodenetleyiciler

makale yorumları makale yorumları

İLK BULUŞMA

İlk olarak, döngünün teması, başlığına bakılırsa, a priori ilgisiz veya "yabancı" görünenler için birkaç söz. Belki de tasarımlarınızda henüz mikrodenetleyiciler kullanmadınız (bundan sonra kısaca MK olarak anılacaktır) ve yakın gelecekte onlarsız da yapabileceğinizi düşünüyorsunuz. Ayrıca sorununuzu çözmek için bir mikrodenetleyici sistemi kurmanın çok hantal olacağını ve ekonomik açıdan mümkün olmayacağını da düşünüyor olabilirsiniz. Acele etmeyin: özellikle sizin için birkaç gerçek ve bazı istatistikler vermek istiyoruz.

Örneğin, mikro bilgisayarın en yakın akrabasını (kişisel bilgisayar) ele alalım ve kullanım yoğunluğunu karşılaştıralım. Analitik şirket Loewenbaum & Co.'ya göre. Inc. (ABD)'ye göre 1997 yılında dünyada piyasaya sürülen kişisel bilgisayar sayısı yaklaşık 20 milyon adede ulaştı. Katılıyorum, bu çok fazla. Şimdi bu devasa rakamın küresel MK üretiminin yalnızca %0,2'si olduğunu hayal edin. Analitik şirket IC Insights Inc.'e göre. (ABD) dünya pazarı 1998'de 13,5 milyardan fazlasını emdi!

Sonuç kendini gösteriyor. Günümüzde bilgisayarın etkin olarak kullanılmadığı bir insan faaliyet alanı bulmak zorsa, MK hakkında ne söyleyebiliriz? Neden bu kadar popüler ve kelimenin tam anlamıyla vazgeçilmez hale geldiler? Cevap mikro denetleyicinin kendi yapısında yatmaktadır. Bu kavramın tanımına ilk yaklaşım olarak, MK'nin tek bir çip içinde barındırılan bir bilgisayar olduğunu varsayabiliriz. Dolayısıyla ana çekici nitelikleri: küçük boyut, tüketim, fiyat; yüksek performans, güvenilirlik ve çok çeşitli görevleri yerine getirecek şekilde uyarlanma yeteneği.

MK, merkezi işlem birimine (CPU) ek olarak bellek ve çok sayıda giriş/çıkış cihazı içermesi bakımından bir mikroişlemciden farklıdır: analogdan dijitale dönüştürücüler, seri ve paralel bilgi iletim kanalları, gerçek zamanlı zamanlayıcılar, darbe -genişlik modülatörleri (PWM), programlanabilir darbe üreteçleri vb. Yapısı ve çalışma prensibi açısından MK, özünde kişisel bir bilgisayardan farklı değildir. Bu nedenle mikrodenetleyici ve mikrobilgisayar kelimeleri eş anlamlıdır. Bununla birlikte, ilk terim (İngilizce kontrol kelimesinden gelir) daha yaygındır, çünkü asıl amacını yansıtır - çeşitli cihazlara yerleştirilmiş otomatik kontrol sistemlerinde kullanım: kredi kartları, kameralar, cep telefonları, stereolar, televizyonlar, VCR'ler ve video kameralar , çamaşır makineleri, arabalar, mikrodalga fırınlar, güvenlik alarm sistemleri, benzinli motorlar için ateşleme sistemleri, lokomotifler için elektrikli tahrikler, nükleer reaktörler ve çok daha fazlası. Gömülü kontrol sistemleri o kadar yaygın bir olgu haline geldi ki, Gömülü Sistemler adı verilen ekonominin yeni bir dalı ortaya çıktı.

Şu anda dünyada binlerce çeşit MK üretilmektedir. 8'den 356'ya kadar pin sayısına sahip paketler halinde tedarik edilirler, -55 ila +125oC arasındaki sıcaklıklarda, 32 kHz ila 200 MHz arasındaki frekanslarda çalışırlar, 1,2 V besleme voltajında ​​​​çalışma kapasitesine sahip olup, birkaç mikroamperi aşıyor. Ürünlerin fiyatları da sürekli düşüyor. Bugün halihazırda bazı sekiz bitlik MK'lerin maliyeti 50 sentten fazla değildir; bu, bir "sabit mantık" çipinin maliyetiyle karşılaştırılabilir.

Bütün bunlar, günümüzde MK'nin uygulama bulamayacağı bir insan faaliyet alanı bulmanın giderek zorlaşmasına ve yayılma sürecinin çığ benzeri bir karaktere sahip olmasına yol açmıştır.

Yukarıdaki gerçeklerin sizi hikayemizin ana karakterine karşı saygılı bir tutuma hazırlamış olduğunu umuyoruz. Gerçekten de MK, neredeyse her türlü insan faaliyetini istila eden küresel bir olay haline geldi.

25 yıldan biraz daha uzun bir süre önce ortaya çıkan bu ürünlerin popülaritesinin bu kadar hızlı artmasını sağlayan şey neydi? Bu cihazlar nelerdir ve yetenekleri ve beklentileri nelerdir?

Faaliyetlerinizde henüz MK'yi veya bunlara dayalı sistemleri kullanmadıysanız, o zaman. belki bunu düşünmenin zamanı gelmiştir? Ve eğer MK'yi kullanmaya karar verirseniz, eylemlerinizin sırası ne olmalıdır? Sizi ne gibi zorluklar bekliyor, bu yolda size ne yardımcı olabilir?

Bu soruları önerilen makale dizimizde cevaplamaya çalışacağız.

MOORE YASASI VE İLK MK

Güçlü Intel şirketinin gelecekteki kurucularından biri olan Gordon Moore, 1965 yılında ilginç bir gerçeğe dikkat çekti. Bellek yongalarının performansındaki artışın grafiğini çizdikten sonra ilginç bir model keşfetti: Her 18 ila 24 ayda bir yeni yonga modelleri ortaya çıktı ve kapasiteleri her seferinde yaklaşık iki katına çıktı. G. Moore, eğer bu eğilim devam ederse, bilgisayar cihazlarının gücünün nispeten kısa bir süre içinde katlanarak artacağını öne sürdü.

G. Moore'un tahmini daha sonra parlak bir şekilde doğrulandı ve keşfettiği model bugün hala gözlemleniyor ve inanılmaz bir doğrulukla, üretkenlik artışına ilişkin çok sayıda tahminin temelini oluşturuyor. 28 mikroişlemcinin (4004) piyasaya sürülmesinden bu yana geçen 1971 yılda, bir çip üzerindeki transistörlerin sayısı 12 kattan fazla arttı: Sorrettuey çipinde 000'den 2'e.

1976'da yarı iletken teknolojisinin hızlı gelişimi Intel'in ilk MK - 8048'i yaratmasına yol açtı. CPU'ya ek olarak program belleği, veri belleği, sekiz bitlik bir zamanlayıcı ve 27 giriş/çıkış hattı içeriyordu. Bugün 8048 zaten tarih oldu, ancak Intel'in 1980'de piyasaya sürdüğü bir sonraki ürün bugüne kadar hayatta ve iyi durumda. Bu MK 8051.

MİMARLIK MK 8051

Bu MK, daha sonra başka birçok ürünün yaratıldığı görüntü ve benzerliği açısından klasik bir model olarak düşünülebilir. Blok diyagramı Şekil 1'de gösterilmektedir. XNUMX. CPU, mikro denetleyicinin ana ünitesidir. Komuta sistemi gibi önemli bir kavram bununla bağlantılıdır.

Yeni başlayanlar ve ötesi için mikrodenetleyiciler

Talimat sistemi, belirli bir CPU'nun tüm olası işlemlerinin listesini tanımlayan, benzersiz bir ikili kod karakteristiği kümesidir. Bu tür kodların her biri bir işlemi tanımlar ve işlem kodu veya komut olarak adlandırılır. Komut setinde ne kadar çok kod kullanılırsa, CPU o kadar çok işlemi gerçekleştirebilir. MK 8051 sekiz bit olduğundan işlem kodları 8 bit boyutundadır. Teorik olarak toplam 256 adet sekiz bitlik işlem kodu bulunabilir. 8051 255'i kullanır.

Kullanılan işlem kodu sayısına bağlı olarak komut sistemleri iki gruba ayrılır: CISC ve RISC. CISC terimi karmaşık bir komut sistemi anlamına gelir ve Karmaşık Komut Seti Bilgisayarı'nın İngilizce tanımının kısaltmasıdır. Benzer şekilde, RISC terimi de azaltılmış talimat sistemi anlamına gelir ve İngilizce Azaltılmış Komut Seti Bilgisayarı'ndan gelir. MK 8051 komut sistemi C15C tipi olarak sınıflandırılabilir.

Ancak bu kavramların yaygın kullanımına rağmen, adların kendilerinin CISC ve RISC komut sistemleri arasındaki temel farkı yansıtmadığı kabul edilmelidir. RISC mimarisinin ana fikri, saat üretecinin bir saat döngüsünde yürütülebilecek bu tür işlem kodu kombinasyonlarının dikkatli bir şekilde seçilmesidir. Bu yaklaşımın ana faydası, CPU'nun donanım uygulamasının çarpıcı biçimde basitleştirilmesi ve performansının önemli ölçüde artırılabilmesidir.

Başlangıçta, bu yaklaşımı yalnızca komut kümesini önemli ölçüde azaltarak uygulamak mümkündü, dolayısıyla RISС adı verildi. Örneğin mikroçip PIC ailesinin komut sistemi yalnızca 35 komut içerir ve RISC olarak sınıflandırılabilir. Açıkçası, genel durumda, CISC mimarisinin bir komutunun RISC mimarisinin çeşitli komutlarına karşılık gelmesi gerekir. Bununla birlikte, genellikle RISC mimarisi içindeki artan performanstan elde edilen kazanımlar, daha az verimli bir talimat setinden kaynaklanan kayıpları kapsar ve bu da, CISC'ye kıyasla bir bütün olarak RISC sistemlerinin daha yüksek verimliliğine yol açar. Bu yüzden. en hızlı MK 8051 komutu 12 saat döngüsünde yürütülür. Her talimatın yürütülmesi için üç RISC denetleyici talimatı gerektirse bile, RISC mimarisi sonuçta performansta dört kat artış sağlayacaktır.

Bu arada RISC mimarisi bir dizi başka sorunu çözmenize olanak tanır. Nitekim CPU'nun basitleştirilmesiyle uygulanması için gerekli transistör sayısı azalır, dolayısıyla kristalin alanı azalır. Ve bu, maliyet ve güç tüketimindeki azalmayla ilişkilidir.

Bu noktada şunu söyleyebiliriz: Gelecek RISC mimarisine ait! Ancak günümüzde bu iki kavram arasındaki çizgi hızla bulanıklaşıyor. Örneğin. Atmel'in AVR ailesinin MK'leri, CISC tipine karşılık gelen 120 talimattan oluşan bir komut sistemine sahiptir. Ancak çoğu, RISC mimarisinin ayırt edici özelliği olan tek bir saat döngüsünde yürütülür. Günümüzde RISC mimarisinin ana özelliğinin, talimatların saat üretecinin bir saat döngüsünde yürütülmesi olduğu genel olarak kabul edilmektedir. Takım sayısının artık tek başına bir önemi yok.

Saat üreteci, cihazın tüm düğümlerinin çalışmasını senkronize etmek için darbeler üretir. Tekrarlama oranları, bir kuvars rezonatör veya MK terminallerine bağlı bir RC devresi tarafından ayarlanabilir. Bazı MK'ler, harici elemanların kullanımı olmadan bir saat üreteci çalışma modu sağlar. Bu durumda saat darbelerinin frekansı, kristalin üretimi sırasında belirlenen parametrelere bağlıdır.

ROM, programları depolamak için tasarlanmış salt okunur bir bellek aygıtıdır, bu nedenle bu belleğe genellikle kod belleği veya program belleği denir. Yakın zamana kadar maskeli ve programlanabilir olmak üzere iki ana ROM türü vardı.

Mikrodenetleyicinin üretim süreci sırasında teknolojik şablonlar - maskeler kullanılarak bilgiler maske ROM'larına girilir. Üretim döngüsünün bitiminden sonra bunu değiştirmek imkansızdır.

Bu tür ROM'lar yalnızca programın kalitesinden şüphe duyulmadığı ve bu özel program için bir MK'ye büyük ihtiyaç duyulduğu durumlarda kullanılır. Maskeli ROM'ların avantajı, seri üretimdeki en düşük maliyettir (birkaç bin birimden).

Bilgi, programlayıcı adı verilen bir cihaz kullanılarak programlanabilir ROM'lara yazılır. Bu tür ROM'lara sahip MK'ler iki türdendir: bir kez ve tekrar tekrar programlanabilir (yeniden programlanabilir). Birincisi, adından da anlaşılacağı gibi, yalnızca tek seferlik programlamaya izin verir, bundan sonra bilgileri silmek artık mümkün değildir (OTP hafızalı MK - İngilizce Tek Seferlik Programlanabilir'den). Küçük ölçekli (1000 adete kadar) üretimlerde kullanılırlar. maske maskelerinin kullanımının ekonomik olarak haklı olmadığı durumlarda.

Çok programlanabilir mikro devreler, ultraviyole ışınlamayla silinebilen ROM ile donatılmış mikro devrelere ("pencereli" paketlerde mevcuttur) ve elektriksel olarak yeniden programlanabilir belleğe sahip mikro devrelere bölünmüştür. Ultraviyole ışınlamayla silinebilen ROM'lu MK'lerin dezavantajı, çok yüksek maliyet ve nispeten az sayıda yazma/silme döngüsüdür (kristalin toplam radyasyon dozuna bağlıdır ve genellikle 15...20'yi aşmaz).

Şu anda, ROM'u uygulamak için yeni bir teknoloji - flash bellek - giderek daha popüler hale geliyor. Başlıca avantajı şudur. elektriksel olarak yeniden programlanabilirlik ilkesi üzerine inşa edilmiştir. yani, programlayıcılar kullanılarak bilgilerin tekrar tekrar silinmesine ve kaydedilmesine olanak tanır. Garanti edilen minimum yazma/silme döngüsü sayısı genellikle birkaç bini aşıyor. Bu, yaşam döngüsünü önemli ölçüde artırır ve MK sistemlerinin esnekliğini artırır. MK programında hem sistem geliştirme aşamasında hem de gerçek bir cihazda çalışması sırasında değişiklik yapmanıza olanak tanıdığı için.

RAM, verileri depolamak için kullanılan rastgele erişimli bir bellek cihazıdır, dolayısıyla bu belleğe veri belleği de denir. RAM'deki okuma ve yazma döngülerinin sayısı sınırlı değildir ancak besleme voltajı kesildiğinde tüm bilgiler kaybolur.

MK 8051'in mimarisi, program ve veri belleğinin ayrı kullanımını içerir ve Harvard olarak adlandırılır. Tipik olarak bu mimari, program ve veri belleği erişim yollarını ayırarak sistem performansını artırmak için kullanılır, ancak 8051'de aynı boyut gerektirmeyen program ve veri belleği elde etmek için kullanıldı. Harvard'ın antipodu - von Neumann mimarisi - programların ve verilerin paylaşılan bellekte saklanmasını içerir ve en çok bilgisayarlarda kullanılması amaçlanan mikroişlemciler için tipiktir. Bir örnek, x86 mikroişlemci ailesidir.

TO, T1 zamanlayıcıları, bir dizi işlevi gerçekleştirmek üzere programlanabilen on altı bitlik programlanabilir zamanlayıcılar/sayıcılardır. Zaman aralıklarının hassas bir şekilde oluşturulması, mikro denetleyicinin terminallerindeki darbelerin sayılması, bir dizi darbenin üretilmesi ve bir seri iletişim kanalının alıcı-vericisinin saatinin ayarlanması için kullanılabilirler. Zamanlayıcılar/sayaçlar, kesme istekleri oluşturma, CPU'yu olaylara dayalı olarak bunlara hizmet verecek şekilde değiştirme ve onu zamanlayıcıların durumunu periyodik olarak yoklama ihtiyacından kurtarma yeteneğine sahiptir. Mikrodenetleyicilerin ana uygulaması gerçek zamanlı sistemlerde olduğundan, zamanlayıcılar/sayaçlar onların zorunlu unsurlarıdır. Bazı modifikasyonlarda zamanlayıcı sayısı 32'ye ulaşır.

Seri port, MK ile dış dünya arasında bilgi alışverişi için bir kanaldır. Bu tür iletişim kanalları minimum sayıda çip pini kaplayarak, uzun mesafelerde minimum donanım maliyetiyle iletişim sağlar. 8051, RS-232C standart protokolünü destekleyen evrensel bir asenkron seri alıcı-verici (UART) uygular ve bu, bu MK ile kişisel bir bilgisayar arasındaki iletişimi düzenlemeyi mümkün kılar. RS-232C'ye ek olarak RS-485 de gömülü sistemler dünyasında popüler bir protokoldür. I2C (iki telli çift yönlü veri yolu). SPI (seri çevresel arayüz üç telli). Bitbus (seri kontrol veri yolu), CAN (kontrolörden kontrolöre ağ arayüzü), USB (evrensel seri veri yolu) ve diğerleri. Günümüzde hemen hemen her tür seri kanal için, ilgili seri bağlantı noktasını içeren bir mikro denetleyici bulabilirsiniz.

Paralel G/Ç bağlantı noktaları da herhangi bir MK'nin önemli bir parçasıdır. Genellikle yakın çevreyle (sensörler ve aktüatörler) iletişim kurmak için kullanılırlar.

MK'nin paralel portlarının önemli bir özelliği, çeşitli işlevleri yerine getirecek şekilde programlanabilme yeteneğidir. Örneğin, 8051'de P0 ve P2 pinleri normal statik G/Ç kayıtları olarak veya ek program belleği, veri belleği ve G/Ç aygıtları gibi harici aygıtlara bağlantılar için adres ve veri yolu olarak kullanılabilir. Bu, MK'ye mimari esneklik kazandırır. RE portu, statik bir I/O kaydı olarak kullanılabilir veya bir seri kanalı, zamanlayıcıları, kesme kontrol cihazını vb. çalıştırmak için özel işlevler gerçekleştirebilir. Yeniden programlama olasılığı, tasarlanan cihazdaki tüm MK pinlerini maksimum verimlilikle kullanmanıza olanak tanır. .

Kesme sistemi MK'nin en önemli parçalarından biridir. Gerçek zamanlı sistemlerin özelliği, onlar için son derece önemli bir parametrenin dış olaylara tepki süresi olmasıdır. Basit bir örnekle açıklayalım. Bilgisayarda matematiksel bir hesaplama yaptığınızda genellikle bu hesaplamaları gerçekleştirmek için tasarlanmış bir programı çalıştırırsınız ve bilgisayarın belleğine yüklendikten sonra problem cümlesini girip sonucu beklersiniz. Bu durumda bekleme süresi temel bir öneme sahip değildir (tabii ki mantık dahilinde) - bilgisayarın yavaş çalışması can sıkıcı olabilir, ancak bu sonucu etkilemeyecektir. Gerçek zamanlı bir sistem, kontrol sisteminin geliştirme aşamasında hesaplanan harici olaylara tamamen spesifik bir tepki verme hızını varsayar. Hesaplananların ötesindeki gecikmeler burada kabul edilemez; felaketle sonuçlanabilir.

Olaylara hızlı tepki verme sorunları, bir kesme sistemi düzenlenerek çözülür. Bu, bu tür her olay için MK'nin tepkisini oluşturan ayrı bir kod "parçasının" geliştirildiği anlamına gelir. Bu kod "parçasına" kesme isteği alt programı adı verilir (kısacası, kesme alt programı terimi sıklıkla kullanılır) ve program belleğine bilinen bir adrese yerleştirilir. Belirli bir olay meydana geldiğinde, kesme denetleyicisinin girişine bununla ilgili bir sinyal gönderilir. İkincisi, meydana gelen bir olay hakkındaki giriş sinyali ile bu olaydan gelen bir kesme talebini işlemek için alt programa giriş noktasının bulunduğu program hafıza adresi arasında bire bir yazışma kuran bir cihazdır. Denetleyici, CPU'nun mevcut programın yürütülmesini keser ve kesme rutininin yürütülmesine atlamasına neden olur. Olayın meydana geldiği andan kesme altyordamının ilk komutunun yürütülmesinin başlangıcına kadar geçen süreye olaya MK yanıt süresi denir. İşlemeyi bitirdikten sonra CPU otomatik olarak kesintiye uğrayan programı yürütmeye geri döner.

Kesme denetleyicisinin bir başka işlevi de olay önceliklerini ayarlamaktır. Öncelik kavramı, çalışan bir kesme rutininin, yalnızca mevcut olandan daha yüksek bir önceliğe sahip olması durumunda başka bir olay tarafından kesintiye uğratılabileceği anlamına gelir. Aksi halde CPU, önceki olayı işlemeyi bitirdikten sonra yeni bir olayı işlemeye başlayacaktır. MK 8051'de bulunan kesme denetleyicisinin beş olay girişi vardır: ikisi harici cihazlardan, ikisi zamanlayıcılardan ve biri seri kanaldan.

Genellikle herhangi bir MK hakkında konuştuklarında daima onun ait olduğu aileden bahsederler. Bir aile, bir komut sistemi, bir CPU işlem siklogramı, program belleği ve veri belleğinin organizasyonu, bir kesme sistemi ve temel bir çevresel aygıt kümesi gibi bir dizi kavram olarak anlaşılan aynı çekirdeğe sahip ürünleri içerir. Aslında, Şekil 1'de. Şekil 8051, XNUMX ailesinin yüzlerce başka modifikasyonunun oluşturulmasının temeli olan çekirdeği göstermektedir.

Çeşitli temsilcileri arasındaki farklar esas olarak çevresel aygıtların bileşiminde ve program veya veri belleği miktarında yatmaktadır. MK tarafından çözülen sorunların çeşitliliğinden bu yana. Son derece geniş olduğundan, üreticileri, en çeşitli tüketici ihtiyaçlarını karşılamak için mümkün olduğu kadar çok değişiklik yayınlamaya çalışıyor. Birçok ailede değişiklik sayısı yüze yaklaşmakta, hatta bu değeri aşmaktadır.

Ailenin en önemli özelliği tüm MK'lerinin ikili kod seviyesinde yazılım uyumluluğudur. Bu, sistem geliştiricilerinin yazılımlarındaki gelişmeleri kaybetmeden bir MK ailesini diğerleriyle değiştirmelerine olanak tanır. Doğal olarak, aileye dahil edilen çeşit sayısı ne kadar fazla olursa, en uygun seçeneği seçme şansı o kadar artar, bu aile geliştirici için o kadar çekici olur. Yeni bir gelişme için MK ailesinin doğru seçimi sorunu stratejiktir, çünkü farklı ailelerin ürünleri arasında yazılım aktarma sorunu son derece karmaşıktır ve hatta üst düzey dillerin kullanımı bile her zaman büyük olmadan çözülmesine izin vermez. kayıplar. Seçim kriterleri konusuna serinin ilerleyen yazılarında döneceğiz.

Program geliştirme, MK tabanlı bir cihaz oluşturmanın en önemli aşamalarından biridir. Onsuz "ölüdür", dış etkenlere tepki vermez ve kontrol sinyalleri vermez.

Güç açıldığında, MK hemen kendisine bağlı program belleğinde (genellikle ROM) bulunan programı yürütmeye başlar. Yürütülmesi, çoğunlukla sıfır olmak üzere sabit bir adresten başlar. Adres basitçe ROM hücresinin numarasıdır.İşlem şu şekilde gerçekleştirilir: mikrodenetleyici program belleğinde saklanan sayıyı okur ve makine kodu adı verilen değerine bağlı olarak ALU kayıtlarının içeriği üzerinde belirli eylemler gerçekleştirir. . bellek, portlar vb. Örneğin 32H sayısının program belleğinden okunması. MK, değeri 2 numaralı giriş portundan okuması ve akümülatör kaydına yerleştirmesi gerektiğini "fark eder". Çoğu zaman bir bayt bir eylemi tanımlamak için yeterli değildir ve daha sonra MK bellekten ek baytları okur.

Bir eylemi gerçekleştirdikten sonra MK, sıradaki bellek hücresinden vb. değeri okur. MK tarafından gerçekleştirilen bir eylemi açıklayan bayt kümesine makine komutu (talimat) adı verilir ve MK'nin " anlıyor”. - Komuta sistemi veya talimat seti (Talimat Seti). Farklı ailelerin MK'leri farklı komut sistemlerine sahiptir, yani benzer eylemleri gerçekleştirmelerine rağmen makine kodları farklı anlamlara sahiptir.

Dolayısıyla, bir mikrodenetleyici için bir program, değerleri ona hangi eylemlerin gerçekleştirileceğini söyleyen bir sayı dizisidir. Bir program geliştirmenin sonucu, bu makine kodlarını içeren bir bilgisayar dosyasıdır. Bir ROM programlayıcısı kullanılarak MK'nin program belleğine girilir (“dikilir”).

Bu makine kodları dizisi nasıl yazılır - MK için bir program? Geliştiricinin gerçekten makine kodlarının anlamlarını hatırlaması ve bunların sırasını manuel olarak ayarlaması gerekiyor mu? MK için ilk programlar tam olarak bu şekilde oluşturuldu. ve buna makine kodlarında programlama deniyordu. Bu program geliştirme yönteminin çok emek yoğun ve etkisiz olduğu açıktır.

Program oluşturma sürecini kolaylaştırmanın ilk adımı, montaj dili çevirmeni olarak adlandırılan bir bilgisayar programıydı. Buradaki fikir, mikrodenetleyici tarafından gerçekleştirilen eylemlerin insanların daha anlayabileceği bir dille ifade edilmesi ve daha sonra bu ifadelerin makine kodlarına dönüştürülmesiydi. Yukarıdaki bağlantı noktası 2'nin değerini okuyan ve bunu akümülatöre koyan bir makine talimatı örneğinde, gerçekleştirilen eylem genel olarak MOV A.P2 olarak adlandırılabilir.

Burada talimat anımsatıcısı olarak adlandırılan MOV kelimesi (İngilizce hamleden gelir), bir değerin aktarımını belirtir ve işlenenler olarak adlandırılan A ve P2, değerin nereden alınacağını ve nereye yerleştirileceğini belirtir. Böyle bir gösterim sistemine montaj dili denir. İçinde yazılı bir program. Montaj dili yapılarını makine kodlarına dönüştüren bir çevirmen tarafından işlenir.

Assembly programlama günümüzde hala yaygın olarak kullanılmaktadır. Tüm popüler mikrodenetleyici aileleri için derleme dili çevirmenleri ücretsizdir.

Montaj dili programlamanın makine kodu programlamaya göre bariz avantajlarına rağmen, çoğu durumda montajcı dili geliştirici görevlerini yerine getirecek kadar verimli değildir. Gerçek şu ki, MK yalnızca tamsayılar üzerinde aritmetik işlemler, transferler, karşılaştırmalar vb. kullanımı ve hantallığı. MK programlarının geliştirilmesindeki bir sonraki adım, özel bilgisayar programlarının (üst düzey programlama dillerinden çevirmenler veya derleyiciler) oluşturulmasıydı. En yaygın kullanılan programlama dili C’dir.

Çevirmenlerin gelişiyle birlikte MK programlarının geliştirilmesi önemli ölçüde basitleşti. Örneğin, bir programa iki sayı eklemeniz gerekiyorsa, artık sadece a = b + c yazmanız yeterlidir. ve çevirmen bu ifadeyi a, b ve c değişkenlerinin türlerine bağlı olarak gerekli makine talimatları dizisine dönüştürür.

Üst düzey bir dil kullanmak, geliştiricinin belirli bir MK'nin komut sisteminden kaçmasına ve insanlar için daha basit ve anlaşılır kategorilerle çalışmasına olanak tanır. Geliştiricinin yalnızca MK'nin genel mimarisini bilmesi gerekir. Verilen problemi çözmek için gerekli olan yerleşik çevresel aygıtların çalışma prensipleri ve C dilinde programlama becerileri. Programın fonksiyonel içeriği C dili kullanılarak uygulanmaktadır. çok sayıda farklı alt yordam (işlev) içeren: aritmetik, karakter dizileri ve diğerleri ile çalışmak için.

C dilinde MK için bir program oluşturma sürecini ele alalım. Geliştirme sürecinde kişisel bir bilgisayara ihtiyacınız olacak.

Geliştirici, elindeki görevi anladıktan sonra herhangi bir metin düzenleyiciyi kullanarak programının kaynak kodunu C dilinde yazar. Daha sonra C dilinden bir çevirmen programı çalıştırıyor. kaynak metni bir ara nesne dosyasına dönüştürür. Çevirmen, komut satırında belirtilen bir dizi anahtar (açıklamaları belgelerinde bulunabilir) kullanılarak kontrol edilir. Geliştirici, bir programı yazarken sözdizimi hataları yaptıysa, çevirmen, kaynak metin dosyasındaki her satır numarasını belirterek, ekranda bunların bir listesini görüntüler. Geliştiricinin tüm hataları düzeltmesi gerekir. Başarılı çeviriden sonra nesne dosyalarının, makine kodunda bir program dosyası oluşturan bir bağlayıcı (bağlayıcı) tarafından işlenmesi gerekir.

Yüksek seviyeli bir dil kullanmanın bir sorunu vardır. Derleyici, dil yapılarını makine koduna dönüştürmekten sorumludur ve bu dönüştürme, değişen verimlilik dereceleriyle gerçekleştirilebilir. Verimlilik kriterleri makine kodunun boyutu (elbette ne kadar küçükse o kadar iyidir) ve makine kodunun hızıdır. Kompakt ve hızlı kod üretme görevi çok karmaşıktır ve derleyicinin genel kalitesi onun çözümüne bağlıdır. Modern C derleyicileri, çok düzeyli optimizasyonu, belirli bir mikrobilgisayarın mimarisinin özelliklerini kullanır ve bazı alt rutinlerin birleştiricide yazıldığı karma programların oluşturulmasına izin verir.

Açıklanan süreç oldukça hantal görünüyor: geliştiricinin çeşitli programları manuel olarak başlatması gerekiyor (bir metin düzenleyici, bir C derleyicisi, bağlayıcı kontrol anahtarlarını hatırlamalı, dosyadaki satır numaralarına göre programdaki hataları aramalıdır. MK için bir program geliştiricisinin çalışması, entegre ortam geliştirmenin (Entegre Geliştirme Ortamı. IDE) ortaya çıkması olmuştur. Entegre geliştirme ortamı, program geliştirmenin tüm aşamalarını birbirine bağlayan bir bilgisayar programıdır. Kaynak yazmak için bir metin düzenleyiciyi birleştirir. metinler, çevirici ve C'den çevirmenler, bir bağlayıcı, bir hata ayıklayıcı, MK hakkında referans bilgileri ve geliştirici için gerekli diğer araçlar Çevirmenlerin, bağlayıcıların ve diğer bileşenlerin yapılandırılması, komut satırında anahtarlar belirtilerek değil, diyalog biçiminde yapılır. Yalnızca doğru yerlerdeki kutuları işaretlemeniz gereken kutular Programların kaynak metinlerinin makine kod dosyasına dönüştürülmesi tek tuşla başlatılır.

Entegre program geliştirme ortamlarının ortaya çıkışı, mikro bilgisayarlar için program oluşturma verimliliğini daha da artırarak geliştiricinin çözülmekte olan sorunun özüne odaklanmasına ve uygulamanın belirli ayrıntılarından uzaklaşmasına olanak tanıdı.

Entegre yazılım geliştirme paketleri birçok şirket tarafından üretilmektedir. Farklı üreticilerin paketleri işlev açısından benzerdir ancak sağlanan hizmet özellikleri, kullanım kolaylığı ve oluşturulan makine kodunun kalitesi açısından farklılık gösterir.

En popüler geliştirme aracı paketlerinin temel özellikleri tabloda gösterilmektedir.

Yeni başlayanlar ve ötesi için mikrodenetleyiciler
(büyütmek için tıklayın)

MK İÇİN PROGRAMLARIN SEMBOLİK HATA AYIKLAMASI

Nadir istisnalar dışında, MK programları içerdikleri hatalar nedeniyle ilk kez çalışmaya başlamaz ve hata ayıklama gerektirir. Geliştiriciler hata ayıklama sorunlarına farklı şekilde yaklaşıyor. Bazıları kaynak metni dikkatli bir şekilde analiz etmenin, bir osiloskop kullanarak MK pinlerinde neler olduğunu görmenin yeterli olduğuna ve tüm hataların düzeltilebileceğine inanıyor. Bu yöntem, geliştiricinin geniş deneyime sahip olması, kullanılan MC'yi çok iyi bilmesi, her zaman doğru kodu üreten bir tercümana (genellikle çevirici) ve yeterli zamana sahip olması durumunda uygulanabilir.

Diğerleri uygulamalarında ev yapımı hata ayıklama monitörleri kullanırlar - ana programla birlikte MK'ye yüklenen özel alt rutin setleri. İkincisi, kontrol noktalarındaki izleme alt programlarını çağırır ve bunlar, MK kaynaklarının durumu hakkında bilgi sağlar. Hemen hemen her programın hatalarını bu şekilde ayıklayabilirsiniz, ancak önemli olabilecek dezavantajları vardır. İlk olarak, hata ayıklama monitörüne operasyon için MK kaynaklarının bir kısmı sağlanmalıdır: en azından kod adres alanının bir kısmı ve belirli sayıda yığın hücresi ve en fazla RAM'in ve çevresel aygıtların bir kısmı. MK. Monitör tarafından bilgileri görüntülemek için kullanılır. Ana programın kendisi MC'yi aktif olarak yüklüyorsa, kaynakları hata ayıklama monitörüne tahsis etmek zor olabilir. Örneğin, PIC 16C5x'in (Microchip) yalnızca iki yığın hücresi vardır ve hata ayıklama izleme rutinlerine yapılan çağrıları kullanmak zordur. İkincisi, izleme çağrıları ana programdan zaman alır ve bu nedenle programın zaman açısından kritik kısımlarından çağrılamaz. Üçüncüsü, bir hata ayıklama monitörü oluşturmak zaman alır.

Mikrodenetleyicilere yönelik programlarda hata ayıklamanın en etkili yolu, simülatör hata ayıklayıcıları ve devre içi emülatörleri içeren özel profesyonel hata ayıklama araçlarını kullanmaktır.

Bu tür hata ayıklayıcıların sağladığı yeteneklerden bahsetmeden önce, programların kaynak metinlerinin makine koduna dönüştürüldüğü derleyici seçimine değinmek gerekir. Çoğu durumda üst düzey bir dilde programlama tercih edilir. Oluşturulan kodun boyutuna ve hızına çok sıkı gereksinimler getiriliyorsa, çeviricinin kullanılması gereklidir. Şu anda, bu tür durumlar giderek azalıyor, çünkü neredeyse her zaman daha fazla belleğe sahip "daha hızlı" bir MK alabilirsiniz. Ayrıca modern çapraz araç paketleri, bazı modüllerin C dilinde yazıldığı karma programların yazılmasını kolaylaştırır. ve performans açısından en kritik parçalar montajcıdadır. C derleyicileri ayrıca kaynak metinlere montaj talimatları eklemenize de olanak tanır.

C'de programlamanın, Assembly'de programlamaya göre avantajları nelerdir? Kısaca aşağıdaki gibidirler:

  • Büyük sayılarla yapılan işlemler konusunda endişelenmenize gerek yok. Derleyici a+b işlemi için doğru kodu otomatik olarak üretecektir. a ve b'nin 8-, 16-, 32-bit sayılar, kayan nokta sayıları ve farklı türde çift sayılar olup olmadığı;
  • Derleyici, çeşitli matematiksel işlemleri (trigonometrik fonksiyonlar, üstel alma, vb.) uygulayan kapsamlı bir fonksiyon kütüphanesi (altprogramlar) ile birlikte gelir. karakter dizileri, biçimlendirilmiş giriş/çıkış vb. ile çalışmak;
  • birçok programcı hatası derleyici tarafından teşhis edilir: örneğin, yanlış sayıda parametreyi veya yanlış türdeki parametreleri bir işleve aktarmanıza, bir dönüş ifadesi koymayı unutmanıza vb. izin vermez;
  • C ile yazılan kaynak metnin okunması çok daha kolaydır, daha kompakttır ve değiştirilmesi daha kolaydır;
  • C ile yazılmış programlar. diğer ailelerin MK'lerine aktarılması daha kolaydır.

Üst düzey bir dilde yazılmış programlarda etkili bir şekilde hata ayıklamak için, geliştiricinin, programda kullanılan verileri görüntülemek ve programın kaynak metninden yürütülmesini izlemek için yeterli yetenekleri sağlayan hata ayıklama araçlarına sahip olması gerekir. Bu tür fırsatların sağlanması için iki koşul gereklidir:

  • Derleyici, programın yapısı ve kullandığı veriler hakkında yeterli bilgi sağlamalıdır. Bu bilgiye sembolik (hata ayıklama) denir;
  • hata ayıklayıcının bu bilgiyi yorumlayabilmesi gerekir. Tüm modern derleyiciler ve birleştiriciler, şu veya bu şekilde sembolik bilgi üretir, ancak şu anda evrensel bir format henüz geliştirilmemiştir ve her derleyici bunu kendi formatında üretir. Bu, birden çok karakter biçimini "anlaması" gereken hata ayıklayıcılar için ek zorluklar yaratır.

Şimdi hata ayıklayıcının sembolik bilgileri nasıl yorumlaması gerektiğine ve bu konuda kullanıcıya hangi yeteneklerin sağlanması gerektiğine bakalım.

BİR PROGRAMIN ÇALIŞMASININ KAYNAK METİNİNE GÖRE TAKİP EDİLMESİ

Genel olarak, kaynak metnin bir satırı derleyici tarafından birçok makine talimatına dönüştürülür. Bir montaj programı bile neredeyse her zaman çeşitli işlemci talimatlarına çevrildiğinde genişletilen makrolar içerir. Böyle bir programda hata ayıklamak, kodunun bir sökücüsünü kullanarak sakıncalıdır, bu nedenle derleyiciler hata ayıklama bilgilerine bir satır numaraları tablosu ekler. Kaynak metin satır numaralarının ve kaynak metin dosyası adlarının program kodunun mutlak adreslerine uygunluğu hakkında bilgi içerir. Hata ayıklayıcı, programın kaynak kodunu ekranda görüntüler. Bu tabloyu takip ederek, mevcut satır için derleyici tarafından oluşturulan tüm makine talimatlarını tek adımda yürüterek programı "satır satır" çalıştırabilirsiniz.

Satır numaraları tablosu aynı zamanda program metniyle bağlamsal eylemler gerçekleştirmenize de olanak tanır; örneğin, onu "imlece doğru", yani kaynak metinde kullanıcı tarafından belirlenen bir yere yürütmek, belirtilen satırlarda kesme noktaları ayarlamak vb. eylemler uygundur çünkü geliştiricinin kaynak metnin satırlarına karşılık gelen adresleri bilmesine gerek yoktur: hata ayıklayıcının kendisi bunları tablodan belirleyecektir. Hata ayıklayıcının ayrıca alt rutinlerin, işlevlerin ve kod etiketlerinin adreslerini "bilmesi" ve bir işlevin kaynak kodunu adına göre bulabilmesi gerekir.

HATA AYIKLANACAK PROGRAMDA KULLANILAN VERİLERİN GÖRÜNTÜLENMESİ

Tam hata ayıklama için geliştiricinin, program tarafından değiştirilen verileri istediği zaman görebilmesi gerekir. Hata ayıklayıcı, program tarafından kullanılan herhangi bir veriyi en uygun biçimde görüntüleyebilmelidir.

Genellikle geliştiriciler programlarda adlandırılmış veriler kullanır, yani programda kullanılan her nesneye bir ad atanır. Nesneler, basit bellek hücrelerinden yapılar, diziler vb. gibi karmaşık üst düzey dil yapılarına kadar değişen karmaşıklıkta olabilir.

MONTAJ PROGRAMLARINDAKİ VERİLER

Montaj programları çoğunlukla basit verileri, yani hafıza hücrelerini kullanır. Diziler de kullanılır. Basit verileri doğru şekilde görüntülemek için hata ayıklayıcının şunları "bilmesi" gerekir:

  • Nesne adı:
  • nesnenin bellekteki adresi;
  • Nesnenin bulunduğu MK adres alanı. Birçok mikrodenetleyicinin birden fazla veri alanı vardır. Örneğin, MCS-51 mikrodenetleyici ailesi dahili veri belleğine, harici veri belleğine ve bit alanına sahiptir;
  • nesnenin bit kapasitesi, yani kapladığı bayt sayısı. MCS-16 ailesinin temsilcileri gibi 96 bitlik MK'ler, 8- nasıl çalıştırılacağını "biliyor". 16-. 32 bit veri. Burada önemli bir noktaya dikkat çekmek gerekiyor. Geliştirici için bir nesnenin mantıksal boyutunun ne olduğu önemlidir. Örneğin, PIC ailesinin (Microchip) sekiz bitlik MCU'ları yalnızca baytları çalıştırır. Örneğin bir programda 16 bitlik bir sayaca ihtiyacınız varsa, her baytı ayrı ayrı işlemeniz gerekir. Ancak hata ayıklama sırasında programcı, sayacın her baytını ayrı ayrı değil, her iki baytı da 16 bitlik bir değişken biçiminde aynı anda görmek ister. Popüler çapraz montajcılar bu seçeneği sunmaz. Bunun bir istisnası, programdaki bayt boyutlu verileri, kelimeyi, çift kelimeyi ve bu tür nesnelerin dizilerini bildirmenize olanak tanıyan, Fiton'un PASM-PIC çapraz birleştiricisidir. PASM-PIC kullanılarak yazılan programlarda hata ayıklarken. tüm nesneler mantıksal boyutlarına ve yapılarına uygun bir biçimde görüntülenir;
  • nesnenin görünürlük alanı. Bir program birkaç modülden oluşuyorsa, programcının adın kapsamını tek bir modül içinde yerelleştirme fırsatı vardır. Bu nedenle, aynı adlara sahip ancak farklı niteliklere sahip nesneler farklı modüllerde mevcut olabilir. Hata ayıklayıcı hangi nesnenin ne zaman aktif olduğunu bulmalı ve onu doğru şekilde göstermelidir. Ancak aynı adların farklı modüllerde kullanılmasının sıklıkla karışıklığa ve hatalara yol açtığını unutmayın. Nesne global (PUBLIC) olarak bildirilmişse ve tüm modüllerde görünüyorsa yorumlamada herhangi bir zorluk yaşanmaz.

Yukarıdaki bilgiler göz önüne alındığında, hata ayıklayıcının kullanıcıdan nesnenin adını aldıktan sonra nesnenin türüne göre değerini göstermesi gerekir. En gelişmiş hata ayıklayıcılar ek olarak diğer nesne niteliklerini de görüntüleyebilir.

YÜKSEK DÜZEYDEKİ PROGRAMLARDAKİ VERİLER

Üst düzey dillerde kullanılan nesnelerin haritalanması, nesne yapılarının çeşitliliği, belleğe yerleştirme yolları ve kapsamların çeşitliliği nedeniyle çok daha zordur. Örnek olarak geliştiriciler arasında en popüler dil olan C dilini kullanacağız.

NESNE YAPISI

C programları, farklı bit derinliğindeki basit değişkenlerin yanı sıra kayan nokta değişkenlerini, yapıları (yapı), birleşimleri, işaretçileri, tek boyutlu ve çok boyutlu dizileri de kullanır. İkincisi hem basit nesnelerden hem de karmaşık nesnelerden (yapılar, birlikler, işaretçiler) oluşabilir.

Programlarda karmaşık nesnelerin kullanılması kesinlikle uygundur. Bununla birlikte, yapılarının karmaşıklığından dolayı, hata ayıklama aşamasında bunun yeterince görüntülenebilmesi oldukça arzu edilir. Fiton hata ayıklayıcılarında karmaşık nesneler, her dizi öğesinin ve/veya yapı üyesinin adresini, değerini ve türünü belirterek hem sıkıştırılmış (eleman değerleri listesi) hem de genişletilmiş biçimde görüntülenebilir. İşaretçilerin uygulanması derleyiciler arasında farklılık gösterir. Bir mikro denetleyicinin genellikle birden fazla adres alanına sahip olması ek zorluklar yaratır, çünkü bir işaretçiyle çalışırken adrese ek olarak işaretçinin işaret ettiği adres alanını da bilmek gerekir. Bazı uygulamalarda, adres alanı tanımlayıcısı işaretçi değerinin bir parçasıdır; diğerlerinde derleyici bunu önceden "bilir" ve buna göre kod üretir.

Ayrıca işaretçideki adres bileşeninin boyutu 8 ila 32 bit arasında olabilir. İşaretçi değerlerini görüntülerken, hata ayıklayıcının her derleyicideki uygulamalarının tüm ayrıntılarını "bilmesi" gerekir.

NESNELERİ BELLEKTE YERLEŞTİRMENİN YOLLARI

Yüksek seviyeli bir dilde yazılmış bir programda, programın yürütülmesi sırasında adresleri değişmeyen statik nesnelere ek olarak, mikrodenetleyici yığınında belleği geçici olarak tahsis edilen otomatik nesneler de bulunabilir. Bu tür nesnelerin adresleri mutlak değildir ancak programın yürütülmesi sırasında dinamik olarak belirlenir. Genellikle yığın çerçeve işaretçisi (Temel İşaretçi veya BP) adı verilen bazı statik değişkenlerin mevcut değerinden ölçülürler. KB değeri program tarafından çalışma zamanında dinamik olarak üretildiğinden, otomatik nesnelerin değerleri yalnızca kendi kapsamları dahilinde, yani KB değeri doğru olduğunda kullanılabilir. Hata ayıklayıcı, otomatik nesnelerin değerlerini görüntülerken adreslerin nasıl belirlendiğini "bilmeli" ve ayrıca BP değerinin doğruluğunu izlemelidir.

Değişkenleri geçici olarak MK kayıtlarına yerleştirmek de mümkündür. Bu durumda hata ayıklayıcının hangi değişkenlerin hangi kayıtlara ne kadar süreyle yerleştirildiğini "bilmesi" gerekir. Ve son olarak, aynı nesnenin ömrü boyunca hafızaya yerleşme şeklinin birden fazla kez değişmesi gibi bir durum sıklıkla ortaya çıkar. Bu, örneğin bir fonksiyonun kayıtlardaki bir veya daha fazla parametreyi alıp bunları yığına itmesi durumunda gerçekleşebilir.

NESNE GÖRÜNÜRLÜK ALANI

Assembly dillerinde olduğu gibi C programlarında da herhangi bir modülden ismine göre erişilebilen global nesneler ve modülde yerelleştirilmiş nesneler vardır (bu nesneler statik olarak bildirilir). Ancak otomatik ve kayıt değişkenleri, hata ayıklayıcıların değerlerini görüntülemesinde ek zorluklar yaratır. Gerçek şu ki. birincisi, otomatik bir nesnenin ömrü kapsamıyla sınırlıdır ve ikinci olarak, kapsamların aynı adlara sahip kendi otomatik nesneleri olabilir. Bunu birkaç iç içe kapsam içeren bir fonksiyon örneğiyle açıklayalım:

Yeni başlayanlar ve ötesi için mikrodenetleyiciler

"a" adlı bir değişken, f işlevi çalıştığı sürece mevcuttur, ancak işlevin hangi bölümünün yürütüldüğüne bağlı olarak "a" adı, farklı değişkenleri belirtir. F fonksiyonunu izlerken hata ayıklayıcı, hangi değişkenin etkin olduğuna bağlı olarak değerini doğru şekilde göstermelidir.

Geliştirici, program oluştururken programda kullandığı kavramların uygulama detaylarına önem vermez. "Açık" kategorilerle çalışırken, derleyici ve hata ayıklayıcı geliştiricilerin bunları uygulamasının ne kadar zor olduğundan çoğu zaman şüphelenmez. İkincisi, hem basit hem de sezgisel bir arayüzü, zengin işlevsellik ve belirli bir MK'nin mimari özelliklerinin uygulanması ve işleyişi ile ilgili her şeyin ayrıntılı bir şekilde detaylandırılmasını tek bir kabukta birleştirme sorununu çözmek zorundadır. Bir hata ayıklayıcı, geliştiriciye, çözülen sorunun karmaşıklığına uygun hata ayıklama araçlarını sağlamıyorsa, geliştirici kaçınılmaz olarak üretkenliğini kaybedecektir. Hangimiz kaynak metinde sinir bozucu bir hata veya yazım hatası aramak için saatler ve günler harcamak zorunda kalmadık ki?!

Bir mikroişlemci sistemi geliştirme ve oluşturma sürecinde, er ya da geç, sistemin nihayet donanıma dönüştüğü ve yaşam belirtileri göstermeye başladığı bir an gelir. Ancak çoğu durumda bu işaretler öngörülemez hale gelir ve sistem “kendi” hayatını yaşamaya başlar. Birçok programcı muhtemelen her yeni programın hatalar içerdiğini kabul edecektir. Yeni MK'nin başlangıçta "kara" bir kutu gibi davranmasının nedeni kısmen budur.

Sistemlerde hata ayıklama sürecini kolaylaştırmak için bir dizi araç geliştirilmiştir. Ana amaçları, MC'nin işleyiş sürecini "şeffaf" olarak hata ayıklamak, yani geliştiricinin isteğine göre kolayca kontrol etmek, keyfi olarak kontrol etmek ve değiştirmektir. İyi bir profesyonel araç seti ayrıca geliştiriciye birçok hizmet sağlayabilir, böylece işini önemli ölçüde kolaylaştırabilir ve rutin işlemleri ortadan kaldırabilir.

Temel hata ayıklama araçları arasında devre içi emülatörler, yazılım simülatörleri, geliştirme panoları (değerlendirme panoları), hata ayıklama monitörleri ve ROM emülatörleri bulunur. Kombine cihazlar ve kitler de vardır.

DEVRE İÇİ Emülatörler

Devre içi emülatör (ICE), gerçek bir cihazdaki taklit işlemcinin yerini alabilen bir yazılım ve donanım aracıdır. VSE en güçlü ve evrensel hata ayıklama aracıdır.

İşlevsel olarak VSE, harici bir bilgisayara (genellikle IBM uyumlu bir PC) bağlı olanlar ve bağımsız olarak çalışan olanlar olarak ikiye ayrılır. İkincisinin kendi bilgi işlem kaynakları ve giriş/çıkış tesisleri vardır, bu nedenle eşit yeteneklerle birincisinden çok daha pahalıdırlar ve aynı fiyata işlevsellik ve hizmet yetenekleri açısından onlardan önemli ölçüde daha düşüktürler.

Hata ayıklanan VSE sistemi genellikle bir kabloyla özel bir emülasyon kafasına bağlanır. Nispeten yakın zamanda, böyle bir kafanın yapısal olarak ana ünite ile birleştirildiği ve mikrodenetleyici yerine hata ayıklanan sisteme yerleştirildiği VSE modelleri ortaya çıktı. İkincisi çıkarılamazsa (pimler panele lehimlenirse), bu MK'nin tüm pinlerinin üçüncü (yüksek empedans) durumda olduğu bir hata ayıklama moduna sahip olması koşuluyla bir VSE kullanımına izin verilir. Bu durumda, VSE'yi bağlamak için doğrudan taklit edilmiş MK'nin terminallerine bağlanan özel bir klips adaptörü kullanılır.

En az. VSE bir hata ayıklayıcı ve bir MK öykünme birimi içerir. emülasyon belleği ve kesme noktası alt sistemi. Daha gelişmiş VSE ayrıca bir izleyici, bir kesme noktası işlemcisi, bir profil oluşturucu (program kodu verimlilik analizörü), gerçek zamanlı bir zamanlayıcı, taklit edilen işlemcinin kaynaklarının anında okunmasına ve değiştirilmesine olanak tanıyan yazılım ve donanım, yazılım ve donanım içerebilir. Senkron yönetimin sağlanması ve çok işlemcili sistemlerde emülasyon için gerekli olan entegre bir geliştirme ortamı.

Hata ayıklayıcı, geliştirici ile hata ayıklama aracı arasında bir tür köprüdür. İyi bir hata ayıklayıcı, hata ayıklanan programların sistem belleğine yüklenmesini, tüm kayıtların ve belleğin durumlarını ve içeriklerini (ve gerekirse bunların değişikliklerini) monitörde görüntülemesini ve öykünme işleminin kontrol edilmesini sağlar.

Daha güçlü hata ayıklayıcılar (genellikle üst düzey hata ayıklayıcılar olarak adlandırılır) da buna izin verir.

  • sembolik hata ayıklama gerçekleştirin (derleyici tarafından sağlanan özel bilgileri kullanan hata ayıklayıcının tüm sembolik değişkenlerin, dizilerin ve yapıların adreslerini "bilmesi" nedeniyle). Bu durumda kullanıcı, adreslerini hatırlamakla uğraşmadan, insanlar için daha kabul edilebilir sembolik isimlerle işlem yapabilir;
  • Yalnızca parçalara ayrılmış metni değil, aynı zamanda üst düzey bir dilde yazılmış bir programın kaynak metnini ve hatta kendi yorumlarını da kontrol edip analiz edin.

Böyle bir hata ayıklayıcı, kullanıcının aynı anda program yürütme sürecini izlemesine ve kaynak metin, makine kodundaki program görüntüsü ve taklit mikro denetleyicinin tüm kaynaklarının durumu arasındaki yazışmayı görmesine olanak tanır.

Üst düzey bir hata ayıklayıcının, yalnızca tam ve doğru hata ayıklama bilgileri sağlayan bir çapraz derleyici kullanıldığında (tüm derleyiciler, özellikle de korsan sürümleri bunu yapamaz) ve eninde sonunda tüm işlevlerinin performansını sağladığına dikkat edilmelidir. aynı zamanda sunum formatı da hata ayıklayıcıya "tanıdık".

Hata ayıklama sırasında geliştirilmekte olan sistemin ROM'u yerine emülasyon belleği kullanılır. Dahası, gerçek bir sistemin veya düzeninin olmadığı durumlarda bir programda hata ayıklamanıza olanak tanır. Hata ayıklanan programda değişiklik yapmanız gerekiyorsa, ROM'u yeniden programlamak yerine yeni veya değiştirilmiş bir programı öykünücünün belleğine yüklemek yeterlidir.

VSE'ler var. bu, kullanıcının ROM yerine emülasyon belleğini yalnızca bir bütün olarak değil, aynı zamanda blok blok "değiştirmesine" olanak tanır (bazı modellerde minimum blok boyutu 1 bayttır). Kullanıcı tarafından belirtilen sıraya göre. Bunu yapmak için, işlemcinin hem hata ayıklanan sistemdeki ROM içeriğine hem de VSE emülasyon belleğinin içeriğine erişeceği veri belleği ve program belleği dağıtımını belirledi.Bu tür belleğe genellikle bellek denir. haritalama yetenekleri.

İzleyici, işlemciyle eşzamanlı olarak çalışan ve yürütülen talimatların akışını ve seçilen harici sinyallerin durumunu kaydeden bir mantık analizörüdür. Yalnızca harici sinyalleri değil aynı zamanda mikro denetleyicinin dahili kaynaklarının durumlarını da izlemenize olanak tanıyan VSE'ler vardır. örneğin, kayıtlar. Bu tür cihazlar MK'nin özel versiyonlarını (emülasyon kristalleri) kullanır.

Kesme noktası işlemcisi, kullanıcı tarafından belirlenen koşullar karşılandığında program yürütmeyi durdurmayı veya başka eylemler gerçekleştirmeyi (örneğin, izleyiciyi başlatma veya durdurma) mümkün kılar.Geleneksel kesme noktaları mekanizmasının aksine, işlemci neredeyse her türlü koşulu oluşturmanıza ve izlemenize olanak tanır. Süreç taklit edilirken donanım seviyesindeki herhangi bir karmaşıklık gerçek zamanın dışına çıkarılmaz. Bazı VSE modellerinde kesme noktası işlemcisi, yönlendiriciyi dinamik olarak kontrol etmek için ek olarak kullanılabilir.

Profil oluşturucu (program kodu verimliliğinin analizörü), hata ayıklanan programın çalıştırılmasının sonuçlarına dayanarak, programın çeşitli bölümlerine yapılan çağrıların sayısı ve bunların yürütülmesi için harcanan süre hakkında bilgi elde edilmesini sağlar. Profil oluşturucu tarafından sağlanan istatistiksel bilgilerin analizi, programların "ölü" veya aşırı gerilimli bölümlerini tanımlamayı ve bunun sonucunda hata ayıklaması yapılan programın yapısını optimize etmeyi mümkün kılar.

Entegre geliştirme ortamı, bir programın kaynak kodunun yazılmasından derlenmesine ve hata ayıklamasına kadar yazılım geliştirmenin tüm aşamalarını destekleyen ve bir yazılım hata ayıklayıcı-simülatör ve programcı ile basit ve hızlı etkileşim sağlayan bir yazılım araçları setidir.

VSE yazılım kabuğunda yerleşik bir düzenleyicinin, proje yöneticisinin ve yönetim sisteminin varlığı, geliştiricinin işini büyük ölçüde kolaylaştırır ve onu birçok rutin eylemden kurtarır. Onun için bir programı yazmak, düzenlemek ve hata ayıklamak arasındaki çizgi bulanık. Kaynak metin düzenlemeden hata ayıklamaya ve geri dönmeye geçiş, ilgili pencerelerin etkinleştirilmesiyle "şeffaf" ve eşzamanlı olarak gerçekleştirilir. Proje yöneticisi gerektiğinde derlemeyi otomatik olarak başlatır ve ilgili yazılım arayüzü penceresini etkinleştirir. Mevcut hata ayıklayıcı simülatörünü kullanarak projede hata ayıklamaya aynı kolaylıkla devam edebilir veya hata ayıklanmış bir programla ROM'u "flaşlamaya" başlayabilirsiniz.

Bazı VSE, kullanıcılara başka ek özellikler sağlar. Bunlar arasında özellikle dikkate değer, oldukça spesifik olmasına rağmen, ancak bazı durumlarda temel öneme sahip olan, çok işlemcili sistemlerde hata ayıklamak için gerekli olan çoklu emülatör kompleksleri oluşturma yeteneğidir.Böyle bir kompleksin ayırt edici özelliği, eşzamanlı kontroldür (bir bilgisayardan) çeşitli emülatörlerden.

Genel durumda, VSE'nin hata ayıklaması yapılan cihazların işleyişini izleme ve kontrol etme yetenekleri sınırlı olabilir (örneğin, adım adım modda kesintilerin yanlış işlenmesi, seri bağlantı noktası kullanımının yasaklanması vb. nedeniyle). ). Ayrıca her VSE modelinin kendi desteklenen mikrodenetleyici ve derleyici listesine sahip olduğunu da unutmamak gerekir.

Bununla birlikte, çoğu popüler mikrodenetleyici için, hata ayıklanan kristallerin kaynaklarının kullanımında herhangi bir kısıtlama olmayan VSE'ler geliştirilmiştir. Böyle bir VSE'nin yeteneklerini Fiton'un PICE-51 modeli örneğini kullanarak göstereceğiz.

PICE-51, programlanabilir mantık IC'leri (FPGA'ler) kullanılarak oluşturulan bir cihazdır. Bu, VSE'nin boyutunu keskin bir şekilde azaltmayı, elektrik ve frekans özelliklerindeki taklit MC'nin özelliklerinden sapmaları en aza indirmeyi ve böylece 33 ila 3,3 V besleme voltajlarında 5 MHz'e kadar frekanslarda maksimum emülasyon doğruluğu elde etmeyi mümkün kıldı. RSE-51'in yeniden başlatılabilir donanım yapısı, neredeyse tüm MCS-51 ailesi mikrodenetleyicilerin emülasyonunu sağlar. Yazılım desteği Windows ortamında çalışır.

PICE-51 bir ana karttan, belirli bir mikrodenetleyici grubu için değiştirilebilir bir adaptörden ve ayrıca belirli bir kasa türü için değiştirilebilir bir emülasyon kafasından oluşur. Ana kartta bir izleyici ve bir kesme noktası işlemcisi bulunur ve yedek adaptör kartında belirli bir MK türü için bir öykünme işlemcisi bulunur. Emülasyon kafaları cihazın kullanıcı kartı üzerindeki DIP ve PLCC soketlerine montajını sağlar. Güç, +5 V (0,5 A) çıkış voltajına sahip bir üniteden veya hata ayıklaması yapılan cihazdan sağlanır. Bir bilgisayarla iletişim, galvanik olarak izole edilmiş bir RS-232C kanalı üzerinden 115 kbaud hızında gerçekleştirilir.

PICE-51'in geri kalan özellikleri ve yetenekleri aşağıdaki gibidir:

  • doğru emülasyon - kullanıcının programının MK kaynaklarını kullanımında herhangi bir kısıtlamanın bulunmaması;
  • 256 KB'ye kadar taklit program ve veri belleği. Bankalanmış bellek modeli desteği. Belleğin VSE ile kullanıcı cihazı arasında 1 bayt doğrulukla dağıtımı;
  • Program ve veri belleğine erişim için 512K'ya kadar donanım kesme noktası,
  • üst düzey dillerdeki programların hatalarını ayıklamak için donanım desteği;
  • sekiz keyfi harici sinyalin izlenmesi;
  • dört kullanıcı ekipmanı senkronizasyon çıkışı;
  • 16 ila 64K arası 64 bitlik çerçeve (diziler) arabellek kapasitesine sahip, anında erişime sahip gerçek zamanlı izleyici. Adresi, verileri, kontrol sinyallerini, gerçek zamanlı saati ve sekiz harici kullanıcı sinyalini izleyin;
  • programlanabilir izleme filtresi;
  • adres, veri, kontrol sinyalleri, sekiz harici sinyal, gerçek zamanlı zamanlayıcı, olay sayaçları ve gecikme zamanlayıcının bir kombinasyonunu kullanarak öykünmeyi durdurmak için karmaşık koşulları ayarlama yeteneğine sahip donanım kesme noktası işlemcisi:
  • bağımsız olarak veya AND/OR/IF-THEN kombinasyonlarında kullanılabilen dört karmaşık kesme noktası;
  • 48 bit gerçek zamanlı zamanlayıcı;
  • "şeffaf" öykünme - öykünülmüş belleğe, kesme noktalarına, kesme noktası işlemcisine, izleme arabelleğine, gerçek zamanlı zamanlayıcıya anında erişim;
  • taklit edilmiş bir MK için kontrollü saat üreteci. 500 kHz'den 40 MHz'e sorunsuz bir şekilde değiştirme yeteneği;
  • VSE ekipmanının yerleşik kendi kendine teşhis sistemi. MCA-51 makro birleştirici ("Phi-tone" / "Microcosm") için proje yönetimi düzeyinde programların yanı sıra Keil Software ve IAR Systems'in çapraz araç paketleri için programların geliştirilmesi desteklenir;
  • Aşağıdaki derleyiciler kullanılarak oluşturulan programlarda tam özellikli sembolik hata ayıklama desteği: Intel ASM51 derleyici, Intel PL/M derleyici, Avocet Systems derleyiciler ve C derleyiciler. Yüksek Teknoloji. Görevlendirme Yazılımı;
  • donanım yapılandırma dosyalarının, arayüz ve hata ayıklama seçeneklerinin otomatik olarak kaydedilmesi ve yüklenmesi. Konfigürasyon dosyalarının PDS-51 simülatörü ile uyumluluğu ve projelerin PICE-51 ile PDS-51 simülatörü arasında taşınabilirliği sağlanır;
  • tüm pencereler için renkleri, yazı tiplerini ve diğer parametreleri aynı anda ve her pencere için ayrı ayrı özelleştirme yeteneği.

Bu kadar geniş bir işlevsellik yelpazesi, VSE'yi en güçlü ve evrensel hata ayıklama aracı haline getirir.

SİMÜLATÖRLER

Simülatör, bir mikro denetleyicinin ve belleğinin çalışmasını simüle edebilen bir yazılım aracıdır. Tipik olarak bir hata ayıklayıcı, bir CPU modeli ve bellekten oluşur. Daha gelişmiş cihazlar, yerleşik çevresel cihaz modellerini (zamanlayıcılar, bağlantı noktaları, ADC'ler ve kesme sistemleri) içerir.

Simülatör, tüm popüler formatlardaki program dosyalarını yükleyebilmeli ve simüle edilen mikro denetleyicinin kaynaklarının durumu hakkındaki bilgileri mümkün olduğunca eksiksiz olarak görüntüleyebilmelidir. ve ayrıca yüklü bir programın çeşitli modlarda yürütülmesini simüle etme fırsatları sağlar. Hata ayıklama sırasında model programı yürütür ve modelin mevcut durumu bilgisayar monitör ekranında görüntülenir.

Programı simülatöre yükleyerek. kullanıcı bunu adım adım veya sürekli modda çalıştırabilir, koşullu veya koşulsuz kesme noktaları ayarlayabilir, simüle edilmiş MK'nin bellek hücrelerinin ve kayıtlarının içeriğini kontrol edebilir ve serbestçe değiştirebilir. Simülatör, program yürütme mantığını ve aritmetik işlemlerin doğruluğunu hızlı bir şekilde kontrol etmenizi sağlar.

Kullanılan hata ayıklayıcının sınıfına bağlı olarak, bazı simülatör modelleri programların yüksek düzeyde sembolik hata ayıklamasını destekler.

Simülatör ayrıca bir dizi ek yazılım aracı da içerebilir, örneğin harici bir ortam arayüzü. Böyle bir arayüzün varlığı, MC'nin dış ortamının bir modelini oluşturmanıza ve esnek bir şekilde kullanmanıza olanak tanır. Belirli bir algoritmaya göre hata ayıklaması yapılan programın işleyişi ve etkilenmesi.

Gerçek bir sistemde, MC genellikle kendisine bağlı harici cihazlardan (sensörler) gelen bilgileri okumak, işlemek ve aktüatörlere kontrol sinyalleri vermekle "meşguldür". Basit bir simülatörde bir sensörün çalışmasını simüle etmek için, gerçek bir sistemde sensörün bağlı olduğu çevresel cihaz modelinin mevcut durumunu manuel olarak değiştirmeniz gerekir. Örneğin, bir seri port üzerinden bir bayt alırken, belirli bir bayrak ayarlanmışsa ve baytın kendisi belirli bir kayıtta yer alıyorsa, bu eylemlerin her ikisinin de simülatörde manuel olarak gerçekleştirilmesi gerekir. Bazı modellerde bu sorun çözüldü: simülatörler, bilgilerin grafiksel olarak görüntülenmesine yönelik araçlar da dahil olmak üzere, MK'ye bağlı harici cihazların modellerini oluşturmak için yerleşik araçlara sahiptir.

Yazılım simülatörlerinin bariz bir özelliği şudur: İçlerine yüklenen programların gerçek zamandan farklı bir zaman ölçeğinde yürütülmesi. Bununla birlikte, düşük fiyat ve hata ayıklaması yapılan cihazın bir prototipi olmadığında bile hata ayıklama yeteneği, yazılım simülatörlerini çok çekici bir hata ayıklama aracı haline getirir. Ayrıca, yalnızca bir simülatör kullanılarak tespit edilebilecek bir dizi hatanın olduğu da unutulmamalıdır.

HATA AYIKLAMA MONİTÖRLERİ

Hata ayıklama monitörü, hata ayıklanan sistemin belleğine yüklenen özel bir programdır. Mikrodenetleyiciyi uygulama görevine ek olarak hata ayıklama işlevlerini de gerçekleştirmeye zorlar:

  • kullanıcı uygulama kodlarının monitörden bağımsız belleğe yüklenmesi;
  • kesme noktalarının ayarlanması;
  • yüklenen programı gerçek zamanlı olarak başlatın ve durdurun;
  • kullanıcı programında adım adım ilerleyin;
  • Bellek ve kontrol kayıtlarının içeriğini görüntüleme, düzenleme.

İzleme programı, hata ayıklama sürecinin görselleştirilmesinin ve kontrolünün gerçekleştiği bir bilgisayar veya pasif terminal ile birlikte çalışır. Bu yaklaşımın avantajı

  • gerçek zamanlı hata ayıklama yeteneğini korurken çok düşük maliyetler, ana dezavantaj;
  • MC kaynaklarının hata ayıklama ve iletişim prosedürlerine yönlendirilmesi (monitör belirli bir miktarda bellek, kesintiler, seri kanal kaplar). Son zamanlarda, MK'nin donanım kaynaklarını pratik olarak işgal etmeyen programlar ortaya çıktı ("ROM emülatörleri" bölümünde tartışılacaktır).

GELİŞTİRME KURULLARI

Geliştirme kurulları veya yabancı literatürde yaygın olarak adlandırıldığı şekliyle değerlendirme kurulları. - uygulama sistemlerinin prototipini oluşturmak için benzersiz kurucular. Son zamanlarda birçok imalat şirketi yeni MK modellerini piyasaya sürüyor. Ayrıca ilgili geliştirme kurullarını da sunarlar. Genellikle bu, üzerine MK takılı bir baskılı devre kartı ve normal çalışması için gerekli tüm elemanların yanı sıra bilgisayarlı iletişim sistemleridir. Kural olarak kart, geliştirilmekte olan kullanıcı cihazının montajı için boş alan sağlar. Bazen şirket tarafından önerilen ek cihazları (ROM, RAM, LCD ekran, klavye, ADC vb.) kurmak için hazır bir "kablolama" bulunur. Kullanıcı tarafından değiştirilen kartların, küçük ölçekli ürünlerde (5...20 adet) yerleşik tek kartlı kontrolörler olarak kullanılması avantajlıdır.

Kullanıcıya kolaylık sağlamak amacıyla geliştirme kartları aynı zamanda hata ayıklama monitörünü temel alan basit bir hata ayıklama aracıyla da donatılmıştır. Burada iki farklı yaklaşım ortaya çıktı: Biri MK için kullanılıyor. harici bir veriyoluna sahip olmak ve ikincisi - buna sahip olmayan MK'ler için.

İlk durumda, hata ayıklama monitörü bir ROM yongası biçiminde sağlanır. geliştirme panosundaki özel bir sokete takılıdır. Kartta ayrıca kullanıcı programları için RAM ve bilgisayar veya terminal ile iletişim kanalı bulunur. Bir örnek, Intel tarafından MCS-51 mikro denetleyici ailesi için geliştirilen geliştirme kartıdır.

İkinci durumda, geliştirme kartı, MK'nin dahili ROM'u için yerleşik programlama sistemleri içerir. bunlar bir bilgisayar tarafından kontrol edilir. Monitör programı, uygun şekilde hazırlanan uygulama programıyla birlikte MK ROM'a girilir (monitör hata ayıklama rutinlerine yapılan çağrılar gerekli yerlere eklenir). Daha sonra bir deneme çalışması gerçekleştirilir. Hata ayıklanan programda düzeltmeler yapmak için ROM'dan silinir ve düzeltilmiş sürüm içine yazılır. Bitmiş bir uygulama programı, monitörün ve işlevlerine yapılan tüm çağrıların kaldırılmasıyla hata ayıklanmış bir programdan elde edilir. PIC-micro (Microchip), 80С750 (Philips), 89С2051 (Atmel) ailelerinin MCU'ları için geliştirme panoları, böyle bir hata ayıklama algoritması için tasarlanmıştır.

Geliştirme kartları bazen harici bir bilgisayarda bir monitörle "bağlantılı olarak" çalışan hata ayıklama programlarıyla donatılır. Bu programlar son zamanlarda gözle görülür şekilde daha karmaşık hale geldi ve genellikle oldukça profesyonel bir dizi hata ayıklama işlevine (örneğin, bir hata ayıklayıcı-simülatör) veya yalnızca entegre geliştirme ortamlarında saf formlarında bulunan çeşitli öğelere sahip. Kitler aynı zamanda pratikte en sık karşılaşılan uygulamalı programları da içerebilir.

"Geliştirme kartı artı monitör" kitinin hata ayıklama yetenekleri, VSE'nin yetenekleri kadar evrensel değildir. Ayrıca monitörün çalışması için hata ayıklama işlemi sırasında bazı MK kaynakları seçilir. Bununla birlikte, zaman kaybetmeden uygulama sistemini kurmaya ve hata ayıklamaya başlamanıza olanak tanıyan eksiksiz bir hazır yazılım ve donanım setinin varlığı çoğu durumda belirleyici bir faktördür. Özellikle böyle bir kitin daha evrensel bir emülatörden birkaç kat daha ucuz olduğunu düşündüğünüzde.

ROM Emülatörleri

ROM emülatörü, hata ayıklaması yapılan cihazın ROM'unu RAM ile değiştirmenize olanak tanıyan bir yazılım ve donanım aracıdır. standart iletişim kanallarından biri aracılığıyla bilgisayardan bir program indirebileceğiniz. Kullanıcının ROM'u yeniden programlamanın birden fazla döngüsünden kaçınmasına olanak tanır. ROM öykünücüsü yalnızca harici program belleğine erişebilen MK programlarında hata ayıklamak için kullanılır. Karmaşıklık ve maliyet açısından bu cihaz, geliştirme kartlarıyla karşılaştırılabilir. Büyük bir avantajı var: çok yönlülük. ROM emülatörü herhangi bir MK ile çalışabilir.

İlk ROM emülatörleri yalnızca bir programı indirmenize, çalıştırmanıza ve ana sıfırlamayı kullanarak durdurmanıza izin veriyordu. Daha sonra, belirli bir adrese ulaşıldığında bir osiloskopa iz sinyallerinin donanım tarafından üretilmesiyle daha karmaşık modeller ortaya çıktı. Bu tür ürünlerdeki benzetilmiş bellek, görüntüleme ve değiştirme için mevcuttu, ancak yakın zamana kadar MK'nin dahili kontrol kayıtları üzerinde kontrol mümkün değildi.

Son zamanlarda, sözde akıllı ROM emülatörleri ortaya çıktı. Kullanıcının panosundaki MK'nin içine "bakmanıza" izin verirler ve hata ayıklama kontrolü açısından VSE'ye benzerler.Cactus, aslında akıllı ROM emülatörünü bir dizi MK'nin VSE'si olarak bile sunar, çalışma arasında ayrım yapmak o kadar imkansızdır ki Gerçekte bu durumda işlemci değiştirilmez ve kullanıcının panosundaki işlemci kullanılır.

Akıllı ROM emülatörü, normal ROM emülatörünün bir melezidir. Veriyolunu birinden diğerine hızlı bir şekilde değiştirmek için hata ayıklama monitörü ve sistemi. Bu, sanki hata ayıklama monitörü kullanıcının kartına kurulmuşmuş gibi bir etki yaratır ve aynı zamanda küçük bir (yaklaşık 4 KB) yazılım adımları bölgesi dışında, MK'den pratik olarak hiçbir donanım kaynağı almaz. Benzer bir emülatör, örneğin Fiton tarafından 8051 çekirdeğine sahip olan ancak ek olarak çeşitli giriş/çıkış cihazlarıyla donatılmış tüm mevcut ve gelecekteki MK'ler için geliştirildi. Ürün, Philips ve Siemens'in birçok farklı MK'sini destekler. Tamam.

ENTEGRE GELİŞTİRME ORTAMLARI

Açıkça söylemek gerekirse, entegre geliştirme ortamları hata ayıklama araçları arasında yer almaz; ancak mikroişlemcili sistemleri geliştirme ve hata ayıklama sürecini önemli ölçüde kolaylaştıran ve hızlandıran bu yazılım araçları sınıfını göz ardı etmek yanlış olur.

Geleneksel yaklaşımla program yazmanın ilk aşaması şu şekilde yapılandırılmıştır. Kaynak metin bir metin düzenleyici kullanılarak yazılır. Yazma işlemi tamamlandıktan sonra metin düzenleyiciyle çalışma durdurulur ve çapraz derleyici başlatılır. Genellikle yeni bir program sözdizimi hataları içerir ve derleyici bunları operatör konsoluna bildirir. Daha sonra metin düzenleyici yeniden başlatılır ve operatör tespit edilen hataları arar ve ortadan kaldırır. Bu durumda, derleyicinin çıktısı olan doğası hakkındaki mesajlar, ekran bir metin editörü tarafından işgal edildiğinden artık görünmez.

Bu döngü birden fazla kez tekrarlanabilir. Program nispeten karmaşıksa, çeşitli parçalardan bir araya getirilmişse ve düzenlemeye veya modernizasyona tabiyse, bu ilk aşama bile programcının çok fazla çaba ve zaman harcamasını gerektirebilir.

Ortaya çıkan ve hızla popülerlik kazanan entegre geliştirme ortamları (IDE'ler), büyük miktardaki rutin işlerden kaçınmaya yardımcı olabilir ve böylece programcının üretkenliğini önemli ölçüde artırabilir.

Kural olarak, iyi bir entegre ortam, mevcut hata ayıklama araçlarını (devre içi emülatör, yazılım simülatörü, programcı) birleştirir ve programcının program metinleriyle "Turbo" tarzında çalışmasına olanak tanır.

Entegre ortam şunları yapmanızı sağlar:

  • program kaynak kodlarıyla çalışmak için özel olarak tasarlanmış yerleşik çok dosyalı metin düzenleyiciyi kullanın;
  • derleme sırasında belirlenen hataların teşhisini ve düzenlenebilen programın kaynak kodunu aynı anda (çoklu pencere modunda) gözlemleyin;
  • çeşitli projeler üzerinde paralel çalışmalar yürütmek. Proje Yöneticisi herhangi bir projeyi yeni oluşturulan bir proje için şablon olarak kullanmanıza olanak tanır. Kullanılan derleyicilere ilişkin seçenekler ve proje kaynak dosyalarının listesi, iletişim menülerinde ayarlanır ve proje içinde kaydedilir; böylece uygunsuz toplu iş dosyalarıyla çalışma ihtiyacı ortadan kalkar;
  • yalnızca düzenlenmiş modülleri yeniden derleyin;
  • hata ayıklanacak programı mevcut hata ayıklama araçlarına yükleyin ve kabuktan ayrılmadan onlarla çalışın;
  • hemen hemen her yazılımı kabuğa bağlayın.

Son zamanlarda, entegre geliştirme ortamlarının işlevleri, en "gelişmiş" emülatörlerin ve hata ayıklayıcı simülatörlerin yazılım arayüzlerinin bir parçası haline geldi. Bu işlevsellik, kullanıcı dostu bir arayüzle birleştiğinde programcının çalışmasını önemli ölçüde hızlandırır.

Bu nedenle, hata ayıklama araçlarını seçerken aşağıdaki göstergelerin dikkate alınması önerilir: desteklenen MC'lerin listesi, taklit/simüle edilmiş MC'lerin kaynak sınırlamaları, sembolik hata ayıklama olasılığı, desteklenen derleyicilerin listesi ve son olarak hizmet Yetenekler.

Yazarlar: Yu.Zobnin, Ş.Kobakhidze, Moskova

Diğer makalelere bakın bölüm Mikrodenetleyiciler.

Oku ve yaz yararlı bu makaleye yapılan yorumlar.

<< Geri

En son bilim ve teknoloji haberleri, yeni elektronikler:

Sıcak biranın alkol içeriği 07.05.2024

En yaygın alkollü içeceklerden biri olan biranın, tüketim sıcaklığına bağlı olarak değişebilen kendine özgü bir tadı vardır. Uluslararası bir bilim insanı ekibi tarafından yapılan yeni bir araştırma, bira sıcaklığının alkol tadı algısı üzerinde önemli bir etkiye sahip olduğunu ortaya çıkardı. Malzeme bilimcisi Lei Jiang liderliğindeki çalışma, farklı sıcaklıklarda etanol ve su moleküllerinin farklı türde kümeler oluşturduğunu ve bunun da alkol tadı algısını etkilediğini buldu. Düşük sıcaklıklarda, "etanol" tadının keskinliğini azaltan ve içeceğin tadının daha az alkollü olmasını sağlayan daha fazla piramit benzeri kümeler oluşur. Aksine, sıcaklık arttıkça kümeler daha zincir benzeri hale gelir ve bu da daha belirgin bir alkol tadıyla sonuçlanır. Bu, baijiu gibi bazı alkollü içeceklerin tadının neden sıcaklığa bağlı olarak değişebileceğini açıklıyor. Elde edilen veriler içecek üreticileri için yeni fırsatlar sunuyor. ... >>

Kumar bağımlılığı için başlıca risk faktörü 07.05.2024

Bilgisayar oyunları gençler arasında giderek daha popüler bir eğlence biçimi haline geliyor ancak buna bağlı oyun bağımlılığı riski önemli bir sorun olmaya devam ediyor. Amerikalı bilim insanları bu bağımlılığa katkıda bulunan ana faktörleri belirlemek ve önlenmesine yönelik öneriler sunmak amacıyla bir çalışma yürüttüler. Altı yıl boyunca 385 genç, hangi faktörlerin onları kumar bağımlılığına yatkın hale getirebileceğini bulmak için takip edildi. Sonuçlar, çalışmaya katılanların %90'ının bağımlılık riski altında olmadığını, %10'unun ise kumar bağımlısı olduğunu gösterdi. Kumar bağımlılığının başlangıcındaki temel faktörün düşük düzeyde olumlu sosyal davranış olduğu ortaya çıktı. Düşük düzeyde olumlu sosyal davranışa sahip gençler, başkalarının yardım ve desteğine ilgi göstermezler, bu da gerçek dünyayla temasın kaybolmasına ve bilgisayar oyunlarının sunduğu sanal gerçekliğe bağımlılığın derinleşmesine yol açabilir. Bu sonuçlara dayanarak bilim insanları ... >>

Trafik gürültüsü civcivlerin büyümesini geciktiriyor 06.05.2024

Modern şehirlerde bizi çevreleyen sesler giderek daha keskin hale geliyor. Ancak çok az insan bu gürültünün hayvanlar dünyasını, özellikle de henüz yumurtalarından çıkmamış civcivler gibi hassas canlıları nasıl etkilediğini düşünüyor. Son araştırmalar bu konuya ışık tutuyor ve gelişimleri ve hayatta kalmaları açısından ciddi sonuçlara işaret ediyor. Bilim insanları, baklava sırtlı zebra yavrularının trafik gürültüsüne maruz kalmasının gelişimlerinde ciddi aksamalara yol açabileceğini buldu. Deneyler, gürültü kirliliğinin yumurtadan çıkmalarını önemli ölçüde geciktirebildiğini ve ortaya çıkan civcivlerin sağlığı geliştiren bir dizi sorunla karşı karşıya olduğunu göstermiştir. Araştırmacılar ayrıca gürültü kirliliğinin olumsuz etkilerinin yetişkin kuşlara da yayıldığını buldu. Üreme şansının azalması ve doğurganlığın azalması, trafik gürültüsünün yaban hayatı üzerindeki uzun vadeli etkilerini göstermektedir. Araştırma sonuçları ihtiyacı vurguluyor ... >>

Arşivden rastgele haberler

Metal nesnelerin oda sıcaklığında 3D baskısı 14.07.2023

Kuzey Karolina Üniversitesi'nden bilim adamları, metal ürünlerin normal oda sıcaklığında bir 3D yazıcı kullanılarak basılmasına olanak tanıyan benzersiz bir bileşik geliştirdiler. Bu önemli atılım, elektronik alanında olduğu gibi yüksek sıcaklıklara duyarlı olanlar da dahil olmak üzere metal nesneler yaratmak için yeni olanaklar sunuyor.

Yeni malzemenin temeli, bakır mikropartiküllerin sulu bir süspansiyonudur. Galyumun indiyum (EGaIn) ve hidroklorik asit ile ötektik alaşımının mikropartikülleri buna eklenir. İkincisi, suyun pH'ını 1,0 değerine değiştirir, bu da oksitleri EGaIn'den uzaklaştırır ve geçici olarak sıvı metal durumuna dönüştürür. EGaIn kürecikleri daha büyük bakır parçacıklarına yapışarak aralarında güçlü bağlar oluşturur. Karışımın hacmini artırmak için metilselüloz eklenir.

Ortaya çıkan viskoz jel, geleneksel bir 3D yazıcının nozülünden oda sıcaklığında ekstrüde edilebilir ve art arda katmanlanarak nesnelerin oluşturulmasına olanak tanır. Baskıdan sonra nesne aynı sıcaklıkta kurur ve su ile hidroklorik asidin buharlaşmasına neden olur. Böylece, %97,5 metalden (kalan %2,5 metilselüloz) oluşan, elektrik iletkenliği yüksek katı bir üç boyutlu nesne elde edilir.

Jelin ekstrüzyonunu kontrol ederek ve hızlı bir şekilde kuruması için ısı uygulayarak, nesne istenen şekle getirilebilir: başlangıçta düz bir boşluk, karmaşık bir parçaya dönüştürülebilir. Bu teknolojinin kullanıldığı bir örnekte, ısıtıldığında kuruyarak ayağa kalkan bir örümcek yaratılmıştır. Bu, metal nesneleri normal sıcaklıklarda yüksek hassasiyet ve esneklikle basmak için yeni yöntemin potansiyelini gösteriyor.

Diğer ilginç haberler:

▪ Akıllı telefon kullanımı belleği iyileştirir

▪ beta pil

▪ Ekonomik iklim kontrol sistemi

▪ Serçe Toplayıcı Robot

▪ Optik çözünürlük sınırı aşıldı

Bilim ve teknolojinin haber akışı, yeni elektronik

 

Ücretsiz Teknik Kitaplığın ilginç malzemeleri:

▪ Sitenin Firmware bölümü. Makale seçimi

▪ Yazı Üzüntümü ve hüznümü tek bir kelimede birleştirmek istiyorum. Popüler ifade

▪ makale Azot döngüsü nedir? ayrıntılı cevap

▪ gaz ekipmanının çalıştırılması ve onarımı için çilingir makalesi. İş güvenliği ile ilgili standart talimat

▪ Sesli ısıtma göstergeli ütü. Radyo elektroniği ve elektrik mühendisliği ansiklopedisi

▪ makale Multimetrelerde ve radyo alıcılarında güneş pilleri. Radyo elektroniği ve elektrik mühendisliği ansiklopedisi

Bu makaleye yorumunuzu bırakın:

Adı:


E-posta isteğe bağlı):


Yorum:





Bu sayfanın tüm dilleri

Ana sayfa | Kütüphane | Makaleler | Site haritası | Site incelemeleri

www.diagram.com.ua

www.diagram.com.ua
2000-2024