Merhaba, Arduino üzerinde firmware ve yazdığımız kullanıcı kodlarının aynı anda çalışıp çalışıp çalışamayacağı konusunda kafam karıştı. Bildiğim kadarıyla firmware mikrodenetleyicinin temel yazılımını ifade ediyor. Ancak, Arduino'ya yüklediğimiz kendi yazılımlarımız firmware'in yerine mi geçiyor, yoksa ikisi birden çalışabilir mi? Bu konuya dair teknik bir açıklama ve örnek paylaşabilir misiniz?
Arduino'da yüklediğiniz kod, doğrudan firmware'in üzerine yazılır. Ancak bazı durumlarda firmware ve kod birlikte çalışabilir. Örneğin, USB HID projelerinde Arduino'nun USB firmware'i hala aktif kalırken sizin kodunuz da çalışabilir.
Firmware genelde mikrodenetleyicinin temel işletim sistemi gibidir ve kullanıcı yazılımı yüklenince üzerine yazılır. Arduino IDE ile yüklediğiniz kod, firmware'in bir parçası olarak çalışır. Ancak Bootloader gibi bir bileşen bu sürecin dışında kalır ve kod ile birlikte çalışmaya devam eder.
Arduino'da yüklediğiniz kod, doğrudan firmware'in üzerine yazılır. Ancak bazı durumlarda firmware ve kod birlikte çalışabilir. Örneğin, USB HID projelerinde Arduino'nun USB firmware'i hala aktif kalırken sizin kodunuz da çalışabilir.
Firmware ve kullanıcı kodu aynı anda çalışabilir, ancak bu genelde özel bir yapılandırma gerektirir. Örneğin, STM32 gibi ARM tabanlı kartlarda kullanıcı yazılımı ayrı bir alan kullanarak firmware ile paralel çalışabilir.
Çoğu durumda firmware, sizin yüklediğiniz kodla değiştirilir. Ancak Bootloader gibi bölümler hala cihaz üzerinde çalışır. Özellikle "optiboot" gibi bir bootloader kullanıyorsanız, firmware'iniz ve kodunuz bir süreliğine etkileşimde olabilir.
Eğer Arduino gibi bir kartta firmware ile özel bir işlevsellik gerekiyorsa, mevcut firmware'i değiştirmek yerine sizin kodunuzla entegrasyon yapılabilir. Bu, firmware'i korumayı gerektirir.
Yüklediğiniz kod, genellikle firmware'in üzerine yazarak çalışır. Eğer firmware'in çalışmasını istiyorsanız, kodunuzun bu firmware'i destekleyecek şekilde tasarlanması gerekir.
Firmware'in yanında kodun çalıştığı özel bir örnek, klavye veya joystick gibi USB HID cihazlarıdır. Bu cihazlarda USB haberleşmesini sağlayan firmware aktif kalır ve sizin yazdığınız kod da işlevselliği tamamlar.
Arduino'nun Bootloader'ı firmware'in bir parçasıdır ve kullanıcı kodu yüklendiğinde bile bu Bootloader devrede kalır. Bu nedenle, belirli durumlarda firmware ve kod bir arada var olabilir.
Eğer mevcut firmware'in üzerine yazmak istemiyorsanız, yüklediğiniz kodun firmware ile uyumlu olması gerekir. Bu durumda firmware'in temel fonksiyonları devam ederken kodunuz da kendi işlevlerini gerçekleştirebilir.