sdcc

SDCC(Small Device C Compiler)是一個最佳化的 ANSI - C交叉編譯器,目標CPU為基於Intel 8051, Maxim 80DS390, Zilog Z80 和Motorola 68HC08 的單片機

基本介紹

  • 中文名:sdcc
  • 外文名:Small Device C Compiler
  • 類型:ANSI - C交叉編譯器
  • CPU:Intel 8051,
特點,語法擴展與Keil的不同之處,其他信息,其他解釋,

特點

● SDCC的sdas和sdld 是基於ASXXXX的交叉編譯工具和連結工具,他們都是免費開源的軟體,依據GNU General Public License (GPL) 發布。
● 有針對特定MCU的程式語言擴展,可以高效的使用基本的硬體資源。
● 有大量的標準最佳化,如全局字表達式削減,循環最佳化(無任何操作的循環最佳化,歸納變數循環最佳化,逆循環最佳化), 常量合併的傳播,複製傳播,死代碼刪除, 'switch'語句的轉移表最佳化。
● 針對特定MCU的最佳化,包括全局暫存器分配算法。
● 特定MCU後端適應能力,能夠很好的適配其他的8位的MCU。
● 基於獨立規則的監視口最佳化器。
● 全範圍的數據類型支持:char(8位,1位元組),short(16位,2位元組),int(16位,2位元組),long(32位,4位元組)和float(4位元組IEEE標準)。
● 能夠允許在函式的任意地方嵌入彙編語句。
● 能夠報告函式的複雜度,以幫助決定什麼地方應該用彙編語句重寫。很好的選擇自動回歸測試

語法擴展與Keil的不同之處

語法擴展 項目
SDCC
Keil
擴展關鍵字名稱
以兩個下劃線開頭,如__interrupt, __bit
無需下劃線
特殊功能暫存器(SFR)的聲明方式
__sfr __at 0x80 Jcqmz;
sfr Jcqmz = 0x80;
特殊功能暫存器位定址的聲明方式
__sbit __at 0x87 wei;
sbit wei = Jcqmz ^ 7;
中斷服務(ISR)函式的連結
需要在main函式前聲明
不需要

其他信息

SDCC同時帶有一個原始碼級調試工具SDCDB,使用的是Daniel's s51 仿真器當前版本。
SDCC是由Sandeep Dutta 所寫的,並依據GPL license 發行。
自首次發行以來修復了幾處bugs並增加了一些改進。在1999年12月,SDCC原始碼移到SourceForge ,那裡所有的“users turned developers “都可以獲得同樣的代碼結構樹。
SDCC在用戶和開發者共同投入下持續更新。
AVRGBZ80系列單片機不再支持。

其他解釋

Secure Digital Card Controller
San Diego International Comic-Con(簡稱SDCC)聖迭戈國際動漫展

相關詞條

熱門詞條

聯絡我們