חגיגת הנחות נובמבר!
עד 30% הנחה על כל המסלולים והקורסים
לנרשמים עד 30.11.24
אל תחמיצו את מועדי הפתיחה הקרובים:
מסלול RT Embedded Linux | 09/12 |
מסלול Cyber | 09/12 |
מסלול Computer Vision | 11/12 |
מסלול Machine Learning | 19/12 |
מסלול Full Stack | 19/12 |
עודכן לאחרונה: 26 אוקטובר, 2022
בשנים הראשונות של פיתוח מערכות Embedded, האפליקציות היו מותאמות אישית אל הלוח והמעבד.
כלומר התוכנה היוותה Single Task שהותאם לארכיטקטורה בשימוש (כגון Arm / Pic / x86 / MIPS / Sparc etc). ה Device Drivers והאפליקציה היו כאחד, לא הייתה חלוקה לשכבות התוכנה או שכבת אבסטרקציה. הדבר היווה בעיה בעיקר בעת הוספת Features, שינוי ארכיטקטורה וכמובן שה code-reuse לא היה ממש יעיל.
פיתוחים בסגנון הנ"ל נקראים Bare Board Application (כלומר אפליקציית לוח ערום, היות ואין שימוש במערכות הפעלה). גם כיום קיים שימוש במערכות Embedded הנ"ל במיוחד ע"י Micro-Controllers. כגון: PIC Atmel AVR ARM Cortex-M cores Freescale-ColdFire.
השלב הראשון בהעלאת ה Micro-Controller הינו ה- Boot-Loader. ה- Boot-Loader מתחיל לרוץ מרגע שה- Micro-Controller מקבל מתח ועד לרגע שכלל Peripherals בכרטיס מאותחלים והמערכת מוכנה להריץ Bare Board Application או העלאת מערכת הפעלה כגון Linux.
במערכות ה Embedded ה- Boot-Loader אחראי להעלאת כלל ה peripherals במערכת כדוגמת RS232 ,Timers ,USB ,Ethernet עבודה עם התקני Flash ,RTC ,Interrupt Controller ועוד .
בעבור פרויקטים מסוג Single Task אשר דורשים ביצועים נמוכים כגון עבודה עם Sensors אכן זאת האופציה מועדפת.
אך בעבור פרויקטים אשר דורשים Multi-Threading וקצב עיבוד גבוהה יש צורך במערכות הפעלה.
כשמגיעים לשלב בו צריך לבחור את השפה בה נשתמש בעת הטמעת מערכות Embedded עלינו לקחת בחשבון מספר פקטורים:
השפה הבסיסית ביותר היא שפת C עליה אנו לומדים בהרחבה במסגרת קורס C שלנו.
היא גם הפופולארית ביותר הודות ליעילות ולפשטות שלה. היא גם מהווה את הבסיס לשפות מתקדמות יותר.
הצורך בפיתוח מערכות Embedded בעלי מערכות הפעלה בא לידי ביטוי במיוחד כאשר יש צורך בריבוי משימות (Multi-Tasks) תוך הגנה על משאבים משותפים, יציבות, שימוש ב משאבים של ה Kernel וכן תמיכה ב Stacks –ים שונים, לדוגמא ה- Network Stack או File –Systems שונים.
השימוש במערכות הפעלה מאפשר להפריד בין האפליקציה (או האלגוריתם שאותו אנו מעוניינים לפתח) לבין החומרה וה-Driver שמפעיל אותה. במילים אחרות גם אם נבחר בפלטפורמת חומרה שונה עדיין לא יהיה צורך בשינוי מהותי אם בכלל באפליקציה (השינוי יבוא לידי ביטוי ב Kernel וה- Device Drivers).
אחת ממערכות ההפעלה הפופולאריות ביותר כיום למערכות Embedded וכן P.C. הינה Linux אשר במרוצת השנים צברה וותק והפכה לתקן דה פקטו בקרב מפתחים רבים.
Linux מבוססת קוד פתוח, מאפשרת התאמה למעבדים שונים, תומכת בתקן POSIX (Portable OS Interface Unix), מבטיחה יציבות ותומכת כמעט בכל התקני חומרה החדשים.
Linux אשר הגדירה תקן אחיד לפיתוח עבור Embedded Systems (מכאן השם Embedded Linux) הגיעה במקור מ UNIX, ארגונים רבים גילו עניין ביתרונות של Linux המשיכו את הפיתוח והתמיכה במערכת לפי רישיון GPL (General Public License) שנכתב ע"י קהילת פרויקט GNU (קהילת קוד פתוח Gnu Not Unix) - המחייב להשאיר את הקוד פתוח.
בעקבות כל מה שקראת עד עכשיו פיתחנו מסלול מיוחד של לימודי תעודה Real Time Embedded Linux שכולל בתוכו את כל הנושאים החשובים בתחום זה, מותאם אישית לסטודנט ומכין אותך לעולם העבודה האמיתי.