GoGPT Best VPN GoSearch

OnWorks favicon'u

sdcc - Bulutta Çevrimiçi

Ubuntu Online, Fedora Online, Windows çevrimiçi emülatörü veya MAC OS çevrimiçi emülatörü üzerinden OnWorks ücretsiz barındırma sağlayıcısında sdcc çalıştırın

Bu, Ubuntu Online, Fedora Online, Windows çevrimiçi emülatörü veya MAC OS çevrimiçi emülatörü gibi birden fazla ücretsiz çevrimiçi iş istasyonumuzdan birini kullanarak OnWorks ücretsiz barındırma sağlayıcısında çalıştırılabilen sdcc komutudur.

Program:

ADI


sdcc - Küçük Aygıt C Derleyicisi

SİNOPSİS


sdcc [seçenekler] Dosya

UYARI


Bu kılavuz sayfasındaki bilgiler, SDCC'nin tam dokümantasyonundan bir alıntıdır ve
seçeneklerin anlamı ile sınırlıdır.

Eksiksiz ve güncel belgeler için bkz. ÖGDM derleyici kullanıcı Başlangıç Kılavuzu.

AÇIKLAMA


ÖGDM ücretsiz açık kaynak kodlu, yeniden hedeflenebilir, 8 bit için tasarlanmış optimize ANSI-C derleyicisidir
Mikroişlemciler. Mevcut sürüm, Intel MCS51 tabanlı Mikroişlemcileri (8031,
8032, 8051, 8052, vb.), Dallas DS80C390 çeşitleri, Freescale (eski Motorola) HC08 ve
Zilog Z80 tabanlı MCU'lar (z80, z180, gbz80, Rabbit 2000/3000). Başkaları için yeniden hedeflenebilir
mikroişlemciler, Microchip PIC desteği geliştirme aşamasındadır.

ÖGDM AXXXXX & ASLINK'in değiştirilmiş bir sürümünü kullanır, ücretsiz açık kaynaklı yeniden hedeflenebilir birleştirici &
bağlayıcı.

ÖGDM çeşitli mikrodenetleyicileri kullanmaya uygun kapsamlı dil uzantılarına sahiptir ve
temel donanım etkin bir şekilde.

ÖGDM kullanım ASXXXX & ASLINK, bir Freeware, yeniden hedeflenebilir birleştirici ve bağlayıcı. ÖGDM vardır
çeşitli mikro denetleyicileri kullanmaya uygun kapsamlı dil uzantıları ve
temel donanım etkin bir şekilde.

Derleyici ayrıca satır içi derleyici kodunun bir işlevde herhangi bir yere gömülmesine izin verir. İçinde
Ayrıca montajda geliştirilen rutinler de çağrılabilir.

İŞLEMCİ SEÇİM SEÇENEKLER


-mmcs51
MCS51 (8051) işlemci ailesi için kod oluşturun. Bu varsayılan
işlemci hedefi

-mds390
DS80C390 işlemci için kod oluşturun.

-mds400
DS80C400 işlemci için kod oluşturun.

-mz80 Z80 işlemci ailesi için kod oluşturun.

-mhc08 GameBoy Z80 işlemci için kod oluşturun.

-mz80 Zilog Z80 işlemci ailesi için kod oluşturun.

-mz180 Zilog Z180 işlemci ailesi için kod oluşturun.

-mr2k Rabbit 2000 / Rabbit 3000 işlemci ailesi için kod oluşturun."

-mr3ka Rabbit 2000 / Rabbit 3000 işlemci ailesi için kod oluşturun. XXXX'i kontrol edin"

-mgbz80
GameBoy Z80 işlemci için kod oluşturun (Aktif olarak korunmaz).

-mpic14
Microchip PIC 14 bit işlemciler için kod oluşturun (p16f84 ve varyantları.
geliştirme, tamamlanmadı).

-mpic16
Microchip PIC 16 bit işlemciler için kod oluşturun (p18f452 ve varyantları.
geliştirme, tamamlanmadı).

-mtlcs900h
Toshiba TLCS-900H işlemci için kod oluşturun (Bakımı yapılmadı, tamamlanmadı).

-mxa51 Phillips XA51 işlemci için kod oluşturun (Bakımı yapılmadı, tamamlanmadı).

-mstm8 STM8 işlemcisi için kod oluşturun.

ÖN İŞLEMCİ SEÇENEKLER


-I
Ön işlemcinin `<..h>' veya `..h' için bakacağı ek konum
dosyaları.

