esys.ir »
در روند طراحی نرم افزار دو بخش از اهمیت خاصی برخوردارند:
نرم افزار سطح سیستم عامل: شامل سفارشی سازی سیستم عامل و درایور نویسی
نرم افزار سطح بالا: شامل برنامه های کاربردی برای محصول نهایی ( با اینترفیس گرافیکال و بدون اینترفیس گرافیکال)
در بخش اول که مرتبط با سیستم عامل ها و درایور های سطح پایین است - از آنجایی که توسعه دهندگان این قسمت بسیار در ایران محدودند – برای کسانی که آشنایی زیادی با ساختار و نحوه ی کد نویسی این بخش – معمولا به زبان C و در برخی قسمت ها به زبان Assembly می باشد- ندارند، کاری بسیار دشوار و زمان بر است و این موجب می شود که شرکت های تولید کننده ای که می خواهند در زمینه ساخت محصول با سیستم های امبد فعالیت کنند نتوانند ریسک کار را برای این زمان و هزینه بپذیرند. حال شرکت پردازش سبز هونام با شناختی که از سخت افزار و نرم افزار دارد می تواند با زمان بسیار بسیار کمتری عمل سفارشی سازی و درایور نویسی را انجام دهد. نمونه کارها و محصولات تولیدی شرکت گویای این مهم است.
در بخش دوم که همان برنامه نویسی عادی است، برنامه نویسان زیادی وجود دارند که قابلیت توسعه ی این بخش را دارا هستند. حال گروهی از مشتریان که نمی خواهند ریسک زمان و هزینه ی پروژه را بپذیرند می توانند این بخش از پروژه را نیز به شرکت پردازش سبز هونام واگذار نمایند تا پروژه به بهترین شکل ممکن انجام شود.
در این میان گروه دیگری از برنامه نویسان متخصص هستند که اگر چه اشراف کامل نسبت به برنامه نویسی دارند اما برای استفاده از برخی وسایل جانبی احتیاج به درایور های خاص سیستم عامل دارند. این بخش از کد نوییس سیستم عامل و ایجاد Library قابل استفاده برای ایشان نیز توسط مهندسین این شرکت قابل اجراست.
سیستم عامل هایی که توسط این شرکت پشتیبانی می شود:
همانطور که می دانیم سیستم عامل های متفاوت کاربرد های متفاوتی دارند. برخی از آن ها برای کارهای Real-time مناسب اند و برخی دیگر برای سیستم های مبتنی بر گرافیک (GUI) ، گروهی برای گسترش سریع (Rapid development) و ... استفاده می شوند.
انتخاب صحیح سیستم عامل می تواند عمل کدنویسی و توسعه سیستم را به شدت افزایش دهد و حتی قیمت نهایی سیستم را بسیار کاهش دهد.
این که چگونه سیستم عامل مناسب را انتخاب کنیم بحثی بسیار مفصل است و نیازمند تجربه ی بسیار از نحوه ی عملکرد هرکدام از این سیستم عامل ها بر روی پردازنده های متفاوت در واقعیت!
پس از انتخاب سیستم عامل، باید سیستم عامل را برای این سیستم خاص سفارشی (Customize) کرد. عمل سفارشی سازی خود شامل 4 بخش است:
نکته: در سیستم عامل WinCE مراحل 2 و 4 درهم آمیخته است.
نکته: معمولا در سیستم عامل های Real-Time این روند ها بسیار در هم تنیده است.
نمایش یک لوگو در زمان بارگذاری سیستم، ایجاد کلید های خاص برای آپدیت سیستم و ... در بخش Bootloader انجام می شود.
اضافه و حذف درایور ها و نیز ایجاد امکانات جدید به سیستم عامل برای افزایش سرعت بوت و یا حذف برخی دسترسی ها در سیستم عامل برای افزایش امنیت، در بخش کرنل انجام می شود.
نوشتن یک درایور خاص و اضافه کردن آن به کرنل پروسه ای جدا است و در قالب جداگانه انجام خواهد شد.
در نهایت قرار دادن کتابخانه های خاص و مورد نیاز برای راه اندازی برنامه های سطح بالا و نیز حذف آن هایی که باعث سنگین تر شدن سیستم عامل می شوند.
تا کنون آنچه انجام شده فقط پیش زمینه های شروع برنامه نویسی پروسه اصلی سیستم است. بنابراین بعد از آن که سیستم عامل آماده شد، نوبت به طراحی برنامه ی اصلی می رسد. در این مرحله برنامه نویسان سطح بالا باید دانش مناسبی نسبت به مدیریت حافظه، عملگر های تعریف شده در CPU، میزان پردازش CPU برای برنامه های چند نخی (Multi Thread) و ... داشته باشند تا بتوانند برنامه را به ضورت بهینه بنویسند. برخی از مشکلات احتمالی که در صورت در نظر نگرفتن این نکات به وجود می آیند عبارتند از: کند کار کردن عملیات ریاضی سیستم، کند شدن سیستم پس از چندین بار استفاده از محیط گرافیکی، هنگ کردن سیستم پس مدتی روشن ماندن (مثلا پس از 2 روز)، قرار گرفتن سیستم در حالت پیش بینی نشده و در نهایت هنگ سیستم و ...
آنچه که خروجی این سیستم است، نهایتا چند فایل باینری (Image) است که با Burn کردن بر روی سخت افزار اجرا خواهد شد.
تمام آنچه در مراحل بالا ذکر شده است شمای کلی از آنچه در بخش نرم افزار و سیستم عامل شرکت پردازش سبز اتفاق می افتد.
طرح نیازمندیها
ارائه راهکار
توافق پروژه
طراحی محصول
نمونهسازی و تست
محصول نهایی
خدمات مربوط به سفارشی سازی OS،کرنل(Kernel)،فایل سیستم(RootFS) و پیاده سازی درایور را برای سیستم های تحت ویندوز(WinCE,...)،یونیکس(Linux,Android,...) و بدون سیستم عامل(Free-RTOS,...) ارائه می نماید.
خدمات طراحی محصول شامل طراحی کیس(Enclosure)، سخت افزار، سیستم عامل، نرم افزار می باشد که همه در طی یک سیکل مشخص انجام می پذیرد.
یک نمونه از طراحی سفارش داده شده ساخته می شود و تحویل مشتری می شود. امکان ارائه فایل های سورس و طراحی ها برای تولید انبوه توسط مشتری نیز وجود دارد.
طراحی و سفارشی سازی سخت افزار در بیشتر پروژه های امبدد انجام می شود. در برخی از پروژه ها نیاز به طراحی یک بخش سخت افزاری مجزا می باشد و در برخی دیگر نیاز به اصلاح یک سخت افزار موجود و تغییر آن برای یک مسئله خاص دارند. طراحی های بسیار پیچیده چند لایه با فرکانس بالا، سفارشی سازی Core Board و Carrier Board و ساخت PCB های خاص انجام می شود.
این طراحی ها می تواند به صورت فایل سورس انحصاری (سورس قابل استفاده برای دیگر مشتریان نیست)، فایل سورس عمومی (فایل سورس به سفارش دهنده تحویل داده می شود ولی برای دیگر مشتریان نیز قابل استفاده است) و یا به صورت فایل Gerber (این فایل توسط مشتری قابل تغییر نمی باشد) ارائه شود.
ایسیس در زمینه خدمات سفارشی سازی سیستم عامل های امبدد فعالیت می کند.
یک سیستم عامل بسیار قابل اطمینان می باشد وReal-time است. برنامه نویسی بر روی آن با توجه به پشتیبانی از Dot Net Framework بسیار آسان است و برنامه نویسان زیادی می توانند بر روی آن با استفاده از Visual Studio کار کنند.
سفارشی سازی این سیستم عامل توسط نرم افزار Platform Builder انجام می شود و بخشی از آن به صورت متن باز (Open Source) ارائه می شود.
راه اندازی این سیستم عامل از 3 بخش تشکیل می شود. (Bootloader، Eboot و NK) Eboot و NK)
این سیستم عامل دیگر توسط شرکت میکروسافت پشتیبانی نمی شود.
یک سیستم عامل متن باز است و اولین سیستم عاملی است که بر روی بیشتر پروسسورها پورت (راه اندازی) می شود و به صورت بسیار گسترده در جهان بر روی آن کار می شود. با اضافه کردن Real-time Patch به کرنل می توان تا حد زیادی از آن در صنعت استفاده کرد.
توسعه نرم افزار بر روی آن کمی پیچیده تر از سیستم عامل ویندوز و اندروید است و باید با استفاده از محیط توسعه لینوکسی و Cross Compiler برنامه ها توسعه یابند.
سفارشی سازی این سیستم عامل بیشتر به صورت دستی و با توجه به ابزارهای مختلف لینوکسی تولید می شود. راه اندازی محیط توسعه Qt Creator برای این سیستم عامل انجام پذیر است و به درخواست مشتریان اجرا می شود.
راه اندازی این سیستم عامل عمدتا از 3 بخش Bootloader، Kernel و Rootfs تشکیل می شود.
این سیستم عامل بین توسعه دهندگان بسیار محبوب است. اما به دلیل زمان زیاد بالا آمدن (Boot time) و همینطور کاربرد غیر صنعتی، در میان توسعه دهندگان امبدد محبوبیت زیادی ندارد.
این سیستم از کرنل لینوکس با فایل سیستم مجزا و بر اساس جاوا استفاده می کند.
توسعه برنامه بر روی آن مانند تمام سیستم های اندرویدی مانند گوشی ها و تبلت ها است.