KEIL C51 程式編譯

2021-08-20 02:16:02 字數 2498 閱讀 3840

1.   keil目錄

asm:放置組合語言的標頭檔案,格式為xx.inc。inc是include的簡寫。

inc:放置c語言的標頭檔案,格式為xx.h。

hlp:幫助檔案。help的簡寫。

example:例子。

rtxtiny2:keil自帶的rtx51作業系統。

flashmon,mon51,mon390:目標監視器。

isd51:偵錯程式。

2.   bin目錄內可執行檔案

c51.exe/cx51.exe:c語言編譯器。

a51.exe/ax51.exe:組合語言彙編器。

lx51.exe/bl51.exe:鏈結器/定位器。

lib51.exe/libx51.exe:library庫檔案管理器。

oc51.exe:banked objectfile轉換器。

oh51.exe/ohx51.exe: obj-hex轉換器。

3.  ide介紹

uvision 與 ishell 分別是 c51 forwindows 和 for dos 的整合開發環境 (ide),可以完成編輯、編譯、連線、除錯、**等整個開發流程。開發人員可用 ide 本身或其它編輯器編輯 c 或彙編原始檔。然後分別由 c51 及 a51 編譯器編譯生成目標檔案 (.obj)。目標檔案可由 lib51 建立生成庫檔案,也可以與庫檔案一起經 l51 連線定位生成絕對目標檔案。絕對目標檔案由 oh51 轉換成標準的 hex 檔案。

4.  c51編譯庫檔案

lib目錄中的一些庫檔案。

5.  工程專案內包含的檔案

標頭檔案.h

c 語言 .c

彙編 .asm

備份檔案 .bak

預處理檔案 .i

編譯日誌檔案.plg

列表檔案(包含編譯的有關資訊) .lst

編譯生成的目標檔案 .obj

連線日誌檔案 .lnp

連線資訊檔案(包含連線的有關資訊) .m51

絕對(位址)目的檔案 — 無字尾檔案

可執行檔案 .hex

keil的工程檔案 uvopt和uvproj

6.  ide編譯過程

c 語言轉換為二進位制機械語言要經過四個過程:預處理,編譯,彙編,連線。

預處理:編譯器的預處理指令,包括巨集替代,去除注釋,包含檔案,條件編譯等;

編譯:c 語言經過編譯器轉換為組合語言;

彙編:組合語言經過彙編器轉換為二進位制;

(每個 c 語言/彙編原始檔都會生產乙個二進位制的目標檔案)

連線:將所有目標檔案通過聯結器結合在一起生成可執行檔案。

7.  命令列編譯過程——cmd

(1)編寫好源程式uart.c。

(2)命令語句:c51.exe  "c:\users\john\desktop\新建資料夾\uart.c"

呼叫c51.exe對uart.c進行編譯,生成列表檔案.lst和目標檔案uart.obj。

(3)命令語句:bl51.exe  "c:\users\john\desktop\新建資料夾\uart.obj"

呼叫bl51.exe對uart.obj進行連線定位,生成連線資訊檔案.m51和絕對目標檔案uart。

(4)命令語句:oh51.exe  "c:\users\john\desktop\新建資料夾\uart"

呼叫oh51.exe對uart進行轉換,生成可執行檔案uart.hex。

8.  庫檔案

靜態鏈結庫.lib——包含乙個或多個目標檔案.obj 和索引資訊等的集合檔案。

一般將多個 c 語言原始檔編譯生成的目標檔案.obj 集合起來生成庫檔案使用。

鏈結器會將目標檔案.obj 與庫檔案.lib鏈結生成可執行檔案。

動態鏈結庫.dll

原始檔會生成.lib 和.dll,.lib 包含動態鏈結庫到 link 的資訊,.dll 包含具體實現的**,鏈結器會將.lib 加入可執行檔案中.exe,編譯完成後得到可執行檔案.exe 和動態鏈結庫.dll,執行.exe 時會根據需要從.dll中獲取對應的**。keil c51沒有動態庫檔案的生成。

Keil C51詳細設定

一.target名更改 開啟keil後,左側project workspace中的target可改,方法 右擊target manage compnents 雙擊待修改項即可,若要新增,使用對話方塊內對應工具欄。二.optionfor target 設定之target項 1 memary model...

Keil C51詳細設定

2013 12 10 19 41 251人閱讀收藏 舉報2010 12 30 19 54 39 分類 常用eda軟體 字型大小 訂閱 一.target名更改 開啟keil後,左側project workspace中的target可改,方法 右擊target manage compnents 雙擊待修...

KEIL C51 和 ANSI C 的區別

不同系列的嵌入式系統的c編譯器,根據它所對應的不同晶元系列有其各自的特點,在這裡,以keil公司的針對51系列的keilc51編譯器為例,簡要說明它與ansi c的主要區別,其它的編譯系統與ansi c的差別,可具體參照指定編譯系統手冊,找出它們的不同之處。清楚嵌入式系統的c編譯器與標準 ansi ...