-D
Makroların komut satırı tanımı. Ön işlemciye geçti.

-M Önişlemciye, aşağıdakileri tanımlamaya uygun bir kural çıkarmasını söyleyin.
her nesne dosyasının bağımlılıkları. Her kaynak dosya için önişlemci çıktıları
hedefi bu kaynak dosyanın nesne dosyası adı olan ve
bağımlılıklar, içindeki `#include' dosyalarıdır. Bu kural tek bir satır veya
uzunsa `\'-newline ile devam edilebilir. Kuralların listesi yazdırılır
önceden işlenmiş C programı yerine standart çıktı. `-M' ima `-E'.

-C Ön işlemciye yorumları silmemesini söyleyin. ile kullanılır `-E' seçeneği.

-MM Facebok sayfasını beğenin : `-M' ancak çıktı, yalnızca dahil edilen kullanıcı başlık dosyalarından bahseder.
`#include "dosya"'. `#include ile birlikte gelen sistem başlık dosyaları ' atlanmıştır.

-A soru cevap)
Bir önişlemci ile test edilmesi durumunda, sorunun cevabını belirtin
"#if #soru(cevap)" gibi koşullu. `-A-' standardı devre dışı bırakır
normalde hedef makineyi tanımlayan iddialar.

-A soru
(cevap) Bir test ile test edilmesi durumunda, sorunun cevabını belirtin
`#if #question(cevap)' gibi önişlemci koşullu. `-A-' devre dışı bırakır
normalde hedef makineyi tanımlayan standart iddialar.

-Umakro
Makro makrosunun tanımını kaldırın. `-U' sonuçta seçenekler değerlendirilir `-D' seçenekler, ancak
herhangi birinden önce `-dahil' ve `-imacros' seçenekleri.

-dM Önişlemciye, yalnızca içindeki makro tanımlarının bir listesini çıkarmasını söyleyin.
Önişlemenin sonundaki etki. ile kullanılır '-E' seçeneği.

-dd Önişlemciye tüm makro tanımlarını çıktıya aktarmalarını söyleyin.
çıktının geri kalanında uygun sıra.

-dN Facebok sayfasını beğenin : `-dD'makro bağımsız değişkenlerinin ve içeriğinin atlanması dışında. Yalnızca `#tanımla
name' çıktıya dahil edilir.

BAĞLAYICI SEÇENEKLER


-L, -lib-yolu<mutlak yol için ek kütüphaneler>
Bu seçenek, bağlantı düzenleyicisinin ek kitaplık arama yoluna iletilir. NS
yol adı mutlak olmalıdır. Ek kitaplık dosyaları şurada belirtilebilir:
Komut satırı. Daha fazla ayrıntı için Programları derleme bölümüne bakın.

--xram-loc
Harici ram başlangıç ​​konumu, varsayılan değer 0'dır. Girilen değer,
Onaltılık veya Ondalık biçimde olun, örneğin: --xram-loc 0x8000 or --xram-loc 32768.

--kod-loc
Kod segmentinin başlangıç ​​konumu, varsayılan değer 0. Bu seçeneğin ne zaman seçildiğini not edin.
kullanılan kesme vektör tablosu da verilen adrese taşınır. Değer
girilen Onaltılık veya Ondalık biçimde olabilir, örneğin: --kod-loc 0x8000 or --kod-
loc 32768.

-- yığın-loc
Yığın işaretçisinin başlangıç ​​değeri. Yığın işaretçisinin varsayılan değeri
0x07 sadece kayıt bankası 0 kullanılıyorsa, diğer kayıt bankaları kullanılıyorsa, o zaman
yığın işaretçisi, kullanılan en yüksek kayıt bankasının üzerindeki konuma başlatılır.
Örneğin. kayıt bankaları 1 ve 2 kullanılıyorsa, yığın işaretçisi varsayılan olarak konuma gelecektir
0x18. Girilen değer Onaltılık veya Ondalık biçimde olabilir, örn. -- yığın-loc
0x20 or -- yığın-loc 32. Dört kayıt bankasının tümü kullanılırsa yığın
veri segmentinden sonra yerleştirilir (eşdeğer --son veri yığını)

--son veri yığını
Bu seçenek, yığının veriden sonra dahili ram'de bulunmasına neden olur.
segmenti.

--veri yeri
Dahili ram veri bölümünün başlangıç ​​konumu, varsayılan değer 0x30.
girilen değer Onaltılık veya Ondalık biçimde olabilir, örn. --veri yeri 0x20 or
--veri yeri 32.

