Amazon Best VPN GoSearch

فاویکون OnWorks

sdcc

sdcc را در ارائه دهنده هاست رایگان OnWorks از طریق Ubuntu Online، Fedora Online، شبیه ساز آنلاین ویندوز یا شبیه ساز آنلاین MAC OS اجرا کنید.

این دستور sdcc است که می تواند در ارائه دهنده هاست رایگان OnWorks با استفاده از یکی از چندین ایستگاه کاری آنلاین رایگان ما مانند Ubuntu Online، Fedora Online، شبیه ساز آنلاین ویندوز یا شبیه ساز آنلاین MAC OS اجرا شود.

برنامه:

نام


sdcc - کامپایلر دستگاه کوچک C

خلاصه


sdcc [گزینه ها] نام فایل

هشدار


اطلاعات این صفحه مرد عصاره ای از مستندات کامل SDCC است و می باشد
محدود به معنای گزینه ها

برای مستندات کامل و جاری به ادامه مطلب مراجعه کنید SDCC کامپایلر کاربر راهنما.

شرح


SDCC کامپایلر ANSI-C منبع باز رایگان، قابل هدف گیری مجدد و بهینه سازی است که برای 8 بیت طراحی شده است
ریزپردازنده ها نسخه فعلی ریزپردازنده های مبتنی بر MCS51 اینتل (8031،
8032، 8051، 8052، و غیره)، انواع Dallas DS80C390، Freescale (موتورولا سابق) HC08 و
MCU های مبتنی بر Zilog Z80 (z80، z180، gbz80، Rabbit 2000/3000). می توان آن را برای سایرین هدف گذاری کرد
ریزپردازنده ها، پشتیبانی از Microchip PIC در دست توسعه است.

SDCC از نسخه اصلاح شده ASXXXX و ASLINK، اسمبلر رایگان منبع باز هدف گیری مجدد و
پیوند دهنده

SDCC دارای پسوندهای زبانی گسترده مناسب برای استفاده از میکروکنترلرهای مختلف و
سخت افزار زیربنایی به طور موثر

SDCC استفاده ASXXX & ASLINK، یک مونتاژ کننده و پیوند دهنده رایگان، قابل هدف گیری مجدد. SDCC است
پسوندهای زبان گسترده مناسب برای استفاده از میکروکنترلرهای مختلف و
سخت افزار زیربنایی به طور موثر

کامپایلر همچنین اجازه می دهد تا کد اسمبلر درون خطی در هر جایی از یک تابع جاسازی شود. که در
علاوه بر این، روال های توسعه یافته در مونتاژ نیز می تواند نامیده شود.

پردازنده انتخاب OPTIONS


-mmcs51
کد برای خانواده پردازنده های MCS51 (8051) تولید کنید. این پیش فرض است
هدف پردازنده

-mds390
کد برای پردازنده DS80C390 تولید کنید.

-mds400
کد برای پردازنده DS80C400 تولید کنید.

-mz80 کد برای خانواده پردازنده های Z80 تولید کنید.

-mhc08 کد برای پردازنده GameBoy Z80 تولید کنید.

-mz80 کد برای خانواده پردازنده های Zilog Z80 تولید کنید.

-mz180 کد برای خانواده پردازنده های Zilog Z180 تولید کنید.

-mr2k کد برای پردازنده های خانواده Rabbit 2000 / Rabbit 3000 ایجاد کنید."

-mr3ka کد برای پردازنده های خانواده Rabbit 2000 / Rabbit 3000 ایجاد کنید. XXXXX را بررسی کنید

-mgbz80
کد برای پردازنده GameBoy Z80 تولید کنید (به طور فعال نگهداری نمی شود).

-mpic14
تولید کد برای پردازنده های 14 بیتی Microchip PIC (p16f84 و انواع آن. در
توسعه، کامل نیست).

-mpic16
تولید کد برای پردازنده های 16 بیتی Microchip PIC (p18f452 و انواع آن. در
توسعه، کامل نیست).

-mtlcs900h
کد برای پردازنده Toshiba TLCS-900H ایجاد کنید (نگهداری نشده، کامل نیست).

-mxa51 کد برای پردازنده Phillips XA51 ایجاد کنید (نگهداری نشده، کامل نیست).

-mstm8 کد برای پردازنده STM8 تولید کنید.

پیش پردازشگر OPTIONS


-I
مکان اضافی که در آن پیش پردازنده «<..h>» یا «..h» را جستجو می کند.
فایل های.

-D
تعریف خط فرمان ماکروها به پیش پردازنده منتقل شد.

