FMUSER Wirless להעביר וידאו ושמע קל יותר!
es.fmuser.org
it.fmuser.org
fr.fmuser.org
de.fmuser.org
af.fmuser.org -> אפריקאית
sq.fmuser.org -> אלבנית
ar.fmuser.org -> ערבית
hy.fmuser.org -> ארמנית
az.fmuser.org -> אזרבייג'נית
eu.fmuser.org -> באסקית
be.fmuser.org -> בלארוסית
bg.fmuser.org -> בולגרית
ca.fmuser.org -> קטלאנית
zh-CN.fmuser.org -> סינית (פשוטה)
zh-TW.fmuser.org -> סינית (מסורתית)
hr.fmuser.org -> קרואטית
cs.fmuser.org -> צ'כית
da.fmuser.org -> דנית
nl.fmuser.org -> הולנדית
et.fmuser.org -> אסטונית
tl.fmuser.org -> פיליפינית
fi.fmuser.org -> פינית
fr.fmuser.org -> צרפתית
gl.fmuser.org -> גליציאנית
ka.fmuser.org -> גרוזינית
de.fmuser.org -> גרמנית
el.fmuser.org -> יוונית
ht.fmuser.org -> קריאולית האיטי
iw.fmuser.org -> עברית
hi.fmuser.org -> הינדית
hu.fmuser.org -> הונגרית
is.fmuser.org -> איסלנדית
id.fmuser.org -> אינדונזית
ga.fmuser.org -> אירית
it.fmuser.org -> איטלקית
ja.fmuser.org -> יפנית
ko.fmuser.org -> קוריאנית
lv.fmuser.org -> לטבית
lt.fmuser.org -> ליטאי
mk.fmuser.org -> מקדונית
ms.fmuser.org -> מלאית
mt.fmuser.org -> מלטזית
no.fmuser.org -> נורווגית
fa.fmuser.org -> פרסית
pl.fmuser.org -> פולני
pt.fmuser.org -> פורטוגזית
ro.fmuser.org -> רומנית
ru.fmuser.org -> רוסית
sr.fmuser.org -> סרבית
sk.fmuser.org -> סלובקית
sl.fmuser.org -> סלובנית
es.fmuser.org -> ספרדית
sw.fmuser.org -> סווהילי
sv.fmuser.org -> שוודית
th.fmuser.org -> תאילנדי
tr.fmuser.org -> טורקית
uk.fmuser.org -> אוקראינית
ur.fmuser.org -> אורדו
vi.fmuser.org -> וייטנאמי
cy.fmuser.org -> וולשית
yi.fmuser.org -> יידיש
לפיתוח אפליקציות: צריך ללמוד היטב שפה C, מבנה נתונים, JAVA וכו '. אין שום דבר מיוחד לשים לב אליו בפיתוח יישומים משובצים ופיתוח אפליקציות במחשב האישי. אולי אתה אומר שאתה צריך לבצע אופטימיזציה של המערכת המוטמעת, כן, אתה צריך לבצע אופטימיזציה, אבל התוכנית שלא אופטימיזציה אינה שונה מפיתוח התוכנית במחשב האישי. בנוסף, כשיש לך יכולת לבצע אופטימיזציה, אתה כבר לא רגיל לשאול את השאלה הזו. לדוגמא ספציפית, כמו ממשק הפיתוח, אנו משתמשים ב- VC במחשב האישי; ב- Linux משובץ, אנו עשויים להשתמש ב- QT וב- Android. בשלב זה עליכם ללמוד תכנות QT ו- Android. אבל הבסיס הוא עדיין C או JAVA, ועל בסיס זה, הכירו את הממשקים שלהם. אם למדת VC, לוקח זמן להבין את אותם שיעורים ובקרות.
אם אתה רוצה ללמוד את המערכת הבסיסית, זו המומחיות שלי, אבל אני יכול לומר קצת.
לפני שאני עונה על שאלה זו, תן לי לענות: אנשים רבים שואלים אותי, האם זה ללמוד לנהוג או ללמוד ליישם? אני יכול רק לומר שזה מבוסס על עניין, והנהגים והיישומים אינם נפרדים לחלוטין.
1. הדרייברים עליהם אנו מדברים אינם מוגבלים לפעולות חומרה, אלא גם למושגים כגון עקרונות מערכת ההפעלה ותזמון שינה וערות. אם אתה רוצה לכתוב יישום טוב, ואתה רוצה לפתור טוב יותר את הבעיות בהן נתקל היישום, עליך להבין את הידע הזה
2. חסמים נמוכים ליישום, במיוחד ה- ANDROID הנוכחי, טהור JAVA. אני באופן אישי חושב שדרך פיתוח היישומים בקיאה בעסקים. לדוגמא, בענף התקשורת, בתעשיית ה- IPTV ובתעשיית הטלפונים הניידים אתה מבין את צרכי התעשייה. לכן אנשים שמנהיגים הם בעיקר יישומים.
3. להיות מונע. למעשה, אני לא רוצה לקרוא לזה "להיות נהג", אבל אני רוצה לקרוא לזה "להיות מערכת ברמה נמוכה". לאחר שתסיים, זה יהרוג את כל הענפים. עבדתי כמה שנים ויצרתי טלפונים ניידים, IPTV וטלוויזיה בכנסים, אבל מוצרים אלה לא עושים לי שום הבדל כי אני עושה רק את השכבה התחתונה. העסק שלהם לא קשור אלי. כשיש בעיה ביישום והם לא יכולים לפתור את זה, אתן להם מושג מנקודת המבט של הליבה ואביא להם כלים. אני באופן אישי חושב שאני מומחה טכני בכיוון הפיתוח של השכבה התחתונה.
4. למעשה, אין גבול בין ביצוע השכבה התחתונה לבין ביצוע היישום. אם יש לך את החוויה בשכבה התחתונה, אתה תרגיש נינוח מאוד בעת ביצוע היישום. עם ניסיון עסקי תוכלו להכיר את השכבה התחתונה ובקרוב תוכלו להקים צוות.
חזרה לשאלה איך ללמוד. מה כלול במערכת הבסיסית המוטמעת של לינוקס? אל דאגה, תדע זאת על ידי מתן דוגמה.
1. כאשר המחשב מופעל, מי מציג ממשקים אלה? זה BIOS, מה זה עושה? חלק מהבדיקות העצמיות, ואז קרא את החלונות מהדיסק הקשיח והפעל אותו. באופן דומה BIOS זה תואם אתחול האתחול בלינוקס מוטבע. מאתחל זה צריך לקרוא את ליבת לינוקס ב- Flash ולהפעיל אותו.
2. מה המטרה של הפעלת חלונות? כמובן שזה צ'אט מקוון או משהו כזה. היכן נמצאים כלי האינטרנט והצ'אט האלה? בכונן C ובכונן D. לכן, חלונות חייבים לזהות תחילה את כונן C וכונן D. אנו קוראים לזה מערכת קבצי הבסיס תחת לינוקס.
3. Windows יכול לזהות את כונן C וכונן D, ולכן עליו להיות מסוגל לקרוא ולכתוב את הכונן הקשיח. הדברים המעורבים נקראים נהגים. כמובן, זה לא רק דיסק קשיח, אלא גם כרטיס רשת, USB וכו '. לינוקס משובץ יכול לקרוא ולהפעיל יישומים מ- Flash, והוא חייב לכלול גם מנהלי התקנים של Flash. כמובן, זה לא רק פלאש.
בואו נדבר על זה תחילה, LINUX מוטבע מכיל ארבעה חלקים עיקריים: bootloader, ליבה, מנהל התקן ומערכת קבצי שורש.
האחד, מאתחל
זו תוכנית לוח חשוף מעט יותר מסובכת. אך לא קל להבין ולכתוב את תוכנית הלוח החשוף הזה. הכלים השימושיים תחת Windows מחלישים את יכולת התכנות שלנו.
אנשים רבים משתמשים ב- ADS וב KEIL ברגע שהם משחקים משובצים. האם אתה יכול לענות על השאלות האלה?
1. לאחר ההפעלה, היכן מביא המעבד הוראות לביצוע?
תשובה: באופן כללי, ההוראה היא מ- Flash.
2. אבל ניתן לקרוא פלאש ולא לכתוב אותו ישירות. אם אני משתמש במשתנים גלובליים, היכן המשתנים הגלובליים האלה?
תשובה: משתנים גלובליים צריכים להיות בזיכרון
3. אז מי שם זיכרון משתנים גלובליים?
תשובה: האם אתה יכול לענות לחבר שהשתמש ב- ADS וב- KEIL במשך זמן רב? לשם כך נדרש "רילוקיישן". ב- ADS או KEIL, קוד ההעתקה נכתב עבורך על ידי החברה שמייצרת כלים אלה. האם קראת אותו פעם?
4. הזיכרון כל כך גדול, איך אוכל לדעת איזו כתובת לקרוא את "התוכן שנשמר במקור בפלאש" בזיכרון?
תשובה: כתובת זו נקבעת על ידי "סקריפט קישור", יש קבצי פיזור ב- ADS, וקבצים דומים ב- KEIL. אבל האם למדת את זה?
5. אמרת שהעברה היא העתקה של תוכנית מפלאש לזיכרון, כך שתוכנית זו יכולה לקרוא פלאש? תשובה: כן, אתה צריך להיות מסוגל להפעיל פלאש. כמובן שלא רק אלה, אלא גם הגדרת השעון כך שהמערכת תפעל מהר יותר וכן הלאה. בואו נשאל ונענה כאן קודם, ל- bootloader, תוכנית לוח חשוף, יש למעשה שלוש נקודות עיקריות:
1. תפעול החומרה
2. הבנת מעבדי מערכת ARM
3. מושגי היסוד של התוכנית: רילוקיישן, מחסנית, קטע קוד, קטע נתונים, קטע BSS וכן הלאה.
להפעלת החומרה, עליך לראות את התרשים הסכימטי ואת מדריך השבבים. זה דורש מידה מסוימת של ידע בחומרה. זה לא מחייב אותך להיות מסוגל לעצב חומרה, אבל לפחות להבין את זה; זה לא דורש יכולת להבין מעגלים אנלוגיים, אלא להבין מעגלים דיגיטליים. למדתי את היכולת הזו בבית הספר. מספיקים שני הספרים (כותרת הספר ששכחתי). אבל אני בספק אם יש לך סבלנות לסיים לקרוא את שני הספרים האלה. אני לא יודע אם יש ספר מהיר יותר עכשיו. אם אתה רוצה לעשות את זה מהר, עזוב את זה קודם, ואם אתה לא מבין, פשוט שאל את גוגל ופרסם.
בנוסף, יש לקרוא את מדריך השבבים, אל תחפש סינית, רק הסתכל באנגלית. בהתחלה זה היה כואב מאוד, אך בהמשך, ברגע שהדקדוק ואוצר המילים מוכרים, קל לקרוא כל מדריך שבבים.
להבנת מעבדי מערכת ARM, עיין במוצרי Du Chunlei. הוא מדבר על הוראות הרכבה, מצבי חריג, MMU וכו '. רק 3 חלקי התוכן האלה צריכים שתבין.
הרעיון הבסיסי של התוכנית, כמובן, המלך הוא להסתכל על עקרונות ההידור. למרבה הצער, סוג זה של ספרים הוא בהחלט ברמת הספרים השמימית. אני ממליץ לך לא לראות את זה אלא אם כן אתה סופר גאון. פשוט צפה ב והסרטון הראשון שכתבתי, אל דאגה, אל תוציא כסף. בעקבות הסרטון וביצוע ניסויים הקשורים לחומרה, מושגים אלה יתבהרו. לא מצאתי את הסט השני של ספרים או סרטונים המדברים על מושגים אלה, ומאפשר לי להתפאר בזה בעיוורון. עבור מטען האתחול צפיתי בו לראשונה כשלמדתי, ואז כתבתי את התוכנית בעצמי ועשיתי את כל הניסויים על חומרה שונים, כגון GPIO, שעון, SDRAM, UART ו- NAND. אם אתה מבהיר אותם, קל להבין את u-boot על ידי קיבוץ יחד. לסיכום, כדי להבין את הדיאגרמה הסכימה של החומרה ואת מדריך השבבים, עליכם למצוא את המידע בעצמכם. עבור השאר, פשוט עקוב אחר רשימת הפרקים של והשלב הראשון של הסרטון ללמוד.
שניים, הגרעין
מי שרוצה להתחיל צריך לדלג תחילה על למידת הליבה וללמוד כיצד לכתוב נהגים ישירות.
כדי להפוך למאסטר, על הגרעין להיות בעל הבנה עמוקה. שים לב שאני מדבר על הבנה, אין לי שום תקווה בזבזנית לכתוב גרעין.
כדי להבין את מנגנון התזמון, מנגנון ניהול הזיכרון, מנגנון ניהול הקבצים וכו 'בפנים.
ממליץ על שני ספרים:
1. קרא, קרא את הספר הדק (החברה הצפה מדגישה מהירות)
2. בחר לקרוא, רוצה לדעת איזה קטע לקרוא איזה קטע
שלוש, סע
הנהג מורכב משני חלקים: הפעלת החומרה עצמה ומסגרת הנהג.
זו שוב החומרה. עדיין יש צורך להבין את התרשים הסכימטי ואת מדריך השבבים. תתאמן יותר. אם כבר מדברים על מסגרת הנהג, יש כמה ספרים כדי להציג אותה. LDD3, הספר שנכתב על ידי זר, מציג מושגים רבים וכדאי לקרוא אותו. עם זאת, תפקידה מוגבל להכנסת מושגים. בעצם השתמשתי בו בכדי להכיר את המושגים לפני תחילת העבודה ואז לזרוק אותם לאחר תחילת העבודה.
ההקדמה המקיפה יותר לנהג צריכה להיות של Song Baohua. למען האמת, קראתי רק את הקטלוג. אנשים רבים אמרו שכן, אני ממליץ על זה כאן.
אם אתה רוצה להבין אזור מסוים לעומק, זו בהחלט המלצה סופר של 5 כוכבים. אתה לא מצפה לקרוא אותו, יותר מ -1,800 עמודים, שני כרכים מעלה ומטה. כשאני לא בטוח לגבי אזור מסוים, אבדוק דרכו. כל חלק בספר זה יכול לכלול מאתיים או שלוש מאות עמודים, וזה מאוד מפורט. ולקחת אותך לנתח את קוד המקור של הליבה עם מטרה מסוימת. זה לוקח את לינוקס 2.4 כדוגמה, אך העיקרון זהה, והוא חל גם על גרסאות אחרות של לינוקס. יש היכרות אחרת? כמובן שיש את הגיליון השני של וי דונגשאן לינוקס וידאו. "המדריך השלם לפיתוח יישומי לינוקס משובץ" לא מדבר הרבה על הנהג, והוא לא מספיק מעמיק.
נסה לכתוב מנהל התקן לכל החומרה הכרוכה בלוח הפיתוח שלך. אם יש לך בעיה, עליך "לחשוב בכאב" קודם. בתהליך החשיבה תחבר הרבה ידע לא רלוונטי ולבסוף תעבור אותו.
רביעית, מערכת קבצי השורש
האם אי פעם חשבת על שתי השאלות האלה:
1. עבור המוצרים המיוצרים על ידי לינוקס, חלקם משמשים לניטור, חלקם משמשים לטלפונים ניידים, וחלקם משמשים כטאבלטים. אז לאחר הפעלת הליבה, לאחר הרכבת מערכת קבצי השורש, איזה יישום צריך להתחיל?
תשובה: הליבה לא יודעת או שלא אכפת לה איזו תוכנית משתמשים צריכה להפעיל. זה רק מפעיל את יישום ה- init, שמתאים ל- / sbin / init.
ברור שעל יישום זה לקרוא את קובץ התצורה ולהפעיל את תוכנית המשתמש (ניטור, ממשק ידני, ממשק טאבלט וכו ') בהתאם לקובץ התצורה. שאלה זו מזכירה לנו כי בתוכן מערכת הקבצים יש כמה מוסכמות, כגון / sbin / init, נדרש קובץ תצורה.
2. האם אי פעם חשבת מי מימש את ה- printf המשמש בתוכניות הלו והעולם שכתבת?
תשובה: פונקציה זו לא מיושמת על ידך, אלא על ידי פונקציית ספריה. כאשר הוא פועל, עליו למצוא את הספרייה.
שאלה זו מזכירה לנו שיש עדיין ספריות במערכת הקבצים. הנה שאלה ותשובה פשוטים. אם אתה רוצה לדעת יותר, אתה יכול להסתכל על init.c של תפוס התיבה כדי לדעת מה עושה תהליך init. כמובן, אתה יכול גם לראות את הפרק על בניית מערכת קבצי השורש ב- .
חוויית הלמידה שלי
1. כשלמדתי בבית הספר למדתי בפיזיקה ואלקטרוניקה. למעשה, לא לימדתי כיצד לעצב מעגלים בקורס, אלא רק לימדתי קצת ידע על מעגלים אלקטרוניים. את העיצוב של PCB לימדתי במעבדה. תכננתי רק לוח דו שכבתי, ועכשיו אני כמעט שוכח אותו. אך היא שומרת על היכולת לקרוא את התרשים הסכימטי ואת מדריך השבבים.
2. למדתי תואר בתוכנה, ואני מאוד מתעניין בעיצוב תוכנה, אך למדתי רק שפה C ומסד נתונים. עשיתי הרבה שאלות תחרות בעניין. אני לא יכול להשתתף בתחרות, אבל יש לי תרגול מוצק בשפה C.
3. במעבדה, בחברה הראשונה, תכננתי כמה כרטיסי PCI פשוטים וכתבתי את מנהל ההתקן של Windows
4. בחברה השנייה, באמצעות 51 מחשב מיקרו-שבב יחיד כטלפון לרכב, החלה לצאת לדרך של תוכנה טהורה.
5. התחלתי להרגיש את החסרונות של מחשב המיקרו-שבב היחיד. התפטרתי במשך חצי שנה כדי ללמוד לינוקס מאחורי דלתיים סגורות, והתחלתי כיצד להפעיל את הכובע האדום. השלב הוא להסתכל על זה תחילה, ואז לכתוב את תוכנית הלוח החשוף להפעלת החומרה, ואז לנתח את ה- u-boot. יחד עם זאת, יש לי הבנה מסוימת לגבי מסגרת LINUX.
בעת כתיבת לוחות חשופים, מומלץ לחזק את הבנת ההפרעות שלך. הליבה משתמשת בהפרעות להשלמת פונקציות שונות.
6. לאחר ניתוח u-boot, התחל בתכנות פשוט של מנהל ההתקן. בשלב זה היכולת עדיין חלשה מאוד.
7. התחיל לעבוד ב- ZTE, עבד שנתיים, כתב כל מיני נהגים, פתר כל מיני בעיות (בעיות נהיגה, עזרה באיתור בעיות יישום), והיכולת הייתה מתונה.
|
הזן דוא"ל כדי לקבל הפתעה
es.fmuser.org
it.fmuser.org
fr.fmuser.org
de.fmuser.org
af.fmuser.org -> אפריקאית
sq.fmuser.org -> אלבנית
ar.fmuser.org -> ערבית
hy.fmuser.org -> ארמנית
az.fmuser.org -> אזרבייג'נית
eu.fmuser.org -> באסקית
be.fmuser.org -> בלארוסית
bg.fmuser.org -> בולגרית
ca.fmuser.org -> קטלאנית
zh-CN.fmuser.org -> סינית (פשוטה)
zh-TW.fmuser.org -> סינית (מסורתית)
hr.fmuser.org -> קרואטית
cs.fmuser.org -> צ'כית
da.fmuser.org -> דנית
nl.fmuser.org -> הולנדית
et.fmuser.org -> אסטונית
tl.fmuser.org -> פיליפינית
fi.fmuser.org -> פינית
fr.fmuser.org -> צרפתית
gl.fmuser.org -> גליציאנית
ka.fmuser.org -> גרוזינית
de.fmuser.org -> גרמנית
el.fmuser.org -> יוונית
ht.fmuser.org -> קריאולית האיטי
iw.fmuser.org -> עברית
hi.fmuser.org -> הינדית
hu.fmuser.org -> הונגרית
is.fmuser.org -> איסלנדית
id.fmuser.org -> אינדונזית
ga.fmuser.org -> אירית
it.fmuser.org -> איטלקית
ja.fmuser.org -> יפנית
ko.fmuser.org -> קוריאנית
lv.fmuser.org -> לטבית
lt.fmuser.org -> ליטאי
mk.fmuser.org -> מקדונית
ms.fmuser.org -> מלאית
mt.fmuser.org -> מלטזית
no.fmuser.org -> נורווגית
fa.fmuser.org -> פרסית
pl.fmuser.org -> פולני
pt.fmuser.org -> פורטוגזית
ro.fmuser.org -> רומנית
ru.fmuser.org -> רוסית
sr.fmuser.org -> סרבית
sk.fmuser.org -> סלובקית
sl.fmuser.org -> סלובנית
es.fmuser.org -> ספרדית
sw.fmuser.org -> סווהילי
sv.fmuser.org -> שוודית
th.fmuser.org -> תאילנדי
tr.fmuser.org -> טורקית
uk.fmuser.org -> אוקראינית
ur.fmuser.org -> אורדו
vi.fmuser.org -> וייטנאמי
cy.fmuser.org -> וולשית
yi.fmuser.org -> יידיש
FMUSER Wirless להעביר וידאו ושמע קל יותר!
צרו קשר
כתובת:
No.305 חדר HuiLan בניין No.273 Huanpu כביש גואנגזו סין 510620
כל הקטגוריות
ניוזלטר