C Programming for ARM and DSP Microprocessors Tutorials - תכנות - HWzone פורומים
עבור לתוכן
  • צור חשבון

C Programming for ARM and DSP Microprocessors Tutorials


3d7

Recommended Posts

שלום! :hi:

אני מחפש Tutorials (ספרים ו/או קבצי PDF) המסבירים היבטים חשובים (מעין קורס מזורז) הקשורים לתכנות בשפת C עבור מעבדי ו-DSP.

אשמח לקבל המלצות.

תודה מראש!

קישור לתוכן
שתף באתרים אחרים

בגדול אתה יכול לכתוב הכל בc ולא תשים לב כלכך לפלתפורמה אולי רק בהבדלי אנדיאנים שזה חשוב לחלק מהתוכניות .

אני מתעסק בעיקר ב PPC אבל אבל לא יוצא לי יותר מדי להשתמש בASM בעיקר אני משתמש בזה למקרים מסוימים כמו הפקודה של cntlz שסופרת leading zeros שימושית להמרות אודיו . אפשר גם לקרוא שעון של המערכת בפעולה אחת של מעבד עם mftbl שאפשר להשתמש בו בשביל בדיקות זמנים. יש לPPC גם פקודות שעושות הזזות בינאריות ואז and עם איזה mask . לרוב הcompiler יודע להמיר פקודות להזזות בינאריות מכל מני סוגים. החסרון הגדול של PPC שאין פעולת mod וחילוק בדומה למערכות אחרות זה פעולה יקרה. בגלל העובדה הזאת עדיך להשתמש במערכים מעגליים או queues בגודל של חזקה של 2 .

לרוב כשמתחנתים בARM זה מאוד תלוי במערכת הפעלה אני לא מכיר כלכך את האכיטכטורה הזאת אבל זה בגדול RISC . יש עם מעיצים כמו ה XSCALE שעבר לmarvel מאינטל . יש עוד כמה של כל מני חברות אחרות . בגדול החברה שיש לה פטנט על הARM לא מרוויחה מיצור רחיבים אלא מתיכנון רכיבים. השימושים של ה הם לרוב לPDA ולטלפונים סליולרים. לTI יש שנקרא OMAP או משהו כזה שיש בו גם DSP קטן. יש כמה מערכות הפעלה שעובדות עם ARM הכי מוכרת זה windows mobile אני חושב שגם palmos יש לARM אבל אני לא בטוח כי אני חושב שפעם הם היו על ווריאציה של ה 68K שנקרא dragonball . אני די בטוח שיש לינוקס לARM ואפשר גם להריץ על ARM vxworks וsymbian . אני לא זוכר את כולם כי הרבה מערכות הפעלה עובדות ב ARM.

בקשר ל DSP אני יודע שהיתרון שלהם הוא בעיקר שהם מסוגלים לעשות הרבה פעולות של multiply accumilate שנקרא בקיצור במקביל. רוב ה DSP מסוגלים לעשות כמה של 16 ביט בשעון אחד . אני מכיר את ה starcore שfreescale מתעסקת איתו אבל יש גם את ה DSP של TI שהם הרבה יותר פופולארים. המעבד שאני מכיר זה msc8101 , msc7116 . אני לא ממש מתכנת ב DSP אבל יש לי את הסביבה אם יתחשק לי אבל זה לא ממש העבודה שלי. המעבדים האילו הם לרוב עם 4 + שתי פעלות ALU לשעון אבל אני לא בטוח . כל ה האילו שימושיים לפילטרים וקורלציות וכל השטויות שאנשי DSP עושים. לרוב משתמשים ב fixed point שזה רפרזנתציה שדומה ל float רק בtwos compliment ועם exponent קבוע שהוא לרוב שלילי . למשל אם אתה רוצה מספרים בין 1 ל0 עם מספרים של 16 ביט אתה יכול להשתמש ב exponent של מינוס 14 . בכל מקרה בdsp עושים הרבה אופטימיזציות ב asm .

קישור לתוכן
שתף באתרים אחרים

מה שחשוב לי לדעת זה ההיבטים הייחודיים שרצוי לדעת כאשר כותבים קוד עבור ו-DSP.

ב- מעניין אותי בעיקר תכנות ללא מערכת הפעלה עבור מערכות Embedded (לא PDA או טלפונים סלולאריים).

אני מחפש Tutorials המסבירים למתכנת בשפת C את הדברים החשובים שהוא צריך לדעת כאשר הוא עובר לתכנת עבור או DSP.

אני מעוניין בהיבטים בתכנות עצמו (אופטימיזציות) ובדברים שחשוב לדעת במהדרים נפוצים.

חיפשתי חומר בוויקיפדיה, ולא ממש מצאתי.

קישור לתוכן
שתף באתרים אחרים

ברוב מערכות ה-embedded עובדים עם מערכת הפעלה כלשהי כבר שנים.

רק במערכות קטנות במיוחד (מבחינת תוכנה) תמצא לפעמים איזה מיקרובקר ללא מערכת הפעלה.

כמה דברים שכדאי לדעת כשעובדים ב-embedded:

* הרבה פעמים יש משותף בין כל התהליכים (או threads או tasks). פירוש הדבר שכשיש דריסת , היא יכולה להגיע מכל רכיב בתוכנה אל כל רכיב אחר.