-M به پیش پردازنده بگویید که یک قانون مناسب برای توصیف ساختن خروجی دهد
وابستگی های هر فایل شی برای هر فایل منبع، پیش پردازنده خروجی می گیرد
یک قانون ساخت که هدف آن نام فایل شی برای آن فایل منبع و آن است
وابستگی‌ها همه فایل‌هایی هستند که «#include» در آن هستند. این قانون ممکن است یک خط یا
اگر طولانی باشد، ممکن است با '\'-newline ادامه یابد. لیست قوانین در چاپ شده است
خروجی استاندارد به جای برنامه C از پیش پردازش شده. "-M" دلالت دارد "-E".

-C به پیش پردازنده بگویید نظرات را دور نزند. استفاده شده با "-E" گزینه.

-مامان پسندیدن "-M" اما در خروجی فقط فایل‌های هدر کاربر ذکر شده است
"#include "file"". فایل‌های هدر سیستم همراه با «#include ' حذف شده اند.

-A سوال (پاسخ)
پاسخ سؤال را در صورتی که با پیش پردازنده آزمایش شده است، مطرح کنید
شرطی مانند «#اگر #سوال (پاسخ)». "-A-" استاندارد را غیرفعال می کند
ادعاهایی که معمولا ماشین هدف را توصیف می کنند.

-A سوال
(پاسخ) در صورتی که با الف تست شده باشد، پاسخ سوال را مطرح کنید
پیش پردازشگر شرطی مانند «#اگر #سوال (پاسخ)». "-A-" را غیرفعال می کند
اظهارات استانداردی که معمولا ماشین هدف را توصیف می کند.

-اماکرو
تعریف ماکرو ماکرو "-U" پس از همه، گزینه ها ارزیابی می شوند "-D" گزینه ها، اما
قبل از هر "-شامل" و "-imacros" گزینه.

-dM به پیش پردازنده بگویید که فقط لیستی از تعاریف کلان موجود در آن را خروجی کند
اثر در پایان پیش پردازش استفاده شده با '-E' گزینه.

-DD به پیش پردازنده بگویید تمام تعاریف ماکرو را در خروجی خود ارسال کند
توالی مناسب در بقیه خروجی ها

-dN پسندیدن "-dD"جز اینکه آرگومان ها و محتویات کلان حذف شده اند. فقط «#تعریف کنید
نام در خروجی گنجانده شده است.

LINKER OPTIONS


-ل، -lib-path<مطلق مسیر به اضافی کتابخانه ها>
این گزینه به مسیر جستجوی کتابخانه های اضافی ویرایشگر پیوند ارسال می شود. در
نام مسیر باید مطلق باشد. فایل‌های کتابخانه اضافی ممکن است در
خط فرمان. برای جزئیات بیشتر به بخش کامپایل برنامه ها مراجعه کنید.

--xram-loc
محل شروع رم خارجی، مقدار پیش فرض 0 است. مقدار وارد شده می تواند
در قالب هگزادسیمال یا اعشاری باشد، به عنوان مثال: --xram-loc 0x8000 or --xram-loc 32768.

--code-loc
محل شروع بخش کد، مقدار پیش فرض 0. توجه داشته باشید که این گزینه چه زمانی است
جدول بردار وقفه نیز به آدرس داده شده منتقل می شود. ارزش
وارد شده می تواند در قالب هگزادسیمال یا اعشاری باشد، به عنوان مثال: --code-loc 0x8000 or --کد-
LOC 32768.

--stack-loc
مقدار اولیه نشانگر پشته. مقدار پیش فرض نشانگر پشته است
0x07 اگر فقط از بانک ثبت 0 استفاده می شود، اگر از سایر بانک های ثبت استفاده می شود
نشانگر پشته به مکان بالای بالاترین بانک ثبت استفاده شده مقداردهی اولیه می شود.
به عنوان مثال. اگر از بانک های رجیستر 1 و 2 استفاده شود، نشانگر پشته به طور پیش فرض روی مکان قرار می گیرد
0x18. مقدار وارد شده می تواند در قالب هگزادسیمال یا اعشاری باشد، به عنوان مثال. --stack-loc
0x20 or --stack-loc 32. اگر از هر چهار بانک ثبت استفاده شود، پشته خواهد بود
بعد از بخش داده (معادل پشته پس از داده)

پشته پس از داده
این گزینه باعث می شود که پشته بعد از داده در رم داخلی قرار گیرد
بخش.

--data-loc
محل شروع بخش داده رم داخلی، مقدار پیش فرض است 0x30.
مقدار وارد شده می تواند در قالب هگزادسیمال یا اعشاری باشد، به عنوان مثال. --data-loc 0x20 or
--data-loc 32.

