FMUSER بی سیم ویدئو و صدا را راحت تر انتقال می دهد!
es.fmuser.org
it.fmuser.org
fr.fmuser.org
de.fmuser.org
af.fmuser.org -> آفریقایی
sq.fmuser.org -> آلبانیایی
ar.fmuser.org -> عربی
hy.fmuser.org -> ارمنی
az.fmuser.org -> آذربایجانی
eu.fmuser.org -> باسک
be.fmuser.org -> بلاروسی
bg.fmuser.org -> بلغاری
ca.fmuser.org -> کاتالان
zh-CN.fmuser.org -> چینی (ساده شده)
zh-TW.fmuser.org -> چینی (سنتی)
hr.fmuser.org -> کرواتی
cs.fmuser.org -> چکی
da.fmuser.org -> دانمارکی
nl.fmuser.org -> هلندی
et.fmuser.org -> استونیایی
tl.fmuser.org -> فیلیپینی
fi.fmuser.org -> فنلاندی
fr.fmuser.org -> فرانسوی
gl.fmuser.org -> گالیسیایی
ka.fmuser.org -> گرجی
de.fmuser.org -> آلمانی
el.fmuser.org -> یونانی
ht.fmuser.org -> کریول هائیتی
iw.fmuser.org -> عبری
hi.fmuser.org -> هندی
hu.fmuser.org -> مجارستانی
is.fmuser.org -> ایسلندی
id.fmuser.org -> اندونزیایی
ga.fmuser.org -> ایرلندی
it.fmuser.org -> ایتالیایی
ja.fmuser.org -> ژاپنی
ko.fmuser.org -> کره ای
lv.fmuser.org -> لتونیایی
lt.fmuser.org -> لیتوانیایی
mk.fmuser.org -> مقدونی
ms.fmuser.org -> مالایی
mt.fmuser.org -> مالتیایی
no.fmuser.org -> نروژی
fa.fmuser.org -> فارسی
pl.fmuser.org -> لهستانی
pt.fmuser.org -> پرتغالی
ro.fmuser.org -> رومانیایی
ru.fmuser.org -> روسی
sr.fmuser.org -> صربی
sk.fmuser.org -> اسلواکی
sl.fmuser.org -> اسلوونیایی
es.fmuser.org -> اسپانیایی
sw.fmuser.org -> سواحیلی
sv.fmuser.org -> سوئدی
th.fmuser.org -> تایلندی
tr.fmuser.org -> ترکی
uk.fmuser.org -> اوکراینی
ur.fmuser.org -> اردو
vi.fmuser.org -> ویتنامی
cy.fmuser.org -> ولزی
yi.fmuser.org -> ییدیش
برای توسعه برنامه: زبان C ، ساختار داده ، JAVA و غیره باید به خوبی یاد گرفته شوند. در توسعه برنامه های جاسازی شده و توسعه برنامه ها در رایانه شخصی توجه خاصی وجود ندارد. شاید شما بگویید که شما باید سیستم تعبیه شده را بهینه سازی کنید ، بله ، شما باید بهینه سازی کنید ، اما برنامه غیربهینه هیچ تفاوتی با توسعه برنامه روی کامپیوتر ندارد. علاوه بر این ، وقتی توانایی بهینه سازی دارید ، دیگر عادت ندارید این س askال را بپرسید. برای یک مثال خاص ، مانند رابط توسعه ، ما از VC در رایانه استفاده می کنیم. در لینوکس تعبیه شده ، ممکن است از QT و Android استفاده کنیم. در این زمان ، شما باید QT و برنامه نویسی Android را بیاموزید. اما پایه هنوز C یا JAVA است و بر این اساس با رابط های آنها آشنا شوید. اگر VC را یاد گرفته باشید ، درک آن کلاس ها و کنترل ها زمان می برد.
اگر می خواهید سیستم اساسی را یاد بگیرید ، این تخصص من است ، اما می توانم کمی بگویم.
قبل از پاسخ دادن به این سوال ، اجازه دهید من پاسخ دهم: بسیاری از مردم از من می پرسند ، آیا یادگیری رانندگی است یا یادگیری درخواست؟ فقط می توانم بگویم که براساس علاقه است و درایورها و برنامه ها کاملاً از هم جدا نیستند.
1. درایورهایی که ما در مورد آنها صحبت می کنیم محدود به عملیات سخت افزاری نیستند ، بلکه مفاهیمی مانند اصول سیستم عامل و زمانبندی فرآیند خواب و بیداری را نیز شامل می شوند. اگر می خواهید یک برنامه خوب بنویسید و می خواهید مشکلات پیش آمده توسط این نرم افزار را بهتر حل کنید ، باید این دانش را درک کنید
2. موانع کم برای استفاده ، به ویژه ANDROID فعلی ، JAVA خالص. من شخصاً فکر می کنم که مسیر توسعه برنامه در تجارت تبحر دارد. به عنوان مثال ، در صنعت ارتباطات ، صنعت IPTV و صنعت تلفن همراه ، نیازهای صنعت را درک می کنید. بنابراین ، افرادی که رهبر هستند اکثراً کاربرد دارند.
3. رانده شوید. در واقع ، من نمی خواهم آن را "راننده بودن" بدانم ، اما می خواهم آن را "یک سیستم سطح پایین" بنامم. با اتمام این ، تمام صنایع از بین می روند. من چندین سال کار کرده ام و تلفن های همراه ، IPTV و تلویزیون کنفرانس ساخته ام ، اما این محصولات برای من تفاوتی ندارند زیرا من فقط لایه زیرین را انجام می دهم. تجارت آنها هیچ ارتباطی با من ندارد. وقتی مشکلی در برنامه وجود داشته باشد و آنها نتوانند آن را حل کنند ، من از نظر هسته ایده ای به آنها می دهم و ابزارهایی در اختیار آنها قرار می دهم. من شخصاً فکر می کنم که یک متخصص فنی در جهت توسعه لایه زیرین هستم.
4. در حقیقت ، هیچ محدودیتی بین انجام لایه زیرین یا انجام برنامه وجود ندارد. اگر تجربه لایه پایین را داشته باشید ، هنگام اجرای برنامه احساس راحتی می کنید. با تجربه کاری ، می توانید لایه زیرین را بشناسید و به زودی می توانید یک تیم تشکیل دهید.
بازگشت به این سوال که چگونه یاد بگیریم. چه چیزی در سیستم اساسی جاسازی شده لینوکس گنجانده شده است؟ نگران نباشید ، با آوردن مثالی از آن آگاه خواهید شد.
1. وقتی رایانه روشن است ، چه کسی آن رابط ها را نمایش می دهد؟ BIOS است ، چه کاری انجام می دهد؟ برخی از خودآزمایی ها ، سپس ویندوزها را از دیسک سخت بخوانید و آن را شروع کنید. به همین ترتیب ، این BIOS مربوط به bootloader در لینوکس تعبیه شده است. این بوت لودر باید هسته لینوکس را در Flash بخواند و آن را شروع کند.
2. هدف از راه اندازی ویندوز چیست؟ البته این چت آنلاین است یا موارد دیگر. این ابزارهای اینترنت و چت کجا هستند؟ در درایو C و درایو D. بنابراین ، ویندوز ابتدا باید درایو C و درایو D را شناسایی کند. ما آن را سیستم عامل ریشه تحت لینوکس می نامیم.
3. ویندوز می تواند درایو C و درایو D را تشخیص دهد ، بنابراین باید توانایی خواندن و نوشتن دیسک سخت را داشته باشد. مواردی که در آن نقش دارند راننده نامیده می شوند. البته این فقط یک دیسک سخت نیست بلکه یک کارت شبکه ، USB و ... نیز هست. لینوکس جاسازی شده می تواند برنامه های Flash را بخواند و اجرا کند و همچنین باید دارای درایورهای Flash باشد. البته فقط Flash نیست.
بیایید ابتدا در مورد آن صحبت کنیم ، LINUX تعبیه شده شامل چهار قسمت اصلی است: بوت لودر ، هسته ، درایور و سیستم فایل ریشه.
یکی ، بوت لودر
این یک برنامه تخته لخت کمی پیچیده تر است. اما درک و نوشتن این برنامه بدون صفحه آسان نیست. ابزارهای مفید تحت ویندوز توانایی برنامه نویسی ما را ضعیف می کند.
بسیاری از افراد به محض بازی تعبیه شده از ADS و KEIL استفاده می کنند. آیا می توانید به این سؤالات پاسخ دهید؟
1. هنگامی که روشن شد ، پردازنده از کجا دستورالعمل اجرا را می گیرد؟
پاسخ: به طور کلی ، دستورالعمل از Flash است.
2. اما Flash فقط قابل خواندن است و مستقیماً نوشته نمی شود. اگر از متغیرهای جهانی استفاده کنم ، این متغیرهای جهانی کجا هستند؟
پاسخ: متغیرهای جهانی باید در حافظه باشند
3. بنابراین چه کسی متغیرهای جهانی را در حافظه قرار می دهد؟
پاسخ: آیا می توانید به دوستی که مدتهاست از ADS و KEIL استفاده کرده است پاسخ دهید؟ این مستلزم "جابجایی" است. در ADS یا KEIL ، کد جابجایی توسط شرکتی که این ابزار را تولید می کند برای شما نوشته شده است. آیا تابحال آن را خوانده اید؟
4. حافظه بسیار بزرگ است ، از کجا می توانم بفهمم کدام آدرس را باید "محتوای ذخیره شده در ابتدا در فلش" را برای حافظه بخوانم؟
پاسخ: این آدرس توسط "اسکریپت پیوند" تعیین می شود ، پرونده های پراکنده در ADS و پرونده های مشابه در KEIL وجود دارد. اما ، آیا شما آن را مطالعه کرده اید؟
5. شما گفتید که تغییر مکان کپی کردن برنامه ای از Flash به حافظه است ، بنابراین این برنامه می تواند Flash را بخواند؟ پاسخ: بله ، شما باید بتوانید Flash را کار کنید. البته نه تنها اینها ، بلکه تنظیم ساعت هم باعث می شود سیستم سریعتر کار کند و غیره. بیایید ابتدا در اینجا بپرسیم و پاسخ دهیم ، بوت لودر ، یک برنامه تخته لخت ، در واقع دارای سه نکته اصلی است:
1. عملکرد سخت افزار
2. درک پردازنده های سیستم ARM
3. مفاهیم اساسی برنامه: جابجایی ، پشته ، بخش کد ، بخش داده ، بخش BSS و غیره.
برای عملکرد سخت افزار ، باید نمودار شماتیک و راهنمای تراشه را ببینید. این نیاز به مقدار مشخصی دانش سخت افزاری دارد. نیازی به شما نیست که بتوانید سخت افزار را طراحی کنید ، اما حداقل آن را درک کنید. نیازی به توانایی درک مدارهای آنالوگ نیست ، بلکه درک مدارهای دیجیتال است. این توانایی را در مدرسه آموختم. دو کتاب (عنوان کتاب را فراموش کردم) کافی است. اما شک دارم شما حوصله اتمام خواندن این دو کتاب را دارید. نمی دانم الان کتاب سریع تری وجود دارد یا نه. اگر می خواهید این کار را سریع انجام دهید ، ابتدا این کار را رها کنید و اگر نمی فهمید ، فقط از Google س askال کنید و ارسال کنید.
علاوه بر این ، راهنمای تراشه باید خوانده شود ، به دنبال چینی نباشید ، فقط به انگلیسی نگاه کنید. در ابتدا بسیار دردناک بود ، اما بعداً ، بعد از آشنایی دستور زبان و واژگان ، خواندن هر کتابچه راهنمای تراشه آسان است.
برای درک پردازنده های سیستم ARM ، لطفاً به Du Chunlei مراجعه کنید. این در مورد دستورالعمل های مونتاژ ، حالت های استثنا ، MMU ، و غیره صحبت می کند. فقط این 3 مورد از محتوا نیاز به درک شما دارد.
مفهوم اساسی برنامه ، البته ، شاه این است که به اصول تدوین نگاه کند. متأسفانه این نوع کتاب قطعاً در سطح کتاب آسمانی است. من به شما توصیه می کنم که آن را تماشا نکنید مگر اینکه فوق العاده نابغه باشید. فقط تماشا کنید و اولین ویدیویی که نوشتم ، نگران نباشید ، پول خرج نکنید به دنبال فیلم و انجام آزمایشات مربوط به سخت افزار ، این مفاهیم روشن می شوند. من مجموعه دوم کتاب ها یا فیلم هایی را که در مورد این مفاهیم صحبت می کنند پیدا نکرده ام و به من اجازه می دهد کورکورانه از آنها لاف بزنم. برای بوت لودر ، ابتدا هنگام مطالعه آن را تماشا کردم و سپس خودم برنامه را نوشتم و تمام آزمایشات را روی سخت افزارهای مختلف مانند GPIO ، ساعت ، SDRAM ، UART و NAND انجام دادم. اگر آنها را واضح بیان کنید ، درک آسان بوت با گروه بندی در کنار یکدیگر آسان است. به طور خلاصه ، برای درک نمودار شماتیک سخت افزار و کتابچه راهنمای تراشه ، باید اطلاعات را خودتان پیدا کنید. برای بقیه ، فقط لیست فصل را دنبال کنید و مرحله اول فیلم برای یادگیری است.
دو ، هسته
کسانی که می خواهند شروع کنند ابتدا باید از یادگیری هسته بگذرند و یاد بگیرند که چگونه مستقیماً رانندگان را بنویسند.
برای تبدیل شدن به یک استاد ، هسته باید درک عمیقی داشته باشد. توجه داشته باشید که من در مورد درک صحبت می کنم ، من هیچ امید اسراف برای نوشتن هسته ندارم.
برای درک مکانیسم برنامه ریزی ، مکانیسم مدیریت حافظه ، مکانیسم مدیریت پرونده و غیره در داخل.
دو کتاب را پیشنهاد دهید:
1. مطالعه کنید ، لطفا کتاب نازک را بخوانید (جامعه شناور بر سرعت تأکید دارد)
2. خواندن را انتخاب کنید ، می خواهید بدانید کدام بخش را بخوانید
سه ، رانندگی
درایور از دو قسمت تشکیل شده است: عملکرد خود سخت افزار و چارچوب راننده.
دوباره این سخت افزار است. هنوز درک نمودار شماتیک و راهنمای تراشه ضروری است. تمرین بیشتر. صحبت از چارچوب راننده ، چند کتاب برای معرفی آن است. کتاب LDD3 ، نوشته شده توسط یک خارجی ، مفاهیم زیادی را معرفی می کند و خواندن آن ارزش دارد. با این حال ، نقش آن محدود به معرفی مفاهیم است. من اصولاً از آن استفاده کردم تا قبل از شروع کار با مفاهیم آشنا شوم و بعد از شروع کار آن را دور بریزم.
معرفی جامع تر در مورد راننده باید Song Baohua باشد. راستش من فقط کاتالوگ رو خوندم. بسیاری از افراد گفتند بله ، من اینجا آن را توصیه می کنم.
اگر می خواهید یک منطقه خاص را از عمق درک کنید ، قطعاً یک توصیه فوق العاده 5 ستاره است. شما انتظار ندارید که آن را بخوانید ، بیش از 1,800 صفحه ، دو جلد بالا و پایین. وقتی در مورد منطقه خاصی مطمئن نباشم ، به مرور آن می پردازم. هر بخشی از این کتاب می تواند دو یا سیصد صفحه را پوشش دهد که بسیار مفصل است. و شما را به تجزیه و تحلیل کد منبع هسته با یک هدف خاص بکشاند. این از linux 2.4 به عنوان مثال استفاده می شود ، اما اصل یکسان است و در سایر نسخه های linux نیز قابل استفاده است. معرفی دیگری دارید؟ البته ، شماره دوم Wei Dongshan Linux Video وجود دارد. "کتاب راهنمای کامل توسعه برنامه جاسازی شده لینوکس" در مورد درایور صحبت زیادی نمی کند و به اندازه کافی عمیق نیست.
سعی کنید برای تمام سخت افزارهای موجود در صفحه توسعه خود درایور بنویسید. اگر مشکلی دارید ، ابتدا باید "دردناک فکر کنید". در فرآیند تفکر ، شما بسیاری از دانش های بی ربط را بهم متصل خواهید کرد و در نهایت آن را کسب خواهید کرد.
چهارم ، سیستم فایل ریشه
آیا تا به حال به این دو سوال فکر کرده اید:
1. برای محصولات ساخته شده توسط لینوکس ، برخی برای نظارت ، برخی به عنوان تلفن همراه و برخی دیگر به عنوان تبلت استفاده می شوند. بنابراین پس از شروع هسته ، پس از نصب سیستم فایل ریشه ، کدام برنامه باید شروع شود؟
پاسخ: هسته نمی داند یا برایش مهم نیست که کدام برنامه کاربر را باید شروع کرد. این فقط برنامه init را شروع می کند ، که مربوط به / sbin / init است.
بدیهی است ، این برنامه باید فایل پیکربندی را بخواند و برنامه کاربر (نظارت ، رابط دستی ، رابط قرص و غیره) را با توجه به فایل پیکربندی شروع کند. این س usال به ما یادآوری می کند که محتوای سیستم فایل دارای برخی قراردادها است ، مانند / sbin / init ، یک فایل پیکربندی مورد نیاز است.
2. آیا تا به حال به این فکر کرده اید که چه کسی چاپ چاپی را که در برنامه های سلام و جهانی که نوشتید به کار گرفته است؟
پاسخ: این عملکرد توسط شما پیاده سازی نمی شود ، بلکه توسط یک تابع کتابخانه انجام می شود. وقتی اجرا می شود ، باید کتابخانه را پیدا کند.
این سوال به ما یادآوری می کند که هنوز کتابخانه هایی در سیستم فایل وجود دارد. در اینجا یک سوال و جواب ساده وجود دارد. اگر می خواهید اطلاعات بیشتری کسب کنید ، می توانید با مراجعه به init.c از busybox بدانید که فرآیند init چه می کند. البته می توانید فصل ساخت سیستم فایل ریشه را نیز در .
تجربه یادگیری من
1. وقتی در مدرسه بودم ، در رشته های فیزیک و الکترونیک تحصیل کردم. در واقع ، من در این دوره نحوه طراحی مدارها را آموزش ندادم ، بلکه فقط برخی از دانشها را در مورد مدارهای الکترونیکی آموختم. طراحی PCB توسط خودم در آزمایشگاه آموزش داده شد. من فقط یک صفحه 2 لایه طراحی کردم و الان تقریبا آن را فراموش کرده ام. اما توانایی خواندن نمودار شماتیک و راهنمای تراشه را حفظ می کند.
2. من مدرک کارشناسی نرم افزار گرفتم و علاقه زیادی به طراحی نرم افزار دارم اما فقط زبان C و پایگاه داده را یاد گرفتم. من خیلی از س competitionالات مسابقه را با علاقه انجام دادم. من نمی توانم در مسابقه شرکت کنم ، اما تمرین زبان C کاملاً خوبی دارم.
3. در آزمایشگاه ، در اولین شرکت ، من چند کارت PCI ساده طراحی کردم و درایور windows را نوشتم
4. در شرکت دوم ، با استفاده از 51 ریز رایانه تک تراشه به عنوان تلفن اتومبیل ، شروع به راه نرم افزار خالص کرد.
5- کمبودهای میکرو رایانه تک تراشه ای را احساس کردم. من برای یادگیری لینوکس پشت درهای بسته و شروع کار با کلاه قرمزی ، نیم سال استعفا دادم. مرحله این است که ابتدا به آن نگاه کنید ، سپس برنامه bare board را برای کار با سخت افزار بنویسید و سپس u-boot را آنالیز کنید. در عین حال ، من از چارچوب LINUX تا حدودی شناخت دارم.
هنگام نوشتن تخته های لخت توصیه می شود که درک خود را از وقفه ها تقویت کنید. هسته برای تکمیل توابع مختلف از وقفه استفاده می کند.
6. پس از تجزیه و تحلیل u-boot ، برنامه نویسی ساده درایور را شروع کنید. در این زمان ، توانایی هنوز بسیار ضعیف است.
7. شروع به کار در ZTE ، 2 سال کار کردن ، نوشتن انواع درایورها ، حل انواع مشکلات (مشکلات رانندگی ، کمک به یافتن مشکلات برنامه) ، و توانایی کاهش یافت.
|
ایمیل را وارد کنید تا غافلگیر شوید
es.fmuser.org
it.fmuser.org
fr.fmuser.org
de.fmuser.org
af.fmuser.org -> آفریقایی
sq.fmuser.org -> آلبانیایی
ar.fmuser.org -> عربی
hy.fmuser.org -> ارمنی
az.fmuser.org -> آذربایجانی
eu.fmuser.org -> باسک
be.fmuser.org -> بلاروسی
bg.fmuser.org -> بلغاری
ca.fmuser.org -> کاتالان
zh-CN.fmuser.org -> چینی (ساده شده)
zh-TW.fmuser.org -> چینی (سنتی)
hr.fmuser.org -> کرواتی
cs.fmuser.org -> چکی
da.fmuser.org -> دانمارکی
nl.fmuser.org -> هلندی
et.fmuser.org -> استونیایی
tl.fmuser.org -> فیلیپینی
fi.fmuser.org -> فنلاندی
fr.fmuser.org -> فرانسوی
gl.fmuser.org -> گالیسیایی
ka.fmuser.org -> گرجی
de.fmuser.org -> آلمانی
el.fmuser.org -> یونانی
ht.fmuser.org -> کریول هائیتی
iw.fmuser.org -> عبری
hi.fmuser.org -> هندی
hu.fmuser.org -> مجارستانی
is.fmuser.org -> ایسلندی
id.fmuser.org -> اندونزیایی
ga.fmuser.org -> ایرلندی
it.fmuser.org -> ایتالیایی
ja.fmuser.org -> ژاپنی
ko.fmuser.org -> کره ای
lv.fmuser.org -> لتونیایی
lt.fmuser.org -> لیتوانیایی
mk.fmuser.org -> مقدونی
ms.fmuser.org -> مالایی
mt.fmuser.org -> مالتیایی
no.fmuser.org -> نروژی
fa.fmuser.org -> فارسی
pl.fmuser.org -> لهستانی
pt.fmuser.org -> پرتغالی
ro.fmuser.org -> رومانیایی
ru.fmuser.org -> روسی
sr.fmuser.org -> صربی
sk.fmuser.org -> اسلواکی
sl.fmuser.org -> اسلوونیایی
es.fmuser.org -> اسپانیایی
sw.fmuser.org -> سواحیلی
sv.fmuser.org -> سوئدی
th.fmuser.org -> تایلندی
tr.fmuser.org -> ترکی
uk.fmuser.org -> اوکراینی
ur.fmuser.org -> اردو
vi.fmuser.org -> ویتنامی
cy.fmuser.org -> ولزی
yi.fmuser.org -> ییدیش
FMUSER بی سیم ویدئو و صدا را راحت تر انتقال می دهد!
تماس با ما
نشانی:
شماره 305 اتاق HuiLan ساختمان شماره 273 Huanpu Road گوانگژو چین 510620
دسته بندی ها
عضویت در خبرنامه