筆記 2014 10 23 SDCC簡單摘記

2021-06-26 12:32:45 字數 1734 閱讀 5226

sdcc   

單檔案編譯

sdcc main.c

packihx main.ihx > main.hex     轉換成微控制器燒寫檔案格式 hex.

多檔案編譯

sdcc

-c foo1.c 編譯第乙個檔案

sdcc

-c foo2.c

編譯第二個檔案

sdcc main.c foo1.rel foo2.rel 編譯第三個檔案並連線整體

sdcc

-cfoo1.c 編譯第乙個檔案

sdcc

-cfoo2.c 編譯第二個檔案

sdcc

-c main.c

編譯第三個檔案

sdcc main.rel foo1.rel foo2.rel

整體連線

定義暫存器:

__sfr __at (

0x80

) p0   

定義位變數:

__sbit __at (

0x80

) p0_0 ;

__sbit __at (

0x81

) p0_1 ;

__sbit __at (

0x82

) p0_2 ;

__sbit __at (

0x83

) p0_3 ;

__sbit __at (

0x84

) p0_4 ;

__sbit __at (

0x85

) p0_5 ;

__sbit __at (

0x86

) p0_6 ;

__sbit __at (

0x87

) p0_7 ;

sdcc支援兩種儲存器模式:小模式和大模式。使用儲存器小模式時,sdcc在內部ram中宣告所有不帶儲存型別的變數(如,data、idata、xdata、pdata、bit、code)。使用儲存器大模式時,sdcc在外部ram中宣告所有不帶儲存型別的變數。

採用sdcc編譯時,預設為小模式。如果要強制sdcc使用特定的儲存器模式,可使用以下命令列引數:

sdcc --model-small sdcctest.c
或者
sdcc --model-large sdcctest.c

定義中斷服務程式(isr)時,應使用以下格式:

void interrupt_identifier (void) interrupt interrupt_number using bank_number

其中interrupt_identifier可以是任意有效的sdcc函式名,interrupt_number代表中斷在中斷向量表中的位置。

中斷服務函式定義的一般形式如下:

新版本中斷格式可能需要加__  

void 函式名(void)[interrupt/__ interrupt n] [using/__using n]

sdcc完全支援內嵌彙編。使用該功能時,彙編**應嵌在_asm和_endasm識別符號之間。注意,通過在變數名前加下劃線,內嵌彙編**也可以訪問c變數。

SDCC 2016資料庫峰會(深圳站)學習筆記

本文主要查閱了sdcc 2016資料庫峰會 深圳站 ppt合集後的學習筆記,在此記錄。下面的幾個標題是各個ppt的檔案標題。3月15日,持續七天的圍棋 人機世界大戰 落下帷幕,谷歌的人工智慧機械人 alphago 以4 1大比分戰勝圍棋世界冠軍李世乭九段。此戰成名的智慧型機械人alphago利用 策...

Rails 極簡入門筆記

這裡比較推薦實戰聖經,和ruby china的rails指南 學一門mvc框架,就需要看三個,模型 model 檢視 view 控制器 controller 是怎麼寫的?這裡我也從以上三個角度來極簡介紹下rails。使用rails generate controller welcome指令碼生成乙個...

Docker 最簡實踐筆記

今天開始著手交接,把一些事情大概歸整一下吧。已安裝了幾個映象,包括tomcat等。然後,通過sftp將我們的sys.war上傳到當前目錄。執行以下命令 注意後面有乙個點,當前目錄 t 指定了標籤。如此會生成乙個新的image,可以用docker images命令檢視。執行命令如下 docker ru...