--idata-loc
محل شروع حافظه داخلی قابل آدرس دهی غیر مستقیم، مقدار پیش فرض است
0x80. مقدار وارد شده می تواند در قالب هگزادسیمال یا اعشاری باشد، به عنوان مثال. --idata-loc
0x88 or --idata-loc 136.

--out-fmt-ihx
خروجی لینکر (کد نهایی شی) با فرمت Intel Hex است. (این پیش فرض است
گزینه).

--out-fmt-s19
خروجی لینکر (کد نهایی شی) در قالب موتورولا S19 است.

MCS51 OPTIONS


--مدل-بزرگ
ایجاد کد برای برنامه های مدل بزرگ برای جزئیات بیشتر به بخش مدل های حافظه مراجعه کنید.
در صورت استفاده از این گزینه، تمامی فایل های منبع پروژه باید با این کامپایل شوند
گزینه. بعلاوه روال های استاندارد کتابخانه با مدل های کوچک گردآوری شده اند،
آنها نیاز به کامپایل مجدد دارند.

--مدل-کوچک
ایجاد کد برای برنامه های مدل کوچک برای جزئیات بیشتر به بخش مدل های حافظه مراجعه کنید.
این مدل پیش فرض است.

DS390 / DS400 OPTIONS


--model-flat24
کد حالت مسطح 24 بیتی ایجاد کنید. این یکی و تنها کد ds390 است
ژنراتور در حال حاضر پشتیبانی می کند و هنگام استفاده پیش فرض است -mds390.

--protect-sp-update
وقفه ها را در حین به روز رسانی ESP:SP غیرفعال کنید.

_--پشته-10 بیت
کد برای حالت پشته 10 بیتی قسمت Dallas DS80C390 ایجاد کنید. این است
یکی و تنها که تولید کننده کد ds390 در حال حاضر پشتیبانی می کند و زمانی که پیش فرض است
با استفاده از -mds390. در این حالت، پشته در 1K پایین داخلی قرار دارد
RAM که به آن نگاشت شده است 0x400000 . توجه داشته باشید که پشتیبانی ناقص است، زیرا آن را دارد
هنوز از یک بایت به عنوان نشانگر پشته استفاده می کند. این بدان معنی است که فقط 256 پایین تر
بایت از فضای پشته 1K بالقوه در واقع استفاده خواهد شد. با این حال، این کار را انجام می دهد
به شما این امکان را می دهد که 256 بایت RAM کم ارزش را برای استفاده برای DATA و
بخش های IDATA کامپایلر هیچ کدی برای قرار دادن پردازنده در آن ایجاد نمی کند
حالت پشته 10 بیتی. مهم است که مطمئن شوید که پردازنده در این حالت قرار دارد
قبل از فراخوانی هر توابع ورودی مجدد که با این گزینه کامپایل شده است. در اصل،
این باید با پشته-خودکار انتخاب، اما آزمایش نشده است. این است
ناسازگار با --xstack گزینه. همچنین تنها زمانی منطقی است که پردازنده باشد
در حالت آدرس دهی پیوسته 24 بیتی (به --model-flat24 گزینه).

Z80 گزینه


--callee-saves-BC
تابع فراخوانی شده را مجبور کنید همیشه BC ذخیره کند.

--no-std-crt0
هنگام پیوند، از فایل استاندارد شی crt0.o صرفنظر کنید. شما باید خود را ارائه دهید
crt0.o برای سیستم شما هنگام پیوند دادن.

بهینه سازی ها OPTIONS


--nogcse
حذف زیرعبارت جهانی انجام نمی شود، این گزینه ممکن است زمانی استفاده شود که
کامپایلر فضاهای پشته/داده بزرگی را برای ذخیره موقت کامپایلر ایجاد می کند.
هنگامی که این اتفاق بیفتد یک پیام هشدار ایجاد می شود و کامپایلر این کار را انجام می دهد
تعداد بایت های اضافی را که اختصاص داده را نشان می دهد. این گزینه را توصیه کرد
استفاده نشود، #پراگما NOGCSE می توان از آن برای خاموش کردن زیر بیان سراسری استفاده کرد
حذف فقط برای یک تابع معین.

- بدون تغییر
بهینه سازی ثابت حلقه انجام نمی شود، ممکن است به دلایلی خاموش شود
برای گزینه قبلی توضیح داده شده است. برای جزئیات بیشتر بهینه سازی حلقه انجام شده
بخش Loop Invariants را ببینید. توصیه می شود از این گزینه استفاده نشود. #پراگما
NOINVARIANT می تواند برای خاموش کردن بهینه سازی های ثابت برای یک تابع مشخص استفاده شود
تنها.

