FMUSER Wirless Video və Səsi Daha Asan ötürür!
es.fmuser.org
it.fmuser.org
fr.fmuser.org
de.fmuser.org
af.fmuser.org -> Afrikaans
sq.fmuser.org -> Alban
ar.fmuser.org -> ərəb
hy.fmuser.org -> Ermənistan
az.fmuser.org -> azərbaycan dili
eu.fmuser.org -> Bask
be.fmuser.org -> Belarus
bg.fmuser.org -> Bulgarian
ca.fmuser.org -> Katalan
zh-CN.fmuser.org -> Çin (Sadələşdirilmiş)
zh-TW.fmuser.org -> Çin (Ənənəvi)
hr.fmuser.org -> Xorvat
cs.fmuser.org -> Çex dili
da.fmuser.org -> Danimarkalı
nl.fmuser.org -> Holland
et.fmuser.org -> Eston
tl.fmuser.org -> Filipin
fi.fmuser.org -> Fin
fr.fmuser.org -> Fransız
gl.fmuser.org -> Qalisian
ka.fmuser.org -> gürcü
de.fmuser.org -> Alman
el.fmuser.org -> Yunan
ht.fmuser.org -> Haiti Kreolu
iw.fmuser.org -> İbrani
hi.fmuser.org -> Hind dili
hu.fmuser.org -> Macar
is.fmuser.org -> İslandiya
id.fmuser.org -> İndoneziya
ga.fmuser.org -> İrlandiyalı
it.fmuser.org -> Italian
ja.fmuser.org -> Yapon
ko.fmuser.org -> Koreyalı
lv.fmuser.org -> Latviya
lt.fmuser.org -> Litva
mk.fmuser.org -> Makedoniya
ms.fmuser.org -> Malay dili
mt.fmuser.org -> Malta
no.fmuser.org -> Norveç
fa.fmuser.org -> Fars dili
pl.fmuser.org -> Polşa
pt.fmuser.org -> Portuqal
ro.fmuser.org -> Roman
ru.fmuser.org -> Rus
sr.fmuser.org -> Serb
sk.fmuser.org -> Slovak
sl.fmuser.org -> Sloveniya
es.fmuser.org -> İspan
sw.fmuser.org -> suahili
sv.fmuser.org -> İsveç
th.fmuser.org -> Thai
tr.fmuser.org -> Türkcə
uk.fmuser.org -> Ukrayna
ur.fmuser.org -> Urdu
vi.fmuser.org -> Vietnamese
cy.fmuser.org -> Uels
yi.fmuser.org -> Azərbaycan
Tətbiq inkişafı üçün: C dili, məlumat quruluşu, JAVA və s. Yaxşı öyrənilməlidir. PC-dəki tətbiqetmə inkişafında və tətbiq inkişafında diqqət yetiriləcək xüsusi bir şey yoxdur. Bəlkə əlaqədar sistemi optimallaşdırmağın lazım olduğunu söyləyirsən, bəli optimallaşdırmalısan, amma optimallaşdırılmamış proqramın PC-dəki proqram inkişafından heç bir fərqi yoxdur. Bundan əlavə, optimallaşdırma qabiliyyətiniz olduqda, artıq bu sualı verməyə alışmırsınız. İnkişaf interfeysi kimi xüsusi bir nümunə üçün PC-də VC istifadə edirik; əlaqədar Linuxda QT və Android istifadə edə bilərik. Bu anda QT və Android proqramlaşdırma öyrənməlisiniz. Ancaq təməl hələ C və ya JAVA'dır və bu əsasda onların interfeysləri ilə tanış olun. VC öyrənmisinizsə, bu dərsləri və nəzarətləri anlamaq üçün vaxt lazımdır.
Əsas sistemini öyrənmək istəyirsənsə, bu mənim ixtisasımdır, amma bir az deyə bilərəm.
Bu suala cavab verməzdən əvvəl cavab verim: Bir çox insan məndən soruşur ki, sürməyi öyrənməkdir, yoxsa tətbiq etməyi öyrənmək? Yalnız maraqlara söykəndiyini söyləyə bilərəm və sürücülər və tətbiqetmələr tamamilə ayrı deyil.
1. Bəhs etdiyimiz sürücülər yalnız hardware əməliyyatları ilə məhdudlaşmır, həm də əməliyyat sistemi prinsipləri və proses yuxusu və oyanma vaxtı kimi anlayışlardır. Yaxşı bir müraciət yazmaq və tətbiqetmənin qarşılaşdığı problemləri daha yaxşı həll etmək istəyirsinizsə, bu bilikləri anlamalısınız
2. Xüsusilə mövcud ANDROID, təmiz JAVA tətbiqi üçün aşağı maneələr. Şəxsən mən düşünürəm ki, tətbiqetmə inkişaf yolu biznesdə bacarıqlıdır. Məsələn, rabitə sənayesində, IPTV sənayesində və mobil telefon sənayesində sənayenin ehtiyaclarını başa düşürsən. Buna görə lider olan insanlar daha çox müraciətdir.
3. İdarə olun. Əslində, buna "sürücü olmaq" demək istəmirəm, amma "aşağı səviyyəli bir sistem olmaq" adlandırmaq istəyirəm. Bir dəfə bu, bütün sənayeləri öldürəcəkdir. Bir neçə il çalışdım və mobil telefonlar, IPTV və konfrans televiziyası düzəltdim, ancaq bu məhsullar mənim üçün heç bir fərq yaratmır, çünki yalnız alt təbəqəni edirəm. Onların işlərinin mənimlə heç bir əlaqəsi yoxdur. Tətbiqlə bağlı bir problem olduqda və həll edə bilmədikdə, mən onlara kernel baxımından bir fikir verəcəyəm və onlara alətlər təqdim edəcəyəm. Şəxsən mən alt təbəqənin inkişaf istiqamətində texniki mütəxəssis olduğumu düşünürəm.
4. Əslində alt qatı etməklə tətbiqi etmək arasında heç bir sərhəd yoxdur. Alt təbəqə təcrübəniz varsa, tətbiqi edərkən özünüzü çox rahat hiss edəcəksiniz. İş təcrübəsi ilə alt qatla tanış ola bilərsiniz və tezliklə bir komanda qura biləcəksiniz.
Necə öyrənmək sualına qayıdın. Yerləşdirilmiş Linux əsas sisteminə nə daxildir? Narahat olmayın, bir nümunə gətirərək biləcəksiniz.
1. Kompüter açıq olduqda, həmin interfeysləri kim göstərir? BIOS'dur, nə edir? Bəzi özünü yoxlayır, sonra sabit diskdən pəncərələri oxuyun və başladın. Eynilə, bu BIOS, quraşdırılmış Linuxdakı önyükləyiciyə cavab verir. Bu yükləyicinin Flash-da Linux nüvəsini oxuması və işə salması lazımdır.
2. Pəncərələri işə salmağın məqsədi nədir? Əlbəttə ki, onlayn söhbət və ya başqa bir şey var. Bu İnternet və söhbət alətləri haradadır? C sürücüsündə və D sürücüsündə. Buna görə, pəncərələr əvvəlcə C sürücüsünü və D sürücüsünü təyin etməlidir. Linux altında kök fayl sistemi deyirik.
3. Windows C sürücüsünü və D sürücüsünü tanıya bilər, buna görə sabit disk oxumaq və yazmağı bacarmalıdır. İştirak edən şeylərə sürücü deyilir. Əlbəttə ki, bu yalnız bir sabit disk deyil, həm də bir şəbəkə kartı, USB və s. Gömülü Linux, Flash tətbiqetmələrini oxuya və icra edə bilər və bunun da Flash sürücüləri olmalıdır. Əlbəttə ki, bu yalnız Flash deyil.
Əvvəlcə bu barədə danışaq, əlaqədar LINUX dörd əsas hissədən ibarətdir: önyükleyici, kernel, sürücü və kök fayl sistemi.
Biri, yükləyici
Bir az daha mürəkkəb çılpaq lövhə proqramıdır. Ancaq bu çılpaq proqramı anlamaq və yazmaq asan deyil. Windows altındakı faydalı alətlər proqramlaşdırma qabiliyyətimizi zəiflədir.
Bir çox insan ADS və KEIL-i gömülü oynayan kimi istifadə edir. Bu suallara cavab verə bilərsinizmi?
1. Enerji açıldıqdan sonra CPU icra üçün təlimatları haradan alır?
Cavab: Ümumiyyətlə təlimat Flash-dan alınır.
2. Ancaq Flash yalnız oxunur və birbaşa yazıla bilməz. Qlobal dəyişənlərdən istifadə edirəmsə, bu qlobal dəyişənlər haradadır?
Cavab: Qlobal dəyişənlər yaddaşda olmalıdır
3. Bəs qlobal dəyişənləri yaddaşa kim qoyur?
Cavab: ADS və KEIL-dən uzun müddət istifadə edən bir dostunuza cavab verə bilərsinizmi? Bunun üçün "köçürülmə" tələb olunur. ADS və ya KEIL-də yer dəyişdirmə kodu bu alətləri istehsal edən şirkət tərəfindən sizin üçün yazılır. Heç oxumusan?
4. Yaddaş bu qədər böyükdür, "əvvəlcə Flash-da saxlanılan məzmunu" yaddaşa hansı ünvandan oxumağı haradan bilirəm?
Cavab: Bu ünvan "link skripti" ilə müəyyən edilir, ADS-də dağınıq faylları, KEIL-də də oxşar fayllar var. Bəs onu araşdırmısan?
5. Dediniz ki, köçürülmə bir proqramı Flashdan yaddaşa köçürməkdir, ona görə bu proqram Flash oxuya bilər? Cavab: Bəli, Flash-ı işlədə bilməlisiniz. Əlbətdə yalnız bunlar deyil, sistemin daha sürətli işləməsi üçün saatı təyin etmək və s. Əvvəlcə burada soruşaq və cavab verək, çılpaq lövhəli bir proqram olan bootloader-in əslində üç əsas məqamı var:
1. Təchizatın istismarı
2. ARM sistem prosessorlarının anlaşılması
3. Proqramın əsas konsepsiyaları: yer dəyişdirmə, yığın, kod seqmenti, məlumat seqmenti, BSS seqmenti və s.
Donanmanın işləməsi üçün sxematik diaqram və çip təlimatına baxmalısınız. Bunun üçün müəyyən bir hardware məlumatı lazımdır. Donanım dizayn edə bilməyinizi tələb etmir, ancaq ən azı onu başa düşməyinizi tələb edir; analoq sxemləri başa düşməyinizi deyil, rəqəmsal dövrələri başa düşməyinizi tələb edir. Bu bacarığı məktəbdə öyrənmişəm. İki kitab (kitabın adını unutmuşam) kifayətdir. Ancaq şübhə edirəm ki, bu iki kitabı oxuyub bitirmək üçün səbriniz var. İndi daha sürətli bir kitabın olub olmadığını bilmirəm. Bunu sürətli etmək istəyirsinizsə, əvvəlcə bunu buraxın və başa düşmədiyiniz təqdirdə Google-dan soruşun və göndərin.
Bundan əlavə, çip təlimatı oxunmalıdır, Çin dilinə baxmayın, yalnız İngilis dilinə baxın. Əvvəlcə çox ağrılı idi, lakin sonradan qrammatika və lüğət ilə tanış olduqdan sonra istənilən çip təlimatı oxumaq asandır.
ARM sistem prosessorlarını başa düşmək üçün xahiş edirəm Du Chunlei-yə baxın. Montaj təlimatları, istisna rejimləri, MMU və s. Haqqında danışır. Yalnız bu 3 məzmunu başa düşməlisiniz.
Proqramın əsas konsepsiyası, əlbəttə ki, kral tərtib prinsiplərinə baxmaqdır. Təəssüf ki, bu tip kitablar mütləq səmavi kitab səviyyəsindədir. Super bir dahi olmadığınız təqdirdə izləməməyinizi məsləhət görürəm. Sadəcə izləyin və ilk yazdığım video, narahat olma, pul xərcləmə. Videonu izlədikdən və aparatla əlaqəli təcrübələr apardıqdan sonra bu anlayışlar aydınlaşacaq. Bu anlayışlardan bəhs edən, kor-koranə öyünməyimə imkan yaradan ikinci kitab və ya video tapa bilmədim. Bootloader üçün əvvəlcə oxuduğum zaman izlədim və sonra proqramı özüm yazdım və GPIO, saat, SDRAM, UART və NAND kimi müxtəlif aparatlardakı bütün təcrübələri etdim. Onları aydınlaşdırsanız, u-boot'u bir yerə toplayaraq anlamaq asandır. Xülasə etmək üçün, hardware sxematik diaqramını və çip təlimatını başa düşmək üçün məlumatı özünüz tapmalısınız. Qalanları üçün sadəcə fəsil siyahısını izləyin və videonun ilk mərhələsini öyrənmək.
İki, ləpə
Başlamaq istəyənlər əvvəlcə kernel öyrənilməsini atlamalı və birbaşa sürücülərin necə yazılacağını öyrənməlidirlər.
Usta olmaq üçün nüvənin dərindən başa düşülməsi lazımdır. Diqqət yetirməkdən danışdığımı nəzərə alsaq, bir nüvə yazmaq üçün həddən artıq ümidim yoxdur.
İçəridə planlaşdırma mexanizmini, yaddaş idarəetmə mexanizmini, fayl idarəetmə mexanizmini və s.
İki kitabı tövsiyə edin:
1. Oxuyun, zərif kitabı oxuyun (Üzən cəmiyyət sürəti vurğulayır)
2. Oxumağı seçin, hansı bölümü hansı bölümü oxuyacağını bilmək istəyin
Üç, sür
Sürücü iki hissədən ibarətdir: aparatın özü və sürücünün çərçivəsi.
Yenidən aparatdır. Şematik diaqramı və çip təlimatını başa düşmək hələ lazımdır. Daha çox məşq edin. Sürücü çərçivəsindən danışarkən, onu təqdim edəcək bəzi kitablar var. Bir əcnəbinin yazdığı LDD3 kitabı bir çox konsepsiya təqdim edir və oxumağa dəyər. Bununla birlikdə, rolu konsepsiyalar təqdim etməklə məhdudlaşır. Əsasən işə başlamazdan əvvəl anlayışlarla tanış olmaq və sonra işə başladıqdan sonra atmaq üçün istifadə etdim.
Sürücü ilə daha əhatəli tanışlıq Song Baohua'nın təqdimatı olmalıdır. Düzü, yalnız kataloqu oxudum. Bir çox insan dedi ki, bəli, burada məsləhət görürəm.
Müəyyən bir sahəni dərindən anlamaq istəyirsinizsə, mütləq super 5 ulduzlu bir tövsiyədir. 1,800 səhifədən çox, yuxarı və aşağı iki cild oxumağı gözləmirsən. Müəyyən bir sahədən əmin olmadığım zaman, ərazini nəzərdən keçirəcəyəm. Bu kitabın istənilən hissəsi iki-üç yüz səhifəni əhatə edə bilər ki, bu da çox təfərrüatlıdır. Və müəyyən bir hədəflə nüvə qaynaq kodunu təhlil etməyə aparmaq. Nümunə olaraq linux 2.4 götürür, lakin prinsip eynidır və linuxun digər versiyalarına da aiddir. Başqa təqdimatlar? Əlbəttə, Wei Dongshan Linux Video-nın ikinci nömrəsi var. "Gömülü Linux Tətbiqinin İnkişaf etdirilməsinin Tam El Kitabı" sürücü haqqında çox danışmır və kifayət qədər dərin deyil.
İnkişaf panelinizdə iştirak edən bütün avadanlıqlar üçün bir sürücü yazmağa çalışın. Bir probleminiz varsa, əvvəlcə "ağrılı düşünməlisiniz". Düşüncə prosesində bir çox əlaqəsiz bilikləri birləşdirəcək və nəhayət onu əldə edəcəksiniz.
Dördüncüsü, kök fayl sistemi
Bu iki sual barədə heç düşündünüzmü:
1. Linux tərəfindən hazırlanan məhsullar üçün bəziləri monitorinq üçün, bəziləri cib telefonu kimi, bəziləri tablet olaraq istifadə olunur. Yəni nüvə işə salındıqdan sonra, kök fayl sistemini qurduqdan sonra hansı tətbiqetməyə başlamaq lazımdır?
Cavab: Çekirdək hansı istifadəçi proqramının başlamalı olduğunu bilmir və ya maraqlandırmır. Yalnızca / sbin / init-ə uyğun gələn init tətbiqini başlayır.
Aydındır ki, bu tətbiq konfiqurasiya sənədini oxumalı və konfiqurasiya sənədinə görə istifadəçi proqramını (izləmə, əl interfeysi, tablet interfeysi və s.) Başlamalıdır. Bu sual, fayl sisteminin məzmununun / sbin / init kimi bəzi konvensiyalara sahib olduğunu xatırladır, bir konfiqurasiya faylı tələb olunur.
2. Salam və dünya proqramlarında istifadə etdiyiniz printf-i kimin tətbiq etdiyini düşündünüzmü?
Cavab: Bu funksiya sizin tərəfinizdən deyil, kitabxana funksiyası tərəfindən həyata keçirilir. Çalışanda kitabxananı tapmalıdır.
Bu sual, fayl sistemində hələ də kitabxanaların olduğunu xatırladır. Budur sadə bir sual və cavab. Daha çox bilmək istəyirsinizsə, giriş prosesinin nə etdiyini bilmək üçün busybox init.c-nə baxa bilərsiniz. Əlbəttə ki, kök fayl sisteminin yaradılması bölməsinə də baxa bilərsiniz .
Mənim öyrənmə təcrübəm
1. Məktəbdə oxuyanda fizika və elektronika ixtisası almışam. Əslində kursda sxemlərin dizaynını öyrətmədim, ancaq elektron sxemlər haqqında yalnız bir qədər məlumat verdim. Laboratoriyada PCB dizaynını özüm öyrətdim. Yalnız 2 qatlı bir lövhə hazırladım və indi demək olar ki, unuturam. Ancaq sxematik diaqramı və çip təlimatını oxumaq qabiliyyətini saxlayır.
2. Proqram dərəcəsi aldım və proqram dizaynı ilə çox maraqlanıram, ancaq yalnız C dilini və verilənlər bazasını öyrəndim. Bir çox müsabiqə suallarını maraqla etdim. Müsabiqədə iştirak edə bilmirəm, amma möhkəm C dili təcrübəm var.
3. Laboratoriyada, ilk şirkətdə bəzi sadə PCI kartları hazırladım və windows sürücüsünü yazdım
4. İkinci şirkətdə 51 tək çipli mikrokompüteri avtomobil telefonu olaraq istifadə edərək təmiz proqram yoluna başlamağa başladı.
5. Tək çipli mikro kompüterin çatışmazlıqlarını hiss etməyə başladım. Qırmızı papağın necə işlədilməsindən başlayaraq bağlı qapılar arxasında Linux öyrənmək üçün yarım il istefa etdim. Adım əvvəlcə buna baxmaq, sonra aparatı idarə etmək üçün çılpaq lövhə proqramını yazmaq və sonra u-açılışını analiz etməkdir. Eyni zamanda, LINUX çərçivəsini bir az başa düşürəm.
Çılpaq lövhələr yazarkən, kəsilmələr barədə anlayışınızı gücləndirməyiniz tövsiyə olunur. Nüvə müxtəlif funksiyaları başa çatdırmaq üçün fasilələrdən istifadə edir.
6. u-boot-u analiz etdikdən sonra sadə sürücü proqramlaşdırmasına başlayın. Bu anda qabiliyyət hələ çox zəifdir.
7. ZTE-də işləməyə başladı, 2 il çalışdı, hər cür sürücü yazdı, hər cür problemi həll etdi (sürücülük problemləri, tətbiq problemlərini tapmaqda kömək) və qabiliyyəti əsəbiləşdi.
|
Sürpriz almaq üçün e-poçt daxil edin
es.fmuser.org
it.fmuser.org
fr.fmuser.org
de.fmuser.org
af.fmuser.org -> Afrikaans
sq.fmuser.org -> Alban
ar.fmuser.org -> ərəb
hy.fmuser.org -> Ermənistan
az.fmuser.org -> azərbaycan dili
eu.fmuser.org -> Bask
be.fmuser.org -> Belarus
bg.fmuser.org -> Bulgarian
ca.fmuser.org -> Katalan
zh-CN.fmuser.org -> Çin (Sadələşdirilmiş)
zh-TW.fmuser.org -> Çin (Ənənəvi)
hr.fmuser.org -> Xorvat
cs.fmuser.org -> Çex dili
da.fmuser.org -> Danimarkalı
nl.fmuser.org -> Holland
et.fmuser.org -> Eston
tl.fmuser.org -> Filipin
fi.fmuser.org -> Fin
fr.fmuser.org -> Fransız
gl.fmuser.org -> Qalisian
ka.fmuser.org -> gürcü
de.fmuser.org -> Alman
el.fmuser.org -> Yunan
ht.fmuser.org -> Haiti Kreolu
iw.fmuser.org -> İbrani
hi.fmuser.org -> Hind dili
hu.fmuser.org -> Macar
is.fmuser.org -> İslandiya
id.fmuser.org -> İndoneziya
ga.fmuser.org -> İrlandiyalı
it.fmuser.org -> Italian
ja.fmuser.org -> Yapon
ko.fmuser.org -> Koreyalı
lv.fmuser.org -> Latviya
lt.fmuser.org -> Litva
mk.fmuser.org -> Makedoniya
ms.fmuser.org -> Malay dili
mt.fmuser.org -> Malta
no.fmuser.org -> Norveç
fa.fmuser.org -> Fars dili
pl.fmuser.org -> Polşa
pt.fmuser.org -> Portuqal
ro.fmuser.org -> Roman
ru.fmuser.org -> Rus
sr.fmuser.org -> Serb
sk.fmuser.org -> Slovak
sl.fmuser.org -> Sloveniya
es.fmuser.org -> İspan
sw.fmuser.org -> suahili
sv.fmuser.org -> İsveç
th.fmuser.org -> Thai
tr.fmuser.org -> Türkcə
uk.fmuser.org -> Ukrayna
ur.fmuser.org -> Urdu
vi.fmuser.org -> Vietnamese
cy.fmuser.org -> Uels
yi.fmuser.org -> Azərbaycan
FMUSER Wirless Video və Səsi Daha Asan ötürür!
Əlaqə
Ünvan:
No. 305 Otaq HuiLan Bina No.273 Huanpu Yolu Guangzhou Çin 510620
Kateqoriyalar
Newsletter