PDA

View Full Version : اصول برنامه نویسی پردازنده های Embedded



shaniaki
شنبه 17 شهریور 1386, 00:31 صبح
با عرض ادب:
برای آشنایی بیشتر کاربران با سیستم های embedded، گاهی اوقات مقالات مفیدی که عمدتا از دو، سه سایت مطرح در این زمینه انتخاب می شوند را به انضمام شرحی کوتاه معرفی خواهم کرد.
------------------------------------------
کتاب COMPUTERS AS COMPONENTS از Wayne Wolf یکی از مراجع به روز تدریس سیستم های embedded است. سلسله مقالات زیر به نحوی بیان اهم مطالب این کتاب به بیانی ساده می باشد.

بخش اول: تحلیل و طراحی برنامه ها
http://www.embedded.com/design/multicore/201200638?_requestid=642716
در این قسمت با معرفی مختصری در خصوص برنامه های embedded ذکر شده که تاکیر روی طراحی با زبان های سطح بالاتری مانند C++/C بوده و با ذکر یک مثال به معرفی الگوهای طراحی برنامه های embedded می پردازد.

بخش دوم:مدل هایی برای برنامه ها و اصول اسمبلر ها و لینکرها
http://www.embedded.com/columns/technicalinsights/201201938?_requestid=654933
در این بخش ابتدا DFG ها و CDFG ها را که مدلهایی جامع تر (نسبت به سورس کد) برای برنامه ها هستند معرفی می شوند و سپس به معرفی عملکرد اسمبلر ها و لینکرها می پردازد.

بخش سوم:تکنیک های پایه کامپایل کردن
http://www.embedded.com/design/multicore/201203685?_requestid=654938
در این قسمت با تاکید بر اینکه کامپایل ترکیب عملیات ترجمه و بهینه سازی هست، سعی می کند به کاربر برنامه نویس دید بهتری در خصوص هر کدام از این مراحل و عملیاتی که در آن ها انجام می شود بدهد.

بخش چهارم: ساخت رویه ها
http://www.embedded.com/design/201500002?pgno=1
در ادامه مبحث قبل، رویه ها و نحوه تبدیل آن ها به کد ماشین، نحوه برخورد با ساختمان های داده مانند اشاره گرها و ماتریس های دو بعدی، ساده سازی عبارات ریاضی، تبدیل حلقه ها و ... کاربر را با نحوه نوشتن کد بهینه برای یک سیستم آشنا می کند.


بخش پنجم: اختصاص و زمانبندی رجیسترها
http://www.embedded.com/columns/technicalinsights/201801620?_requestid=719876
کد اجرا شده در پردازنده نهایتا از رجیسترها(ثبات ها)ی داخل پردازنده که منابع محدودی هستند برای ذخیره موقت داده ها استفاده می کند. در این بخش تکنیک های استفاده بهینه از ثبات ها و کمینه کردن عملیات ذخیره و بازیابی اطلاعات از حافظه سیستم شرح داده می شود.

بخش ششم: تحلیل و بهینه سازی زمان اجرا
http://www.embedded.com/design/multicore/201802850?_requestid=720357
در این قسمت روش هایی که با استفاده از آن ها زمان اجرای یک قطعه کد را می توان محاسبه کرد ذکر شده است.


یه ... ...

shaniaki
شنبه 14 مهر 1386, 18:05 عصر
با عرض ادب:
سه بخش پایانی این سلسله مقالات منتشر شد.
--------------------------------------------------------

بخش هفتم: تحلیل کارایی سیستم به روش Trace
http://www.embedded.com/design/multicore/201804085?_requestid=374376
Traceیک برنامه عبارت است از تاریخچه جزئیات مسیر اجرای یک برنامه که طی یک اجرای واقعی ثبت می شود. می توان آن را با استفاده از سخت افزارهای خاص و یا با کمک دستورات نرم افزاری ثبت کرد. تحلیل Trace برنامه ها که ممکن است حجم بسیار بالایی در حد گیگابایت هم داشته باشند اطلاعات ارزشمندی در خصوص کارایی برنامه به ما می دهد. در این مقاله با اشاره مختصری به شیوه های ثبت Trace یک برنامه روش های تحلیل آن ها را مختصرا اشاره می کند. از جمله این تحلیل ها و بهینه سازی ها می توان به بهینه سازی حلقه ها، بهینه سازی نهانگاه(cache) و بهینه سازی زمان اجرا اشاره کرد.

بخش هشتم: تحلیل و بهینه سازی انرژی مصرفی، توان و اندازه برنامه
http://www.embedded.com/design/multicore/201805409?_requestid=374383
یکی از مهمترین مشخصات سیستم هایی که با باتری کار می کنند و یا مشکل گرم شدن زیاد دارند توان مصرفی آن هاست. در قسمت اول این بخش تکنیک هایی برای کاهش توان مصرفی برنامه ها معرفی می شود. از آن جمله است استفاده از الگوریتم های جایگزین که توان مصرفی کمتری از سخت افزار می طلبند، کاهش دسترسی ها به حافظه با استفاده از دستورالعمل های جایگزین و یا استفاده بهینه از نهانگاه و خاموش کردن موقت بخش هایی از سیستم که موقتا عملی انجام نمی دهند. در بخش دوم نیز رهنمودهایی برای کاهش اندازه کد و داده های مورد نیاز یک برنامه ذکر شده است.

بخش نهم(بخش پایانی): تست و بررسی صحت عملکرد برنامه
http://www.embedded.com/design/multicore/202103108?_requestid=1054446
برای اطمینان از درست کار کردن سیستم های پیچیده نیاز داریم آن ها را تست کنیم. در سیستم های embedded به دلیل سخت افزارهای سفارشی و نیاز به بلادرنگ(real time) بودن پاسخ نرم افزار، این کار کمی دشوارتر است. در این بخش با معرفی دو شیوه متفاوت تست به نام های تست جعبه سفید و تست جعبه سیاه، با معرفی مثال نحوه تست برنامه ها با نگاه به ساختار برنامه کد و بدون داشتن اطلاعات در مورد ساختار آن را توضیح می دهد. ضمنا به صورت جداگانه پاسخی به سوال هایی نظیر «چه میزان تست برای اطمینان از صحت عملکرد برنامه لازم است» و یا «پاسخ دهی سیستم در محیط واقعی چگونه خواهد بود» را نیز می دهد.

یه ... ...

siavashgm
یک شنبه 04 فروردین 1387, 22:07 عصر
جالب بود
Mer30

vs6956
یک شنبه 03 خرداد 1394, 00:20 صبح
این لینک ها خیلی قدیمی اند و باز نمی شند ممکنه لینک اصلاح شده رو بزارید

مهدی کرامتی
یک شنبه 03 خرداد 1394, 09:02 صبح
خوب به تاریخ لینک ها دقت کنید، تاپیک مال 8 سال پیش است!