* הקצאות דינמי הן בעייתיות מכמה בחינות: ראשית הן יקרות יותר, שנית הן נוטות להשפיע לרעה על יציבות המערכת עקב פרגמנטציה וזמן הקצאה לא דטרמיניסטי. הרבה פעמים מתכננים את התוכנה בכוונה להמנע הצורך בהקצאות דינמיות.

* מערכות ההפעלה נוטות להיות שונות מ-general purpose OSs. פשוטות יותר, לרוב ללא שיקולי security.

* גודל המחסנית בד"כ קבוע מראש וקטן בהרבה ממה שאתה רגיל. תלוי במערכת, אבל לפעמים אפילו לא תדע שעשית stack overflow עד שהתוכנה תקרוס.

* על DSP-ים תצטרך להכיר לא רע את החומרה כדי להגיע לביצועים טובים. איך ה-pipeline בנוי? האם יש code cache? האם קיים DMA? ועוד.

* הקומפיילרים, במיוחד ב-DSP, הם לפעמים מוגבלים מבחינת תמיכה ב-C++. גם כשהם תומכים, לא תמיד בהכל. הם מוגבלים גם בעוד דברים.

* מצד שני, במיוחד עבור DSP-ים, ישנם קומפיילרים מדהימים ביכולות האופטימיזציה.

* תתרגל לדבג עם הדפסות. זה נכון שהרבה בפעמים יש ICE או jtag debuggers ואחרים, אבל הרבה פעמים אין, או שהם לא עובדים, או שזה לא מספיק. באופן כללי דיבוג מערכת embedded הוא סיפור קשה יחסית, ודורש ראייה טובה של התוכנה שאותה אתה מדבג.

* תכנות embedded זה כיף, אבל לפעמים נמאס. אחרי הרבה שנים של זה, אני מתחיל לחזור לתכנות desktop ובהחלט הרגשת החופש על desktop היא ממכרת.

* אבל זה כיף.

האמת היא שזו דיסיפלינה שלמה, ויכולתי לכתוב פה ספר קטן. אבל בטח מישהו כבר הקדים אותי. אולי בAMAZON יש ספרים על הנושא.

קישור לתוכן
שתף באתרים אחרים

ממש כיף, כמו לדפוק את הראש בקיר...

אבל כן, אם כבר בחרת להשתמש במעבד כמו בשביל העבודה, אז עדיף כבר לבחור במערכת הפעלה שתקל על העבודה (החל ממשהו כמו ecos ועד למשהו כמו linux). אם אתה עושה משהו פשוט יחסית אז אולי עדיף להשתמש בבקר במקום.

קישור לתוכן
שתף באתרים אחרים

תודה על המידע!

בעיקרון, ב-Embedded בד"כ אין צורך במערכת הפעלה מורכבת במכשירים שמבצעים דבר ייעודי (לא PDA או סלולארי).

אני רואה שיש הרבה דברים שאני צריך לדעת.

מישהו יכול להמליץ לי על ספר טוב ל- וספר ל-DSP שמיועד למתחילים בתחום, ומסביר בתמציתיות אספקטים חשובים עם דוגמאות (משהו לא יותר מדי עב-כרס)?

אפשר להזמין מחו"ל, אבל רצוי אם אפשר משהו בעברית עם זמינות מיידית בארץ.

קישור לתוכן
שתף באתרים אחרים

רקע טוב בנושאים של הנדסת מחשבים יעזור לך, במיוחד תכן של מעבדים, ארכיטקטורה וכו'.

לומדים C כמו שצריך, ונושאים כמו מערכות הפעלה, הנדסת מחשבים, תוכנה וכו'. אח"כ מגיעים למערכת ספציפית וממשיכים ללמוד עליה. וכו'.

בכל מקרה לא נתקלתי בממש ספר שמלמד את זה (טוב, פעם אחת, והוא היה ביפנית), ואני אהיה מאוד מופתע אם תמצא ספר בעברית על זה. זה פשוט בלתי אפשרי להיות מתכנת embedded בלי לדעת אנגלית, כיון שצריך לקרוא כמויות גדולות של מידע על המערכת, המעבד, הקומפיילר, האלגוריתמים וכו'.

מצד שני, חיפוש ב- על embedded systems programming הניב כמה תומצאות מבטיחות. לדעתי תקרא reviews של הספרים שם, תמצא את זה שנראה הכי טוב, תקנה ותנסה אותו.

ואם הוא טוב, תספר לנו, שנדע.

קישור לתוכן
שתף באתרים אחרים

מצאתי באמאזון את הספרים הבאים:

Programming Embedded Systems: With C and GNU Development Tools, 2nd Edition

++Programming Embedded Systems in C and C

C Programming for Embedded Systems

אשמח לקבל עוד המלצות.

אם יש למישהו מסמך קצר וממצה בן עמודים בודדים עם טיפים וטריקים שימושיים, זה יכול מאוד לעזור לי.

קישור לתוכן
שתף באתרים אחרים

ארכיון

דיון זה הועבר לארכיון ולא ניתן להוסיף בו תגובות חדשות.

×
  • צור חדש...