-- بدون القاء
بهینه سازی القایی حلقه انجام نمی شود، برای اطلاعات بیشتر به کاهش قدرت بخش مراجعه کنید
جزئیات. توصیه می شود از این گزینه استفاده نشود #پراگما NOINDUCTION می تواند
فقط برای خاموش کردن بهینه سازی القایی برای یک تابع معین استفاده می شود.

-- غیر مقید
هنگامی که دستورات سوئیچ اجرا می شوند، بررسی شرایط مرزی ایجاد نمی شود
با استفاده از جدول های پرش توصیه می شود از این گزینه استفاده نشود #پراگما
NOJTBOUND می تواند برای خاموش کردن بررسی مرز برای جداول پرش برای یک معین استفاده شود
فقط عملکرد

--نولو معکوس
بهینه سازی معکوس حلقه انجام نمی شود.

OTHER OPTIONS


-c، --فقط کامپایل
منبع را کامپایل و مونتاژ می کند، اما ویرایشگر پیوند را فراخوانی نمی کند.

-E فقط پیش پردازنده C را اجرا کنید. تمام فایل های منبع C مشخص شده و خروجی را از قبل پردازش کنید
نتایج به خروجی استاندارد

پشته-خودکار
تمام توابع موجود در فایل منبع به عنوان ورودی مجدد، یعنی پارامترها، کامپایل خواهند شد
و متغیرهای محلی روی پشته تخصیص خواهند یافت. اگر از این گزینه استفاده شود همه
فایل های منبع در پروژه باید با این گزینه کامپایل شوند.

--xstack
برای تخصیص از یک پشته شبه در 256 بایت اول در رم خارجی استفاده می کند
متغیرها و پارامترهای عبوری

--callee-saves تابع1[,function2][,function3]....
کامپایلر به طور پیش فرض از یک قرارداد ذخیره تماس گیرنده برای ذخیره رجیستر در سراسر استفاده می کند
فراخوانی تابع، با این حال این می تواند باعث فشار و پاپ رجیستر غیر ضروری در زمان شود
فراخوانی توابع کوچک از توابع بزرگتر از این گزینه می توان برای سوئیچ استفاده کرد
قرارداد ذخیره رجیستر برای نام توابع مشخص شده. کامپایلر خواهد کرد
هنگام فراخوانی این توابع، رجیسترها را ذخیره نکنید، هیچ کد اضافی در آن تولید نخواهد شد
ورود و خروج برای این توابع برای ذخیره و بازیابی رجیسترهای استفاده شده توسط اینها
توابع، این می تواند به طور قابل توجهی کاهش کد و بهبود عملکرد زمان اجرا
کد تولید شده در آینده کامپایلر (با تحلیل بین رویه ای) خواهد بود
قادر به تعیین طرح مناسب برای استفاده برای هر فراخوانی تابع است. DO نه استفاده کنید
این گزینه برای توابع داخلی مانند _muluint...، اگر از این گزینه برای
یک تابع کتابخانه، تابع کتابخانه مناسب باید با آن دوباره کامپایل شود
همان گزینه اگر پروژه از چندین فایل منبع تشکیل شده باشد، تمام منبع
فایل باید با همان کامپایل شود --callee-saves رشته گزینه

- رفع اشکال
هنگامی که این گزینه استفاده می شود، کامپایلر اطلاعات اشکال زدایی را تولید می کند، که می تواند باشد
استفاده می شود با SDCDB. اطلاعات اشکال زدایی در یک فایل با cdb. جمع آوری می شود
افزونه.

-- تمدید مجدد
این گزینه منسوخ شده است و دیگر پشتیبانی نمی شود.

--noregparms
این گزینه منسوخ شده است و دیگر پشتیبانی نمی شود.

--peep-file
از این گزینه می توان برای استفاده از قوانین اضافی برای استفاده توسط سوراخ چشمک زدن استفاده کرد
بهینه ساز

-S توقف پس از مرحله تدوین مناسب. مونتاژ نکنید خروجی یک است
فایل کد اسمبلر برای فایل ورودی مشخص شده.

-وا_asmOption[,asmOption]...]
asmOption را به اسمبلر منتقل کنید.

-Wl_لینک گزینه[,linkOption]...]
لینک Option را به لینک دهنده منتقل کنید.

