FMUSER Wirless Menghantar Video Dan Audio Lebih Mudah!
es.fmuser.org
it.fmuser.org
fr.fmuser.org
de.fmuser.org
af.fmuser.org -> Orang Afrika
sq.fmuser.org -> Bahasa Albania
ar.fmuser.org -> Bahasa Arab
hy.fmuser.org -> Armenia
az.fmuser.org -> Azerbaijan
eu.fmuser.org -> Basque
be.fmuser.org -> Belarus
bg.fmuser.org -> Bulgaria
ca.fmuser.org -> Bahasa Catalan
zh-CN.fmuser.org -> Bahasa Cina (Ringkas)
zh-TW.fmuser.org -> Bahasa Cina (Tradisional)
hr.fmuser.org -> Bahasa Croatia
cs.fmuser.org -> Bahasa Czech
da.fmuser.org -> Denmark
nl.fmuser.org -> Belanda
et.fmuser.org -> Estonia
tl.fmuser.org -> Orang Filipina
fi.fmuser.org -> Bahasa Finland
fr.fmuser.org -> Bahasa Perancis
gl.fmuser.org -> orang Galicia
ka.fmuser.org -> Orang Georgia
de.fmuser.org -> Jerman
el.fmuser.org -> Greek
ht.fmuser.org -> Haitian Creole
iw.fmuser.org -> Bahasa Ibrani
hi.fmuser.org -> Bahasa Hindi
hu.fmuser.org -> Bahasa Hungary
is.fmuser.org -> Bahasa Iceland
id.fmuser.org -> Bahasa Indonesia
ga.fmuser.org -> Ireland
it.fmuser.org -> Bahasa Itali
ja.fmuser.org -> Jepun
ko.fmuser.org -> Bahasa Korea
lv.fmuser.org -> Bahasa Latvia
lt.fmuser.org -> Bahasa Lithuania
mk.fmuser.org -> orang Macedonia
ms.fmuser.org -> Bahasa Melayu
mt.fmuser.org -> Malta
no.fmuser.org -> Bahasa Norway
fa.fmuser.org -> Parsi
pl.fmuser.org -> Bahasa Poland
pt.fmuser.org -> Portugis
ro.fmuser.org -> Romania
ru.fmuser.org -> Rusia
sr.fmuser.org -> Bahasa Serbia
sk.fmuser.org -> Bahasa Slovak
sl.fmuser.org -> Bahasa Slovenia
es.fmuser.org -> Sepanyol
sw.fmuser.org -> Swahili
sv.fmuser.org -> Sweden
th.fmuser.org -> Thai
tr.fmuser.org -> Turki
uk.fmuser.org -> Ukraine
ur.fmuser.org -> Bahasa Urdu
vi.fmuser.org -> Vietnam
cy.fmuser.org -> Wales
yi.fmuser.org -> Bahasa Yiddish
Untuk pengembangan aplikasi: bahasa C, struktur data, JAVA, dll perlu dipelajari dengan baik. Tidak ada yang istimewa untuk diperhatikan dalam pengembangan aplikasi dan pengembangan aplikasi tertanam di PC. Mungkin anda mengatakan bahawa anda perlu mengoptimumkan sistem terbenam, ya, anda perlu mengoptimumkan, tetapi program yang tidak dioptimalkan tidak berbeza dengan pengembangan program pada PC. Di samping itu, apabila anda mempunyai kemampuan untuk mengoptimumkan, anda tidak lagi terbiasa mengajukan soalan ini. Untuk contoh tertentu, seperti antara muka pengembangan, kami menggunakan VC di PC; di Linux tertanam, kita mungkin menggunakan QT dan Android. Pada masa ini, anda harus belajar pengaturcaraan QT dan Android. Tetapi asasnya masih C atau JAVA, dan atas dasar ini, ketahui antara muka mereka. Sekiranya anda telah mempelajari VC, memerlukan masa untuk memahami kelas dan kawalan tersebut.
Sekiranya anda ingin mempelajari sistem yang mendasari, ini adalah keistimewaan saya, tetapi saya boleh katakan sedikit.
Sebelum menjawab soalan ini, izinkan saya menjawab: Banyak orang bertanya kepada saya, adakah belajar memandu atau belajar melamar? Saya hanya boleh mengatakan bahawa ia berdasarkan minat, dan pemacu dan aplikasi tidak terpisah sepenuhnya.
1. Pemacu yang kita bicarakan tidak terhad kepada operasi perkakasan, tetapi juga konsep seperti prinsip sistem operasi dan proses penjadualan tidur dan bangun. Sekiranya anda ingin menulis aplikasi yang baik, dan anda ingin menyelesaikan masalah yang dihadapi oleh aplikasi dengan lebih baik, anda harus memahami pengetahuan ini
2. Halangan rendah untuk aplikasi, terutamanya ANDROID semasa, JAWA tulen. Saya secara peribadi berpendapat bahawa jalan pengembangan aplikasi mahir dalam perniagaan. Sebagai contoh, dalam industri komunikasi, industri IPTV, dan industri telefon bimbit, anda memahami keperluan industri tersebut. Oleh itu, orang yang menjadi pemimpin kebanyakannya adalah aplikasi.
3. Didorong. Sebenarnya, saya tidak mahu menyebutnya "menjadi pemacu", tetapi saya mahu menyebutnya "menjadi sistem peringkat rendah". Setelah selesai, ini akan membunuh semua industri. Saya telah bekerja selama beberapa tahun dan membuat telefon bimbit, IPTV, dan TV persidangan, tetapi produk ini tidak ada bezanya bagi saya kerana saya hanya melakukan lapisan bawah. Perniagaan mereka tidak ada kaitan dengan saya. Apabila ada masalah dengan aplikasi dan mereka tidak dapat menyelesaikannya, saya akan memberi mereka idea dari perspektif kernel dan memberi mereka alat. Saya secara peribadi berpendapat bahawa saya adalah pakar teknikal dalam arah pengembangan lapisan bawah.
4. Sebenarnya, tidak ada batasan antara melakukan lapisan bawah atau melakukan aplikasi. Sekiranya anda mempunyai pengalaman lapisan bawah, anda akan merasa sangat selesa ketika membuat aplikasi. Dengan pengalaman perniagaan, anda dapat mengenal lapisan bawah, dan anda akan dapat membentuk satu pasukan tidak lama lagi.
Kembali kepada persoalan bagaimana belajar. Apa yang termasuk dalam sistem asas Linux yang disematkan? Jangan risau, anda akan mengetahuinya dengan memberikan contoh.
1. Apabila komputer dihidupkan, siapa yang memaparkan antara muka tersebut? Ia adalah BIOS, apa yang dilakukannya? Beberapa pemeriksaan diri, kemudian baca tetingkap dari cakera keras dan mulakan. Begitu juga, BIOS ini sepadan dengan bootloader di Linux tertanam. Pemuat but ini perlu membaca kernel Linux di Flash dan memulakannya.
2. Apakah tujuan memulakan windows? Sudah tentu ia berbual dalam talian atau sebagainya. Di manakah Internet dan alat sembang ini? Pada pemacu C dan D pemacu. Oleh itu, windows mesti mengenal pasti pemacu C dan pemacu D terlebih dahulu. Kami memanggilnya sistem fail root di Linux.
3. Windows boleh mengenali pemacu C dan pemacu D, jadi mesti dapat membaca dan menulis cakera keras. Perkara yang terlibat dipanggil pemacu. Sudah tentu, bukan hanya cakera keras, tetapi juga kad rangkaian, USB, dan sebagainya. Linux terbenam dapat membaca dan menjalankan aplikasi dari Flash, dan ia juga mesti mempunyai pemacu Flash. Sudah tentu, ia bukan hanya Flash.
Mari membincangkannya terlebih dahulu, LINUX yang disematkan mengandungi empat bahagian utama: bootloader, kernel, driver, dan sistem fail root.
Satu, pemuat but
Ia adalah program papan kosong yang lebih rumit. Tetapi tidak mudah untuk memahami dan menulis program kosong ini. Alat berguna di Windows melemahkan kemampuan pengaturcaraan kami.
Ramai orang menggunakan ADS dan KEIL sebaik sahaja mereka bermain tertanam. Bolehkah anda menjawab soalan-soalan ini?
1. Setelah kuasa dihidupkan, di manakah CPU mengambil arahan pelaksanaan?
Jawapan: Secara amnya, arahannya adalah dari Flash.
2. Tetapi Flash hanya boleh dibaca dan tidak ditulis secara langsung. Sekiranya saya menggunakan pemboleh ubah global, di mana pemboleh ubah global ini?
Jawapan: Pemboleh ubah global harus ada dalam ingatan
3. Oleh itu, siapa yang meletakkan pemboleh ubah global dalam ingatan?
Jawapan: Bolehkah anda menjawab rakan yang telah lama menggunakan ADS dan KEIL? Ini memerlukan "penempatan semula". Dalam ADS atau KEIL, kod penempatan semula ditulis untuk anda oleh syarikat yang membuat alat ini. Adakah anda pernah membacanya?
4. Memori begitu besar, bagaimana saya tahu alamat mana yang hendak dibaca "kandungan yang awalnya disimpan dalam Flash" ke memori?
Jawapan: Alamat ini ditentukan oleh "skrip pautan", terdapat fail penyebar di ADS, dan fail serupa di KEIL. Tetapi, adakah anda mempelajarinya?
5. Anda mengatakan bahawa penempatan semula adalah menyalin program dari Flash ke memori, jadi program ini dapat membaca Flash? Jawapan: Ya, anda mesti dapat mengendalikan Flash. Sudah tentu bukan hanya ini, tetapi juga mengatur jam agar sistem berjalan lebih pantas dan sebagainya. Mari tanya dan jawab di sini terlebih dahulu, bootloader, program bare-board, sebenarnya mempunyai tiga perkara utama:
1. Operasi perkakasan
2. Pemahaman mengenai pemproses sistem ARM
3. Konsep asas program: penempatan semula, timbunan, segmen kod, segmen data, segmen BSS dan sebagainya.
Untuk operasi perkakasan, anda perlu melihat gambarajah skematik dan manual cip. Ini memerlukan sejumlah pengetahuan perkakasan. Ini tidak memerlukan anda dapat merancang perkakasan, tetapi sekurang-kurangnya untuk memahaminya; ia tidak perlu dapat memahami litar analog, tetapi untuk memahami litar digital. Saya belajar kemampuan ini di sekolah. Dua buku (tajuk buku yang saya lupa) sudah cukup. Tetapi saya ragu anda mempunyai kesabaran untuk selesai membaca kedua buku ini. Saya tidak tahu jika ada buku yang lebih pantas sekarang. Sekiranya anda ingin membuatnya cepat, lepaskan ini terlebih dahulu, dan jika anda tidak faham, tanya Google dan hantar.
Selain itu, manual cip mesti dibaca, jangan mencari bahasa Cina, hanya melihat bahasa Inggeris. Pada mulanya sangat menyakitkan, tetapi kemudian, setelah tatabahasa dan perbendaharaan kata sudah biasa, mudah untuk membaca mana-mana manual cip.
Untuk pemahaman mengenai pemproses sistem ARM, sila lihat Du Chunlei. Ia membincangkan mengenai arahan pemasangan, mod pengecualian, MMU, dan lain-lain. Hanya 3 bahagian kandungan ini yang perlu anda fahami.
Konsep asas program, tentu saja, raja adalah melihat prinsip penyusunan. Malangnya, jenis buku ini semestinya berada di peringkat surgawi. Saya menasihati anda untuk tidak menontonnya melainkan anda seorang yang sangat genius. Lihat sahaja dan video pertama yang saya tulis, jangan risau, jangan mengeluarkan wang. Setelah video dan melakukan eksperimen yang berkaitan dengan perkakasan, konsep-konsep ini akan menjadi jelas. Saya tidak menjumpai kumpulan buku atau video kedua yang membincangkan konsep ini, yang membolehkan saya membualnya secara membuta tuli. Untuk pemuat but, saya mula-mula menontonnya semasa saya belajar, dan kemudian saya menulis sendiri program tersebut dan melakukan semua eksperimen pada pelbagai perkakasan, seperti GPIO, jam, SDRAM, UART, dan NAND. Sekiranya anda menjelaskannya, mudah untuk memahami u-boot dengan mengelompokkan bersama. Ringkasnya, untuk memahami rajah skematik perkakasan dan manual cip, anda perlu mencari maklumatnya sendiri. Untuk selebihnya, ikuti senarai bab dan fasa pertama video untuk belajar.
Dua, kernel
Mereka yang ingin memulakan harus melewatkan pembelajaran kernel terlebih dahulu dan belajar bagaimana menulis pemacu secara langsung.
Untuk menjadi tuan, kernel mesti mempunyai pemahaman yang mendalam. Perhatikan bahawa saya bercakap tentang pemahaman, saya tidak mempunyai harapan yang berlebihan untuk menulis kernel.
Untuk memahami mekanisme penjadualan, mekanisme pengurusan memori, mekanisme pengurusan fail, dll di dalamnya.
Mengesyorkan dua buku:
1. Baca terus, baca buku yang nipis (Masyarakat terapung menekankan kepantasan)
2. Pilih untuk membaca, mahu tahu bahagian mana yang hendak dibaca
Tiga, memandu
Pemacu terdiri daripada dua bahagian: operasi perkakasan itu sendiri dan kerangka pemacu.
Ini perkakasan lagi. Masih perlu untuk memahami rajah skematik dan manual cip. Amalkan lebih banyak. Bercakap mengenai kerangka pemandu, ada beberapa buku untuk memperkenalkannya. LDD3, buku yang ditulis oleh orang asing, memperkenalkan banyak konsep dan patut dibaca. Walau bagaimanapun, peranannya terhad untuk memperkenalkan konsep. Pada dasarnya saya menggunakannya untuk membiasakan diri dengan konsep sebelum memulakan, dan kemudian membuangnya setelah memulakannya.
Pengenalan yang lebih komprehensif untuk pemandu mestilah milik Song Baohua. Sejujurnya, saya hanya membaca katalog. Ramai orang mengatakan ya, saya mengesyorkannya di sini.
Sekiranya anda ingin memahami kawasan tertentu secara mendalam, ia pasti merupakan cadangan bintang 5 yang super. Anda tidak menyangka membacanya, lebih dari 1,800 halaman, dua jilid ke atas dan ke bawah. Apabila saya tidak pasti mengenai kawasan tertentu, saya akan menelitinya. Mana-mana bahagian buku ini boleh merangkumi dua atau tiga ratus halaman, yang sangat terperinci. Dan untuk membawa anda menganalisis kod sumber kernel dengan tujuan tertentu. Ia memerlukan linux 2.4 sebagai contoh, tetapi prinsipnya sama, dan juga berlaku untuk versi linux yang lain. Ada perkenalan lain? Sudah tentu ada, edisi kedua Wei Dongshan Linux Video. "Buku Panduan Lengkap Pembangunan Aplikasi Linux Tertanam" tidak banyak membincangkan mengenai pemacu, dan tidak cukup mendalam.
Cuba tulis pemacu untuk semua perkakasan yang terlibat dalam papan pengembangan anda. Sekiranya anda mempunyai masalah, anda harus "berfikir secara menyakitkan" terlebih dahulu. Dalam proses berfikir, anda akan menghubungkan banyak pengetahuan yang tidak relevan dan akhirnya menuntutnya.
Keempat, sistem fail root
Pernahkah anda memikirkan dua soalan berikut:
1. Untuk produk yang dibuat oleh Linux, ada yang digunakan untuk pemantauan, ada yang digunakan sebagai telefon bimbit, dan beberapa lagi digunakan sebagai tablet. Jadi setelah kernel dimulakan, setelah memasang sistem file root, aplikasi mana yang harus dimulakan?
Jawapan: Kernel tidak tahu atau tidak peduli program pengguna mana yang harus dimulakan. Ia hanya memulakan aplikasi init, yang sesuai dengan / sbin / init.
Jelas, aplikasi ini mesti membaca fail konfigurasi dan memulakan program pengguna (pemantauan, antara muka manual, antara muka tablet, dll.) Mengikut fail konfigurasi. Soalan ini mengingatkan kita bahawa kandungan sistem fail mempunyai beberapa konvensi, seperti / sbin / init, diperlukan fail konfigurasi.
2. Pernahkah anda memikirkan siapa yang melaksanakan printf yang digunakan dalam program hello and world yang anda tulis?
Jawapan: Fungsi ini tidak dilaksanakan oleh anda, tetapi oleh fungsi perpustakaan. Apabila berjalan, ia mesti mencari perpustakaan.
Soalan ini mengingatkan kita bahawa masih terdapat perpustakaan dalam sistem fail. Inilah soalan dan jawapan yang mudah. Sekiranya anda ingin mengetahui lebih lanjut, anda boleh melihat init.c busybox untuk mengetahui apa yang dilakukan oleh proses init. Sudah tentu, anda juga dapat melihat bab membina sistem fail root di .
Pengalaman belajar saya
1. Semasa di sekolah, saya mengambil jurusan fizik dan elektronik. Sebenarnya, saya tidak mengajar bagaimana merancang litar dalam kursus, tetapi hanya mengajar beberapa pengetahuan mengenai litar elektronik. Reka bentuk PCB diajar oleh saya sendiri di makmal. Saya hanya merancang papan 2 lapisan, dan sekarang saya hampir melupakannya. Tetapi mengekalkan kemampuan membaca rajah skematik dan manual cip.
2. Saya mengambil ijazah dalam perisian, dan saya sangat berminat dengan reka bentuk perisian, tetapi saya hanya belajar bahasa C dan pangkalan data. Saya membuat banyak soalan pertandingan dengan penuh minat. Saya tidak dapat menyertai pertandingan ini, tetapi saya mempunyai latihan bahasa C yang mantap.
3. Di makmal, di syarikat pertama, saya merancang beberapa kad PCI ringkas dan menulis pemacu tingkap
4. Di syarikat kedua, menggunakan 51 mikrokomputer cip tunggal sebagai telefon kereta, mula menggunakan perisian murni.
5. Saya mula merasakan kekurangan komputer mikro cip tunggal. Saya mengundurkan diri selama setengah tahun untuk belajar Linux di belakang pintu tertutup, bermula dengan cara mengendalikan topi merah. Langkahnya adalah melihatnya terlebih dahulu, kemudian menulis program papan kosong untuk mengendalikan perkakasan, dan kemudian menganalisis u-boot. Pada masa yang sama, saya mempunyai sedikit pemahaman mengenai kerangka kerja LINUX.
Semasa menulis papan kosong, disarankan agar anda memperkuat pemahaman anda mengenai gangguan. Kernel menggunakan gangguan untuk menyelesaikan pelbagai fungsi.
6. Setelah menganalisis u-boot, mulakan pengaturcaraan pemacu mudah. Pada masa ini, kemampuan masih sangat lemah.
7. Mula bekerja di ZTE, bekerja selama 2 tahun, menulis semua jenis pemandu, menyelesaikan semua jenis masalah (masalah memandu, membantu mencari masalah aplikasi), dan kemampuannya menjadi lemah lembut.
|
Masukkan e-mel untuk mendapatkan kejutan
es.fmuser.org
it.fmuser.org
fr.fmuser.org
de.fmuser.org
af.fmuser.org -> Orang Afrika
sq.fmuser.org -> Bahasa Albania
ar.fmuser.org -> Bahasa Arab
hy.fmuser.org -> Armenia
az.fmuser.org -> Azerbaijan
eu.fmuser.org -> Basque
be.fmuser.org -> Belarus
bg.fmuser.org -> Bulgaria
ca.fmuser.org -> Bahasa Catalan
zh-CN.fmuser.org -> Bahasa Cina (Ringkas)
zh-TW.fmuser.org -> Bahasa Cina (Tradisional)
hr.fmuser.org -> Bahasa Croatia
cs.fmuser.org -> Bahasa Czech
da.fmuser.org -> Denmark
nl.fmuser.org -> Belanda
et.fmuser.org -> Estonia
tl.fmuser.org -> Orang Filipina
fi.fmuser.org -> Bahasa Finland
fr.fmuser.org -> Bahasa Perancis
gl.fmuser.org -> orang Galicia
ka.fmuser.org -> Orang Georgia
de.fmuser.org -> Jerman
el.fmuser.org -> Greek
ht.fmuser.org -> Haitian Creole
iw.fmuser.org -> Bahasa Ibrani
hi.fmuser.org -> Bahasa Hindi
hu.fmuser.org -> Bahasa Hungary
is.fmuser.org -> Bahasa Iceland
id.fmuser.org -> Bahasa Indonesia
ga.fmuser.org -> Ireland
it.fmuser.org -> Bahasa Itali
ja.fmuser.org -> Jepun
ko.fmuser.org -> Bahasa Korea
lv.fmuser.org -> Bahasa Latvia
lt.fmuser.org -> Bahasa Lithuania
mk.fmuser.org -> orang Macedonia
ms.fmuser.org -> Bahasa Melayu
mt.fmuser.org -> Malta
no.fmuser.org -> Bahasa Norway
fa.fmuser.org -> Parsi
pl.fmuser.org -> Bahasa Poland
pt.fmuser.org -> Portugis
ro.fmuser.org -> Romania
ru.fmuser.org -> Rusia
sr.fmuser.org -> Bahasa Serbia
sk.fmuser.org -> Bahasa Slovak
sl.fmuser.org -> Bahasa Slovenia
es.fmuser.org -> Sepanyol
sw.fmuser.org -> Swahili
sv.fmuser.org -> Sweden
th.fmuser.org -> Thai
tr.fmuser.org -> Turki
uk.fmuser.org -> Ukraine
ur.fmuser.org -> Bahasa Urdu
vi.fmuser.org -> Vietnam
cy.fmuser.org -> Wales
yi.fmuser.org -> Bahasa Yiddish
FMUSER Wirless Menghantar Video Dan Audio Lebih Mudah!
Hubungi Kami
alamat:
No.305 Bilik HuiLan Bangunan No.273 Huanpu Road Guangzhou China 510620
Kategori
Buletin