לפני שמדברים על פיתוח קושחה, כדאי להבין מה זו בדיוק קושחה (Firmware).
בעוד ההבדלים בין חומרה לתוכנה ברורים וקלים לזיהוי, קושחה (באנגלית Embedded Firmware)
היא משהו יותר חמקמק שניתן לתאר אותו כסוג של מצב ביניים או כלאיים בין חומרה לתוכנה.
למעשה קושחה היא תוכנה שמשובצת ברכיב חומרה ולפעמים אפילו צרובה בתוכו באופן פיזי.
לרוב היא תישמר ברכיב זיכרון ROM או בזיכרון הבזק ומיועדת לטפל בפעילות ההתקן עצמו.
דוגמה לסוג כזה של קושחה הוא רכיב ה-BIOS שמוצאים במחשבים.
כאשר בסופו של יום בכל התקן שכולל יחידת עיבוד נתונים, בין אם מדובר בטלפון נייד,
מחשב רכב או התקן IOT יהיה רכיב קושחה.
מהו פיתוח קושחה?
כדי לענות על השאלה בכותרת הביניים צריך קודם לחזור לאבחנה בין תוכנה לקושחה.
בצד הדומה אפשר לציין שבשני המקרים מדובר במערך של דאטה שאמור לעבור דרך מעבד ולחולל פעולה.
ההבדל ליכולת לבצע שינויים בקלות.
תוכנה נשמרת בזיכרון ה-RAM כך שניתן להחליף אותה ולבצע בה שינויים בקלות, היא פועלת רק כשהיא מחוברת
למקור כוח וכדי להיטען מחדש היא תלויה בזיכרון המרכזי של ההתקן; מנגד הקושחה אינה נהנית מגמישות כזו ומסיבות טובות,
היא משובצת בתוך רכיב שדואג שההתקן עצמו יתפקד ויאפשר לתוכנה לעבוד בגמישות.
הקושחה היא התשתית התפעולית שמאפשרת למחשב לבצע את תפקודי הבסיס הקריטיים כמו טעינת דאטה והרצת מערכת הפעלה.
מבחינה פילוסופית ניתן להגיד שכל קושחה היא בעצם תוכנה, אך לא להפך.
כלומר האתגר של מפתח הקושחה נוגע לשימושיות ולאמינות הבסיסית של ההתקן בתפקוד שוטף ומהרבה בחינות מדובר
במשימת פיתוח הרבה יותר מורכבת מאשר פיתוח יישומים על בסיס תוכנה.
באיזה שפות תכנות משתמשים לפיתוח קושחה?
הבלבול בין קושחה לתוכנה לא נעצר בשלב התכנות וזאת מהסיבה הפשוטה שחלק משפות התכנות
הנפוצות לפיתוח אפליקציות תוכנה משמשות גם בפיתוח קושחה, כאשר חלק אחר ייעודי לפיתוח קושחה:
פיתוח קושחה באמצעות C ו- C++
שפות התכנות הוותיקות מהוות הרבה פעמים שפות מקור (Legacy) לכתיבת קושחות.
פיתוח קושחה באמצעות HDL
משפחה של שפות שנועדו לכתיבת קושחה.
HDL הן ראשי תיבות של: Hardware Description Languages .
דוגמאות לשפות מהסוג הזה הן VHDL או Verilog
פיתוח קושחה באמצעות Python ו-Micro Python (מיקרו פייתון)
אחת השפות המודרניות הכי פופולריות לבניית אפליקציות, לא נחשבת אידיאלית למשימות קושחה,
אך יכולות המחשוב שלה וקהילת המפתחים הביאו לכך שבפועל נעשה בה שימוש רב גם בהקשר הזה.
כאשר מתכננים קושחה חשוב לקחת בחשבון את הלוח, כזכור, הקושחה משובצת ברכיב,
אך המערכת לא תעבוד עם הלוח לא יעוצב באופן נכון.
לכן, כאשר נדרשים לפיתוח קושחה חשוב לבחור בחברה שמתמחה בבניית לוחות ומעגלים משולבים,
האמונה גם בעיצוב המעטפת של הקושחה באופן שיאפשר אינטגרציה טובה ומוצלחת עם
ההתקן הסופי וישרת את מטרותיו.