FMUSER Wirless Transmituj wideo i audio łatwiejsze!
es.fmuser.org
it.fmuser.org
fr.fmuser.org
de.fmuser.org
af.fmuser.org -> Afrikaans
sq.fmuser.org -> albański
ar.fmuser.org -> arabski
hy.fmuser.org -> Armeński
az.fmuser.org -> Azerbejdżański
eu.fmuser.org -> baskijski
be.fmuser.org -> białoruski
bg.fmuser.org -> bułgarski
ca.fmuser.org -> kataloński
zh-CN.fmuser.org -> chiński (uproszczony)
zh-TW.fmuser.org -> chiński (tradycyjny)
hr.fmuser.org -> chorwacki
cs.fmuser.org -> czeski
da.fmuser.org -> duński
nl.fmuser.org -> holenderski
et.fmuser.org -> estoński
tl.fmuser.org -> filipiński
fi.fmuser.org -> fiński
fr.fmuser.org -> francuski
gl.fmuser.org -> galicyjski
ka.fmuser.org -> gruziński
de.fmuser.org -> niemiecki
el.fmuser.org -> grecki
ht.fmuser.org -> kreolski haitański
iw.fmuser.org -> hebrajski
hi.fmuser.org -> hindi
hu.fmuser.org -> węgierski
is.fmuser.org -> islandzki
id.fmuser.org -> indonezyjski
ga.fmuser.org -> irlandzki
it.fmuser.org -> włoski
ja.fmuser.org -> japoński
ko.fmuser.org -> koreański
lv.fmuser.org -> łotewski
lt.fmuser.org -> litewski
mk.fmuser.org -> macedoński
ms.fmuser.org -> malajski
mt.fmuser.org -> maltański
no.fmuser.org -> norweski
fa.fmuser.org -> perski
pl.fmuser.org -> polski
pt.fmuser.org -> portugalski
ro.fmuser.org -> rumuński
ru.fmuser.org -> rosyjski
sr.fmuser.org -> serbski
sk.fmuser.org -> słowacki
sl.fmuser.org -> słoweński
es.fmuser.org -> hiszpański
sw.fmuser.org -> suahili
sv.fmuser.org -> szwedzki
th.fmuser.org -> Tajski
tr.fmuser.org -> turecki
uk.fmuser.org -> ukraiński
ur.fmuser.org -> Urdu
vi.fmuser.org -> wietnamski
cy.fmuser.org -> walijski
yi.fmuser.org -> jidysz
Do tworzenia aplikacji: języka C, struktury danych, JAVA itp. Należy się dobrze nauczyć. Nie ma nic specjalnego, na co warto zwrócić uwagę przy tworzeniu aplikacji wbudowanych i tworzeniu aplikacji na PC. Może mówisz, że musisz zoptymalizować system wbudowany, tak, musisz zoptymalizować, ale niezoptymalizowany program nie różni się od tworzenia programu na PC. Ponadto, gdy masz możliwość optymalizacji, nie jesteś już przyzwyczajony do zadawania tego pytania. W konkretnym przykładzie, takim jak interfejs programistyczny, używamy VC na komputerze; we wbudowanym Linuksie możemy używać QT i Androida. W tej chwili powinieneś nauczyć się programowania QT i Androida. Ale podstawą jest nadal C lub JAVA i na tej podstawie zapoznaj się z ich interfejsami. Jeśli nauczyłeś się VC, zrozumienie tych klas i elementów sterujących wymaga czasu.
Jeśli chcesz nauczyć się podstawowego systemu, to moja specjalność, ale mogę trochę powiedzieć.
Zanim odpowiem na to pytanie, pozwolę sobie odpowiedzieć: Wiele osób pyta mnie, czy jest to nauka jazdy, czy umiejętność aplikowania? Mogę tylko powiedzieć, że opiera się na zainteresowaniach, a sterowniki i aplikacje nie są całkowicie oddzielne.
1. Sterowniki, o których mówimy, nie ograniczają się do operacji sprzętowych, ale także do pojęć, takich jak zasady systemu operacyjnego oraz planowanie procesów uśpienia i wybudzenia. Jeśli chcesz napisać dobrą aplikację i chcesz lepiej rozwiązywać problemy, które napotyka aplikacja, powinieneś zrozumieć tę wiedzę
2. Niskie bariery w aplikacji, zwłaszcza obecny ANDROID, czysta JAVA. Osobiście uważam, że ścieżka rozwoju aplikacji jest biegła w biznesie. Na przykład w branży komunikacyjnej, IPTV i telefonii komórkowej rozumiesz potrzeby tej branży. Dlatego ludzie, którzy są liderami, to głównie aplikacje.
3. Bądź napędzany. W rzeczywistości nie chcę nazywać tego „byciem kierowcą”, ale chcę nazywać to „byciem systemem niskiego poziomu”. Gdy to zrobisz, zabije to wszystkie branże. Pracuję od kilku lat i robię telefony komórkowe, IPTV i telewizję konferencyjną, ale te produkty nie mają dla mnie znaczenia, ponieważ wykonuję tylko dolną warstwę. Ich sprawa nie ma ze mną nic wspólnego. Gdy wystąpi problem z aplikacją i nie mogą go rozwiązać, przedstawię im pomysł z punktu widzenia jądra i dostarczę narzędzia. Osobiście uważam, że jestem ekspertem technicznym w kierunku rozwoju dolnej warstwy.
4. W rzeczywistości nie ma granicy między wykonaniem dolnej warstwy a wykonaniem aplikacji. Jeśli masz doświadczenie w dolnej warstwie, będziesz czuć się bardzo swobodnie podczas aplikacji. Dzięki doświadczeniu biznesowemu możesz poznać dolną warstwę, a wkrótce będziesz mógł stworzyć zespół.
Wracając do pytania, jak się uczyć. Co zawiera wbudowany podstawowy system Linux? Nie martw się, dowiesz się o tym na przykładzie.
1. Kiedy komputer jest włączony, kto wyświetla te interfejsy? To jest BIOS, co on robi? Niektóre autotesty, a następnie odczytaj okna z dysku twardego i uruchom je. Podobnie ten BIOS odpowiada programowi ładującemu we wbudowanym systemie Linux. Ten bootloader musi czytać jądro Linuksa we Flashu i go uruchamiać.
2. Jaki jest cel uruchamiania systemu Windows? Oczywiście jest to czat online czy coś takiego. Gdzie są te narzędzia internetowe i do czatu? Na dysku C i dysku D. Dlatego system Windows musi najpierw zidentyfikować dysk C i dysk D. Nazywamy to głównym systemem plików w Linuksie.
3. System Windows może rozpoznać dysk C i dysk D, więc musi mieć możliwość odczytu i zapisu na dysku twardym. Te rzeczy nazywane są kierowcami. Oczywiście jest to nie tylko dysk twardy, ale także karta sieciowa, USB i tak dalej. Wbudowany Linux może odczytywać i uruchamiać aplikacje z Flasha i musi mieć również sterowniki Flash. Oczywiście nie chodzi tylko o Flash.
Porozmawiajmy najpierw o tym, osadzony LINUX składa się z czterech głównych części: programu ładującego, jądra, sterownika i głównego systemu plików.
Po pierwsze, bootloader
Jest to nieco bardziej skomplikowany program samej tablicy. Ale nie jest łatwo zrozumieć i napisać ten prosty program. Przydatne narzędzia w systemie Windows osłabiają nasze możliwości programowania.
Wiele osób korzysta z ADS i KEIL, gdy tylko odtwarzają osadzone pliki. Czy możesz odpowiedzieć na te pytania?
1. Skąd procesor pobiera instrukcje do wykonania po włączeniu zasilania?
Odpowiedź: Generalnie instrukcja pochodzi z Flasha.
2. Ale Flash można tylko czytać, a nie bezpośrednio zapisywać. Jeśli używam zmiennych globalnych, gdzie są te zmienne globalne?
Odpowiedź: Zmienne globalne powinny znajdować się w pamięci
3. Kto zatem umieszcza w pamięci zmienne globalne?
Odpowiedź: Czy możesz odpowiedzieć znajomemu, który używa ADS i KEIL przez długi czas? Wymaga to „relokacji”. W ADS lub KEIL kod relokacji jest napisany dla Ciebie przez firmę, która tworzy te narzędzia. Czy kiedykolwiek to czytałeś?
4. Pamięć jest tak duża, skąd mam wiedzieć, który adres wczytać do pamięci „zawartość pierwotnie przechowywaną we Flashu”?
Odpowiedź: Ten adres jest określany przez „skrypt odsyłacza”, w ADS znajdują się pliki rozproszone, a w KEIL podobne pliki. Ale czy już to studiowałeś?
5. Powiedziałeś, że relokacja polega na skopiowaniu programu z Flasha do pamięci, żeby ten program mógł czytać Flash? Odpowiedź: Tak, musisz umieć obsługiwać Flash. Oczywiście nie tylko to, ale także ustawienie zegara, aby system działał szybciej i tak dalej. Najpierw zapytajmy i odpowiedzmy tutaj, bootloader, program bez płyty, ma w rzeczywistości trzy główne punkty:
1. Działanie sprzętu
2. Zrozumienie procesorów systemu ARM
3. Podstawowe pojęcia programu: relokacja, stos, segment kodu, segment danych, segment BSS i tak dalej.
W celu obsługi sprzętu należy zapoznać się ze schematem i instrukcją obsługi chipa. Wymaga to pewnej wiedzy o sprzęcie. Nie wymaga umiejętności projektowania sprzętu, ale przynajmniej jego zrozumienia; nie wymaga umiejętności rozumienia obwodów analogowych, ale rozumienia obwodów cyfrowych. Nauczyłem się tej umiejętności w szkole. Dwie książki (tytuł książki, o której zapomniałem) wystarczą. Ale wątpię, czy masz cierpliwość, aby dokończyć czytanie tych dwóch książek. Nie wiem, czy jest teraz szybsza książka. Jeśli chcesz to przyspieszyć, odpuść sobie to najpierw, a jeśli nie rozumiesz, po prostu zapytaj Google i opublikuj.
Ponadto należy przeczytać instrukcję chipa, nie szukaj chińskiego, tylko spójrz na angielski. Na początku było to bardzo bolesne, ale później, gdy znajomość gramatyki i słownictwa jest już znana, łatwo jest przeczytać każdy podręcznik do chipa.
Więcej informacji na temat procesorów systemu ARM można znaleźć w artykule Du Chunlei. Mówi o instrukcjach asemblera, trybach wyjątków, MMU itp. Tylko te 3 elementy treści wymagają zrozumienia.
Podstawową koncepcją programu oczywiście króla jest przyjrzenie się zasadom kompilacji. Niestety, ten rodzaj książek jest zdecydowanie na poziomie książki niebiańskiej. Radzę nie oglądać tego, chyba że jesteś super geniuszem. Po prostu obejrzyj i pierwszy film, który napisałem, nie martw się, nie wydawaj pieniędzy. Po obejrzeniu filmu i przeprowadzeniu eksperymentów sprzętowych koncepcje te staną się jasne. Nie znalazłem drugiego zestawu książek lub filmów, które mówią o tych koncepcjach, co pozwala mi się tym chwalić na ślepo. Jeśli chodzi o bootloader, po raz pierwszy obejrzałem go podczas studiów, a potem sam napisałem program i przeprowadziłem wszystkie eksperymenty na różnych urządzeniach, takich jak GPIO, zegar, SDRAM, UART i NAND. Jeśli wyjaśnisz je jasno, łatwo jest zrozumieć u-boot, grupując je razem. Podsumowując, aby zrozumieć schemat sprzętowy i instrukcję chipa, musisz samodzielnie znaleźć informacje. Co do reszty, po prostu postępuj zgodnie z listą rozdziałów i pierwszą fazę filmu do nauki.
Po drugie, jądro
Ci, którzy chcą zacząć, powinni najpierw pominąć naukę jądra i nauczyć się, jak bezpośrednio pisać sterowniki.
Aby zostać mistrzem, jądro musi mieć głębokie zrozumienie. Zauważ, że mówię o zrozumieniu, nie mam przesadnej nadziei na napisanie jądra.
Zrozumieć mechanizm planowania, mechanizm zarządzania pamięcią, mechanizm zarządzania plikami itp. Wewnątrz.
Polecam dwie książki:
1. Przeczytaj, przeczytaj cienką książkę (Floating Society kładzie nacisk na szybkość)
2. Wybierz do przeczytania, chcesz wiedzieć, którą sekcję przeczytać, którą sekcję
Po trzecie, jedź
Sterownik składa się z dwóch części: obsługi samego sprzętu i szkieletu sterownika.
To znowu sprzęt. Nadal konieczne jest zrozumienie schematu i instrukcji obsługi chipa. Ćwicz więcej. Mówiąc o strukturze sterownika, istnieje kilka książek, które go wprowadzają. LDD3, książka napisana przez obcokrajowca, wprowadza wiele pojęć i jest warta przeczytania. Jednak jego rola ogranicza się do wprowadzania pojęć. Zasadniczo użyłem go do zapoznania się z koncepcjami przed rozpoczęciem, a następnie wyrzuciłem go po rozpoczęciu.
Bardziej obszerne wprowadzenie do sterownika powinno pochodzić z Song Baohua. Szczerze mówiąc, czytam tylko katalog. Wiele osób powiedziało tak, polecam tutaj.
Jeśli chcesz dogłębnie zrozumieć określony obszar, jest to zdecydowanie super 5-gwiazdkowa rekomendacja. Nie spodziewasz się, że go przeczytasz, ponad 1,800 stron, dwa tomy w górę iw dół. Kiedy nie jestem pewien co do jakiegoś obszaru, przejrzę go. Każda część tej książki może obejmować dwieście lub trzysta stron, co jest bardzo szczegółowe. I abyś przeanalizował kod źródłowy jądra w określonym celu. Jako przykład bierze linux 2.4, ale zasada jest taka sama i ma to zastosowanie również do innych wersji systemu Linux. Jakieś inne przedstawienia? Oczywiście, jest drugie wydanie Wei Dongshan Linux Video. „Kompletny podręcznik tworzenia aplikacji wbudowanych w Linuksie” nie mówi zbyt wiele o sterowniku i nie jest wystarczająco szczegółowy.
Spróbuj napisać sterownik dla całego sprzętu używanego na twojej płycie rozwojowej. Jeśli masz problem, powinieneś najpierw „pomyśleć boleśnie”. W procesie myślenia połączysz dużo nieistotnej wiedzy i ostatecznie przejdziesz przez nią.
Po czwarte, główny system plików
Czy zastanawiałeś się kiedyś nad tymi dwoma pytaniami:
1. W przypadku produktów tworzonych przez Linuksa niektóre są używane do monitorowania, inne jako telefony komórkowe, a inne jako tablety. Więc po uruchomieniu jądra, po zamontowaniu głównego systemu plików, która aplikacja powinna zostać uruchomiona?
Odpowiedź: Jądro nie wie lub nie dba o to, który program użytkownika powinien zostać uruchomiony. Uruchamia tylko aplikację init, która odpowiada / sbin / init.
Oczywiście ta aplikacja musi odczytać plik konfiguracyjny i uruchomić program użytkownika (monitorowanie, interfejs ręczny, interfejs tabletu, itp.) Zgodnie z plikiem konfiguracyjnym. To pytanie przypomina nam, że zawartość systemu plików ma pewne konwencje, takie jak / sbin / init, wymagany jest plik konfiguracyjny.
2. Czy zastanawiałeś się kiedyś, kto zaimplementował printf używany w programach hello i world, które napisałeś?
Odpowiedź: Ta funkcja nie jest implementowana przez Ciebie, ale przez funkcję biblioteczną. Po uruchomieniu musi znaleźć bibliotekę.
To pytanie przypomina nam, że w systemie plików wciąż istnieją biblioteki. Oto proste pytanie i odpowiedź. Jeśli chcesz dowiedzieć się więcej, możesz zajrzeć do pliku init.c busybox, aby dowiedzieć się, co robi proces init. Oczywiście możesz również zapoznać się z rozdziałem o budowaniu głównego systemu plików w .
Moje doświadczenie w nauce
1. W szkole ukończyłem fizykę i elektronikę. Właściwie na kursie nie uczyłem projektowania obwodów, a jedynie przekazałem trochę wiedzy na temat układów elektronicznych. Projekt PCB został nauczony przeze mnie w laboratorium. Zaprojektowałem tylko deskę dwuwarstwową i teraz prawie o niej zapomniałem. Ale zachowuje możliwość czytania schematu i instrukcji chipa.
2. Skończyłem programowanie i bardzo interesuje mnie projektowanie oprogramowania, ale nauczyłem się tylko języka C i baz danych. Z zainteresowaniem odpowiedziałem na wiele pytań konkursowych. Nie mogę wziąć udziału w konkursie, ale mam solidną praktykę języka C.
3. W laboratorium, w pierwszej firmie, zaprojektowałem kilka prostych kart PCI i napisałem sterownik dla systemu Windows
4. W drugiej firmie, używając 51 jednoukładowego mikrokomputera jako telefonu samochodowego, wkroczyła na drogę czystego oprogramowania.
5. Zacząłem odczuwać wady mikrokomputera jednoukładowego. Zrezygnowałem na pół roku, aby uczyć się Linuksa za zamkniętymi drzwiami, zaczynając od obsługi czerwonego kapelusza. Krok polega na tym, aby najpierw przyjrzeć się temu, a następnie napisać program samej płyty do obsługi sprzętu, a następnie przeanalizować u-boot. Jednocześnie mam pewne zrozumienie frameworka LINUX.
Podczas pisania gołych tablic zaleca się wzmocnienie zrozumienia przerwań. Jądro używa przerwań do wykonywania różnych funkcji.
6. Po przeanalizowaniu u-boot, rozpocznij proste programowanie sterownika. W tej chwili zdolność jest nadal bardzo słaba.
7. Rozpoczął pracę w ZTE, pracował przez 2 lata, pisał wszelkiego rodzaju kierowców, rozwiązywał wszelkiego rodzaju problemy (problemy z jazdą, pomaganie w lokalizowaniu problemów z aplikacjami), a umiejętność była hartowana.
|
Wpisz e-mail, aby otrzymać niespodziankę
es.fmuser.org
it.fmuser.org
fr.fmuser.org
de.fmuser.org
af.fmuser.org -> Afrikaans
sq.fmuser.org -> albański
ar.fmuser.org -> arabski
hy.fmuser.org -> Armeński
az.fmuser.org -> Azerbejdżański
eu.fmuser.org -> baskijski
be.fmuser.org -> białoruski
bg.fmuser.org -> bułgarski
ca.fmuser.org -> kataloński
zh-CN.fmuser.org -> chiński (uproszczony)
zh-TW.fmuser.org -> chiński (tradycyjny)
hr.fmuser.org -> chorwacki
cs.fmuser.org -> czeski
da.fmuser.org -> duński
nl.fmuser.org -> holenderski
et.fmuser.org -> estoński
tl.fmuser.org -> filipiński
fi.fmuser.org -> fiński
fr.fmuser.org -> francuski
gl.fmuser.org -> galicyjski
ka.fmuser.org -> gruziński
de.fmuser.org -> niemiecki
el.fmuser.org -> grecki
ht.fmuser.org -> kreolski haitański
iw.fmuser.org -> hebrajski
hi.fmuser.org -> hindi
hu.fmuser.org -> węgierski
is.fmuser.org -> islandzki
id.fmuser.org -> indonezyjski
ga.fmuser.org -> irlandzki
it.fmuser.org -> włoski
ja.fmuser.org -> japoński
ko.fmuser.org -> koreański
lv.fmuser.org -> łotewski
lt.fmuser.org -> litewski
mk.fmuser.org -> macedoński
ms.fmuser.org -> malajski
mt.fmuser.org -> maltański
no.fmuser.org -> norweski
fa.fmuser.org -> perski
pl.fmuser.org -> polski
pt.fmuser.org -> portugalski
ro.fmuser.org -> rumuński
ru.fmuser.org -> rosyjski
sr.fmuser.org -> serbski
sk.fmuser.org -> słowacki
sl.fmuser.org -> słoweński
es.fmuser.org -> hiszpański
sw.fmuser.org -> suahili
sv.fmuser.org -> szwedzki
th.fmuser.org -> Tajski
tr.fmuser.org -> turecki
uk.fmuser.org -> ukraiński
ur.fmuser.org -> Urdu
vi.fmuser.org -> wietnamski
cy.fmuser.org -> walijski
yi.fmuser.org -> jidysz
FMUSER Wirless Transmituj wideo i audio łatwiejsze!
Kontakt
Adres:
Nr 305 Pokój HuiLan Budynek nr 273 Huanpu Road Guangzhou Chiny 510620
Kategorie
Newsletter