--idata-loc
Dolaylı olarak adreslenebilir dahili ramın başlangıç ​​konumu, varsayılan değer
0x80. Girilen değer Onaltılık veya Ondalık biçimde olabilir, örn. --idata-loc
0x88 or --idata-loc 136.

--out-fmt-ihx
Bağlayıcı çıktısı (son nesne kodu) Intel Hex biçimindedir. (Bu varsayılan
seçenek).

--out-fmt-s19
Bağlayıcı çıktısı (son nesne kodu) Motorola S19 biçimindedir.

MCS51 SEÇENEKLER


--model-büyük
Büyük model programlar için kod oluşturun Daha fazla ayrıntı için Bellek Modelleri bölümüne bakın.
Bu seçenek kullanılırsa, projedeki tüm kaynak dosyalar bununla derlenmelidir.
seçenek. Ayrıca standart kütüphane rutinleri küçük modellerle derlenir,
yeniden derlenmeleri gerekecek.

--model-küçük
Küçük Model programları için kod oluşturun, daha fazla ayrıntı için Bellek Modelleri bölümüne bakın.
Bu varsayılan modeldir.

DS390 / DS400 SEÇENEKLER


--model-düz24
24 bit düz mod kodu oluşturun. Bu, ds390 kodunun tek ve tek
jeneratör şu anda desteklemektedir ve kullanırken varsayılandır -mds390.

--protect-sp-güncelleme
ESP:SP güncellemeleri sırasında kesintileri devre dışı bırakın.

_--yığın-10bit
Dallas DS10C80 parçasının 390 bit yığın modu için kod oluşturun. bu
ds390 kod oluşturucunun şu anda desteklediği ve yalnızca
kullanma -mds390. Bu modda yığın, dahili ekranın alt 1K'sinde bulunur.
eşlenen RAM 0x400000 . Desteğin eksik olduğunu unutmayın, çünkü
yığın işaretçisi olarak hala tek bir bayt kullanır. Bu, yalnızca daha düşük 256
potansiyel 1K yığın alanının baytları gerçekten kullanılacaktır. Ancak, bu
DATA için kullanmak üzere değerli 256 baytlık düşük RAM'i geri almanıza izin verir ve
IDATA segmentleri. Derleyici, işlemciyi içine koymak için herhangi bir kod üretmeyecektir.
10 bit yığın modu. İşlemcinin bu modda olduğundan emin olmak önemlidir
Bu seçenekle derlenmiş herhangi bir yeniden giriş işlevini çağırmadan önce. Prensipte,
bu ile çalışması gerekir --stack-otomatik seçenek, ancak bu test edilmedi. Bu
ile uyumsuz --x yığını seçenek. Ayrıca yalnızca işlemci
24 bit bitişik adresleme modunda (bkz. --model-düz24 seçenek).

Z80 Opsiyonlar


--callee-kaydeder-bc
Çağrılan bir işlevi her zaman BC'yi kaydetmeye zorlayın.

--no-std-crt0
Bağlanırken standart crt0.o nesne dosyasını atlayın. kendi sağlamanız gerekir
Bağlanırken sisteminiz için crt0.o.

OPTİMİZASYONLAR SEÇENEKLER


--nogcse
Global alt ifade eliminasyonu yapmayacak, bu seçenek aşağıdaki durumlarda kullanılabilir:
derleyici, derleyici geçicilerini depolamak için istenmeyen büyük yığın/veri alanları yaratır.
Bu olduğunda bir uyarı mesajı oluşturulacak ve derleyici
tahsis ettiği fazladan bayt sayısını gösterir. Bu seçeneği tavsiye etti
KULLANILMAZ, #pragma NOGSE genel alt ifadeyi kapatmak için kullanılabilir
sadece belirli bir fonksiyon için eliminasyon.

--değişmeyen
Döngü değişmez optimizasyonları yapmayacak, bu nedenlerden dolayı kapatılabilir
önceki seçenek için açıklanmıştır. Gerçekleştirilen döngü optimizasyonlarının daha fazla ayrıntısı için
Döngü Değişmezleri bölümüne bakın. Bu seçeneğin KULLANILMAMASI önerilir, #pragma
DEĞİŞKENSİZ belirli bir işlev için değişmez optimizasyonları kapatmak için kullanılabilir
bir tek.

