FMUSER Wirless Overfør video og lyd enklere!
es.fmuser.org
it.fmuser.org
fr.fmuser.org
de.fmuser.org
af.fmuser.org -> Afrikaans
sq.fmuser.org -> albansk
ar.fmuser.org -> arabisk
hy.fmuser.org -> armensk
az.fmuser.org -> aserbajdsjansk
eu.fmuser.org -> baskisk
be.fmuser.org -> hviterussisk
bg.fmuser.org -> Bulgarian
ca.fmuser.org -> katalansk
zh-CN.fmuser.org -> Kinesisk (forenklet)
zh-TW.fmuser.org -> Kinesisk (tradisjonell)
hr.fmuser.org -> Kroatisk
cs.fmuser.org -> tsjekkisk
da.fmuser.org -> dansk
nl.fmuser.org -> Nederlandsk
et.fmuser.org -> estisk
tl.fmuser.org -> filippinsk
fi.fmuser.org -> finsk
fr.fmuser.org -> French
gl.fmuser.org -> galisisk
ka.fmuser.org -> Georgisk
de.fmuser.org -> tysk
el.fmuser.org -> gresk
ht.fmuser.org -> haitisk kreolsk
iw.fmuser.org -> hebraisk
hi.fmuser.org -> hindi
hu.fmuser.org -> Ungarsk
is.fmuser.org -> islandsk
id.fmuser.org -> indonesisk
ga.fmuser.org -> Irsk
it.fmuser.org -> Italiensk
ja.fmuser.org -> japansk
ko.fmuser.org -> koreansk
lv.fmuser.org -> lettisk
lt.fmuser.org -> litauisk
mk.fmuser.org -> makedonsk
ms.fmuser.org -> malaysisk
mt.fmuser.org -> maltesisk
no.fmuser.org -> norsk
fa.fmuser.org -> persisk
pl.fmuser.org -> polsk
pt.fmuser.org -> portugisisk
ro.fmuser.org -> rumensk
ru.fmuser.org -> russisk
sr.fmuser.org -> serbisk
sk.fmuser.org -> Slovakisk
sl.fmuser.org -> Slovenian
es.fmuser.org -> spansk
sw.fmuser.org -> Swahili
sv.fmuser.org -> svensk
th.fmuser.org -> Thai
tr.fmuser.org -> tyrkisk
uk.fmuser.org -> ukrainsk
ur.fmuser.org -> urdu
vi.fmuser.org -> Vietnamesisk
cy.fmuser.org -> walisisk
yi.fmuser.org -> Yiddish
For applikasjonsutvikling: C-språk, datastruktur, JAVA, etc. må læres godt. Det er ikke noe spesielt å være oppmerksom på i innebygd applikasjonsutvikling og applikasjonsutvikling på PC. Kanskje du sier at du trenger å optimalisere det innebygde systemet, ja, du må optimalisere, men det uoptimerte programmet er ikke forskjellig fra programutviklingen på PC-en. I tillegg, når du har muligheten til å optimalisere, er du ikke lenger vant til å stille dette spørsmålet. For et spesifikt eksempel, for eksempel utviklingsgrensesnittet, bruker vi VC på PC-en; i innebygd Linux kan vi bruke QT og Android. På dette tidspunktet bør du lære QT og Android programmering. Men grunnlaget er fortsatt C eller JAVA, og på dette grunnlaget, bli kjent med grensesnittene. Hvis du har lært VC, tar det tid å forstå disse klassene og kontrollene.
Hvis du vil lære det underliggende systemet, er dette min spesialitet, men jeg kan si litt.
Før jeg svarer på dette spørsmålet, la meg svare: Mange spør meg, er det å lære å kjøre bil eller å lære å søke? Jeg kan bare si at det er basert på interesse, og drivere og applikasjoner er ikke helt separate.
1. Driverne vi snakker om er ikke begrenset til maskinvareoperasjoner, men også begreper som operativsystemprinsipper og prosessplanlegging for søvn og våken. Hvis du vil skrive en god applikasjon, og du bedre vil løse problemene som programmet støter på, bør du forstå denne kunnskapen
2. Lave bruksbarrierer, spesielt den nåværende ANDROID, ren JAVA. Jeg tror personlig at applikasjonsutviklingsveien er dyktig i virksomheten. For eksempel, i kommunikasjonsindustrien, IPTV-industrien og mobiltelefonindustrien, forstår du behovene til bransjen. Derfor er folk som er ledere for det meste applikasjoner.
3. Vær drevet. Jeg vil faktisk ikke kalle det "å være sjåfør", men jeg vil kalle det "å være et lavnivåsystem". Når dette er gjort, vil dette drepe alle bransjer. Jeg har jobbet i flere år og har laget mobiltelefoner, IPTV og konferanse-TV, men disse produktene gjør ingen forskjell for meg fordi jeg bare gjør det nederste laget. Virksomheten deres har ingenting med meg å gjøre. Når det er et problem med applikasjonen og de ikke kan løse det, vil jeg gi dem en ide fra kjerneperspektivet og gi dem verktøy. Jeg personlig tror at jeg er en teknisk ekspert i utviklingsretningen til bunnlaget.
4. Det er faktisk ingen grense mellom å gjøre det nederste laget eller å gjøre applikasjonen. Hvis du har bunnlagserfaring, vil du føle deg veldig rolig når du gjør applikasjonen. Med forretningserfaring kan du bli kjent med det nederste laget, og du vil snart kunne danne et team.
Tilbake til spørsmålet om hvordan du lærer. Hva er inkludert i det innebygde Linux-underliggende systemet? Ikke bekymre deg, du vil vite det ved å gi et eksempel.
1. Hvem viser disse grensesnittene når datamaskinen er slått på? Det er BIOS, hva gjør det? Noen selvkontroller, les deretter vinduer fra harddisken og start den. Tilsvarende tilsvarer denne BIOS bootloaderen i innebygd Linux. Denne bootloaderen må lese Linux-kjernen på Flash og starte den.
2. Hva er hensikten med å starte vinduer? Selvfølgelig er det online chatting eller noe. Hvor er disse Internett- og chatverktøyene? På C-stasjonen og D-stasjonen. Derfor må windows først identifisere C-stasjonen og D-stasjonen. Vi kaller det rotfilsystemet under Linux.
3. Windows kan gjenkjenne C-stasjonen og D-stasjonen, så den må kunne lese og skrive harddisken. De involverte tingene kalles drivere. Selvfølgelig er det ikke bare en harddisk, men også et nettverkskort, USB og så videre. Innebygd Linux kan lese og kjøre applikasjoner fra Flash, og den må også ha Flash-drivere. Selvfølgelig er det ikke bare Flash.
La oss snakke om det først, innebygd LINUX inneholder fire hoveddeler: bootloader, kjerne, driver og rotfilsystem.
En, bootloader
Det er et litt mer komplisert bart bordprogram. Men det er ikke lett å forstå og skrive dette bare-bord-programmet. De nyttige verktøyene under Windows svekker vår programmeringsevne.
Mange bruker ADS og KEIL så snart de spiller innebygd. Kan du svare på disse spørsmålene?
1. Hvor henter prosessoren instruksjoner for utføring når strømmen er på?
Svar: Generelt er instruksjonen fra Flash.
2. Men Flash kan bare leses og ikke skrives direkte. Hvis jeg bruker globale variabler, hvor er disse globale variablene?
Svar: Globale variabler skal være i minnet
3. Så hvem setter globale variabler i minnet?
Svar: Kan du svare en venn som har brukt ADS og KEIL i lang tid? Dette krever "flytting". I ADS eller KEIL blir flyttingskoden skrevet for deg av selskapet som lager disse verktøyene. Har du noen gang lest den?
4. Minnet er så stort, hvordan vet jeg hvilken adresse jeg skal lese "innholdet opprinnelig lagret i Flash" til minnet?
Svar: Denne adressen bestemmes av "link script", det er scatter-filer i ADS, og lignende filer i KEIL. Men har du studert det?
5. Du sa at flytting er å kopiere et program fra Flash til minne, slik at dette programmet kan lese Flash? Svar: Ja, du må kunne bruke Flash. Selvfølgelig ikke bare disse, men også stille klokken for å få systemet til å kjøre raskere og så videre. La oss spørre og svare her først, bootloader, et bart bordprogram, har faktisk tre hovedpoeng:
1. Drift av maskinvaren
2. Forståelse av ARM-systemprosessorer
3. De grunnleggende konseptene i programmet: flytting, stack, kodesegment, datasegment, BSS-segment og så videre.
For drift av maskinvaren, må du se skjematisk diagram og brikkehåndboken. Dette krever en viss mengde maskinvarekunnskap. Det krever ikke at du kan designe maskinvare, men i det minste å forstå det; det krever ikke å kunne forstå analoge kretser, men å forstå digitale kretser. Jeg lærte denne evnen på skolen. De to bøkene (tittelen på boka jeg glemte) er nok. Men jeg tviler på at du har tålmodighet til å lese disse to bøkene. Jeg vet ikke om det er en raskere bok nå. Hvis du vil gjøre det raskt, slipper du dette først, og hvis du ikke forstår, er det bare å spørre Google og legge ut.
I tillegg må brikkehåndboken leses, ikke se etter kinesisk, bare se på engelsk. Det var veldig smertefullt først, men senere, når grammatikk og ordforråd er kjent, er det lett å lese hvilken som helst chipmanual.
For informasjon om ARM-systemprosessorer, vennligst se Du Chunlei's. Den snakker om monteringsinstruksjoner, unntaksmodus, MMU, etc. Bare disse tre delene av innholdet trenger du å forstå.
Det grunnleggende konseptet for programmet, selvfølgelig, er kongen å se på prinsippene for kompilering. Dessverre er denne typen bok definitivt på det himmelske boknivået. Jeg anbefaler deg å ikke se på den med mindre du er et supergeni. Bare se på og den første videoen jeg skrev, ikke bekymre deg, ikke bruk penger. Etter videoen og maskinvarerelaterte eksperimenter vil disse konseptene bli tydelige. Jeg har ikke funnet det andre settet med bøker eller videoer som snakker om disse konseptene, slik at jeg kan skryte av det blindt. For bootloaderen så jeg først på det da jeg studerte, og så skrev jeg programmet selv og gjorde alle eksperimentene på forskjellige maskinvarer, som GPIO, klokke, SDRAM, UART og NAND. Hvis du gjør dem tydelige, er det lett å forstå u-boot ved å gruppere sammen. For å oppsummere, for å forstå maskinvarediagrammet og brikkehåndboken, må du finne informasjonen selv. For resten er det bare å følge kapittellisten til og den første fasen av videoen for å lære.
To, kjernen
De som ønsker å komme i gang, bør hoppe over kjernelæringen først og lære å skrive drivere direkte.
For å bli en mester, må kjernen ha en dyp forståelse. Merk at jeg snakker om forståelse, jeg har ikke noe ekstravagant håp om å skrive en kjerne.
For å forstå planleggingsmekanismen, minnehåndteringsmekanismen, filhåndteringsmekanismen, etc. inne.
Anbefal to bøker:
1. Les gjennom, vennligst les den tynne boka (Flytende samfunn legger vekt på fart)
2. Velg å lese, vil vite hvilken seksjon du vil lese hvilken seksjon
Tre, kjør
Driveren består av to deler: driften av selve maskinvaren og rammen til driveren.
Det er maskinvaren igjen. Det er fortsatt nødvendig å forstå skjematisk diagram og brikkehåndboken. Øv mer. Når vi snakker om førerrammeverket, er det noen bøker for å introdusere det. LDD3, boka skrevet av en utlending, introduserer mange konsepter og er verdt å lese. Imidlertid er dens rolle begrenset til å introdusere konsepter. Jeg brukte den i utgangspunktet for å gjøre meg kjent med konseptene før jeg begynte, for så å kaste den etter å ha kommet i gang.
Den mer omfattende introduksjonen til sjåføren bør være Song Baohua. For å være ærlig leste jeg bare katalogen. Mange sa ja, jeg anbefaler det her.
Hvis du vil forstå et bestemt område i dybden, er det definitivt en super 5-stjerners anbefaling. Du forventer ikke å lese den, mer enn 1,800 sider, to bind opp og ned. Når jeg ikke er sikker på et bestemt område, vil jeg se gjennom det. Enhver del av denne boken kan dekke to eller tre hundre sider, noe som er veldig detaljert. Og å ta deg til å analysere kjernekildekoden med et bestemt mål. Det tar linux 2.4 som et eksempel, men prinsippet er det samme, og det gjelder også andre versjoner av linux. Noen andre introduksjoner? Selvfølgelig er det den andre utgaven av Wei Dongshan Linux Video. "Complete Handbook of Embedded Linux Application Development" snakker ikke mye om driveren, og den er ikke grundig nok.
Prøv å skrive en driver for all maskinvaren som er involvert i utviklingskortet ditt. Hvis du har et problem, bør du "tenke smertelig" først. I prosessen med å tenke, vil du koble mye irrelevant kunnskap og til slutt få det gjennom.
For det fjerde, rotfilsystemet
Har du noen gang tenkt på disse to spørsmålene:
1. For produktene laget av Linux, brukes noen til overvåking, andre brukes som mobiltelefoner, og andre brukes som nettbrett. Så etter at kjernen er startet, etter montering av rotfilsystemet, hvilket program skal startes?
Svar: Kjernen vet ikke eller bryr seg ikke hvilket brukerprogram som skal startes. Den starter bare init-applikasjonen, som tilsvarer / sbin / init.
Åpenbart må denne applikasjonen lese konfigurasjonsfilen og starte brukerprogrammet (overvåking, manuelt grensesnitt, nettbrettgrensesnitt, etc.) i henhold til konfigurasjonsfilen. Dette spørsmålet minner oss om at innholdet i filsystemet har noen konvensjoner, for eksempel / sbin / init, en konfigurasjonsfil er nødvendig.
2. Har du noen gang tenkt på hvem som implementerte printf som ble brukt i hallo- og verdensprogrammene du skrev?
Svar: Denne funksjonen er ikke implementert av deg, men av en biblioteksfunksjon. Når den kjører, må den finne biblioteket.
Dette spørsmålet minner oss om at det fortsatt er biblioteker i filsystemet. Her er et enkelt spørsmål og svar. Hvis du vil vite mer, kan du se på init.c i busybox for å vite hva init-prosessen gjør. Selvfølgelig kan du også se kapitlet om å bygge rotfilsystemet i .
Min læringserfaring
1. Da jeg gikk på skolen, tok jeg fysikk og elektronikk. Jeg lærte faktisk ikke hvordan jeg skulle designe kretser i løpet av kurset, men lærte bare litt kunnskap om elektroniske kretser. Designet av PCB ble lært av meg selv i laboratoriet. Jeg designet bare et 2-lags bord, og nå glemmer jeg det nesten. Men det beholder muligheten til å lese skjematisk diagram og brikkehåndboken.
2. Jeg tok en grad i programvare, og er veldig interessert i programvaredesign, men jeg lærte bare C-språk og database. Jeg gjorde mange konkurransespørsmål med interesse. Jeg kan ikke delta i konkurransen, men jeg har en solid C-språkpraksis.
3. I laboratoriet, i det første selskapet, designet jeg noen enkle PCI-kort og skrev windows-driveren
4. I det andre selskapet, med 51 single-chip mikrocomputer som biltelefon, begynte de å gå ut på veien til ren programvare.
5. Jeg begynte å kjenne på manglene ved mikrocomputeren med en chip. Jeg sa opp et halvt år for å lære Linux bak lukkede dører, og begynte med hvordan jeg bruker den røde hatten. Trinnet er å se på det først, deretter skrive bare bordprogram for å betjene maskinvaren, og deretter analysere u-boot. Samtidig har jeg en viss forståelse av LINUX-rammeverket.
Når du skriver bare tavler, anbefales det at du styrker din forståelse av avbrudd. Kjernen bruker avbrudd for å fullføre forskjellige funksjoner.
6. Etter å ha analysert u-boot, start enkel driverprogrammering. På dette tidspunktet er evnen fortsatt veldig svak.
7. Begynte å jobbe i ZTE, jobbet i 2 år, skrev alle slags drivere, løste alle slags problemer (kjøreproblemer, hjalp til med å finne applikasjonsproblemer), og evnen var temperert.
|
Skriv inn e-post for å få en overraskelse
es.fmuser.org
it.fmuser.org
fr.fmuser.org
de.fmuser.org
af.fmuser.org -> Afrikaans
sq.fmuser.org -> albansk
ar.fmuser.org -> arabisk
hy.fmuser.org -> armensk
az.fmuser.org -> aserbajdsjansk
eu.fmuser.org -> baskisk
be.fmuser.org -> hviterussisk
bg.fmuser.org -> Bulgarian
ca.fmuser.org -> katalansk
zh-CN.fmuser.org -> Kinesisk (forenklet)
zh-TW.fmuser.org -> Kinesisk (tradisjonell)
hr.fmuser.org -> Kroatisk
cs.fmuser.org -> tsjekkisk
da.fmuser.org -> dansk
nl.fmuser.org -> Nederlandsk
et.fmuser.org -> estisk
tl.fmuser.org -> filippinsk
fi.fmuser.org -> finsk
fr.fmuser.org -> French
gl.fmuser.org -> galisisk
ka.fmuser.org -> Georgisk
de.fmuser.org -> tysk
el.fmuser.org -> gresk
ht.fmuser.org -> haitisk kreolsk
iw.fmuser.org -> hebraisk
hi.fmuser.org -> hindi
hu.fmuser.org -> Ungarsk
is.fmuser.org -> islandsk
id.fmuser.org -> indonesisk
ga.fmuser.org -> Irsk
it.fmuser.org -> Italiensk
ja.fmuser.org -> japansk
ko.fmuser.org -> koreansk
lv.fmuser.org -> lettisk
lt.fmuser.org -> litauisk
mk.fmuser.org -> makedonsk
ms.fmuser.org -> malaysisk
mt.fmuser.org -> maltesisk
no.fmuser.org -> norsk
fa.fmuser.org -> persisk
pl.fmuser.org -> polsk
pt.fmuser.org -> portugisisk
ro.fmuser.org -> rumensk
ru.fmuser.org -> russisk
sr.fmuser.org -> serbisk
sk.fmuser.org -> Slovakisk
sl.fmuser.org -> Slovenian
es.fmuser.org -> spansk
sw.fmuser.org -> Swahili
sv.fmuser.org -> svensk
th.fmuser.org -> Thai
tr.fmuser.org -> tyrkisk
uk.fmuser.org -> ukrainsk
ur.fmuser.org -> urdu
vi.fmuser.org -> Vietnamesisk
cy.fmuser.org -> walisisk
yi.fmuser.org -> Yiddish
FMUSER Wirless Overfør video og lyd enklere!
Kontakt
Adresse:
No.305 Room HuiLan Building No.273 Huanpu Road Guangzhou Kina 510620
Type kategori
Nyhetsbrev