FMUSER бездротовий передавати відео та аудіо простіше!
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, і на цій основі ознайомтесь з їх інтерфейсами. Якщо ви вивчили ВК, потрібен час, щоб зрозуміти ці класи та елементи керування.
Якщо ви хочете вивчити основну систему, це моя спеціальність, але я можу сказати трохи.
Перш ніж відповісти на це питання, дозвольте мені відповісти: Багато людей запитують мене, це навчитися керувати автомобілем чи навчитися подавати заявку? Я можу лише сказати, що це базується на відсотках, а драйвери та програми не є повністю окремими.
1. Драйвери, про які ми говоримо, не обмежуються лише апаратними операціями, але також такими поняттями, як принципи операційної системи та планування режиму сну та сну. Якщо ви хочете написати хорошу заявку і хочете краще вирішити проблеми, з якими стикається програма, вам слід зрозуміти ці знання
2. Низькі бар'єри для застосування, особливо нинішній ANDROID, чистий JAVA. Я особисто вважаю, що шлях розробки додатків є досвідченим у бізнесі. Наприклад, у галузі зв’язку, індустрії IPTV та індустрії мобільних телефонів ви розумієте потреби галузі. Тому люди, які є лідерами, є переважно додатками.
3. Бути загнаним. Насправді, я не хочу називати це "бути драйвером", але хочу називати це "системою низького рівня". Після цього це вб’є всі галузі. Я працював кілька років і займався мобільними телефонами, IPTV та конференц-телебаченням, але ці продукти не мають для мене ніякої різниці, оскільки я роблю лише нижній шар. Їхній бізнес не має нічого спільного зі мною. Коли у додатку є проблема, і вони не можуть її вирішити, я дам їм уявлення з точки зору ядра та надам їм інструменти. Я особисто вважаю, що я технічний експерт у напрямку розвитку нижнього шару.
4. Насправді немає межі між виконанням нижнього шару або виконанням програми. Якщо у вас є досвід нижнього шару, ви будете почувати себе дуже спокійно, коли будете робити додаток. Маючи діловий досвід, ви можете пізнати нижній шар, і незабаром ви зможете сформувати команду.
Повернемося до питання, як вчитися. Що входить до вбудованої базової системи Linux? Не хвилюйтеся, ви це дізнаєтесь, подавши приклад.
1. Коли комп'ютер увімкнено, хто відображає ці інтерфейси? Це BIOS, що він робить? Деякі самоперевірки, потім прочитайте вікна з жорсткого диска і запустіть його. Подібним чином, цей BIOS відповідає завантажувачу у вбудованому Linux. Цей завантажувач повинен прочитати ядро Linux на Flash і запустити його.
2. Яка мета запуску вікон? Звичайно, це чат в Інтернеті чи щось інше. Де ці інструменти для Інтернету та чату? На приводі C та приводі D. Тому у вікнах спочатку слід ідентифікувати диск C та диск D. Ми називаємо це кореневою файловою системою під Linux.
3. Windows може розпізнати диск C та диск D, тому він повинен вміти читати та записувати жорсткий диск. Речі, що беруть участь, називаються водіями. Звичайно, це не тільки жорсткий диск, але і мережева карта, USB тощо. Вбудований Linux може читати та виконувати програми з Flash, і він також повинен мати драйвери Flash. Звичайно, це не просто Flash.
Поговоримо про це спочатку, вбудований LINUX містить чотири основні частини: завантажувач, ядро, драйвер та кореневу файлову систему.
Один, завантажувач
Це дещо складніша програма голих дощок. Але зрозуміти та написати цю програму без голови непросто. Корисні інструменти під Windows послаблюють наші можливості програмування.
Багато людей використовують ADS та KEIL, як тільки вони грають вбудовані. Чи можете ви відповісти на ці запитання?
1. Після ввімкнення живлення, де процесор отримує інструкції для виконання?
Відповідь: Як правило, інструкція від Flash.
2. Але Flash можна лише читати, а не писати безпосередньо. Якщо я використовую глобальні змінні, де ці глобальні змінні?
Відповідь: Глобальні змінні повинні бути в пам'яті
3. То хто закладає глобальні змінні в пам’ять?
Відповідь: Чи можете ви відповісти другові, який тривалий час використовував ADS та KEIL? Для цього потрібно «переїзд». В ADS або KEIL код переїзду пише вам компанія, яка виробляє ці інструменти. Ви коли-небудь читали це?
4. Пам'ять настільки велика, як я можу дізнатись, за якою адресою читати в пам'яті "вміст, який спочатку зберігався у Flash"?
Відповідь: Ця адреса визначається "сценарієм посилання", в ADS є файли розкидання, а в KEIL - подібні файли. Але, чи вивчали ви це?
5. Ви сказали, що переміщення - це копіювання програми з Flash у пам’ять, щоб ця програма могла читати Flash? Відповідь: Так, вам потрібно вміти працювати з Flash. Звичайно, не тільки ці, але й налаштування годинника, щоб система працювала швидше тощо. Давайте спочатку запитаємо і відповімо, завантажувач, програма без головної плати, насправді має три основні моменти:
1. Робота апаратного забезпечення
2. Розуміння процесорів системи ARM
3. Основні поняття програми: переміщення, стек, сегмент коду, сегмент даних, сегмент BSS тощо.
Для роботи апаратного забезпечення вам потрібно ознайомитися з принциповою схемою та інструкцією до мікросхеми. Це вимагає певної кількості апаратних знань. Для цього не потрібно вміти розробляти апаратне забезпечення, але принаймні розуміти його; для цього не потрібно мати можливості розуміти аналогові схеми, а розуміти цифрові схеми. Цього вміння я засвоїв у школі. Двох книг (назву книги я забув) досить. Але я сумніваюся, що у вас вистачає терпіння дочитати ці дві книги. Не знаю, чи існує зараз швидша книга. Якщо ви хочете зробити це швидко, спочатку відпустіть це, а якщо ви не розумієте, просто запитайте в Google і опублікуйте.
Крім того, керівництво з чіпів потрібно читати, не шукайте китайської мови, а лише англійської. Спочатку було дуже боляче, але пізніше, коли граматика та словниковий запас знайомі, прочитати будь-який посібник із чіпів легко.
Для розуміння процесорів ARM-системи, будь ласка, зверніться до Du Chunlei's. У ньому йдеться про інструкції щодо складання, режими винятків, MMU тощо. Тільки ці 3 частини вмісту потрібно, щоб ви зрозуміли.
Основною концепцією програми, звичайно, король є розгляд принципів складання. На жаль, цей тип книг, безумовно, є небесним книжковим рівнем. Раджу не дивитись його, якщо ви не супер геній. Просто спостерігайте за і перше відео, яке я написав, не хвилюйтеся, не витрачайте гроші. Після відео та проведення експериментів, пов’язаних з апаратним забезпеченням, ці концепції стануть зрозумілими. Я не знайшов другого набору книг чи відео, які б розповідали про ці поняття, що дозволило б мені похвалитися ним наосліп. Для завантажувача я спочатку дивився його, коли навчався, а потім сам написав програму та провів усі експерименти на різному обладнанні, наприклад, GPIO, годиннику, SDRAM, UART та NAND. Якщо ви зрозуміли їх, легко зрозуміти u-boot, об’єднавшись у групи. Підводячи підсумок, щоб зрозуміти принципову схему обладнання та інструкцію до мікросхеми, вам потрібно знайти інформацію самостійно. В іншому просто дотримуйтесь списку глав і перший етап відео для вивчення.
По-друге, ядро
Тим, хто хоче розпочати, спочатку слід пропустити вивчення ядра та навчитися писати драйвери безпосередньо.
Щоб стати майстром, ядро має глибоко розуміти. Зауважте, що я говорю про розуміння, я не маю екстравагантної надії написати ядро.
Щоб зрозуміти механізм планування, механізм управління пам’яттю, механізм управління файлами тощо всередині.
Рекомендуємо дві книги:
1. Прочитайте, будь ласка, прочитайте тонку книжку (Плавуче суспільство наголошує на швидкості)
2. Виберіть для читання, хочете знати, який розділ читати який розділ
Три, їзди
Драйвер складається з двох частин: роботи самого обладнання та каркасу драйвера.
Це знову апаратне забезпечення. Ще потрібно зрозуміти принципову схему та інструкцію до мікросхеми. Попрактикуйтесь більше. Якщо говорити про фреймворк драйверів, є кілька книг, щоб представити його. LDD3, книга, написана іноземцем, вводить багато понять і її варто прочитати. Однак його роль обмежується введенням понять. В основному я використовував його для ознайомлення з поняттями перед початком роботи, а потім викидав після початку.
Більш всебічне ознайомлення з водієм має бути для Сонґ Баохуа. Чесно кажучи, я читаю лише каталог. Багато людей сказали так, я рекомендую це тут.
Якщо ви хочете глибоко зрозуміти певну область, це, безумовно, супер 5-зіркова рекомендація. Ви не очікуєте прочитати його, більше 1,800 сторінок, два томи вгору та вниз. Коли я не впевнений у певній області, я перегляну її. Будь-яка частина цієї книги може охоплювати двісті-триста сторінок, що дуже детально. І взяти вас до аналізу вихідного коду ядра з певною метою. Для прикладу береться Linux 2.4, але принцип той самий, і він також застосовується до інших версій Linux. Будь-який інший вступ? Звичайно, є другий випуск Wei Dongshan Linux Video. У "Повному посібнику з розробки вбудованих додатків Linux" мало що розповідається про драйвер, і він недостатньо глибокий.
Спробуйте написати драйвер для всього обладнання, задіяного у вашій платі розробки. Якщо у вас проблема, вам слід спочатку «думати болісно». У процесі мислення ви зв’яжете багато неактуальних знань і нарешті отримаєте їх.
По-четверте, коренева файлова система
Ви коли-небудь замислювалися над цими двома запитаннями:
1. Щодо продуктів, виготовлених Linux, деякі використовуються для моніторингу, інші використовуються як мобільні телефони, а інші - як планшети. Отже, після запуску ядра, після монтування кореневої файлової системи, яку програму слід запустити?
Відповідь: Ядро не знає чи не цікавить, яку програму користувача слід запустити. Він лише запускає програму init, яка відповідає / sbin / init.
Очевидно, що ця програма повинна прочитати файл конфігурації та запустити програму користувача (моніторинг, інтерфейс вручну, інтерфейс планшета тощо) відповідно до файлу конфігурації. Це запитання нагадує нам, що вміст файлової системи має деякі домовленості, такі як / sbin / init, необхідний файл конфігурації.
2. Чи замислювались ви коли-небудь про те, хто впровадив printf, який використовується у написаних вами програмах hello та world?
Відповідь: Ця функція реалізована не вами, а функцією бібліотеки. Коли він запускається, він повинен знайти бібліотеку.
Це питання нагадує нам, що у файловій системі все ще є бібліотеки. Ось просте запитання та відповідь. Якщо ви хочете дізнатись більше, ви можете заглянути в init.c of busybox, щоб дізнатись, що робить процес init. Звичайно, ви також можете побачити розділ про побудову кореневої файлової системи в .
Мій досвід навчання
1. Коли я навчався в школі, я здобув спеціальність фізики та електроніки. Насправді я не навчав, як проектувати схеми на курсі, а лише викладав деякі знання про електронні схеми. Конструювання друкованих плат викладав сам у лабораторії. Я розробив лише 2-шарову дошку, і зараз я майже її забуваю. Але він зберігає можливість читати принципову схему та інструкцію до мікросхеми.
2. Я здобув диплом програмного забезпечення і мене дуже цікавить дизайн програмного забезпечення, але я вивчив лише мову C та базу даних. Я цікаво ставив багато конкурсних питань. Я не можу взяти участь у конкурсі, але я маю солідну мовну практику на мові C.
3. У лабораторії, в першій компанії, я розробив кілька простих PCI-карт і написав драйвер для Windows
4. У другій компанії, використовуючи 51 однокристальний мікрокомп'ютер як автомобільний телефон, почали виходити на шлях чистого програмного забезпечення.
5. Я почав відчувати недоліки одночипового мікрокомп'ютера. Я звільнився на півроку, щоб вивчати Linux за закритими дверима, починаючи з того, як керувати червоною шапкою. Крок полягає в тому, щоб спочатку подивитися на нього, потім написати програму голої плати для роботи з обладнанням, а потім проаналізувати u-boot. У той же час я трохи розумію фреймворк LINUX.
Пишучи голі дошки, рекомендується посилити розуміння переривань. Ядро використовує переривання для виконання різних функцій.
6. Проаналізувавши u-boot, почніть просте програмування драйверів. В цей час здатність ще дуже слабка.
7. Почав працювати в ZTE, працював 2 роки, писав всілякі драйвери, вирішував усілякі проблеми (проблеми з водінням, допомагав знаходити проблеми з додатками), і здатність була загартована.
|
Введіть електронну адресу, щоб отримати сюрприз
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 бездротовий передавати відео та аудіо простіше!
Контакти
Адреса:
No.305 Кімната HuiLan Будівля No273 Huanpu Road Гуанчжоу Китай 510620
Категорії
Інформаційний бюлетень