سلام، سیسوگ امروز با قسمت اول از دوره آموزشی، آموزش PIC در خدمت شما عزیزان می باشد. با ما همراه باشید.
تفاوت بین زبان C و امبدد C. اول از همه، معرفی مختصری درباره تاریخچه زبان C و امبدد C خواهیم داشت.
ما همیشه از زبان C، در پردازندههایی که روی آن سیستمعامل نصب شده، استفاده میکنیم. این بدان معنی است که زبان C برای اجرای بر روی سیستمهایی که حافظه بالایی دارند طراحی شده است. اما امبدد C منحصراً برای اجرای برنامههای مبتنی بر میکروکنترلر طراحی شده است. بنابراین میتوانیم تصور کنیم که زبان C بر روی سیستمی اجرا میشود که دارای منابع بالایی است. اما برخلاف آن، امبدد C در میکروکنترلرها که دارای منابع محدودی مانند RAM،ROM و حافظه برنامه است، اجرا میشود. هنگامی که ما برنامه C را کامپایل میکنیم، کامپایلر یک فایل وابسته به سیستم عامل تولید میکند، اما کد امبدد C فقط روی میکروکنترلرها اجرا میشود. برای مثال، PIC16F877A میکروکنترلر اصلی شرکت میکروچیپ است که با امبدد C برنامه ریزی میشود.
C اساساً یک زبان برنامهنویسی همهمنظوره سطح بالا و مهم است، که هم برای توسعه فریمور استفاده میشود و هم برای نوشتن برنامه کاربردی قابل حمل. این زبان به بهبود کیفیت برنامهنویسی و حل مشکلات رایانهای در زمان کوتاه، کمک بسیار زیادی میکند. این یک زبان فرآیند محور است و با استفاده از یک کامپایلر قدرتمند، میتواند برای حافظههای سطح پایین نیز مفید باشد. زبان C با استفاده از کامپایلر به زبان سطح ماشین تبدیل میشود. این موضوع برای بسیاری از برنامهها مفید است، از جمله برنامههایی که نوشتن کد آن بسیار دشوار است، با استفاده از C به راحتی قابل توسعه است. زبان C از کلمات کلیدی مانند for, if/else, while, switch and do/while و تعداد زیادی از عملگرهای حساب و منطق مانند +، + = و ++ استفاده میشود. توسط دنیس ریچی در سالهای 1969 تا 1973 در آزمایشگاههای بِل برای سیستم عامل یونیکس ساخته شد.
امبدد C در واقع افزونهای از زبان C است. این افزونه شامل مجموعههای زبان C است که میتواند برای اهداف مختلف مورد استفاده قرار گیرد. این افزونه در سال 2008 توسط کمیته استاندارد C برای حل مسائل مختلف زبان C توسعه یافت و بیشتر از سینتکس و استاندارد زبان C در آن استفاده شده است. این زبان دارای ویژگیهای بسیاری در مقایسه با زبان C است مانند استفاده از محاسبات fixed point، فاصله بین آدرس ورودی و خروجی سختافزار و… همانطور که به اطراف خود نگاه میکنیم، تعداد زیادی سیستم امبدد مانند ماشین لباسشویی، دوربین دیجیتال و تلفنهای همراه داریم که همه اینها نمونههایی از سیستم امبدد هستند، در همه این موارد از زبان امبدد C استفاده میشود. ویژگیهای بسیاری مانند ثباتهای عملکرد یا mapping register، تعداد فضای حافظه و نمایش fixed point به امبدد C اضافه شده است.
بنابراین اگر فقط در مورد برنامهنویسی صحبت کنیم، برنامهنویسی زبان C و امبدد C تقریباً یکسان است و تنها تفاوت این دو منبع در استفاده از آن و نوعی کد به طور موثر است.
سلام
وقتی این پست رو دیدم یاد روزایی افتادم که با pic کار می کردم و حالا به خاطر کنکور دیگه نمی تونم 🙁
خیلی دلم تنگ شده!
سلام. زندگی چیزی نیست به جز جبر در تصمیمگیری و انتخاب یک یا چند گزینه از بین گزینههای موجود.
با آرزوی موفقیت در کنکور پیش رو. ☺️
سلام یه سوال داشتم. الان با این اوصاف، برنامه هایی که ما در کدویژن یا اتمل استودیو یا حتی برای stm32 مینویسیم، زبان C حساب میشن یا امبدد C ؟؟
سلام امیر محمد جان مشخص دیگه امبدد C محسوب میشه. C و امبدد C اگرچه یه سری تفاوت بسیار مهم و اساسی با هم دارن اما اینا دو زبان جدا از هم نیستن، یعنی اگه گفتی از زبان C برای برنامهنویسی میکروکنترلر استفاده میکنم اشتباه نگفتید، اگرچه بهتر است که بگویید امبدد C. اگر هم توجه کنید غالبا اکثریت ما در جواب این سوال که از چه زبانی برای برنامهنویسی میکروکنترلر استفاده میکنید، میگوییم زبان C.
ممنون اقای جلیلی متوجه شدم
???
تا اونجا که توی کتاب ها خوندیم C یک زبان سطح میانه هست نه سطح بالا …
ممنون از آموزش.
امیر عزیز اول اینو بگم که مقاله ترجمه هست و نه تالیفی و دوستان زحمت ترجمش رو کشیدند.
ببینید حرف شما کاملا درست و زبان C در همه منابع به عنوان یک زبان سطح میانی معرفی شده است. اما چرا نویسنده این مقاله، این زبان رو سطح بالا و حتی در یه پاراگراف زبان C رو “خیلی سطح بالا” معرفی کرده؟
خب همونطور که خودتون ذکر کردید زبان C یک زبان سطح میانی است که هم دارای ویژگیهای سطح پایین و هم دارای ویژگیهای سطح بالا است. نویسنده اومده و ویژگیهای سطح پایین رو جدا کرده و به امبدد C نسبت داده، و ویژگیهای سطح بالا رو به خود زبان C نسبت داده. اگر مقاله رو با دقت بخونید، متوجه خواهید شد که نویسنده تلویحا با جدا کردن ویژگیهای زبان C به سطح پایین و سطح بالا میخواهد به همین سطح میانی بودن زبان اشاره کند.
امیدوارم که توضیحاتم کافی و مناسب بوده باشد.
سلام
ممنون بابت مقاله مفیدتون.
سلام رضا عزیز. سپاس از نظر مثبتتان.
نویسنده شو !
سیسوگ با افتخار فضایی برای اشتراک گذاری دانش شماست. برای ما مقاله بنویسید.