--int-long-reent
کتابخانه های عدد صحیح (16 بیت) و طولانی (32 بیت) به عنوان ورودی مجدد گردآوری شده اند. توجه داشته باشید
به طور پیش‌فرض این کتابخانه‌ها به‌عنوان غیرمجاز جمع‌آوری می‌شوند.

-- سیکلوماتیک
این گزینه باعث می شود که کامپایلر برای هر کدام یک پیام اطلاعاتی ایجاد کند
عملکرد در فایل منبع پیام حاوی اطلاعات مهمی در مورد است
کارکرد. تعداد لبه ها و گره هایی که کامپایلر در کنترل شناسایی کرده است
نمودار جریان تابع، و مهمتر از همه پیچیدگی چرخه ای.

-- شناور-reent
کتابخانه نقطه شناور به عنوان ورودی مجدد گردآوری شده است.

-- بدون پوشش
کامپایلر پارامترها و متغیرهای محلی هیچ تابعی را نمی‌پوشاند
بخش پارامترها و متغیرهای محلی برای جزئیات بیشتر.

---بازگشت اصلی
این گزینه زمانی قابل استفاده است که کد تولید شده توسط یک برنامه مانیتور فراخوانی شود.
کامپایلر پس از بازگشت از تابع اصلی یک 'ret' تولید می کند. در
گزینه پیش فرض قفل کردن است یعنی یک 'ljmp' ایجاد شود.

--بدون پیپ
غیرفعال کردن بهینه سازی سوراخ چشم.

--peep-asm
کد اسمبلر درون خطی را از طریق بهینه ساز peep hole عبور دهید. این می تواند باعث شود
تغییرات غیرمنتظره در کد اسمبلر درون خطی، لطفاً از راهنما عبور کنید
قوانین بهینه ساز تعریف شده در درخت فایل منبع /peeph.def' قبل از استفاده
این گزینه

--iram-size
باعث می شود پیوند دهنده بررسی کند که آیا استفاده از حافظه داخلی در محدوده های داده شده است یا خیر
ارزش.

--nostdincl
این امر مانع از انتقال مسیر پیش‌فرض شامل به کامپایلر می‌شود
پیش پردازنده

--nostdlib
این کار از ارسال مسیر پیش فرض کتابخانه به کامپایلر جلوگیری می کند
پیوند دهنده

-- پرحرف
اقدامات مختلفی را که کامپایلر انجام می دهد نشان می دهد.

-V دستورات واقعی را که کامپایلر اجرا می کند نشان می دهد.

حد واسط DUMP OPTIONS


گزینه های زیر برای هدف گذاری مجدد و رفع اشکال ارائه شده است
کامپایلر اینها ابزاری برای تخلیه کد میانی (iCode) تولید شده توسط
کامپایلر به شکل قابل خواندن توسط انسان در مراحل مختلف فرآیند کامپایل.

-- تخلیه
این گزینه باعث می شود که کامپایلر کد میانی را در فایلی بریزد
تحت عنوان . تخلیه درست بعد از اینکه کد میانی وارد شد
تولید شده برای یک تابع، یعنی قبل از انجام هر گونه بهینه سازی. بلوک های اساسی
در این مرحله به ترتیب در عمق شماره اول، بنابراین آنها ممکن است در دنباله ای از
اجرا.

-- dumpgcse
پس از حذف زیرعبارات جهانی، یک Dump از iCode در یک فایل ایجاد می کند
تحت عنوان .dumpgcse.

--dumpdeadcode
پس از حذف دیدکد، یک dump از iCode در فایلی به نام ایجاد می کند
dumpdeadcode.

-- dumploop
پس از بهینه‌سازی حلقه، یک Dump از iCode در فایلی به نام ایجاد می‌کند
filename>.dumploop.

-- دامپرنج
پس از تجزیه و تحلیل محدوده زنده، یک dump از iCode در یک فایل به نام ایجاد می کند
filename>.dumprange.

-- dumlrange
محدوده عمر برای همه نمادها حذف می شود.

--dumpregassign
پس از تخصیص ثبت نام، یک dump از iCode در فایلی به نام ایجاد می کند
filename>.dumprassgn.

-- dumplrange
یک روگرفت از محدوده های زنده iTemp ایجاد می کند

-- دامپال
باعث ایجاد تمام زباله های ذکر شده در بالا می شود.

کپی برداری


کل کد منبع کامپایلر تحت مجوز عمومی عمومی گنو توزیع شده است.

با استفاده از خدمات onworks.net از sdcc آنلاین استفاده کنید


Ad




×
تبلیغات
❤️اینجا خرید کنید، رزرو کنید یا بخرید - رایگان است، به رایگان ماندن خدمات کمک می‌کند.