FMUSER Wirless överför video och ljud enklare!
es.fmuser.org
it.fmuser.org
fr.fmuser.org
de.fmuser.org
af.fmuser.org -> afrikanska
sq.fmuser.org -> albanska
ar.fmuser.org -> arabiska
hy.fmuser.org -> Armenian
az.fmuser.org -> Azerbajdzjanska
eu.fmuser.org -> Baskiska
be.fmuser.org -> vitryska
bg.fmuser.org -> Bulgariska
ca.fmuser.org -> katalanska
zh-CN.fmuser.org -> Kinesiska (förenklad)
zh-TW.fmuser.org -> Kinesiska (traditionella)
hr.fmuser.org -> kroatiska
cs.fmuser.org -> Tjeckiska
da.fmuser.org -> danska
nl.fmuser.org -> Dutch
et.fmuser.org -> estniska
tl.fmuser.org -> filippinska
fi.fmuser.org -> finska
fr.fmuser.org -> French
gl.fmuser.org -> galiciska
ka.fmuser.org -> Georgiska
de.fmuser.org -> tyska
el.fmuser.org -> Greek
ht.fmuser.org -> Haitisk kreol
iw.fmuser.org -> hebreiska
hi.fmuser.org -> Hindi
hu.fmuser.org -> ungerska
is.fmuser.org -> isländska
id.fmuser.org -> Indonesiska
ga.fmuser.org -> Irländska
it.fmuser.org -> Italian
ja.fmuser.org -> japanska
ko.fmuser.org -> koreanska
lv.fmuser.org -> lettiska
lt.fmuser.org -> Litauiska
mk.fmuser.org -> makedonska
ms.fmuser.org -> Malajiska
mt.fmuser.org -> maltesiska
no.fmuser.org -> Norwegian
fa.fmuser.org -> persiska
pl.fmuser.org -> polska
pt.fmuser.org -> portugisiska
ro.fmuser.org -> rumänska
ru.fmuser.org -> ryska
sr.fmuser.org -> serbiska
sk.fmuser.org -> Slovakiska
sl.fmuser.org -> Slovenska
es.fmuser.org -> spanska
sw.fmuser.org -> Swahili
sv.fmuser.org -> svenska
th.fmuser.org -> Thai
tr.fmuser.org -> Turkiska
uk.fmuser.org -> ukrainska
ur.fmuser.org -> Urdu
vi.fmuser.org -> Vietnamesiskt
cy.fmuser.org -> Walesiska
yi.fmuser.org -> Jiddisch
För applikationsutveckling: C-språk, datastruktur, JAVA etc. måste läras väl. Det finns inget speciellt att vara uppmärksam på i inbyggd applikationsutveckling och applikationsutveckling på PC. Du kanske säger att du behöver optimera det inbäddade systemet, ja, du måste optimera, men det ooptimerade programmet skiljer sig inte från programutvecklingen på datorn. Dessutom, när du har förmågan att optimera, är du inte längre van att ställa den här frågan. För ett specifikt exempel, till exempel utvecklingsgränssnittet, använder vi VC på datorn; i inbäddad Linux kan vi använda QT och Android. För närvarande bör du lära dig QT och Android-programmering. Men grunden är fortfarande C eller JAVA, och på grundval av detta bekanta dig med deras gränssnitt. Om du har lärt dig VC tar det tid att förstå dessa klasser och kontroller.
Om du vill lära dig det underliggande systemet är detta min specialitet, men jag kan säga lite.
Innan jag svarar på denna fråga, låt mig svara: Många frågar mig, är det att lära sig att köra bil eller att lära sig att ansöka? Jag kan bara säga att det är baserat på intresse och att drivrutiner och applikationer inte är helt separata.
1. Drivrutinerna vi pratar om är inte begränsade till hårdvaruoperationer, utan också begrepp som operativsystemsprinciper och schemaläggning av processvila och vakna. Om du vill skriva en bra applikation och vill bättre lösa de problem som programmet stöter på, bör du förstå denna kunskap
2. Låga hinder för tillämpningen, särskilt den nuvarande ANDROID, ren JAVA. Jag tror personligen att applikationsutvecklingsvägen är skicklig i affärer. Till exempel inom kommunikationsindustrin, IPTV-industrin och mobiltelefonindustrin förstår du branschens behov. Därför är personer som är ledande mest applikationer.
3. Bli driven. I själva verket vill jag inte kalla det "att vara en förare", men jag vill kalla det "att vara ett lågnivåsystem". När det är gjort kommer detta att döda alla industrier. Jag har arbetat i flera år och har tillverkat mobiltelefoner, IPTV och konferens-TV, men dessa produkter gör ingen skillnad för mig eftersom jag bara gör det nedre lagret. Deras verksamhet har inget att göra med mig. När det finns ett problem med applikationen och de inte kan lösa det, ger jag dem en idé ur kärnperspektivet och ger dem verktyg. Jag tycker personligen att jag är en teknisk expert i bottenlagrets utvecklingsriktning.
4. Det finns faktiskt ingen gräns mellan att göra det nedre lagret eller göra applikationen. Om du har bottenlagerupplevelsen kommer du att känna dig väldigt lugn när du gör applikationen. Med affärserfarenhet kan du lära känna bottenlagret och du kommer snart att kunna bilda ett team.
Tillbaka till frågan om hur man lär sig. Vad ingår i det inbäddade Linux-underliggande systemet? Oroa dig inte, du kommer att veta det genom att ge ett exempel.
1. Vem visar dessa gränssnitt när datorn är påslagen? Det är BIOS, vad gör det? Några självkontroller, läs sedan fönster från hårddisken och starta den. På samma sätt motsvarar detta BIOS bootloader i inbäddad Linux. Den här startladdaren måste läsa Linux-kärnan på Flash och starta den.
2. Vad är syftet med att starta windows? Naturligtvis är det onlinechatt eller något. Var finns dessa internet- och chattverktyg? På C-enheten och D-enheten. Därför måste Windows först identifiera C-enheten och D-enheten. Vi kallar det rotfilsystemet under Linux.
3. Windows kan känna igen C-enheten och D-enheten, så den måste kunna läsa och skriva hårddisken. De involverade sakerna kallas förare. Naturligtvis är det inte bara en hårddisk utan också ett nätverkskort, USB och så vidare. Inbäddad Linux kan läsa och köra applikationer från Flash, och den måste också ha Flash-drivrutiner. Naturligtvis är det inte bara Flash.
Låt oss prata om det först, inbäddad LINUX innehåller fyra huvuddelar: bootloader, kärna, drivrutin och root-filsystem.
En, bootloader
Det är ett lite mer komplicerat bart bordsprogram. Men det är inte lätt att förstå och skriva detta bare-board-program. De användbara verktygen under Windows försvagar vår programmeringsförmåga.
Många använder ADS och KEIL så snart de spelar inbäddade. Kan du besvara dessa frågor?
1. Var hämtar CPU instruktioner för körning när strömmen är på?
Svar: I allmänhet kommer instruktionen från Flash.
2. Men Flash kan bara läsas och inte skrivas direkt. Om jag använder globala variabler, var är dessa globala variabler?
Svar: Globala variabler ska finnas i minnet
3. Så vem lägger globala variabler i minnet?
Svar: Kan du svara på en vän som har använt ADS och KEIL länge? Detta kräver "omlokalisering". I ADS eller KEIL skrivs omlokaliseringskoden åt dig av företaget som tillverkar dessa verktyg. Har du någonsin läst det?
4. Minnet är så stort, hur vet jag vilken adress jag ska läsa "innehållet som ursprungligen lagrades i Flash" i minnet?
Svar: Denna adress bestäms av "länkskript", det finns spridningsfiler i ADS och liknande filer i KEIL. Men har du studerat det?
5. Du sa att omplacering är att kopiera ett program från Flash till minnet, så att det här programmet kan läsa Flash? Svar: Ja, du måste kunna använda Flash. Naturligtvis inte bara dessa utan också att ställa in klockan så att systemet går snabbare och så vidare. Låt oss fråga och svara här först, bootloader, ett bare-board-program, har faktiskt tre huvudpunkter:
1. Drift av hårdvaran
2. Förståelse för ARM-systemprocessorer
3. De grundläggande begreppen i programmet: omlokalisering, stack, kodsegment, datasegment, BSS-segment och så vidare.
För drift av hårdvaran måste du se schematiskt diagram och chipmanualen. Detta kräver en viss hårdvarukunskap. Det kräver inte att du kan designa hårdvara, men åtminstone att förstå det; det kräver inte att kunna förstå analoga kretsar, utan att förstå digitala kretsar. Jag lärde mig denna förmåga i skolan. De två böckerna (titeln på boken jag glömde) räcker. Men jag tvivlar på att du har tålamod att läsa dessa två böcker. Jag vet inte om det finns en snabbare bok nu. Om du vill göra det snabbt, släpp det här först, och om du inte förstår det, fråga bara Google och skicka.
Dessutom måste chipmanualen läsas, leta inte efter kinesiska, titta bara på engelska. Det var mycket smärtsamt först, men senare, när grammatiken och ordförrådet är bekant, är det lätt att läsa vilken chipmanual som helst.
För information om ARM-systemprocessorer, se Du Chunleys. Den talar om monteringsinstruktioner, undantagslägen, MMU, etc. Bara dessa 3 delar av innehållet behöver du förstå.
Det grundläggande konceptet för programmet är naturligtvis kungen att titta på sammanställningsprinciperna. Tyvärr är denna typ av bok definitivt av den himmelska boknivån. Jag råder dig att inte titta på det om du inte är ett supergeni. Titta bara på och den första videon jag skrev, oroa dig inte, spendera inte pengar. Efter videon och gör hårdvarurelaterade experiment kommer dessa begrepp att bli tydliga. Jag har inte hittat den andra uppsättningen böcker eller videor som pratar om dessa begrepp, vilket gör att jag kan skryta om det blint. För startladdaren såg jag först på det när jag studerade, och sedan skrev jag programmet själv och gjorde alla experiment på olika hårdvaror, som GPIO, klocka, SDRAM, UART och NAND. Om du gör dem tydliga är det lätt att förstå u-boot genom att gruppera dem. För att sammanfatta, för att förstå maskinvarans schematiska diagram och chipmanualen, måste du hitta informationen själv. För resten, följ bara kapitelistan för och den första fasen av videon att lära sig.
Två, kärnan
De som vill komma igång bör hoppa över kärninlärningen först och lära sig att skriva drivrutiner direkt.
För att bli en mästare måste kärnan ha en djup förståelse. Observera att jag pratar om förståelse, jag har inget extravagant hopp om att skriva en kärna.
För att förstå schemaläggningsmekanismen, minneshanteringsmekanismen, filhanteringsmekanismen etc. inuti.
Rekommendera två böcker:
1. Läs igenom, läs den tunna boken (det flytande samhället betonar hastighet)
2. Välj att läsa, vill veta vilket avsnitt du vill läsa vilket avsnitt
Tre, kör
Drivrutinen består av två delar: driften av själva hårdvaran och drivrutinen.
Det är hårdvaran igen. Det är fortfarande nödvändigt att förstå det schematiska diagrammet och chipmanualen. Öva mer. På tal om förarramen finns det några böcker att introducera den. LDD3, boken skriven av en utlänning, introducerar många begrepp och är värt att läsa. Dess roll är dock begränsad till att introducera koncept. Jag använde den i princip för att bekanta mig med begreppen innan jag började och slängde sedan bort den efter att jag kom igång.
Den mer omfattande introduktionen till föraren bör vara Song Baohua. För att vara ärlig läste jag bara katalogen. Många sa ja, jag rekommenderar det här.
Om du vill förstå ett visst område på djupet är det definitivt en super 5-stjärnig rekommendation. Du förväntar dig inte att läsa den, mer än 1,800 sidor, två volymer upp och ner. När jag inte är säker på ett visst område kommer jag att titta igenom det. Varje del av denna bok kan täcka två eller tre hundra sidor, vilket är mycket detaljerat. Och för att ta dig att analysera kärnkällkoden med ett visst mål. Det tar Linux 2.4 som ett exempel, men principen är densamma, och den är också tillämplig på andra versioner av Linux. Några andra introduktioner? Naturligtvis finns det den andra utgåvan av Wei Dongshan Linux Video. "Komplett handbok för inbyggd Linux-applikationsutveckling" pratar inte mycket om drivrutinen, och den är inte tillräckligt djupgående.
Försök att skriva en drivrutin för all hårdvara som är involverad i ditt utvecklingskort. Om du har problem bör du "tänka smärtsamt" först. Under tankeprocessen kommer du att koppla ihop mycket irrelevant kunskap och slutligen få igenom den.
För det fjärde rotfilsystemet
Har du tänkt på dessa två frågor:
1. För produkter som tillverkats av Linux används vissa för övervakning, andra används som mobiltelefoner och andra används som surfplattor. Så efter att kärnan har startats, efter installation av rotfilsystemet, vilket program ska startas?
Svar: Kärnan vet inte eller bryr sig inte vilket användarprogram som ska startas. Det startar bara init-applikationen, vilket motsvarar / sbin / init.
Självklart måste denna applikation läsa konfigurationsfilen och starta användarprogrammet (övervakning, manuellt gränssnitt, surfplattans gränssnitt etc.) enligt konfigurationsfilen. Den här frågan påminner oss om att innehållet i filsystemet har vissa konventioner, till exempel / sbin / init, en konfigurationsfil krävs.
2. Har du någonsin funderat på vem som implementerade printf som användes i de hej- och världsprogram du skrev?
Svar: Denna funktion implementeras inte av dig utan av en biblioteksfunktion. När den körs måste den hitta biblioteket.
Denna fråga påminner oss om att det fortfarande finns bibliotek i filsystemet. Här är en enkel fråga och svar. Om du vill veta mer kan du titta på init.c i busybox för att veta vad init-processen gör. Naturligtvis kan du också se kapitlet om att bygga rotfilsystemet i .
Min lärande
1. När jag gick i skolan läste jag fysik och elektronik. Jag lärde faktiskt inte hur man utformar kretsar under kursen, utan lärde bara kunskap om elektroniska kretsar. Designen av PCB lärde mig själv i laboratoriet. Jag designade bara ett 2-lagers kort, och nu glömmer jag det nästan. Men det behåller förmågan att läsa det schematiska diagrammet och chipmanualen.
2. Jag tog en examen i programvara och jag är mycket intresserad av programvarudesign, men jag lärde mig bara C-språk och databas. Jag gjorde många tävlingsfrågor med intresse. Jag kan inte delta i tävlingen, men jag har en gedigen C-språkövning.
3. I laboratoriet, i det första företaget, designade jag några enkla PCI-kort och skrev Windows-drivrutinen
4. I det andra företaget, som använde 51 mikrodatorer med en chip som biltelefon, började de ge sig ut på vägen till ren programvara.
5. Jag började känna bristerna i mikrodatorn med en chip. Jag avgick i ett halvt år för att lära mig Linux bakom stängda dörrar och började med hur man använder den röda hatten. Steget är att titta på det först, sedan skriva det bara bordsprogrammet för att driva hårdvaran och sedan analysera u-boot. Samtidigt har jag en viss förståelse för LINUX-ramverket.
När du skriver nakna brädor rekommenderas att du förstärker din förståelse för avbrott. Kärnan använder avbrott för att slutföra olika funktioner.
6. Efter att ha analyserat u-boot, starta enkel förarprogrammering. För närvarande är förmågan fortfarande mycket svag.
7. Började arbeta på ZTE, arbetade i 2 år, skrev alla typer av förare, löste alla typer av problem (körproblem, hjälp att hitta applikationsproblem) och förmågan var mildrad.
|
Ange e-post för att få en överraskning
es.fmuser.org
it.fmuser.org
fr.fmuser.org
de.fmuser.org
af.fmuser.org -> afrikanska
sq.fmuser.org -> albanska
ar.fmuser.org -> arabiska
hy.fmuser.org -> Armenian
az.fmuser.org -> Azerbajdzjanska
eu.fmuser.org -> Baskiska
be.fmuser.org -> vitryska
bg.fmuser.org -> Bulgariska
ca.fmuser.org -> katalanska
zh-CN.fmuser.org -> Kinesiska (förenklad)
zh-TW.fmuser.org -> Kinesiska (traditionella)
hr.fmuser.org -> kroatiska
cs.fmuser.org -> Tjeckiska
da.fmuser.org -> danska
nl.fmuser.org -> Dutch
et.fmuser.org -> estniska
tl.fmuser.org -> filippinska
fi.fmuser.org -> finska
fr.fmuser.org -> French
gl.fmuser.org -> galiciska
ka.fmuser.org -> Georgiska
de.fmuser.org -> tyska
el.fmuser.org -> Greek
ht.fmuser.org -> Haitisk kreol
iw.fmuser.org -> hebreiska
hi.fmuser.org -> Hindi
hu.fmuser.org -> ungerska
is.fmuser.org -> isländska
id.fmuser.org -> Indonesiska
ga.fmuser.org -> Irländska
it.fmuser.org -> Italian
ja.fmuser.org -> japanska
ko.fmuser.org -> koreanska
lv.fmuser.org -> lettiska
lt.fmuser.org -> Litauiska
mk.fmuser.org -> makedonska
ms.fmuser.org -> Malajiska
mt.fmuser.org -> maltesiska
no.fmuser.org -> Norwegian
fa.fmuser.org -> persiska
pl.fmuser.org -> polska
pt.fmuser.org -> portugisiska
ro.fmuser.org -> rumänska
ru.fmuser.org -> ryska
sr.fmuser.org -> serbiska
sk.fmuser.org -> Slovakiska
sl.fmuser.org -> Slovenska
es.fmuser.org -> spanska
sw.fmuser.org -> Swahili
sv.fmuser.org -> svenska
th.fmuser.org -> Thai
tr.fmuser.org -> Turkiska
uk.fmuser.org -> ukrainska
ur.fmuser.org -> Urdu
vi.fmuser.org -> Vietnamesiskt
cy.fmuser.org -> Walesiska
yi.fmuser.org -> Jiddisch
FMUSER Wirless överför video och ljud enklare!
Kontakta Oss
Adress:
No.305 Room HuiLan Building No.273 Huanpu Road Guangzhou Kina 510620
Kategorier
Nyhetsbrev