موضوع مقاله: نرم افزار تعبیه شده | مخاطب: عمومی | لحن: دانشنامه‌ای | ساختار: عنوان، مقدمه، 3 بخش، جمع‌بندی | مقاله: | # نرم افزار تعبیه شده | مقدمه: نرم‌افزار تعبیه‌شده نرم‌افزار رایانه‌ای می باشد که به منظور مدیریت ماشین‌ها یا دستگاه‌هایی نوشته شده است که اغلب تحت عنوان رایانه در نظر گرفته نمی‌شوند و معمولاً به عنوان سیستم‌های جاسازی شده شناخته می‌شوند. | ## بخش 1: نرم افزار تعبیه شده | معمولاً برای سخت افزار بخصوصی که روی آن اجرا می شود و دارای محدودیت های زمان و حافظه می باشد، تخصصی است. سازندگان نرم‌افزار جاسازی شده را در لوازم الکترونیکی اتومبیل‌ها ، تلفن‌ها، مودم‌ها، روبات‌ها ، لوازم خانگی، اسباب‌بازی‌ها، سیستم‌های امنیتی، ضربان‌سازها ، تلویزیون‌ها و ست‌تاپ‌باکس‌ها و ساعت‌های دیجیتال می‌سازند. این نرم‌افزار می‌تواند بسیار ساده باشد، مانند کنترل‌های روشنایی که بر روی یک میکروکنترلر 8 بیتی با چند کیلوبایت حافظه با سطح پیچیدگی پردازش مناسب که با چارچوب محاسباتی احتمالاً درست تعیین می‌شود (روش‌شناسی مبتنی بر الگوریتم‌های تصادفی‌سازی شده ) اجرا می‌شود. با این حال، نرم افزارهای تعبیه شده می توانند در کاربردهایی مانند روترها ، عناصر شبکه نوری، هواپیماها ، موشک ها و سیستم های کنترل فرآیند بسیار پیچیده شوند. سیستم های عامل درتضاد رایانه‌های استاندارد که به طور معمول از سیستم‌عامل‌هایی مثل ویندوز، مک یا لینوکس استفاده می‌کنند، نرم‌افزارهای جاسازی شده امکان دارد از هیچ سیستم عاملی استفاده نکنند. هنگامی که آنها از یکی بهره میبرند، طیف وسیعی از سیستم عامل ها را می توان از میان آنها انتخاب کرد، معمولاً یک سیستم عامل بلادرنگ. کد نرم افزارهای جاسازی شده معمولاً به زبان C یا C++ نوشته می شود، اما زبان های برنامه نویسی سطح بالا مانند جاوا ، پایتون و جاوا اسکریپت درحال حاضر برای هدف قرار دادن میکروکنترلرها و سیستم های جاسازی شده رایج می باشند. | ## بخش 2: نرم افزار تعبیه شده | زبان های اسمبلی نیز اغلب مورد استفاده قرار می گیرند، به ویژه در بوت کردن و مدیریت وقفه. با این وجود نرم افزار جاسازی شده اغلب کمتر قابل مشاهده می باشد، اما کمتر پیچیده نیست. برخلاف نرم افزارهای کاربردی، نرم افزارهای جاسازی شده دارای ملزومات و ظرفیت های سخت افزاری ثابت هستند و افزودن سخت افزار یا نرم افزار شخص ثالث به شدت کنترل می شود. نرم افزار جاسازی شده ملزم به شامل شدن تمام درایورهای دستگاه مورد نیاز در هنگام تولید و درایورهای دستگاه برای دستگاه های سخت افزاری گوناگون نوشته شده می باشد. این درایورهای دستگاه که BSP ( بسته پشتیبانی برد ) نامیده می‌شوند، لایه نرم‌افزاری را متشکل می شوند که درایورهای مخصوص سخت‌افزار و سایر روال‌ها را دربرمی گیرد که به یک سیستم عامل بخصوص (به صورت سنتی یک سیستم عامل بلادرنگ یا RTOS) این دسترسی را می‌دهد تا در یک محیط سخت‌افزاری خاص کار کند. بیشتر مهندسان نرم افزار جاسازی شده حداقل دانش گذرا از خواندن شماتیک ها و خواندن برگه های داده، برای اجزاء به منظور تعیین استفاده از ثبات ها و سیستم های ارتباطی دارند. تبدیل بین دسیمال, هگزادسیمال و باینری و همینطور استفاده از دستکاری بیت مفید می باشد. | ## بخش 3: نرم افزار تعبیه شده | برنامه های کاربردی وب اکثرا برای مدیریت سخت افزار استفاده می شوند، با اینکه فایل های XML و دیگر خروجی ها ممکن است به منظور نمایش به رایانه ارسال شوند. معمولا سیستم های فایل با پوشه ها مورد استفاده قرار میگیرند، با این وجود پایگاه داده های SQL اغلب حضور ندارند. توسعه نرم‌افزار نیازمند استفاده از یک کامپایلر متقابل می باشد که در رایانه اجرا می‌شود با این حال کدهای اجرایی را برای دستگاه مورد نظر می سازد. اشکال زدایی به استفاده از شبیه ساز درون مدار و سخت افزار اشکال زدایی مانند JTAG یا اشکال زدایی SWD نیاز دارد. بعضی از سیستم ها در فلش 16 کیلوبایت و رم 4 کیلوبایت با پردازنده مرکزی 8 مگاهرتز اجرا می شوند، درشرایطی که دیگر سیستم‌ها می‌توانند با رایانه‌های امروزی در رقابت باشند. این فواصل مورد نیاز منجر به وقوع کارهای بیشتر در C یا C++ جاسازی شده به جای C++ می شود. | ## جمع‌بندی | پروتکل های ارتباطی ارتباطات بین پردازنده ها و بین یک پردازنده و سایر اجزا ضروری است.