--noindüksiyon
Döngü indüksiyon optimizasyonları yapmayacak, daha fazlası için bölüm mukavemetinin azaltılmasına bakın
detaylar. Bu seçeneğin KULLANILMAMASI önerilir, #pragma NOİNDÜKSİYON olabilir
yalnızca belirli bir işlev için tümevarım optimizasyonlarını kapatmak için kullanılır.

--nojtbound
Switch deyimleri uygulandığında sınır koşulu kontrolü oluşturmaz
atlama tabloları kullanarak. Bu seçeneğin KULLANILMAMASI önerilir, #pragma
BAĞIMSIZ belirli bir süre için atlama tabloları için sınır kontrolünü kapatmak için kullanılabilir
sadece işlev.

--noloopreverse
Döngü tersine çevirme optimizasyonu yapmaz.

DİĞER SEÇENEKLER


-C, --sadece derleme
kaynağı derler ve birleştirir, ancak bağlantı düzenleyicisini çağırmaz.

-E Yalnızca C önişlemcisini çalıştırın. Belirtilen tüm C kaynak dosyalarını önceden işleyin ve çıktı alın
sonuçları standart çıktıya dönüştürün.

--stack-otomatik
Kaynak dosyadaki tüm fonksiyonlar reentrant olarak derlenecektir, yani parametreler
ve yerel değişkenler yığında tahsis edilecektir. Bu seçenek tüm kullanılırsa
projedeki kaynak dosyalar bu seçenekle derlenmelidir.

--x yığını
Tahsis etmek için harici ram'deki ilk 256 baytta bir sözde yığın kullanır
değişkenler ve geçiş parametreleri.

--callee-kaydeder fonksiyon1[,fonksiyon2][,fonksiyon3]...
Derleyici, varsayılan olarak, kayıt kaydetme için bir arayan kaydetme kuralı kullanır.
işlev çağrıları, ancak bu, gerektiğinde kayıt defterinin gereksiz yere itilmesine ve patlamasına neden olabilir.
büyük işlevlerden küçük işlevleri çağırmak. Bu seçenek geçiş yapmak için kullanılabilir
belirtilen işlev adları için kayıt kaydetme kuralı. derleyici
bu işlevler çağrılırken kayıtları kaydetmeyin, ek kod üretilmez.
Bunlar tarafından kullanılan kayıtları kaydetmek ve geri yüklemek için bu işlevler için giriş ve çıkış
fonksiyonlar, bu ESASEN kodunu azaltın ve çalışma süresi performansını iyileştirin
oluşturulan kod. Gelecekte derleyici (prosedürler arası analiz ile)
Her işlev çağrısı için kullanılacak uygun şemayı belirleyebilir. DO DEĞİL kullanım
gibi yerleşik işlevler için bu seçenek _muluint..., bu seçenek için kullanılırsa
bir kitaplık işlevi, uygun kitaplık işlevinin aşağıdakilerle yeniden derlenmesi gerekir.
aynı seçenek. Proje birden fazla kaynak dosyadan oluşuyorsa, tüm kaynak
dosya aynı ile derlenmelidir --callee-kaydeder seçenek dizisi.

- hata ayıklama
Bu seçenek kullanıldığında, derleyici hata ayıklama bilgisi üretecektir.
ile kullanılan SDCDB. Hata ayıklama bilgileri .cdb içeren bir dosyada toplanır
eklenti.

--regextend
Bu seçenek artık kullanılmamaktadır ve artık desteklenmemektedir.

--noregparms
Bu seçenek artık kullanılmamaktadır ve artık desteklenmemektedir.

--peep dosyası
Bu seçenek, gözetleme deliği tarafından kullanılacak ek kuralları kullanmak için kullanılabilir.
optimize edici.

-S Uygun derleme aşamasından sonra durun; toplamayın. çıktı bir
Belirtilen giriş dosyası için montajcı kod dosyası.

-WA_asmOption[,asmOption]...]
asmOption'ı montajcıya iletin.

-Wl_linkSeçenek[,linkSeçenek]...]
linkOption'ı linker'a iletin.

--int-uzun süreli
Tamsayı (16 bit) ve uzun (32 bit) kitaplıklar reentrant olarak derlenmiştir. Not
varsayılan olarak bu kitaplıklar, reentrant olmayan olarak derlenir.

