FMUSER Wirless Verzend video en audio eenvoudiger!
es.fmuser.org
it.fmuser.org
fr.fmuser.org
de.fmuser.org
af.fmuser.org -> Afrikaans
sq.fmuser.org -> Albanees
ar.fmuser.org -> Arabisch
hy.fmuser.org -> Armenian
az.fmuser.org -> Azerbeidzjaans
eu.fmuser.org -> Baskisch
be.fmuser.org -> Wit-Russisch
bg.fmuser.org -> Bulgarian
ca.fmuser.org -> Catalaans
zh-CN.fmuser.org -> Chinees (vereenvoudigd)
zh-TW.fmuser.org -> Chinees (traditioneel)
hr.fmuser.org -> Kroatisch
cs.fmuser.org -> Tsjechisch
da.fmuser.org -> Deens
nl.fmuser.org -> Nederlands
et.fmuser.org -> Ests
tl.fmuser.org -> Filipijns
fi.fmuser.org -> Fins
fr.fmuser.org -> Frans
gl.fmuser.org -> Galicisch
ka.fmuser.org -> Georgisch
de.fmuser.org -> Duits
el.fmuser.org -> Greek
ht.fmuser.org -> Haïtiaans Creools
iw.fmuser.org -> Hebreeuws
hi.fmuser.org -> Hindi
hu.fmuser.org -> Hungarian
is.fmuser.org -> IJslands
id.fmuser.org -> Indonesisch
ga.fmuser.org -> Iers
it.fmuser.org -> Italian
ja.fmuser.org -> Japans
ko.fmuser.org -> Koreaans
lv.fmuser.org -> Lets
lt.fmuser.org -> Lithuanian
mk.fmuser.org -> Macedonisch
ms.fmuser.org -> Maleis
mt.fmuser.org -> Maltees
no.fmuser.org -> Norwegian
fa.fmuser.org -> Perzisch
pl.fmuser.org -> Pools
pt.fmuser.org -> Portugees
ro.fmuser.org -> Roemeens
ru.fmuser.org -> Russisch
sr.fmuser.org -> Servisch
sk.fmuser.org -> Slowaaks
sl.fmuser.org -> Slovenian
es.fmuser.org -> Spaans
sw.fmuser.org -> Swahili
sv.fmuser.org -> Zweeds
th.fmuser.org -> Thai
tr.fmuser.org -> Turks
uk.fmuser.org -> Oekraïens
ur.fmuser.org -> Urdu
vi.fmuser.org -> Vietnamese
cy.fmuser.org -> Welsh
yi.fmuser.org -> Jiddisch
Voor applicatieontwikkeling: C-taal, datastructuur, JAVA, etc. moeten goed worden geleerd. Er is niets speciaals om op te letten bij de ontwikkeling van embedded applicaties en applicatie-ontwikkeling op pc. Misschien zegt u dat u het embedded systeem moet optimaliseren, ja, u moet optimaliseren, maar het niet-geoptimaliseerde programma verschilt niet van de programmaontwikkeling op de pc. Bovendien, wanneer u de mogelijkheid heeft om te optimaliseren, bent u niet langer gewend om deze vraag te stellen. Voor een specifiek voorbeeld, zoals de ontwikkelinterface, gebruiken we VC op de pc; in embedded Linux kunnen we QT en Android gebruiken. Op dit moment zou u QT- en Android-programmering moeten leren. Maar de basis is nog steeds C of JAVA, en maak op deze basis vertrouwd met hun interfaces. Als je VC hebt geleerd, kost het tijd om die lessen en bedieningselementen te begrijpen.
Als je het achterliggende systeem wilt leren kennen, is dit mijn specialiteit, maar ik kan er een klein beetje over zeggen.
Voordat ik deze vraag beantwoord, wil ik eerst antwoorden: Veel mensen vragen mij: is het om te leren autorijden of om te leren solliciteren? Ik kan alleen maar zeggen dat het gebaseerd is op interesse, en dat stuurprogramma's en applicaties niet volledig gescheiden zijn.
1. De drijfveren waar we het over hebben zijn niet beperkt tot hardwarebewerkingen, maar ook concepten zoals de principes van het besturingssysteem en het plannen van slaap- en waakprocessen. Als je een goede applicatie wilt schrijven, en je wilt de problemen die de applicatie tegenkomt, beter oplossen, dan moet je deze kennis begrijpen
2. Lage drempels voor toepassing, vooral de huidige ANDROID, pure JAVA. Persoonlijk denk ik dat het ontwikkelingstraject van applicaties bedreven is in het bedrijfsleven. In de communicatie-industrie, IPTV-industrie en mobiele-telefoonindustrie begrijpt u bijvoorbeeld de behoeften van de branche. Daarom zijn mensen die leiders zijn meestal applicaties.
3. Wees gedreven. In feite wil ik het niet "een bestuurder zijn" noemen, maar ik wil het "een systeem op laag niveau zijn". Eenmaal gedaan, zal dit alle industrieën doden. Ik heb een aantal jaren gewerkt en heb mobiele telefoons, IPTV en conferentietelevisie gemaakt, maar deze producten maken voor mij geen verschil omdat ik alleen de onderste laag doe. Hun zaken hebben niets met mij te maken. Als er een probleem is met de applicatie en ze het niet kunnen oplossen, zal ik ze een idee geven vanuit het kernelperspectief en ze voorzien van tools. Persoonlijk denk ik dat ik een technisch expert ben in de ontwikkelingsrichting van de onderlaag.
4. In feite is er geen grens tussen het doen van de onderste laag of het doen van de applicatie. Als je de onderste laag ervaring hebt, zul je je erg op je gemak voelen wanneer je de applicatie doet. Met bedrijfservaring leer je de onderste laag kennen en kun je binnenkort een team vormen.
Terug naar de vraag hoe te leren. Wat zit er in het embedded onderliggende Linux-systeem? Maak je geen zorgen, je zult het weten door een voorbeeld te geven.
1. Wie geeft die interfaces weer als de computer is ingeschakeld? Het is BIOS, wat doet het? Sommige zelfcontroles, lees dan vensters van de harde schijf en start het. Op dezelfde manier komt dit BIOS overeen met de bootloader in embedded Linux. Deze bootloader moet de Linux-kernel op Flash lezen en starten.
2. Wat is het doel van het starten van Windows? Natuurlijk is het online chatten of zoiets. Waar zijn deze internet- en chattools? Op de C-schijf en D-schijf. Daarom moeten Windows eerst de C-schijf en D-schijf identificeren. We noemen het onder Linux het rootbestandssysteem.
3. Windows kan de C-schijf en de D-schijf herkennen, dus het moet de harde schijf kunnen lezen en schrijven. De dingen die erbij betrokken zijn, worden chauffeurs genoemd. Het is natuurlijk niet alleen een harde schijf, maar ook een netwerkkaart, USB, enzovoort. Embedded Linux kan toepassingen van Flash lezen en uitvoeren, en het moet ook over Flash-stuurprogramma's beschikken. Het is natuurlijk niet alleen Flash.
Laten we er eerst over praten, embedded LINUX bevat vier hoofdonderdelen: bootloader, kernel, driver en rootbestandssysteem.
Een, bootloader
Het is een iets ingewikkelder programma voor kaal bord. Maar het is niet gemakkelijk om dit bare-board-programma te begrijpen en te schrijven. De handige tools onder Windows verzwakken ons programmeervermogen.
Veel mensen gebruiken ADS en KEIL zodra ze embedded spelen. Kan je deze vragen beantwoorden?
1. Als de stroom eenmaal is ingeschakeld, waar haalt de CPU de instructies voor uitvoering op?
Antwoord: Over het algemeen is de instructie afkomstig van Flash.
2. Maar Flash kan alleen worden gelezen en niet direct worden geschreven. Als ik globale variabelen gebruik, waar zijn deze globale variabelen dan?
Antwoord: Globale variabelen zouden in het geheugen moeten staan
3. Dus wie zet globale variabelen in het geheugen?
Antwoord: Kunt u een vriend antwoorden die al heel lang ADS en KEIL gebruikt? Dit vereist "verhuizing". In ADS of KEIL wordt de verhuiscode voor u geschreven door het bedrijf dat deze tools maakt. Heb je het ooit gelezen?
4. Het geheugen is zo groot. Hoe weet ik welk adres ik de "oorspronkelijk in Flash opgeslagen inhoud" in het geheugen moet lezen?
Antwoord: Dit adres wordt bepaald door "link script", er zijn scatter-bestanden in ADS en soortgelijke bestanden in KEIL. Maar heb je het bestudeerd?
5. U zei dat verplaatsing bedoeld is om een programma van Flash naar geheugen te kopiëren, zodat dit programma Flash kan lezen? Antwoord: Ja, u moet Flash kunnen bedienen. Natuurlijk niet alleen deze, maar ook het instellen van de klok om het systeem sneller te laten werken enzovoort. Laten we hier eerst vragen en antwoorden, de bootloader, een bare-board programma, heeft eigenlijk drie hoofdpunten:
1. Werking van de hardware
2. Inzicht in ARM-systeemprocessors
3. De basisconcepten van het programma: verhuizing, stapel, codesegment, gegevenssegment, BSS-segment enzovoort.
Voor de werking van de hardware heeft u het schematische diagram en de chiphandleiding nodig. Dit vereist een zekere mate van hardwarekennis. U hoeft geen hardware te kunnen ontwerpen, maar u moet het in ieder geval begrijpen; het vereist niet om analoge schakelingen te kunnen begrijpen, maar om digitale schakelingen te begrijpen. Ik heb deze vaardigheid op school geleerd. De twee boeken (de titel van het boek dat ik ben vergeten) zijn voldoende. Maar ik betwijfel of je het geduld hebt om deze twee boeken uit te lezen. Ik weet niet of er nu een sneller boek is. Als je het snel wilt maken, laat dit dan eerst los, en als je het niet begrijpt, vraag het dan aan Google en post.
Bovendien moet de chiphandleiding worden gelezen, zoek niet naar Chinees, kijk alleen naar Engels. In het begin was het erg pijnlijk, maar later, als de grammatica en het vocabulaire eenmaal bekend zijn, is het gemakkelijk om elke chiphandleiding te lezen.
Voor meer informatie over ARM-systeemprocessors, zie Du Chunlei's. Het gaat over montage-instructies, uitzonderingsmodi, MMU, enz. Alleen deze 3 stukjes inhoud moet u begrijpen.
Het basisconcept van het programma, natuurlijk, de koning is om te kijken naar de principes van compilatie. Helaas is dit type boek beslist van het hemelse boekniveau. Ik raad je aan om er niet naar te kijken, tenzij je een supergenie bent. Kijk gewoon naar de en de eerste video die ik schreef, maak je geen zorgen, geef geen geld uit. Na de video en het doen van hardware-gerelateerde experimenten zullen deze concepten duidelijk worden. Ik heb de tweede reeks boeken of video's niet gevonden die over deze concepten praten, waardoor ik er blindelings over kan opscheppen. Voor de bootloader heb ik het eerst bekeken toen ik aan het studeren was, en daarna schreef ik het programma zelf en deed ik alle experimenten op verschillende hardware, zoals GPIO, klok, SDRAM, UART en NAND. Als je ze duidelijk maakt, is het gemakkelijk om u-boot te begrijpen door ze te groeperen. Kortom, om het hardwareschema en de chiphandleiding te begrijpen, moet u de informatie zelf vinden. Volg voor de rest gewoon de hoofdstuklijst van het en de eerste fase van de video om te leren.
Twee, de pit
Degenen die aan de slag willen, moeten eerst het leren van de kernel overslaan en leren hoe ze rechtstreeks stuurprogramma's kunnen schrijven.
Om een meester te worden, moet de kernel een diep begrip hebben. Merk op dat ik het heb over begrijpen, ik heb geen extravagante hoop om een kernel te schrijven.
Om het planningsmechanisme, het geheugenbeheermechanisme, het bestandsbeheermechanisme, enz. Binnenin te begrijpen.
Beveel twee boeken aan:
1. Lees het door, lees het dunne boekje (Floating society benadrukt snelheid)
2. Kies om te lezen, wil weten welke sectie welke sectie moet worden gelezen
Drie, rijden
De driver bestaat uit twee delen: de bediening van de hardware zelf en het framework van de driver.
Het is weer de hardware. Het is nog steeds nodig om het schematische diagram en de chiphandleiding te begrijpen. Meer oefenen. Over het driver-framework gesproken, er zijn enkele boeken om het te introduceren. LDD3, het boek geschreven door een buitenlander, introduceert veel concepten en is het lezen waard. Zijn rol is echter beperkt tot het introduceren van concepten. Ik gebruikte het in feite om mezelf vertrouwd te maken met de concepten voordat ik aan de slag ging, en gooide het daarna weg nadat ik was begonnen.
De meer uitgebreide introductie van de driver zou die van Song Baohua moeten zijn. Eerlijk gezegd heb ik alleen de catalogus gelezen. Veel mensen zeiden ja, ik raad het hier aan.
Als je een bepaald gebied diepgaand wilt begrijpen, is het zeker een super 5-sterren aanbeveling. Je verwacht het niet te lezen, meer dan 1,800 pagina's, twee delen op en neer. Als ik niet zeker ben van een bepaald gebied, zal ik er doorheen kijken. Elk deel van dit boek kan twee- of driehonderd pagina's beslaan, wat zeer gedetailleerd is. En om u mee te nemen naar het analyseren van de kernelbroncode met een bepaald doel. Het neemt linux 2.4 als voorbeeld, maar het principe is hetzelfde, en het is ook toepasbaar op andere versies van linux. Nog andere introducties? Natuurlijk is er het tweede nummer van Wei Dongshan Linux Video. Het "Complete Handbook of Embedded Linux Application Development" vertelt niet veel over de driver, en het is niet diepgaand genoeg.
Probeer een stuurprogramma te schrijven voor alle hardware die bij uw ontwikkelbord is betrokken. Als u een probleem heeft, moet u eerst "pijnlijk" nadenken. In het denkproces zul je veel irrelevante kennis met elkaar verbinden en uiteindelijk erdoor krijgen.
Ten vierde, het rootbestandssysteem
Heb je ooit over deze twee vragen nagedacht:
1. Voor de producten die door Linux zijn gemaakt, worden sommige gebruikt voor monitoring, sommige worden gebruikt als mobiele telefoons en sommige worden gebruikt als tablets. Dus nadat de kernel is gestart, na het aankoppelen van het rootbestandssysteem, welke applicatie moet dan worden gestart?
Antwoord: De kernel weet niet of het maakt niet uit welk gebruikersprogramma moet worden gestart. Het start alleen de init-applicatie, die overeenkomt met / sbin / init.
Uiteraard moet deze applicatie het configuratiebestand lezen en het gebruikersprogramma starten (monitoring, handmatige interface, tabletinterface, enz.) Volgens het configuratiebestand. Deze vraag herinnert ons eraan dat de inhoud van het bestandssysteem een aantal conventies heeft, zoals / sbin / init, een configuratiebestand is vereist.
2. Heb je er ooit over nagedacht wie de printf heeft geïmplementeerd die wordt gebruikt in de hello en wereldprogramma's die je schreef?
Antwoord: Deze functie wordt niet door jou geïmplementeerd, maar door een bibliotheekfunctie. Als het wordt uitgevoerd, moet het de bibliotheek vinden.
Deze vraag herinnert ons eraan dat er nog steeds bibliotheken in het bestandssysteem zijn. Hier is een simpele vraag en antwoord. Als je meer wilt weten, kun je naar init.c van busybox kijken om te weten wat het init-proces doet. Natuurlijk kunt u ook het hoofdstuk over het bouwen van het rootbestandssysteem in het
Mijn leerervaring
1. Toen ik op school zat, studeerde ik natuurkunde en elektronica. In feite heb ik in de cursus niet geleerd hoe ik schakelingen moet ontwerpen, maar alleen wat kennis over elektronische schakelingen. Het ontwerpen van PCB's heb ik in het laboratorium door mijzelf geleerd. Ik ontwierp alleen een 2-laags bord, en nu vergeet ik het bijna. Maar het behoudt de mogelijkheid om het schematische diagram en de chiphandleiding te lezen.
2. Ik heb een graad in software behaald en ben erg geïnteresseerd in softwareontwerp, maar ik heb alleen C-taal en database geleerd. Ik heb veel wedstrijdvragen met interesse gedaan. Ik kan niet deelnemen aan de wedstrijd, maar ik heb een solide C-taalpraktijk.
3. In het laboratorium, in het eerste bedrijf, ontwierp ik enkele eenvoudige PCI-kaarten en schreef ik de Windows-driver
4. In het tweede bedrijf, dat 51 microcomputers met één chip gebruikte als autotelefoon, begon het de weg van pure software te bewandelen.
5. Ik begon de tekortkomingen van de microcomputer met één chip te voelen. Ik nam ontslag voor een half jaar om achter gesloten deuren Linux te leren, te beginnen met het bedienen van de rode hoed. De stap is om er eerst naar te kijken, vervolgens het kale bordprogramma te schrijven om de hardware te bedienen en vervolgens de u-boot te analyseren. Tegelijkertijd heb ik enig begrip van het LINUX-framework.
Als u kale borden schrijft, is het raadzaam uw begrip van interrupts te versterken. De kernel gebruikt interrupts om verschillende functies te voltooien.
6. Start na het analyseren van u-boot de eenvoudige programmering van het stuurprogramma. Op dit moment is het vermogen nog steeds erg zwak.
7. Begon te werken bij ZTE, werkte 2 jaar, schreef allerlei chauffeurs, loste allerlei problemen op (rijproblemen, hielpen bij het lokaliseren van applicatieproblemen), en het vermogen werd getemperd.
|
Voer een e-mailadres in om een verrassing te ontvangen
es.fmuser.org
it.fmuser.org
fr.fmuser.org
de.fmuser.org
af.fmuser.org -> Afrikaans
sq.fmuser.org -> Albanees
ar.fmuser.org -> Arabisch
hy.fmuser.org -> Armenian
az.fmuser.org -> Azerbeidzjaans
eu.fmuser.org -> Baskisch
be.fmuser.org -> Wit-Russisch
bg.fmuser.org -> Bulgarian
ca.fmuser.org -> Catalaans
zh-CN.fmuser.org -> Chinees (vereenvoudigd)
zh-TW.fmuser.org -> Chinees (traditioneel)
hr.fmuser.org -> Kroatisch
cs.fmuser.org -> Tsjechisch
da.fmuser.org -> Deens
nl.fmuser.org -> Nederlands
et.fmuser.org -> Ests
tl.fmuser.org -> Filipijns
fi.fmuser.org -> Fins
fr.fmuser.org -> Frans
gl.fmuser.org -> Galicisch
ka.fmuser.org -> Georgisch
de.fmuser.org -> Duits
el.fmuser.org -> Greek
ht.fmuser.org -> Haïtiaans Creools
iw.fmuser.org -> Hebreeuws
hi.fmuser.org -> Hindi
hu.fmuser.org -> Hungarian
is.fmuser.org -> IJslands
id.fmuser.org -> Indonesisch
ga.fmuser.org -> Iers
it.fmuser.org -> Italian
ja.fmuser.org -> Japans
ko.fmuser.org -> Koreaans
lv.fmuser.org -> Lets
lt.fmuser.org -> Lithuanian
mk.fmuser.org -> Macedonisch
ms.fmuser.org -> Maleis
mt.fmuser.org -> Maltees
no.fmuser.org -> Norwegian
fa.fmuser.org -> Perzisch
pl.fmuser.org -> Pools
pt.fmuser.org -> Portugees
ro.fmuser.org -> Roemeens
ru.fmuser.org -> Russisch
sr.fmuser.org -> Servisch
sk.fmuser.org -> Slowaaks
sl.fmuser.org -> Slovenian
es.fmuser.org -> Spaans
sw.fmuser.org -> Swahili
sv.fmuser.org -> Zweeds
th.fmuser.org -> Thai
tr.fmuser.org -> Turks
uk.fmuser.org -> Oekraïens
ur.fmuser.org -> Urdu
vi.fmuser.org -> Vietnamese
cy.fmuser.org -> Welsh
yi.fmuser.org -> Jiddisch
FMUSER Wirless Verzend video en audio eenvoudiger!
Neem contact op
Adres:
No.305 Zaal HuiLan Gebouw No.273 Huanpu Road Guangzhou China 510620
Categorieën
Nieuwsbrief