Bellenimin ne olduğunu daha fazla açıklamak için.
Firmware, çok özel bir donanımda çalışan koddur, yani op kodları yazdığı donanıma özgüdür, bir yonga veya arayüz ailesi olabilir veya yalnızca bir öğe için olabilir.
Temel olarak, bellenimin yaptığı şey bu;
Belirli bir işlemcinin yapması ve yürütmesi için kablolu talimatlara sahip, buna "önyükleme" denir. En önyüklenebilir bilgisayarların BIOS'larında bu var.
Yazılım donanımındaki talimatlarla adı geçen donanımı sıfırlayın.
Atlama tablasını içeri / yukarı yükleyin.
Belirli bir cihazdaki kayıtlara erişimin erişilebilir olmasını sağlayın.
BIOS soğuk (kapalı durumdayken) veya ılık çalıştırmadan sonra (normal yeniden başlatma veya sıfırlama pimi kullanıldıktan sonra) kullanıldığında kontrolü rutine alın.
Çoğu BIOS (ürün yazılımı) akılda belirli bir yonga seti için tasarlanmıştır ve bunların tüm işlevlerini kökten çıkarır ve bir bilgisayarda veya gömülü bir aygıtta belirli bir veri hattına bir şey eklenebilecek verileri siler.
Sabit diskler, kendi içinde gömülü bir cihaz olan, üzerinde de BIOS bulunan ve bir yonga üzerinde bir ürün yazılımı olan bir depolama çözümünün iyi bir örneğidir.
Temel olarak, tüm üretici yazılımı, başka bir işlemcinin söz konusu cihazdan işlevselliği elde etmek için yaptığı bir dizi talimattır. Fiziksel bir cihaza yüklenen bir yazılım, güç kaybettikten sonra, cihaz yeniden kazanıldığında orada olacak.
Teknik olarak, ikili dosyalar oluşturmak için herhangi bir programlama veya komut dosyası dilini kullanabilirsiniz. Hedeflemekte olduğunuz işlemcinin nasıl çalıştığını, gerçek op kodlarını, dahili kayıt cihazını (ne işe yaradıklarına bakılmaksızın), ikili ve onaltılık sayı sistemlerini öğrenmek ve nasıl kurtarabilecek bir montajcı oluşturmak gerektiğini bilmek zorundasınız. kodunuzda assembly dilinde. Bu işlem tamamlandıktan sonra, başka bir programın ikilile dönüştürülmesi için görev yapabilir, daha sonra bir .bin veya .hex dosyası olarak kaydedebilirsiniz.
Ada, C, C ++, D ve diğer programlama dillerinin kendi yerel kodları olan "belirteçlerini" sahte dil kodlarında makine diline dönüştürdüklerini bilmek istiyorsanız. Okumanı tavsiye ettiğim birkaç kitap var, bazıları oldukça basit ve çok özel işlemciler etrafında toplanmış fakat öğrenilmesi iyi. Şimdilik sana bir kitap vereceğim, çünkü seni veya bilgiyi okuyan başka birini boğmak istemiyorum.
- Charles N. Fischer ve Richard J. LeBlanc, Jr. 'C' ile Bir Derleyici Hazırlama
- Bu siteyi ziyaret edin; IBM PC'de bulunan x86 yonga kümesini temel alır;
http://www.laynetworks.com/assembly%20tutorials.htm
Bu, başlangıçta PC'lerde assembly dili programlamaya giriş niteliğindedir. İşleme kesintilerini (donanım ve yazılım kesintileri) ve diğer birçok konu hakkında konuşur, bir BIOS'un gerçekte ne yaptığını ve bununla nasıl çalışılacağını daha ayrıntılı olarak açıklar.
Assembly dili ve makine dilinden farklı olarak, donanımınızın özelliklerini bilmiyorsanız Ada, C, C ++, D ile daha fazlasını alabilirsiniz. Assembly ve makine dilinde, ne yaptığınızı bilmiyorsanız, ya kötü bir şey olur ya da kod çalışmaz. İkinci davayı tercih ederim, kötü bir şeye karşı çalışmamayı.
Not: Yukarıdaki cevap hakkında, flash RAM hakkında, böyle bir şey yok, flash ROM'lar var ama flash RAM'ler yok. Flash ROM'larda ürün yazılımı, içinde pil veya kapasitör destekli olan RAM'ler veya belirlediğiniz BIOS seçenekleri için parametreler içeren başka bir flash ROM bulunur.
Flash ROM veya RAM yongasıysa, bellenimde veri belleğinin nasıl depolanacağına veya silineceğine (program belleğine / bellenimin kendisine karşı) kod vardır. PC'lerde, eğer BIOS şifresi bozulursa veya hatırlamıyorsanız (veya birileri sizinle uğraşıyorsa), kasayı açıp "CMOS CLR / CMOS TEMİZLE / BIOS RESET / BIOS RST" adlı iki pimi bulabilir, bu iki pimin bir arada kısaltılması da belleği temizler, bundan sonra yapmanız gereken tek şey, iki pim hala kısa olduğunda, sıfırlama düğmesine basmaktır. Bu, şifreyi temizler ve PC'nizin BIOS'una tam erişim sağlar (1990'lı yıllardan daha yeni bir bilgisayarınız varsayalım).
Yeni bilgisayarlarda, ürün yazılımı için flash belleğe sahipsiniz ve pil destekli SRAM'ınız var (sürekli olarak DRAM yongaları gibi yenilenmesi gerekmiyor, eski bir teknolojiye dayanıyor).