--siklomatik
Bu seçenek, derleyicinin her biri için bir bilgi mesajı oluşturmasına neden olur.
kaynak dosyadaki işlev. İleti, aşağıdakiler hakkında bazı önemli bilgiler içerir:
işlev. Derleyicinin denetimde algıladığı kenar ve düğüm sayısı
fonksiyonun akış grafiği ve en önemlisi döngüsel karmaşıklık.

--float-reent
Kayan nokta kitaplığı reentrant olarak derlenir.

--hiçbir kaplama
Derleyici, herhangi bir işlevin parametrelerini ve yerel değişkenlerini üst üste bindirmez, bkz.
Daha fazla ayrıntı için Parametreler ve yerel değişkenler bölümü.

--ana dönüş
Bu seçenek, oluşturulan kod bir izleme programı tarafından çağrıldığında kullanılabilir.
Derleyici, 'ana' işlevden döndüğünde bir 'ret' üretecektir. NS
varsayılan seçenek kilitlemek, yani bir 'ljmp' oluşturmaktır.

--dikizleme yok
Gözetleme deliği optimizasyonunu devre dışı bırakın.

--peep-asm
Satır içi montajcı kodunu gözetleme deliği iyileştiricisinden geçirin. Bu neden olabilir
satır içi montajcı kodunda beklenmeyen değişiklikler, lütfen gözetleme deliğinden geçin
kaynak dosya ağacında tanımlanan optimize edici kuralları ' /peeph.def' kullanmadan önce
bu seçenek.

--iram-boyutu
Bağlayıcının, dahili ram kullanımının verilen sınırlar dahilinde olup olmadığını kontrol etmesine neden olur.
değeri.

--nostdincl
Bu, derleyicinin varsayılan içerme yolunu iletmesini önleyecektir.
önişlemci.

--nostdlib
Bu, derleyicinin varsayılan kitaplık yoluna geçmesini önleyecektir.
bağlayıcı.

--ayrıntılı
Derleyicinin gerçekleştirdiği çeşitli eylemleri gösterir.

-V Derleyicinin yürütmekte olduğu gerçek komutları gösterir.

ARA DÖKÜMÜ SEÇENEKLER


Yeniden hedefleme ve hata ayıklama amacıyla aşağıdaki seçenekler sağlanmıştır:
derleyici. Bunlar, tarafından oluşturulan ara kodun (iCode) boşaltılması için bir araç sağladı.
Derleyici, derleme işleminin çeşitli aşamalarında insan tarafından okunabilir biçimde.

-- çöplük
Bu seçenek, derleyicinin ara kodu bir dosyaya atmasına neden olur.
adlandırılmış . çöplük ara kod yazıldıktan hemen sonra
bir fonksiyon için, yani herhangi bir optimizasyon yapılmadan önce oluşturulur. temel bloklar
bu aşamada derinlik ilk numarada sıralanır, bu nedenle sırayla olmayabilirler.
yürütme.

--dumpgcse
Küresel alt ifade ortadan kaldırıldıktan sonra bir dosyaya iCode'un dökümünü oluşturacak
adlandırılmış .dumpgcse.

--dumpdeadcode
Deadcode ortadan kaldırıldıktan sonra, iCode'un bir dökümünü şu dosyaya oluşturacak:
.dumpdeadcode.

--dumploop
Döngü optimizasyonlarından sonra adlı bir dosyaya iCode'un bir dökümü oluşturacaktır.
dosya adı>.dumploop.

--dumprange
Canlı aralık analizinden sonra, adlı bir dosyaya iCode'un bir dökümü oluşturacaktır.
dosya adı>.dumprange.

--dumlrange
Tüm semboller için yaşam aralıklarını boşaltacaktır.

--dumpregsign
Kayıt atamasından sonra adlı bir dosyaya iCode'un bir dökümü oluşturacaktır.
dosyaadı>.dumprassgn.

--döküm
iTemp'in canlı aralıklarının bir dökümünü oluşturacak

-- çöplük
Yukarıda belirtilen tüm dökümlerin oluşturulmasına neden olur.

KOPYALAMA


Derleyicinin kaynak kodunun tamamı GNU Genel Kamu Lisansı altında dağıtılır.

onworks.net hizmetlerini kullanarak sdcc'yi çevrimiçi kullanın


Ücretsiz Sunucular ve İş İstasyonları

Windows ve Linux uygulamalarını indirin

Linux komutları

Ad




×
reklâm
❤️Buradan alışveriş yapın, rezervasyon yapın veya satın alın; ücretsizdir, hizmetlerin ücretsiz kalmasına yardımcı olur.