FMUSER Wireless Video- und Audioübertragung einfacher!
es.fmuser.org
it.fmuser.org
fr.fmuser.org
de.fmuser.org
af.fmuser.org -> Afrikaans
sq.fmuser.org -> Albanisch
ar.fmuser.org -> Arabisch
hy.fmuser.org -> Armenisch
az.fmuser.org -> Aserbaidschanisch
eu.fmuser.org -> Baskisch
be.fmuser.org -> Weißrussisch
bg.fmuser.org -> Bulgarisch
ca.fmuser.org -> Katalanisch
zh-CN.fmuser.org -> Chinesisch (vereinfacht)
zh-TW.fmuser.org -> Chinesisch (traditionell)
hr.fmuser.org -> Kroatisch
cs.fmuser.org -> Tschechisch
da.fmuser.org -> Dänisch
nl.fmuser.org -> Niederländisch
et.fmuser.org -> Estnisch
tl.fmuser.org -> Philippinisch
fi.fmuser.org -> Finnisch
fr.fmuser.org -> Französisch
gl.fmuser.org -> Galizisch
ka.fmuser.org -> Georgisch
de.fmuser.org -> Deutsch
el.fmuser.org -> Griechisch
ht.fmuser.org -> Haitianisches Kreol
iw.fmuser.org -> Hebräisch
hi.fmuser.org -> Hindi
hu.fmuser.org -> Ungarisch
is.fmuser.org -> Isländisch
id.fmuser.org -> Indonesisch
ga.fmuser.org -> Irisch
it.fmuser.org -> Italienisch
ja.fmuser.org -> Japanisch
ko.fmuser.org -> Koreanisch
lv.fmuser.org -> Lettisch
lt.fmuser.org -> Litauisch
mk.fmuser.org -> Mazedonisch
ms.fmuser.org -> Malaiisch
mt.fmuser.org -> Malteser
no.fmuser.org -> Norwegisch
fa.fmuser.org -> Persisch
pl.fmuser.org -> Polnisch
pt.fmuser.org -> Portugiesisch
ro.fmuser.org -> Rumänisch
ru.fmuser.org -> Russisch
sr.fmuser.org -> Serbisch
sk.fmuser.org -> Slowakisch
sl.fmuser.org -> Slowenisch
es.fmuser.org -> Spanisch
sw.fmuser.org -> Suaheli
sv.fmuser.org -> Schwedisch
th.fmuser.org -> Thai
tr.fmuser.org -> Türkisch
uk.fmuser.org -> Ukrainisch
ur.fmuser.org -> Urdu
vi.fmuser.org -> Vietnamesisch
cy.fmuser.org -> Walisisch
yi.fmuser.org -> Jiddisch
Für die Anwendungsentwicklung: C-Sprache, Datenstruktur, JAVA usw. müssen gut gelernt sein. Bei der Entwicklung eingebetteter Anwendungen und Anwendungen auf dem PC gibt es nichts Besonderes zu beachten. Vielleicht sagen Sie, dass Sie das eingebettete System optimieren müssen, ja, Sie müssen optimieren, aber das nicht optimierte Programm unterscheidet sich nicht von der Programmentwicklung auf dem PC. Wenn Sie die Möglichkeit zur Optimierung haben, sind Sie es nicht mehr gewohnt, diese Frage zu stellen. Für ein bestimmtes Beispiel, wie z. B. die Entwicklungsschnittstelle, verwenden wir VC auf dem PC. Unter Embedded Linux können wir QT und Android verwenden. Zu diesem Zeitpunkt sollten Sie QT- und Android-Programmierung lernen. Aber die Grundlage ist immer noch C oder JAVA, und auf dieser Basis machen Sie sich mit ihren Schnittstellen vertraut. Wenn Sie VC gelernt haben, braucht es Zeit, um diese Klassen und Steuerelemente zu verstehen.
Wenn Sie das zugrunde liegende System lernen möchten, ist dies meine Spezialität, aber ich kann ein wenig sagen.
Lassen Sie mich vor der Beantwortung dieser Frage antworten: Viele Leute fragen mich, ob ich lernen soll, zu fahren oder mich zu bewerben. Ich kann nur sagen, dass es auf Interesse beruht und Treiber und Anwendungen nicht vollständig voneinander getrennt sind.
1. Die Treiber, über die wir sprechen, beschränken sich nicht nur auf Hardware-Vorgänge, sondern auch auf Konzepte wie Betriebssystemprinzipien und Prozess-Sleep- und Wake-Scheduling. Wenn Sie eine gute Anwendung schreiben und die Probleme der Anwendung besser lösen möchten, sollten Sie dieses Wissen verstehen
2. Niedrige Anwendungsbarrieren, insbesondere die aktuelle ANDROID, reine JAVA. Ich persönlich denke, dass der Anwendungsentwicklungspfad geschäftlich kompetent ist. In der Kommunikationsbranche, der IPTV-Branche und der Mobiltelefonbranche kennen Sie beispielsweise die Anforderungen der Branche. Daher sind Menschen, die führend sind, meistens Anwendungen.
3. Gefahren werden. Tatsächlich möchte ich es nicht als "Fahrer" bezeichnen, sondern als "Low-Level-System". Sobald dies erledigt ist, werden alle Branchen getötet. Ich habe mehrere Jahre gearbeitet und Mobiltelefone, IPTV und Konferenzfernsehen hergestellt, aber diese Produkte machen für mich keinen Unterschied, da ich nur die unterste Schicht mache. Ihr Geschäft hat nichts mit mir zu tun. Wenn es ein Problem mit der Anwendung gibt und sie es nicht lösen können, werde ich ihnen eine Idee aus der Kernel-Perspektive geben und ihnen Tools zur Verfügung stellen. Ich persönlich denke, dass ich ein technischer Experte in der Entwicklungsrichtung der untersten Schicht bin.
4. Tatsächlich gibt es keine Grenze zwischen der Ausführung der untersten Ebene oder der Ausführung der Anwendung. Wenn Sie Erfahrung mit der untersten Ebene haben, werden Sie sich bei der Anwendung sehr wohl fühlen. Mit Geschäftserfahrung können Sie die unterste Ebene kennenlernen und bald ein Team bilden.
Zurück zur Frage, wie man lernt. Was ist im zugrunde liegenden eingebetteten Linux-System enthalten? Mach dir keine Sorgen, du wirst es anhand eines Beispiels wissen.
1. Wer zeigt diese Schnittstellen an, wenn der Computer eingeschaltet ist? Es ist BIOS, was macht es? Einige Selbsttests, dann Windows von der Festplatte lesen und starten. Ebenso entspricht dieses BIOS dem Bootloader in Embedded Linux. Dieser Bootloader muss den Linux-Kernel auf Flash lesen und starten.
2. Was ist der Zweck des Startens von Windows? Natürlich ist es Online-Chat oder so. Wo sind diese Internet- und Chat-Tools? Auf dem Laufwerk C und dem Laufwerk D. Daher muss Windows zuerst das Laufwerk C und das Laufwerk D identifizieren. Wir nennen es das Root-Dateisystem unter Linux.
3. Windows kann das Laufwerk C und das Laufwerk D erkennen, daher muss es in der Lage sein, die Festplatte zu lesen und zu schreiben. Die beteiligten Dinge werden Fahrer genannt. Natürlich ist es nicht nur eine Festplatte, sondern auch eine Netzwerkkarte, USB und so weiter. Embedded Linux kann Anwendungen aus Flash lesen und ausführen und muss außerdem über Flash-Treiber verfügen. Natürlich ist es nicht nur Flash.
Lassen Sie uns zuerst darüber sprechen. Embedded LINUX enthält vier Hauptteile: Bootloader, Kernel, Treiber und Root-Dateisystem.
Eins, Bootloader
Es ist ein etwas komplizierteres Bare-Board-Programm. Es ist jedoch nicht einfach, dieses Bare-Board-Programm zu verstehen und zu schreiben. Die nützlichen Tools unter Windows schwächen unsere Programmierfähigkeit.
Viele Leute benutzen ADS und KEIL, sobald sie Embedded spielen. Kannst du diese Fragen beantworten?
1. Woher ruft die CPU nach dem Einschalten Anweisungen zur Ausführung ab?
Antwort: Im Allgemeinen stammt die Anweisung von Flash.
2. Flash kann jedoch nur gelesen und nicht direkt geschrieben werden. Wenn ich globale Variablen verwende, wo sind diese globalen Variablen?
Antwort: Globale Variablen sollten sich im Speicher befinden
3. Wer speichert also globale Variablen?
Antwort: Können Sie einem Freund antworten, der ADS und KEIL schon lange verwendet? Dies erfordert einen "Umzug". In ADS oder KEIL wird der Umzugscode von der Firma, die diese Tools herstellt, für Sie geschrieben. Hast du es jemals gelesen?
4. Der Speicher ist so groß, woher weiß ich, an welche Adresse ich den "ursprünglich in Flash gespeicherten Inhalt" in den Speicher lesen soll?
Antwort: Diese Adresse wird durch "Link-Skript" bestimmt, es gibt Scatter-Dateien in ADS und ähnliche Dateien in KEIL. Aber hast du es studiert?
5. Sie sagten, dass beim Umzug ein Programm von Flash in den Speicher kopiert werden soll, damit dieses Programm Flash lesen kann? Antwort: Ja, Sie müssen Flash bedienen können. Natürlich nicht nur diese, sondern auch das Einstellen der Uhr, damit das System schneller läuft und so weiter. Lassen Sie uns hier zuerst fragen und antworten. Der Bootloader, ein Bare-Board-Programm, hat tatsächlich drei Hauptpunkte:
1. Betrieb der Hardware
2. Verständnis der ARM-Systemprozessoren
3. Die Grundkonzepte des Programms: Relocation, Stack, Codesegment, Datensegment, BSS-Segment und so weiter.
Für den Betrieb der Hardware benötigen Sie das Schaltbild und das Chip-Handbuch. Dies erfordert ein gewisses Maß an Hardware-Kenntnissen. Es erfordert nicht, dass Sie in der Lage sind, Hardware zu entwerfen, aber zumindest zu verstehen. Es ist nicht erforderlich, analoge Schaltkreise verstehen zu können, sondern digitale Schaltkreise zu verstehen. Ich habe diese Fähigkeit in der Schule gelernt. Die zwei Bücher (der Titel des Buches, das ich vergessen habe) sind genug. Aber ich bezweifle, dass Sie die Geduld haben, diese beiden Bücher zu Ende zu lesen. Ich weiß nicht, ob es jetzt ein schnelleres Buch gibt. Wenn Sie es schnell machen möchten, lassen Sie dies zuerst los. Wenn Sie es nicht verstehen, fragen Sie einfach Google und posten Sie.
Außerdem muss das Chip-Handbuch gelesen werden. Suchen Sie nicht nach Chinesisch, sondern nur nach Englisch. Anfangs war es sehr schmerzhaft, aber später, wenn Grammatik und Wortschatz bekannt sind, ist es einfach, ein Chip-Handbuch zu lesen.
Informationen zum Verständnis von ARM-Systemprozessoren finden Sie unter Du Chunlei. Es geht um Montageanweisungen, Ausnahmemodi, MMU usw. Nur diese drei Inhalte müssen Sie verstehen.
Das Grundkonzept des Programms ist natürlich, dass der König die Prinzipien der Zusammenstellung betrachtet. Leider ist diese Art von Buch definitiv von der himmlischen Buchebene. Ich rate Ihnen, es nicht zu sehen, es sei denn, Sie sind ein Supergenie. Schau dir einfach das an und das erste Video, das ich geschrieben habe, mach dir keine Sorgen, gib kein Geld aus. Nach dem Video und Hardware-bezogenen Experimenten werden diese Konzepte klar. Ich habe nicht die zweite Reihe von Büchern oder Videos gefunden, die über diese Konzepte sprechen, sodass ich blind damit angeben kann. Für den Bootloader habe ich es zuerst während des Studiums gesehen, dann habe ich das Programm selbst geschrieben und alle Experimente mit verschiedener Hardware wie GPIO, Clock, SDRAM, UART und NAND durchgeführt. Wenn Sie sie klarstellen, ist es einfach, U-Boot durch Gruppieren zu verstehen. Um das Hardware-Schaltbild und das Chip-Handbuch zu verstehen, müssen Sie die Informationen selbst finden. Im Übrigen folgen Sie einfach der Kapitelliste der und die erste Phase des Videos zu lernen.
Zwei, der Kernel
Wer anfangen möchte, sollte zuerst das Kernel-Lernen überspringen und lernen, wie man Treiber direkt schreibt.
Um ein Meister zu werden, muss der Kernel ein tiefes Verständnis haben. Beachten Sie, dass ich über das Verstehen spreche, ich habe keine extravagante Hoffnung, einen Kernel zu schreiben.
Um den Planungsmechanismus, den Speicherverwaltungsmechanismus, den Dateiverwaltungsmechanismus usw. im Inneren zu verstehen.
Empfehlen Sie zwei Bücher:
1. Lesen Sie durch, bitte lesen Sie das dünne Buch (Floating Society betont Geschwindigkeit)
2. Wählen Sie Lesen, möchten Sie wissen, welcher Abschnitt welchen Abschnitt lesen soll
Drei, fahren
Der Treiber besteht aus zwei Teilen: dem Betrieb der Hardware selbst und dem Framework des Treibers.
Es ist wieder die Hardware. Es ist immer noch notwendig, das schematische Diagramm und das Chip-Handbuch zu verstehen. Übe mehr. Apropos Treiber-Framework, es gibt einige Bücher, um es vorzustellen. LDD3, das von einem Ausländer geschriebene Buch, führt viele Konzepte ein und ist lesenswert. Ihre Rolle beschränkt sich jedoch auf die Einführung von Konzepten. Ich habe es im Grunde genommen verwendet, um mich mit den Konzepten vertraut zu machen, bevor ich anfing, und es dann wegzuwerfen, nachdem ich angefangen habe.
Die umfassendere Einführung in den Fahrer sollte die von Song Baohua sein. Um ehrlich zu sein, habe ich nur den Katalog gelesen. Viele Leute sagten ja, ich empfehle es hier.
Wenn Sie einen bestimmten Bereich genau verstehen möchten, ist dies definitiv eine Super-5-Sterne-Empfehlung. Sie erwarten nicht, dass Sie es lesen, mehr als 1,800 Seiten, zwei Bände auf und ab. Wenn ich mir über einen bestimmten Bereich nicht sicher bin, werde ich ihn durchsehen. Jeder Teil dieses Buches kann zwei- oder dreihundert Seiten umfassen, was sehr detailliert ist. Und um Sie dazu zu bringen, den Kernel-Quellcode mit einem bestimmten Ziel zu analysieren. Als Beispiel wird Linux 2.4 verwendet, aber das Prinzip ist dasselbe und es gilt auch für andere Linux-Versionen. Irgendwelche anderen Einführungen? Natürlich gibt es die zweite Ausgabe von Wei Dongshan Linux Video. Das "Vollständige Handbuch zur Entwicklung eingebetteter Linux-Anwendungen" spricht nicht viel über den Treiber und ist nicht ausführlich genug.
Versuchen Sie, einen Treiber für die gesamte Hardware Ihres Entwicklungsboards zu schreiben. Wenn Sie ein Problem haben, sollten Sie zuerst "schmerzhaft denken". Während des Denkens verbinden Sie viel irrelevantes Wissen und bringen es schließlich durch.
Viertens das Root-Dateisystem
Haben Sie jemals über diese beiden Fragen nachgedacht:
1. Bei den von Linux hergestellten Produkten werden einige zur Überwachung verwendet, einige als Mobiltelefone und einige als Tablets. Welche Anwendung sollte nach dem Start des Kernels und nach dem Mounten des Root-Dateisystems gestartet werden?
Antwort: Der Kernel weiß nicht oder es ist ihm egal, welches Benutzerprogramm gestartet werden soll. Es wird nur die Init-Anwendung gestartet, die / sbin / init entspricht.
Offensichtlich muss diese Anwendung die Konfigurationsdatei lesen und das Benutzerprogramm (Überwachung, manuelle Schnittstelle, Tablet-Schnittstelle usw.) gemäß der Konfigurationsdatei starten. Diese Frage erinnert uns daran, dass der Inhalt des Dateisystems einige Konventionen hat, wie z. B. / sbin / init. Eine Konfigurationsdatei ist erforderlich.
2. Haben Sie jemals darüber nachgedacht, wer den in den von Ihnen geschriebenen Hallo- und Weltprogrammen verwendeten printf implementiert hat?
Antwort: Diese Funktion wird nicht von Ihnen implementiert, sondern von einer Bibliotheksfunktion. Wenn es ausgeführt wird, muss es die Bibliothek finden.
Diese Frage erinnert uns daran, dass sich noch Bibliotheken im Dateisystem befinden. Hier ist eine einfache Frage und Antwort. Wenn Sie mehr wissen möchten, können Sie in der init.c der Busybox nachsehen, was der Init-Prozess tut. Natürlich finden Sie auch das Kapitel zum Erstellen des Root-Dateisystems im .
Meine Lernerfahrung
1. Als ich in der Schule war, habe ich Physik und Elektronik studiert. Tatsächlich habe ich im Kurs nicht das Entwerfen von Schaltkreisen unterrichtet, sondern nur einige Kenntnisse über elektronische Schaltkreise. Das Design der Leiterplatte wurde von mir im Labor unterrichtet. Ich habe nur ein 2-Lagen-Board entworfen und jetzt vergesse ich es fast. Es behält jedoch die Fähigkeit, das schematische Diagramm und das Chip-Handbuch zu lesen.
2. Ich habe einen Abschluss in Software gemacht und interessiere mich sehr für Software-Design, aber ich habe nur C-Sprache und Datenbank gelernt. Ich habe viele Wettbewerbsfragen mit Interesse gestellt. Ich kann nicht am Wettbewerb teilnehmen, habe aber eine solide C-Sprachpraxis.
3. Im Labor, in der ersten Firma, habe ich einige einfache PCI-Karten entworfen und den Windows-Treiber geschrieben
4. In der zweiten Firma, die 51 Single-Chip-Mikrocomputer als Autotelefon verwendete, begann der Weg der reinen Software.
5. Ich begann die Mängel des Single-Chip-Mikrocomputers zu spüren. Ich trat für ein halbes Jahr zurück, um Linux hinter verschlossenen Türen zu lernen, angefangen mit der Bedienung des roten Hutes. Der Schritt besteht darin, es zuerst zu betrachten, dann das Bare-Board-Programm zu schreiben, um die Hardware zu bedienen, und dann den U-Boot zu analysieren. Gleichzeitig habe ich ein gewisses Verständnis für das LINUX-Framework.
Wenn Sie nackte Bretter schreiben, wird empfohlen, dass Sie Ihr Verständnis für Interrupts verbessern. Der Kernel verwendet Interrupts, um verschiedene Funktionen auszuführen.
6. Starten Sie nach der Analyse von u-boot die einfache Treiberprogrammierung. Zu diesem Zeitpunkt ist die Fähigkeit noch sehr schwach.
7. Begann bei ZTE zu arbeiten, arbeitete 2 Jahre lang, schrieb alle Arten von Treibern, löste alle Arten von Problemen (Fahrprobleme, Hilfe bei der Suche nach Anwendungsproblemen) und die Fähigkeit wurde gemildert.
|
Geben Sie eine E-Mail-Adresse ein, um eine Überraschung zu erhalten
es.fmuser.org
it.fmuser.org
fr.fmuser.org
de.fmuser.org
af.fmuser.org -> Afrikaans
sq.fmuser.org -> Albanisch
ar.fmuser.org -> Arabisch
hy.fmuser.org -> Armenisch
az.fmuser.org -> Aserbaidschanisch
eu.fmuser.org -> Baskisch
be.fmuser.org -> Weißrussisch
bg.fmuser.org -> Bulgarisch
ca.fmuser.org -> Katalanisch
zh-CN.fmuser.org -> Chinesisch (vereinfacht)
zh-TW.fmuser.org -> Chinesisch (traditionell)
hr.fmuser.org -> Kroatisch
cs.fmuser.org -> Tschechisch
da.fmuser.org -> Dänisch
nl.fmuser.org -> Niederländisch
et.fmuser.org -> Estnisch
tl.fmuser.org -> Philippinisch
fi.fmuser.org -> Finnisch
fr.fmuser.org -> Französisch
gl.fmuser.org -> Galizisch
ka.fmuser.org -> Georgisch
de.fmuser.org -> Deutsch
el.fmuser.org -> Griechisch
ht.fmuser.org -> Haitianisches Kreol
iw.fmuser.org -> Hebräisch
hi.fmuser.org -> Hindi
hu.fmuser.org -> Ungarisch
is.fmuser.org -> Isländisch
id.fmuser.org -> Indonesisch
ga.fmuser.org -> Irisch
it.fmuser.org -> Italienisch
ja.fmuser.org -> Japanisch
ko.fmuser.org -> Koreanisch
lv.fmuser.org -> Lettisch
lt.fmuser.org -> Litauisch
mk.fmuser.org -> Mazedonisch
ms.fmuser.org -> Malaiisch
mt.fmuser.org -> Malteser
no.fmuser.org -> Norwegisch
fa.fmuser.org -> Persisch
pl.fmuser.org -> Polnisch
pt.fmuser.org -> Portugiesisch
ro.fmuser.org -> Rumänisch
ru.fmuser.org -> Russisch
sr.fmuser.org -> Serbisch
sk.fmuser.org -> Slowakisch
sl.fmuser.org -> Slowenisch
es.fmuser.org -> Spanisch
sw.fmuser.org -> Suaheli
sv.fmuser.org -> Schwedisch
th.fmuser.org -> Thai
tr.fmuser.org -> Türkisch
uk.fmuser.org -> Ukrainisch
ur.fmuser.org -> Urdu
vi.fmuser.org -> Vietnamesisch
cy.fmuser.org -> Walisisch
yi.fmuser.org -> Jiddisch
FMUSER Wireless Video- und Audioübertragung einfacher!
Kontakt
Adresse
Nr.305 Zimmer HuiLan Gebäude Nr.273 Huanpu Road Guangzhou China 510620
Kategorien
Newsletter