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 -> Italian
ja.fmuser.org -> японски
ko.fmuser.org -> корейски
lv.fmuser.org -> латвийски
lt.fmuser.org -> Литовски
mk.fmuser.org -> македонски
ms.fmuser.org -> малайски
mt.fmuser.org -> Малтийски
no.fmuser.org -> Norwegian
fa.fmuser.org -> персийски
pl.fmuser.org -> полски
pt.fmuser.org -> португалски
ro.fmuser.org -> Romanian
ru.fmuser.org -> руски
sr.fmuser.org -> сръбски
sk.fmuser.org -> словашки
sl.fmuser.org -> Словенски
es.fmuser.org -> испански
sw.fmuser.org -> суахили
sv.fmuser.org -> шведски
th.fmuser.org -> Thai
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. Всъщност няма граница между извършването на долния слой или прилагането. Ако имате опит с долния слой, ще се чувствате много спокойно, когато правите приложението. С бизнес опит можете да опознаете долния слой и скоро ще можете да сформирате екип.
Обратно към въпроса как да се учи. Какво е включено във вградената Linux система? Не се притеснявайте, ще го знаете, като дадете пример.
1. Когато компютърът е включен, кой показва тези интерфейси? Това е BIOS, какво прави? Някои самопроверки, след това прочетете прозорци от твърдия диск и го стартирайте. По същия начин този BIOS съответства на буутлоудъра във вградения Linux. Този буутлоудър трябва да прочете ядрото на Linux на Flash и да го стартира.
2. Каква е целта на стартирането на прозорци? Разбира се, това е онлайн чат или нещо подобно. Къде са тези инструменти за интернет и чат? На устройството C и D устройството. Следователно Windows трябва първо да идентифицира 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. Той говори за инструкции за сглобяване, режими на изключения, MMU и др. Само тези 3 части от съдържанието трябва да разберете.
Основната концепция на програмата, разбира се, царят е да разгледа принципите на компилацията. За съжаление този тип книги определено са на ниво небесна книга. Съветвам ви да не го гледате, освен ако не сте супер гений. Просто гледайте и първото видео, което написах, не се притеснявайте, не харчете пари. След видеото и експерименти, свързани с хардуера, тези концепции ще станат ясни. Не съм намерил втория набор от книги или видеоклипове, които говорят за тези концепции, което ми позволява да се хваля сляпо с него. За буутлоудъра първо го гледах, когато учех, а след това сам написах програмата и направих всички експерименти с различен хардуер, като GPIO, часовник, SDRAM, UART и NAND. Ако ги изясните, лесно е да разберете u-boot, като ги групирате заедно. За да обобщим, за да разберете схемата на хардуера и ръководството за чипа, трябва сами да намерите информацията. За останалото просто следвайте списъка с глави на и първата фаза на видеото, за да научите.
Второ, ядрото
Тези, които искат да започнат, трябва първо да пропуснат обучението по ядрото и да се научат как да пишат директно драйвери.
За да стане майстор, ядрото трябва да има дълбоко разбиране. Имайте предвид, че говоря за разбиране, нямам екстравагантна надежда да напиша ядро.
За да разберете механизма за планиране, механизъм за управление на паметта, механизъм за управление на файлове и др.
Препоръчайте две книги:
1. Прочетете, моля, прочетете тънката книга (Плаващото общество набляга на скоростта)
2. Изберете да четете, искате да знаете кой раздел да прочете кой раздел
Три, карайте
Драйверът се състои от две части: работата на самия хардуер и рамката на драйвера.
Отново е хардуерът. Все още е необходимо да се разбере схематичната диаграма и ръководството за чипа. Практикувайте повече. Говорейки за рамката на драйверите, има няколко книги, които да я въведат. LDD3, книгата, написана от чужденец, въвежда много понятия и си заслужава да бъде прочетена. Ролята му обаче е ограничена до въвеждане на понятия. По принцип го използвах, за да се запозная с концепциите, преди да започна, и след това да го изхвърля, след като започна.
По-изчерпателното въведение за водача трябва да бъде на Song Baohua. За да бъда честен, чета само каталога. Много хора казаха „да“, препоръчвам го тук.
Ако искате да разберете определена област в дълбочина, това определено е супер 5-звездна препоръка. Не очаквате да го прочетете, повече от 1,800 страници, два тома нагоре и надолу. Когато не съм сигурен за определена област, ще я разгледам. Всяка част от тази книга може да обхваща две или триста страници, което е много подробно. И да ви заведе да анализирате изходния код на ядрото с определена цел. Като пример се използва Linux 2.4, но принципът е същият и е приложим и за други версии на Linux. Някакви други въведения? Разбира се, има вторият брой на Wei Dongshan Linux Video. "Пълният наръчник за разработка на вградени Linux приложения" не говори много за драйвера и не е достатъчно задълбочен.
Опитайте се да напишете драйвер за целия хардуер, включен във вашата разработка. Ако имате проблем, първо трябва да „мислите болезнено“. В процеса на мислене ще свържете много неподходящи знания и накрая ще ги прекарате.
Четвърто, кореновата файлова система
Замисляли ли сте се някога за тези два въпроса:
1. За продуктите, произведени от Linux, някои се използват за мониторинг, други се използват като мобилни телефони, а други се използват като таблети. И така, след като ядрото е стартирано, след монтирането на кореновата файлова система кое приложение трябва да бъде стартирано?
Отговор: Ядрото не знае или не се интересува коя потребителска програма трябва да бъде стартирана. Стартира само приложението init, което съответства на / sbin / init.
Очевидно това приложение трябва да прочете конфигурационния файл и да стартира потребителската програма (мониторинг, ръчен интерфейс, таблетен интерфейс и т.н.) според конфигурационния файл. Този въпрос ни напомня, че съдържанието на файловата система има някои конвенции, като / sbin / init, необходим е конфигурационен файл.
2. Замисляли ли сте се някога кой е приложил printf, използван в здравните и световните програми, които сте написали?
Отговор: Тази функция не се изпълнява от вас, а от функция на библиотеката. Когато стартира, трябва да намери библиотеката.
Този въпрос ни напомня, че във файловата система все още има библиотеки. Ето един прост въпрос и отговор. Ако искате да научите повече, можете да разгледате init.c на busybox, за да знаете какво прави процесът на init. Разбира се, можете да видите и главата за изграждане на кореновата файлова система в .
Моят учебен опит
1. Когато бях в училище, завърших физика и електроника. Всъщност аз не преподавах как да проектирам схеми в курса, а само преподавах някои знания за електронните схеми. Дизайнът на печатни платки беше преподаван от мен в лабораторията. Проектирах само двуслойна дъска и сега почти я забравям. Но той запазва способността да чете схематичната диаграма и ръководството за чипа.
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 -> Italian
ja.fmuser.org -> японски
ko.fmuser.org -> корейски
lv.fmuser.org -> латвийски
lt.fmuser.org -> Литовски
mk.fmuser.org -> македонски
ms.fmuser.org -> малайски
mt.fmuser.org -> Малтийски
no.fmuser.org -> Norwegian
fa.fmuser.org -> персийски
pl.fmuser.org -> полски
pt.fmuser.org -> португалски
ro.fmuser.org -> Romanian
ru.fmuser.org -> руски
sr.fmuser.org -> сръбски
sk.fmuser.org -> словашки
sl.fmuser.org -> Словенски
es.fmuser.org -> испански
sw.fmuser.org -> суахили
sv.fmuser.org -> шведски
th.fmuser.org -> Thai
tr.fmuser.org -> турски
uk.fmuser.org -> украински
ur.fmuser.org -> урду
vi.fmuser.org -> Виетнамски
cy.fmuser.org -> уелски
yi.fmuser.org -> Идиш
FMUSER безжично предаване на видео и аудио по-лесно!
Контакти
Адрес
No.305 Стая HuiLan Сграда No.273 Huanpu Road Гуанджоу Китай 510620
Категории
Бюлетин