FMUSER bežični prijenos videa i zvuka lakše!
es.fmuser.org
it.fmuser.org
fr.fmuser.org
de.fmuser.org
af.fmuser.org -> afrikaans
sq.fmuser.org -> albanski
ar.fmuser.org -> arapski
hy.fmuser.org -> Armenski
az.fmuser.org -> azerbejdžanski
eu.fmuser.org -> baskijski
be.fmuser.org -> bjeloruski
bg.fmuser.org -> Bugarski
ca.fmuser.org -> katalonski
zh-CN.fmuser.org -> kineski (pojednostavljeni)
zh-TW.fmuser.org -> Kineski (tradicionalni)
hr.fmuser.org -> hrvatski
cs.fmuser.org -> češki
da.fmuser.org -> danski
nl.fmuser.org -> Nizozemski
et.fmuser.org -> estonski
tl.fmuser.org -> filipinski
fi.fmuser.org -> finski
fr.fmuser.org -> Francuski
gl.fmuser.org -> galicijski
ka.fmuser.org -> gruzijski
de.fmuser.org -> njemački
el.fmuser.org -> Grčki
ht.fmuser.org -> haićanski kreolski
iw.fmuser.org -> hebrejski
hi.fmuser.org -> hindski
hu.fmuser.org -> Mađarski
is.fmuser.org -> islandski
id.fmuser.org -> indonezijski
ga.fmuser.org -> irski
it.fmuser.org -> Talijanski
ja.fmuser.org -> japanski
ko.fmuser.org -> korejski
lv.fmuser.org -> latvijski
lt.fmuser.org -> Litvanski
mk.fmuser.org -> makedonski
ms.fmuser.org -> malajski
mt.fmuser.org -> malteški
no.fmuser.org -> Norveška
fa.fmuser.org -> perzijski
pl.fmuser.org -> poljski
pt.fmuser.org -> portugalski
ro.fmuser.org -> Rumunjski
ru.fmuser.org -> ruski
sr.fmuser.org -> srpski
sk.fmuser.org -> slovački
sl.fmuser.org -> Slovenski
es.fmuser.org -> španjolski
sw.fmuser.org -> svahili
sv.fmuser.org -> švedski
th.fmuser.org -> Tajlandski
tr.fmuser.org -> turski
uk.fmuser.org -> ukrajinski
ur.fmuser.org -> urdu
vi.fmuser.org -> Vijetnamski
cy.fmuser.org -> velški
yi.fmuser.org -> Jidiš
Za razvoj aplikacija: C jezik, strukturu podataka, JAVA, itd. Treba dobro naučiti. Ne postoji ništa posebno na što treba obratiti pažnju u razvoju ugrađenih aplikacija i razvoju aplikacija na računalu. Možda kažete da trebate optimizirati ugrađeni sustav, da, trebate optimizirati, ali neoptimizirani program se ne razlikuje od razvoja programa na računalu. Uz to, kad imate mogućnost optimizacije, više niste naviknuti postavljati ovo pitanje. Za određeni primjer, poput razvojnog sučelja, koristimo VC na računalu; u ugrađenom Linuxu možemo koristiti QT i Android. U ovom trenutku trebali biste naučiti QT i Android programiranje. Ali temelj je još uvijek C ili JAVA i na toj osnovi upoznajte se s njihovim sučeljima. Ako ste naučili VC, treba vremena da biste razumjeli te klase i kontrole.
Ako želite naučiti temeljni sustav, ovo je moja specijalnost, ali mogu reći malo.
Prije odgovora na ovo pitanje, dopustite mi da odgovorim: Mnogi me ljudi pitaju, je li to naučiti voziti ili naučiti se prijavljivati? Mogu samo reći da se temelji na interesu, a upravljački programi i aplikacije nisu potpuno odvojeni.
1. Upravljački programi o kojima govorimo nisu ograničeni na hardverske operacije, već i na koncepte kao što su principi operativnog sustava i planiranje spavanja i buđenja. Ako želite napisati dobru prijavu i želite bolje riješiti probleme s kojima se aplikacija susreće, trebali biste razumjeti ovo znanje
2. Niske prepreke za primjenu, posebno trenutni ANDROID, čisti JAVA. Osobno mislim da je put razvoja aplikacija vješt u poslu. Na primjer, u industriji komunikacija, industriji IPTV-a i industriji mobilnih telefona razumijete potrebe industrije. Stoga su ljudi koji su vođe uglavnom aplikacije.
3. Biti vožen. Zapravo, ne želim to nazvati "biti vozač", ali želim to nazvati "sustavom niske razine". Jednom učinjeno, to će ubiti sve industrije. Radio sam nekoliko godina i radio sam mobilne telefone, IPTV i konferencijsku televiziju, ali ovi proizvodi za mene ne čine razliku jer radim samo donji sloj. Njihov posao nema nikakve veze sa mnom. Kada postoji problem s aplikacijom i oni ga ne mogu riješiti, dat ću im ideju iz perspektive jezgre i pružiti im alate. Osobno mislim da sam tehnički stručnjak u smjeru razvoja donjeg sloja.
4. Zapravo, ne postoji granica između nanošenja donjeg sloja ili nanošenja aplikacije. Ako imate iskustvo s donjim slojem, osjećat ćete se vrlo ugodno kad napravite aplikaciju. S poslovnim iskustvom možete upoznati donji sloj i uskoro ćete moći formirati tim.
Povratak na pitanje kako učiti. Što je uključeno u ugrađeni Linux sustav koji se temelji? Ne brinite, znat ćete to dajući primjer.
1. Kada je računalo uključeno, tko prikazuje ta sučelja? To je BIOS, čime se bavi? Neke samokontrole, zatim pročitajte prozore s tvrdog diska i pokrenite ga. Slično tome, ovaj BIOS odgovara pokretaču u ugrađenom Linuxu. Ovaj pokretač mora pročitati Linux kernel na Flashu i pokrenuti ga.
2. Koja je svrha pokretanja prozora? Naravno da je to internetsko čavrljanje ili nešto slično. Gdje su ovi alati za Internet i chat? Na pogonu C i D. Stoga Windows prvo mora identificirati C pogon i D pogon. Zovemo ga korijenski sustav datoteka pod Linuxom.
3. Windows može prepoznati C pogon i D pogon, tako da mora moći čitati i pisati tvrdi disk. Uključene stvari nazivaju se vozačima. Naravno, to nije samo tvrdi disk, već i mrežna kartica, USB itd. Ugrađeni Linux može čitati i izvršavati programe s Flasha, a mora imati i Flash upravljačke programe. Naravno, nije samo Flash.
Prvo razgovarajmo o tome, ugrađeni LINUX sadrži četiri glavna dijela: bootloader, kernel, pokretački program i korijenski sustav datoteka.
Jedan, bootloader
Riječ je o malo kompliciranijem programu golih ploča. Ali nije lako razumjeti i napisati ovaj program bez ploča. Korisni alati pod Windowsom oslabljuju našu sposobnost programiranja.
Mnogi ljudi koriste ADS i KEIL čim igraju ugrađeni. Možeš li odgovoriti na ova pitanja?
1. Gdje CPU dohvaća upute za izvršenje nakon uključivanja napajanja?
Odgovor: Općenito je uputa iz Flasha.
2. Ali Flash se može čitati, a ne izravno pisati. Ako koristim globalne varijable, gdje su te globalne varijable?
Odgovor: Globalne varijable trebaju biti u memoriji
3. Pa, tko globalne varijable stavlja u memoriju?
Odgovor: Možete li odgovoriti prijatelju koji već dugo koristi ADS i KEIL? To zahtijeva "preseljenje". U ADS-u ili KEIL-u kôd za preseljenje napisala je tvrtka koja proizvodi ove alate. Jeste li ga ikad pročitali?
4. Memorija je toliko velika, kako mogu znati koju adresu u memoriju pročitati "sadržaj izvorno pohranjen u Flash-u"?
Odgovor: Ova se adresa određuje "skriptom veze", u ADS-u postoje raspršene datoteke i slične datoteke u KEIL-u. Ali, jeste li to proučavali?
5. Rekli ste da je preseljenje kopiranje programa s Flasha u memoriju, tako da ovaj program može čitati Flash? Odgovor: Da, morate biti u mogućnosti upravljati Flashom. Naravno ne samo ove, već i podešavanje sata kako bi sustav brže radio i tako dalje. Pitajmo i odgovorimo ovdje prvo, bootloader, program bez matične ploče, zapravo ima tri glavne točke:
1. Rad hardvera
2. Razumijevanje procesora ARM sustava
3. Osnovni koncepti programa: preseljenje, skup, segment koda, segment podataka, BSS segment i tako dalje.
Za rad hardvera morate vidjeti shematski dijagram i priručnik za čip. To zahtijeva određenu količinu hardverskog znanja. Ne treba vam sposobnost dizajniranja hardvera, ali barem da biste ga razumjeli; ne zahtijeva sposobnost razumijevanja analognih sklopova, već razumijevanje digitalnih sklopova. Tu sam sposobnost naučio u školi. Dvije knjige (naslov knjige sam zaboravio) su dovoljne. Ali sumnjam da imate strpljenja dovršiti čitanje ove dvije knjige. Ne znam postoji li sada brža knjiga. Ako želite ubrzati, prvo pustite ovo, a ako ne razumijete, samo pitajte Google i objavite.
Uz to se mora pročitati priručnik za čip, nemojte tražiti kineski, već samo engleski. U početku je bilo vrlo bolno, ali kasnije, nakon što se upoznaju gramatika i rječnik, lako je pročitati bilo koji priručnik za čipove.
Za razumijevanje procesora ARM sustava, molimo pogledajte Du Chunlei's. Govori o uputama za montažu, načinima izuzetaka, MMU-u itd. Samo ova 3 dijela sadržaja morate razumjeti.
Osnovni koncept programa, naravno, kralj je sagledavanje načela sastavljanja. Nažalost, ova vrsta knjiga definitivno je na nebeskoj razini. Savjetujem vam da ga ne gledate, osim ako niste super genij. Samo pazi na i prvi video koji sam napisao, ne brinite, ne trošite novac. Nakon videozapisa i eksperimenata povezanih s hardverom, ovi će koncepti postati jasni. Nisam pronašao drugi set knjiga ili videozapisa koji govore o tim konceptima, što mi omogućuje slijepo hvalisanje. Za bootloader sam ga prvo gledao dok sam studirao, a zatim sam sam napisao program i radio sve eksperimente na raznom hardveru, kao što su GPIO, sat, SDRAM, UART i NAND. Ako ih razjasnite, lako je razumjeti u-boot grupiranjem. Da sumiramo, da biste razumjeli shematski dijagram hardvera i priručnik za čip, podatke morate pronaći sami. Za ostalo, samo slijedite popis poglavlja i prva faza videozapisa za učenje.
Drugo, jezgra
Oni koji žele započeti, trebaju prvo preskočiti učenje jezgre i naučiti kako izravno pisati upravljačke programe.
Da bi postao master, jezgra mora duboko razumjeti. Imajte na umu da govorim o razumijevanju, nemam ekstravagantne nade da napišem kernel.
Da biste razumjeli mehanizam raspoređivanja, mehanizam za upravljanje memorijom, mehanizam za upravljanje datotekama itd. Iznutra.
Preporučite dvije knjige:
1. Pročitajte, pročitajte tanku knjigu (Plutajuće društvo naglašava brzinu)
2. Odaberite čitati, želite znati koji odjeljak pročitati koji odjeljak
Tri, vozi
Upravljački program sastoji se od dva dijela: rada samog hardvera i okvira upravljačkog programa.
Opet je hardver. Još uvijek je potrebno razumjeti shematski dijagram i priručnik za čip. Vježbajte više. Govoreći o upravljačkom okviru, postoje neke knjige koje ga mogu predstaviti. LDD3, knjiga koju je napisao stranac, uvodi mnoge koncepte i vrijedi je pročitati. Međutim, njegova je uloga ograničena na uvođenje koncepata. U osnovi sam ga koristio da se upoznam s konceptima prije početka, a zatim ga bacim nakon početka.
Opsežniji uvod u vozača trebao bi biti Song Baohua. Da budem iskren, čitao sam samo katalog. Mnogi ljudi su rekli da, preporučujem ovdje.
Ako želite dublje razumjeti određeno područje, to je definitivno preporuka za super 5 zvjezdica. Ne očekujete da ćete ga pročitati, više od 1,800 stranica, dva sveska gore-dolje. Kad nisam siguran u određeno područje, pogledat ću ga. Bilo koji dio ove knjige može obuhvatiti dvjesto ili tristo stranica, što je vrlo detaljno. I da vas odvedem na analizu izvornog koda jezgre s određenim ciljem. Kao primjer uzima se Linux 2.4, ali princip je isti, a primjenjiv je i na druge verzije linuxa. Još neki uvod? Naravno, postoji i drugo izdanje Wei Dongshan Linux videa. "Kompletni priručnik za razvoj ugrađenih Linux aplikacija" ne govori puno o pokretačkom programu i nije dovoljno detaljan.
Pokušajte napisati upravljački program za sav hardver uključen u vašu razvojnu ploču. Ako imate problem, prvo biste trebali "bolno razmišljati". U procesu razmišljanja spojit ćete puno nebitnog znanja i napokon ga proći.
Četvrto, korijenski sustav datoteka
Jeste li ikad razmišljali o ova dva pitanja:
1. Za proizvode napravljene od Linuxa neki se koriste za nadzor, neki se koriste kao mobilni telefoni, a neki se koriste kao tableti. Dakle, nakon pokretanja jezgre, nakon montiranja korijenskog datotečnog sustava, koju aplikaciju treba pokrenuti?
Odgovor: Kernel ne zna ili ga nije briga koji korisnički program treba pokrenuti. Pokreće samo init aplikaciju koja odgovara / sbin / init.
Očito je da ovaj program mora pročitati konfiguracijsku datoteku i pokrenuti korisnički program (nadzor, ručno sučelje, sučelje tableta, itd.) U skladu s konfiguracijskom datotekom. Ovo nas pitanje podsjeća da sadržaj datotečnog sustava ima neke konvencije, kao što je / sbin / init, potrebna je konfiguracijska datoteka.
2. Jeste li ikad razmišljali o tome tko je implementirao printf koji se koristi u hello i svjetskim programima koje ste napisali?
Odgovor: Ovu funkciju ne provodite vi, već funkcija knjižnice. Kad se pokrene, mora pronaći knjižnicu.
Ovo nas pitanje podsjeća da u datotečnom sustavu još uvijek postoje knjižnice. Evo jednostavnog pitanja i odgovora. Ako želite znati više, možete pogledati init.c of busybox kako biste znali što postupak init čini. Naravno, poglavlje o izgradnji korijenskog sustava datoteka možete vidjeti i u .
Moje iskustvo učenja
1. Kad sam bio u školi, bavio sam se fizikom i elektronikom. Zapravo nisam predavao kako dizajnirati sklopove na tečaju, već sam predavao samo neko znanje o elektroničkim sklopovima. Dizajn PCB-a sam predavao u laboratoriju. Dizajnirao sam samo 2-slojnu ploču i sada je gotovo zaboravljam. Ali zadržava mogućnost čitanja shematskog dijagrama i priručnika za čip.
2. Diplomirao sam softver i jako me zanima dizajn softvera, ali naučio sam samo jezik C i bazu podataka. Mnogo sam natjecateljskih pitanja radio sa zanimanjem. Ne mogu sudjelovati u natjecanju, ali solidno vježbam C jezik.
3. U laboratoriju, u prvoj tvrtki, dizajnirao sam neke jednostavne PCI kartice i napisao upravljački program za Windows
4. U drugoj je tvrtki, koja je koristila 51 mikročip s jednim čipom kao automobil za telefon, krenula na put čistog softvera.
5. Počeo sam osjećati nedostatke mikročipa s jednim čipom. Dao sam ostavku na pola godine kako bih učio Linux iza zatvorenih vrata, počevši od toga kako upravljati crvenim šeširom. Korak je prvo to pogledati, zatim napisati program za golu ploču za upravljanje hardverom, a zatim analizirati u-boot. Istodobno, razumijem i okvir LINUX-a.
Kada pišete gole ploče, preporučuje se da ojačate svoje razumijevanje prekida. Kernel koristi prekide za dovršavanje različitih funkcija.
6. Nakon analize u-boot-a započnite s jednostavnim programiranjem upravljačkih programa. U ovom trenutku sposobnost je još uvijek vrlo slaba.
7. Počeo raditi u ZTE-u, radio dvije godine, napisao sve vrste upravljačkih programa, rješavao sve vrste problema (problemi s vožnjom, pomagao u pronalaženju problema s aplikacijama) i sposobnost je bila umanjena.
|
Unesite e-poštu da biste dobili iznenađenje
es.fmuser.org
it.fmuser.org
fr.fmuser.org
de.fmuser.org
af.fmuser.org -> afrikaans
sq.fmuser.org -> albanski
ar.fmuser.org -> arapski
hy.fmuser.org -> Armenski
az.fmuser.org -> azerbejdžanski
eu.fmuser.org -> baskijski
be.fmuser.org -> bjeloruski
bg.fmuser.org -> Bugarski
ca.fmuser.org -> katalonski
zh-CN.fmuser.org -> kineski (pojednostavljeni)
zh-TW.fmuser.org -> Kineski (tradicionalni)
hr.fmuser.org -> hrvatski
cs.fmuser.org -> češki
da.fmuser.org -> danski
nl.fmuser.org -> Nizozemski
et.fmuser.org -> estonski
tl.fmuser.org -> filipinski
fi.fmuser.org -> finski
fr.fmuser.org -> Francuski
gl.fmuser.org -> galicijski
ka.fmuser.org -> gruzijski
de.fmuser.org -> njemački
el.fmuser.org -> Grčki
ht.fmuser.org -> haićanski kreolski
iw.fmuser.org -> hebrejski
hi.fmuser.org -> hindski
hu.fmuser.org -> Mađarski
is.fmuser.org -> islandski
id.fmuser.org -> indonezijski
ga.fmuser.org -> irski
it.fmuser.org -> Talijanski
ja.fmuser.org -> japanski
ko.fmuser.org -> korejski
lv.fmuser.org -> latvijski
lt.fmuser.org -> Litvanski
mk.fmuser.org -> makedonski
ms.fmuser.org -> malajski
mt.fmuser.org -> malteški
no.fmuser.org -> Norveška
fa.fmuser.org -> perzijski
pl.fmuser.org -> poljski
pt.fmuser.org -> portugalski
ro.fmuser.org -> Rumunjski
ru.fmuser.org -> ruski
sr.fmuser.org -> srpski
sk.fmuser.org -> slovački
sl.fmuser.org -> Slovenski
es.fmuser.org -> španjolski
sw.fmuser.org -> svahili
sv.fmuser.org -> švedski
th.fmuser.org -> Tajlandski
tr.fmuser.org -> turski
uk.fmuser.org -> ukrajinski
ur.fmuser.org -> urdu
vi.fmuser.org -> Vijetnamski
cy.fmuser.org -> velški
yi.fmuser.org -> Jidiš
FMUSER bežični prijenos videa i zvuka lakše!
Kontakt
Adresa:
Br. 305 Soba HuiLan zgrada br. 273 Huanpu Road Guangzhou Kina 510620
Kategorije
Novosti