FMUSER Bezdrátový přenos videa a zvuku snadnější!
es.fmuser.org
it.fmuser.org
fr.fmuser.org
de.fmuser.org
af.fmuser.org -> afrikánština
sq.fmuser.org -> albánština
ar.fmuser.org -> arabština
hy.fmuser.org -> Arménský
az.fmuser.org -> Ázerbájdžánština
eu.fmuser.org -> baskičtina
be.fmuser.org -> běloruský
bg.fmuser.org -> Bulgarian
ca.fmuser.org -> Katalánština
zh-CN.fmuser.org -> čínština (zjednodušená)
zh-TW.fmuser.org -> Čínsky (zjednodušeně)
hr.fmuser.org -> chorvatština
cs.fmuser.org -> čeština
da.fmuser.org -> dánština
nl.fmuser.org -> Dutch
et.fmuser.org -> estonština
tl.fmuser.org -> filipínský
fi.fmuser.org -> finština
fr.fmuser.org -> French
gl.fmuser.org -> galicijština
ka.fmuser.org -> gruzínština
de.fmuser.org -> němčina
el.fmuser.org -> Greek
ht.fmuser.org -> haitská kreolština
iw.fmuser.org -> hebrejština
hi.fmuser.org -> hindština
hu.fmuser.org -> Hungarian
is.fmuser.org -> islandština
id.fmuser.org -> Indonéština
ga.fmuser.org -> Irština
it.fmuser.org -> Italian
ja.fmuser.org -> japonština
ko.fmuser.org -> korejština
lv.fmuser.org -> lotyština
lt.fmuser.org -> Litevština
mk.fmuser.org -> makedonština
ms.fmuser.org -> Malajština
mt.fmuser.org -> maltština
no.fmuser.org -> Norwegian
fa.fmuser.org -> perština
pl.fmuser.org -> polština
pt.fmuser.org -> portugalština
ro.fmuser.org -> Rumunština
ru.fmuser.org -> ruština
sr.fmuser.org -> srbština
sk.fmuser.org -> slovenština
sl.fmuser.org -> Slovinština
es.fmuser.org -> španělština
sw.fmuser.org -> svahilština
sv.fmuser.org -> švédština
th.fmuser.org -> Thai
tr.fmuser.org -> turečtina
uk.fmuser.org -> ukrajinština
ur.fmuser.org -> urdština
vi.fmuser.org -> Vietnamská
cy.fmuser.org -> velština
yi.fmuser.org -> Jidiš
Pro vývoj aplikací: jazyk C, datovou strukturu, JAVA atd. Je třeba se dobře naučit. Při vývoji vestavěných aplikací a při vývoji aplikací na PC není třeba věnovat zvláštní pozornost. Možná si říkáte, že potřebujete optimalizovat vestavěný systém, ano, musíte optimalizovat, ale neoptimalizovaný program se neliší od vývoje programu na PC. Kromě toho, když máte možnost optimalizovat, už nejste zvyklí na tuto otázku. Pro konkrétní příklad, jako je vývojové rozhraní, používáme VC na PC; ve vestavěném systému Linux můžeme používat QT a Android. V tuto chvíli byste se měli naučit programování QT a Android. Základem je ale stále C nebo JAVA a na tomto základě se seznamte s jejich rozhraními. Pokud jste se naučili VC, pochopení těchto tříd a ovládacích prvků vyžaduje čas.
Pokud se chcete naučit základní systém, je to moje specializace, ale mohu říct trochu.
Před odpovědí na tuto otázku mi dovolte odpovědět: Mnoho lidí se mě ptá, je to naučit se řídit nebo naučit se aplikovat? Mohu jen říci, že je to založeno na zájmu a ovladače a aplikace nejsou úplně oddělené.
1. Ovladače, o kterých mluvíme, se neomezují pouze na hardwarové operace, ale také na koncepty, jako jsou principy operačního systému a plánování spánku a probuzení. Pokud chcete napsat dobrou aplikaci a chcete lépe vyřešit problémy, se kterými se aplikace setkává, měli byste těmto znalostem porozumět
2. Nízké překážky v aplikaci, zejména současný ANDROID, čistá JAVA. Osobně si myslím, že cesta vývoje aplikací je v podnikání zdatná. Například v odvětví komunikací, průmyslu IPTV a průmyslu mobilních telefonů chápete potřeby tohoto odvětví. Lidé, kteří jsou vůdci, jsou tedy většinou aplikace.
3. Buďte vedeni. Ve skutečnosti to nechci nazývat „být řidičem“, ale chci to nazývat „být nízkoúrovňovým systémem“. Jakmile to uděláte, zabije to všechna odvětví. Pracoval jsem několik let a vyráběl jsem mobilní telefony, IPTV a konferenční televizi, ale tyto produkty pro mě nemají žádný rozdíl, protože dělám pouze spodní vrstvu. Jejich podnikání se mnou nemá nic společného. Když nastane problém s aplikací a nemohou jej vyřešit, představím jim představu z pohledu jádra a poskytnu jim nástroje. Osobně si myslím, že jsem technický odborník ve směru vývoje spodní vrstvy.
4. Ve skutečnosti neexistuje hranice mezi provedením spodní vrstvy nebo provedením aplikace. Pokud máte zkušenosti se spodní vrstvou, budete se při aplikaci cítit velmi dobře. Díky obchodním zkušenostem můžete poznat spodní vrstvu a brzy budete moci vytvořit tým.
Zpět k otázce, jak se učit. Co je součástí zabudovaného systému Linux? Nebojte se, poznáte to na příkladu.
1. Kdo je při zapnutí počítače, kdo zobrazuje tato rozhraní? Je to BIOS, co dělá? Některé samokontroly, poté načtěte okna z pevného disku a spusťte je. Podobně tento BIOS odpovídá bootloaderu ve vestavěném systému Linux. Tento bootloader potřebuje přečíst jádro Linuxu na Flashi a spustit jej.
2. Jaký je účel spouštění oken? Samozřejmě je to online chatování nebo tak něco. Kde jsou tyto nástroje pro internet a chat? Na jednotce C a jednotce D. Proto musí Windows nejprve identifikovat jednotku C a jednotku D. Říkáme tomu kořenový souborový systém pod Linuxem.
3. Systém Windows dokáže rozpoznat jednotku C a jednotku D, takže musí být schopen číst a zapisovat na pevný disk. Zúčastněné věci se nazývají řidiči. Samozřejmě to není jen pevný disk, ale také síťová karta, USB atd. Integrovaný Linux dokáže číst a spouštět aplikace z Flash a musí mít také ovladače Flash. Samozřejmě to není jen Flash.
Nejprve si o tom promluvme, vestavěný LINUX obsahuje čtyři hlavní části: bootloader, jádro, ovladač a kořenový souborový systém.
Jeden, bootloader
Je to o něco komplikovanější program na palubě. Není však snadné pochopit a napsat tento holý program. Užitečné nástroje pod Windows oslabují naše programovací schopnosti.
Mnoho lidí používá reklamy a KEIL, jakmile hrají vložené. Můžete odpovědět na tyto otázky?
1. Kde je CPU po zapnutí, kde načítá instrukce k provedení?
Odpověď: Obecně je instrukce z Flash.
2. Flash však lze pouze číst, nikoli přímo zapisovat. Pokud používám globální proměnné, kde jsou tyto globální proměnné?
Odpověď: Globální proměnné by měly být v paměti
3. Kdo tedy ukládá globální proměnné do paměti?
Odpověď: Můžete odpovědět příteli, který dlouhodobě používá REKLAMY a KEIL? To vyžaduje „přemístění“. V ADS nebo KEIL je kód pro přemístění napsán společností, která tyto nástroje vyrábí. Četli jste to někdy?
4. Paměť je tak velká, jak poznám, na kterou adresu mám číst „obsah původně uložený ve Flashi“ do paměti?
Odpověď: Tato adresa je určena odkazovým skriptem, v ADS jsou rozptýlené soubory a podobné soubory v KEIL. Ale studovali jste to?
5. Řekli jste, že přemístěním je zkopírovat program z Flash do paměti, aby tento program mohl číst Flash? Odpověď: Ano, musíte být schopni ovládat Flash. Samozřejmě nejen to, ale také nastavení hodin, aby systém běžel rychleji a tak dále. Pojďme se nejprve zeptat a odpovědět, bootloader, program s volnou deskou, má ve skutečnosti tři hlavní body:
1. Provozování hardwaru
2. Porozumění procesorům systému ARM
3. Základní pojmy programu: přemístění, zásobník, segment kódu, datový segment, segment BSS atd.
Pro fungování hardwaru je třeba vidět schematické schéma a příručku k čipu. To vyžaduje určité množství hardwarových znalostí. Nevyžaduje to, abyste byli schopni navrhovat hardware, ale alespoň tomu rozumět; nevyžaduje schopnost porozumět analogovým obvodům, ale porozumět číslicovým obvodům. Tuto schopnost jsem se naučil ve škole. Dvě knihy (název knihy, kterou jsem zapomněl) jsou dost. Ale pochybuji, že máte trpělivost dokončit čtení těchto dvou knih. Nevím, jestli existuje rychlejší kniha. Pokud to chcete zrychlit, nejdříve to pusťte, a pokud tomu nerozumíte, zeptejte se Google a pošlete příspěvek.
Kromě toho si musíte přečíst příručku k čipu, nehledejte čínštinu, stačí se podívat na angličtinu. Zpočátku to bylo velmi bolestivé, ale později, jakmile se seznámíte s gramatikou a slovní zásobou, je snadné číst jakýkoli manuál k čipům.
Informace o procesorech systému ARM najdete v Du Chunlei's. Hovoří o montážních pokynech, režimech výjimek, MMU atd. Jen těmto 3 částem obsahu musíte rozumět.
Základní koncepcí programu je, samozřejmě, král se podívat na principy kompilace. Bohužel je tento typ knih rozhodně na nebeské úrovni. Doporučuji vám, abyste se na to nedívali, pokud nejste super geniální. Jen sledujte a první video, které jsem napsal, nebojte se, neutrácejte peníze. Po videu a provádění experimentů souvisejících s hardwarem budou tyto koncepty jasné. Nenašel jsem druhou sadu knih nebo videí, které hovoří o těchto konceptech, což mi dovoluje chlubit se tím slepě. U bootloaderu jsem to nejprve sledoval, když jsem studoval, a poté jsem program napsal sám a provedl všechny experimenty na různých hardwarech, jako jsou GPIO, hodiny, SDRAM, UART a NAND. Pokud je objasníte, je snadné pochopit u-boot seskupením. Abychom to shrnuli, abyste porozuměli schématu hardwaru a příručce k čipu, musíte si tyto informace vyhledat sami. U ostatních postupujte podle seznamu kapitol a první fáze videa, která se má naučit.
Dva, jádro
Ti, kteří chtějí začít, by měli nejprve přeskočit učení jádra a naučit se přímo psát ovladače.
Aby se jádro stalo mistrem, musí mít hluboké porozumění. Všimněte si, že mluvím o porozumění, nemám žádnou extravagantní naději, že napíšu jádro.
Abychom pochopili mechanismus plánování, mechanismus správy paměti, mechanismus správy souborů atd. Uvnitř.
Doporučte dvě knihy:
1. Přečtěte si, prosím, přečtěte si tenkou knihu (Plovoucí společnost zdůrazňuje rychlost)
2. Zvolte čtení, chcete vědět, kterou sekci si chcete přečíst
Tři, řídit
Ovladač se skládá ze dvou částí: fungování samotného hardwaru a rámce ovladače.
Je to opět hardware. Stále je nutné porozumět schematickému diagramu a příručce k čipu. Procvičujte více. Když už mluvíme o architektuře ovladačů, je zde několik knih, které ji mohou představit. Kniha LDD3, kterou napsal cizinec, představuje mnoho konceptů a stojí za přečtení. Jeho role je však omezena na zavádění konceptů. V podstatě jsem to využil k seznámení se s koncepty, než jsem začal, a poté, co jsem začal, to vyhodil.
Komplexnějším úvodem do ovladače by měl být Song Baohua. Abych byl upřímný, četl jsem jen katalog. Mnoho lidí řeklo ano, doporučuji to zde.
Pokud chcete porozumět určité oblasti do hloubky, je to určitě super 5hvězdičkové doporučení. Neočekáváte, že si ji přečtete, více než 1,800 2.4 stránek, dva svazky nahoru a dolů. Když si nejsem jistý určitou oblastí, prohlédnu ji. Každá část této knihy může pokrýt dvě nebo tři sta stran, což je velmi podrobné. A vzít vás k analýze zdrojového kódu jádra s určitým cílem. Jako příklad si vezme linux XNUMX, ale princip je stejný a je použitelný i pro jiné verze linuxu. Nějaké další úvody? Samozřejmě existuje druhé číslo Wei Dongshan Linux Video. „Kompletní příručka pro vývoj vestavěných aplikací pro Linux“ příliš nehovoří o ovladači a není dostatečně podrobná.
Zkuste napsat ovladač pro veškerý hardware obsažený ve vaší vývojové desce. Pokud máte problém, měli byste nejprve „myslet bolestně“. V procesu myšlení propojíte spoustu nepodstatných znalostí a nakonec je projdete.
Za čtvrté, kořenový souborový systém
Přemýšleli jste někdy o těchto dvou otázkách:
1. U produktů vyrobených systémem Linux se některé používají ke sledování, jiné jako mobilní telefony a jiné jako tablety. Po spuštění jádra, po připojení kořenového systému souborů, která aplikace by měla být spuštěna?
Odpověď: Jádro neví nebo je mu jedno, který uživatelský program by měl být spuštěn. Spustí pouze aplikaci init, která odpovídá / sbin / init.
Je zřejmé, že tato aplikace musí číst konfigurační soubor a spustit uživatelský program (monitorování, manuální rozhraní, rozhraní tabletu atd.) Podle konfiguračního souboru. Tato otázka nám připomíná, že obsah souborového systému má určité konvence, například / sbin / init, je vyžadován konfigurační soubor.
2. Přemýšleli jste někdy o tom, kdo implementoval printf použitý v ahoj a světových programech, které jste napsali?
Odpověď: Tuto funkci neimplementujete vy, ale funkce knihovny. Když běží, musí najít knihovnu.
Tato otázka nám připomíná, že v systému souborů stále existují knihovny. Zde je jednoduchá otázka a odpověď. Pokud se chcete dozvědět více, můžete se podívat na init.c z busybox a zjistit, co proces init dělá. Samozřejmě můžete také vidět kapitolu o budování kořenového souborového systému v .
Moje zkušenost s učením
1. Když jsem byl ve škole, obor fyzika a elektronika. Ve skutečnosti jsem v kurzu neučil, jak navrhovat obvody, ale učil jsem jen některé znalosti o elektronických obvodech. Návrh desek plošných spojů jsem učil sám v laboratoři. Navrhl jsem pouze 2vrstvou desku a teď na ni téměř zapomenu. Zachovává si však schopnost číst schematický diagram a příručku k čipu.
2. Vystudoval jsem software a velmi mě zajímá design softwaru, ale naučil jsem se pouze jazyk C a databázi. Se zájmem jsem udělal spoustu soutěžních otázek. Nemohu se soutěže zúčastnit, ale mám dobrou jazykovou praxi v jazyce C.
3. V laboratoři jsem v první společnosti navrhl několik jednoduchých karet PCI a napsal ovladač systému Windows
4. Ve druhé společnosti, která jako autotelefon použila 51 jednočipových mikropočítačů, se začala vydávat na cestu čistého softwaru.
5. Začal jsem pociťovat nedostatky jednočipového mikropočítače. Na půl roku jsem rezignoval, abych se naučil Linux za zavřenými dveřmi, počínaje tím, jak ovládat red hat. Krokem je nejprve se na to podívat, poté napsat program bare board pro ovládání hardwaru a poté analyzovat u-boot. Zároveň trochu rozumím rámci LINUX.
Při psaní nahých desek se doporučuje lépe porozumět přerušení. Jádro používá přerušení k dokončení různých funkcí.
6. Po analýze u-boot spusťte jednoduché programování ovladačů. V tuto chvíli je schopnost stále velmi slabá.
7. Začal pracovat v ZTE, pracoval 2 roky, psal všechny druhy ovladačů, řešil všechny druhy problémů (problémy s řízením, pomáhal lokalizovat problémy s aplikací) a schopnost byla zmírněna.
|
Zadejte e-mail a získejte překvapení
es.fmuser.org
it.fmuser.org
fr.fmuser.org
de.fmuser.org
af.fmuser.org -> afrikánština
sq.fmuser.org -> albánština
ar.fmuser.org -> arabština
hy.fmuser.org -> Arménský
az.fmuser.org -> Ázerbájdžánština
eu.fmuser.org -> baskičtina
be.fmuser.org -> běloruský
bg.fmuser.org -> Bulgarian
ca.fmuser.org -> Katalánština
zh-CN.fmuser.org -> čínština (zjednodušená)
zh-TW.fmuser.org -> Čínsky (zjednodušeně)
hr.fmuser.org -> chorvatština
cs.fmuser.org -> čeština
da.fmuser.org -> dánština
nl.fmuser.org -> Dutch
et.fmuser.org -> estonština
tl.fmuser.org -> filipínský
fi.fmuser.org -> finština
fr.fmuser.org -> French
gl.fmuser.org -> galicijština
ka.fmuser.org -> gruzínština
de.fmuser.org -> němčina
el.fmuser.org -> Greek
ht.fmuser.org -> haitská kreolština
iw.fmuser.org -> hebrejština
hi.fmuser.org -> hindština
hu.fmuser.org -> Hungarian
is.fmuser.org -> islandština
id.fmuser.org -> Indonéština
ga.fmuser.org -> Irština
it.fmuser.org -> Italian
ja.fmuser.org -> japonština
ko.fmuser.org -> korejština
lv.fmuser.org -> lotyština
lt.fmuser.org -> Litevština
mk.fmuser.org -> makedonština
ms.fmuser.org -> Malajština
mt.fmuser.org -> maltština
no.fmuser.org -> Norwegian
fa.fmuser.org -> perština
pl.fmuser.org -> polština
pt.fmuser.org -> portugalština
ro.fmuser.org -> Rumunština
ru.fmuser.org -> ruština
sr.fmuser.org -> srbština
sk.fmuser.org -> slovenština
sl.fmuser.org -> Slovinština
es.fmuser.org -> španělština
sw.fmuser.org -> svahilština
sv.fmuser.org -> švédština
th.fmuser.org -> Thai
tr.fmuser.org -> turečtina
uk.fmuser.org -> ukrajinština
ur.fmuser.org -> urdština
vi.fmuser.org -> Vietnamská
cy.fmuser.org -> velština
yi.fmuser.org -> Jidiš
FMUSER Bezdrátový přenos videa a zvuku snadnější!
Kontakt
Adresa:
Budova č. 305 Room HuiLan No.273 Huanpu Road Guangzhou Čína 510620
Kategorie
Newsletter