導航:首頁 > 源碼編譯 > 如何在mdk使用其它編譯器

如何在mdk使用其它編譯器

發布時間:2023-03-26 09:31:20

Ⅰ 如何在slickedit里調用keilC編譯

如何在slickedit里調用keilC編譯器
預備知識:說白了就是要弄清slickedit的脾氣和編譯器的脾氣,這樣才能把兩個撮合到一塊。
1.各編譯器的編譯/鏈接命令和相關命令行參數
2.slickedit命令行中%f、%bn等內缺梁部環境變數的含義
有Slickedit與KeilC有兩個脾氣不合的問題需要處理:
1.a51.exe/c51.exe等程序的Errorlevel值是分成了0,1,2,3三種,伏雹運而slickedit只認0和>0兩種,0表示no error,>0表示有error。這樣的話當vsbuild在complier階段調用c51.exe編譯出現warning時,得到的errorlevel是1,誤認為有錯誤,就不執行後面的linker命令了。
2.slickedit的linker命令行中,%f變數代表的object文件列表是以逗號分格的,而keilC的bl51.exe需要的文件列表參數是以空格分格,需要做一定的轉換。
為了解決這個問題肆纖,我這里使用批處理文件將文件列表與errorlevel進行轉換。
轉載,僅供參考。

Ⅱ 如何讓keil4同時能使用51跟ARM編譯

不管你之前裝的是51的還是ARM這都沒關系。其實很簡單的,下面介紹步驟:

  1. 先將安裝目錄下的名字為C51文件夾或者ARM文件夾,放到你安裝keil的目錄中,路徑是注意是C:keil。最好還是把目錄裝在C盤上。

  2. 打開TOOLS.INI的這個文件,將文件中加點東西。

    打開後如果你是想在ARM下加入51功能,那麼你把這一段復制下來

  3. ORGANIZATION="微軟中國" NAME="微軟用戶", "dsf" EMAIL="sad"

    BOOK0=UV4RELEASE_NOTES.HTM("uVision Release Notes",GEN) SOCKETPORT=1 [C51]

    PATH="C:KeilC51" VERSION=V9.00

    BOOK0=HLPRelease_Notes.htm("Release Notes",GEN)

    BOOK1=HLPC51TOOLS.chm("Complete User's Guide Selection",C) TDRV0=BINMON51.DLL ("Keil Monitor-51 Driver")

    TDRV1=BINISD51.DLL ("Keil ISD51 In-System Debugger")

    TDRV2=BINMON390.DLL ("MON390: Dallas Contiguous Mode") TDRV3=BINLPC2EMP.DLL ("LPC900 EPM Emulator/Programmer") TDRV4=BINUL2UPSD.DLL ("ST-uPSD ULINK Driver")

    TDRV5=BINUL2XC800.DLL ("Infineon XC800 ULINK Driver") TDRV6=BINMONADI.DLL ("ADI Monitor Driver")

    TDRV7=BINDAS2XC800.DLL ("Infineon DAS Client for XC800") TDRV8=BINUL2LPC9.DLL ("NXP LPC95x ULINK Driver") RTOS0=Dummy.DLL("Dummy")

    RTOS1=RTXTINY.DLL ("RTX-51 Tiny") RTOS2=RTX51.DLL ("RTX-51 Full")

    LIC0=GEGKP-MSCX1-YLXC6-DKBC1-ZJPCT-SL63G TDRV9=BINSTCMON51.DLL ("STC Monitor-51 Driver")

  4. 如果是想在51下裝ARM,那麼你把這一段復制下來粘貼到你的TOOLS文件下

    ORGANIZATION="微軟中國" NAME="微軟用戶", "dsf" EMAIL="sad" ARMSEL=1

    BOOK0=UV4RELEASE_NOTES.HTM("uVision Release Notes",GEN) CDB0=UV4STC.CDB ("STC MCU Database") [ARM]

    PATH="C:KeilARM" VERSION=4.70a

    PATH1="C:Program FilesGNU Tools ARM Embedded4.7 2012q4"


    TOOLPREFIX=arm-none-eabi-

    CPUDLL0=SARM.DLL(TDRV0,TDRV5,TDRV6,TDRV10) # Drivers for ARM7/9 devices

    CPUDLL1=SARMCM3.DLL(TDRV1,TDRV2,TDRV3,TDRV4,TDRV5,TDRV7,TDRV8,TDRV9,TDRV11,TDRV12,TDRV13,TDRV14,TDRV15) # Drivers for Cortex-M devices CPUDLL2=SARMCR4.DLL(TDRV7) # Drivers for Cortex-R4 devices

    BOOK0=HLPRELEASE_NOTES.HTM("Release Notes",GEN)

    BOOK1=HLPARMTOOLS.chm("Complete User's Guide Selection",C) BOOK2=CMSISindex.html("CMSIS Documentation",GEN)

    BOOK3=SignumDocsSigUV3Arm.htm("Signum Systems JTAGjet Driver Documentation",GEN)

  5. TDRV0=BINUL2ARM.DLL("ULINK2/ME ARM Debugger") TDRV1=BINUL2CM3.DLL("ULINK2/ME Cortex Debugger") TDRV2=BINAGDIRDI.DLL("RDI Interface Driver")

    TDRV3=BINABLSTCM.dll("Altera Blaster Cortex Debugger") TDRV4=BINlmidk-agdi.dll("Stellaris ICDI")

    TDRV5=SignumSigUV3Arm.dll("Signum Systems JTAGjet") TDRV6=SeggerJLTAgdi.dll("J-LINK / J-TRACE ARM") TDRV7=SeggerJL2CM3.dll("J-LINK / J-TRACE Cortex")

    TDRV8=STLinkST-LINKIII-KEIL.dll ("ST-Link (Deprecated Version)") TDRV9=BINULP2CM3.DLL("ULINK Pro Cortex Debugger") TDRV10=BINULP2ARM.DLL("ULINK Pro ARM Debugger") TDRV11=NULinkNu_Link.dll("NULink Debugger")

  6. TDRV12=SiLabsSLAB_CM_Keil.dll("SiLabs UDA Debugger") TDRV13=STLinkST-LINKIII-KEIL_SWO.dll ("ST-Link Debugger") TDRV14=BINCMSIS_AGDI.dll("CMSIS-DAP Debugger") TDRV15=BINDbgFM.DLL("Fast Models Debugger")

    DELDRVPKG0=ULINKUninstallULINK.exe("ULINK Pro Driver V1.0") LIC0=GE7X7-EGEQ5-9WB2E-5T3KT-NA0N1-V0DP8 [ARMADS]

    PATH="C:KeilARM" PATH1=".ARMCCin"

    CPUDLL0=SARM.DLL(TDRV0,TDRV5,TDRV6,TDRV10) # Drivers for ARM7/9 devices

    CPUDLL1=SARMCM3.DLL(TDRV1,TDRV2,TDRV3,TDRV4,TDRV5,TDRV7,TDRV8,TDRV9,TDRV11,TDRV12,TDRV13,TDRV14,TDRV15) # Drivers for Cortex-M devices CPUDLL2=SARMCR4.DLL(TDRV7) # Drivers for Cortex-R4 devices

    BOOK0=HLPRELEASE_NOTES.HTM("Release Notes",GEN)

    BOOK1=HLPARMTOOLS.chm("Complete User's Guide Selection",C) BOOK2=CMSISindex.html("CMSIS Documentation",GEN)

    BOOK3=SignumDocsSigUV3Arm.htm("Signum Systems JTAGjet Driver Documentation",GEN)


Ⅲ 如何在MDK中使用C++,整理的經驗

1:在C頭文件中加上extern修飾符:
1. #ifdef __cplusplus
2. extern "C" {
3. #endif
4.
5.
6. 。。。。。。。。。。。。。這里寫c語言代碼
7.
8.
9. #ifdef __cplusplus
10. }
11. #endif

這樣在使用C++調用時就使用C++編譯器編譯,c語言調用時就是用c語言方式編譯
2:編寫一個C++風格的頭文件,在這里添加extern修飾符:
(一般用在調用已經封裝好的庫文件或者無法或不想修改.c文件所引用的頭文件時)
1. // CStack.h
2. extern "C" {
3. #include "Stack.h";
4. }

或者是直接在需要引用c頭文件的cpp文件中
1. // .cpp
2. extern "C" {
3. #include "delay.h";
4. }

Ⅳ 請教一個MDK320下設置ADS12編譯器的問題

char是C/C++整型數據中比較古怪的一個,其它的如int/long/short等不指定signed/unsigned時都默認是signed,但char在標准中是unsigned,編譯器可以實現為帶符號的,也可以實現為不帶符號的,有些編譯器如pSOS的編譯器,還可以通過編譯開關來指定它是有符號數還是無符號數。 而且關肢哪於char還有一個特殊的語言就是char *,它在C/C++中有專門的語義,既不同於signed char *,也不同於unsigned char *,專門用於指以'\0'為結束的字元畝飢悄串wchar_t是C/C++的字元數據類型,char是8位字元類型,最多隻能包含256種字元,許多外文字元集所含的字元數目超過256個,char型無法表示。1個二進制位稱為1個bit(位),8個二進制位稱為1個Byte(位元組),8 bit = 1 byte。2個位元組就是1個Word(1個字,16位),DWORD(Double Word)就是雙字的意思,兩個字(32位)。 typedef unsigned long DWORD; 關於DWORD使用中重要的一點。DWORD 現在表示 32bit 無符號整數,即使以後 Windows 升級到64位,DWORD 仍然是 32bit 無符號整數(也許以後的 long 不是32bit了,只需要重新定義一下 DWORD 就可以了)。String就是java中的字元串,用雙引號引起來的幾個字元.如"Abc","一天". text就是大型的字元串UNICODE_STRING是一個迅渣結構.當你聲明一個UNICODE_STRING時它的成員未初始化.參數定義:Length-----buffer的位元組長度,不包括終止符「NULL」MaximumLength---buffer的的總的位元組大小。Up to MaximumLength bytes may be written into the buffer without trampling memory.Buffer---Pointer to a wide-character string指向寬字元串的指針%D%A追問:%D­WORD不是字元類型的嗎?%D%A回答:%D%A不是DWORD是雙字類型 4個位元組,API函數中有很多參數和返回值是DWORD的 相關的有 WORD BYTE 等DWORD就是32bit的unsigned long%D%A

Ⅳ 如何在keil4中添加STC單片機

1、在STC的官網下載好中物最新的STC-ISP軟體,然後在電腦上打開此軟體。

Ⅵ keil C多文件編程怎麼使用其它文件里的變數

你把int
x,y;
//x,y定義為局部變數
這個語句放到程序開始,就是
void
main()
{
後面
不是每個編譯器都是必須在程序開始定義變數的,很多編譯允許在使用的時候才定義變數。
但keil就是一個要在程序開始定義變數的編譯器。

Ⅶ 如何在keil中添加carm 編譯器

Keil和MDK共存,按照以下步驟: 1 先安裝 Keil C51,安裝目錄改為:"D:\Keil2"(我是安裝在D盤的) 2 再安裝RealView MDK,目團鉛錄:"D:\Keil" 3 把Keil2下的C51文件夾全部復制到 Keil下 4 把Keil2下的 UV4(或者UV3)下塌搏好的所有文件復制粘貼到 Keil下的UV4文銀核件

Ⅷ 在keil環境中遍了一段C51的程序後怎麼編譯

1 新建一工程;在主菜單project下(.Uv2)
2 新建一文件;如C則存為.c文件,如匯編則存為.asm文件;
3 在左邊窗口中的Target1上右擊,在菜單中選add file to group,再選中你的剛建的

文件,即把它加入到你的工程中。
4 選中主菜單project-->build target(或F7)即可編譯你的程序;
5 選中主菜單debug的第一項,則切換到調試窗口;
6 選中主菜單debug->go(F5)即可運行程序了。

注意:view ->periodic window update 是刷新窗口,這樣結果可以看得更清。

還有不清楚的問我:MSN:[email protected]
公司上QQ不方便,呵呵.

Ⅸ keil5使用教程是怎麼樣的

1、先建立一個工程,點擊Project,選擇第一個,建立新工程,給個名字,點擊確定,出現如下界面。



Keil C51是美國Keil Software公司出品的51系列兼容單片機C語言軟體開發系統,與匯編相比,C語言在功能上、結構性、可讀性、可維護性上有明顯的優勢,因而易學易用。

Keil提供了包括C編譯器、宏匯編、鏈接器、庫管理和一個功能強大的模擬調試器等在內的完整開發方案,通過一個集成開發環境(μVision)將這些部分組合在一起。運行Keil軟體需要WIN98、NT、WIN2000、WINXP等操作系統。

如果你使用C語言編程,那麼Keil幾乎就是你的不二之選,即使不使用C語言而僅用匯編語言編程,其方便易用的集成環境、強大的軟體模擬調試工具也會令你事半功倍。

Ⅹ 用keil軟體如何將匯編與C語言結合起來一起編寫微控制器的程式

用keil軟體如何將匯編與C語言結合起來一起編寫微控制器的程式

在混合程式設計中,最常用也是最實用的方法是在C語言中加入部分組合語言的程式碼,分為兩種方法。
方法1)在Keil C51的函式中直接插入匯編語句
方法2)按照Keil C51介面規則,編寫匯編模組
方法1是利用編譯控制命令#pragma a *** (用來標識所插入的匯編語句的起始位置) 和 #pragma enda *** (用來標識所插入的匯編語句的結束位置) ,這兩條命令必須成對出現,並可以多次出現。在Keil C51中不對插入的匯編程式碼做任何的處理。
方法2編寫匯編模組,需對KEIL編譯器的編譯過程做些了解。Keil編譯器的編譯過程是首先將專案中的一個個原始檔編譯為目的碼(obj檔案),然在再通過聯結器產生為兄亮最終可執行的hex檔案。
目的碼將其中的程式碼、資料、常量放在不同的「段」中,儲存程式的段稱為「程式碼段」,儲存資料的段稱為「資料段」,最終目的碼經過Keil的聯結器按照「段」的要求轉換為程式和資料地址固定的可執行檔案。
在Keil軟體中,「段」按定位屬性分為:「可重定位段」和「絕對段」。
「可重定位段」:程式和資料在其分別所對應的儲存單元(FLASH和RAM)中的儲存地址是浮動的、可重定義的、相對可變的。
「絕對段」:其地址在連線前就已確定不變,聯結器據此為它分配地址。
經Keil編譯器生成的「段」具有如下屬性:
1)段的儲存屬性(program code data pdata xdata bdata bit等);
2)段的起始地址;3)段的長度;
4)段的定位要求:絕對段地址固定,可重定位段定位的要求如要求程式碼段在2K范圍內,資料段定位在可位定址區等;
5)段名:包括程式和資料(變數和常量)的段的儲存屬性及段所屬的程式模組(檔案)。程式碼段: ?PR? funame?Filename
資料段如:?DT? funame?Filename; ?BI? funame?Filename
標准段名字首列表
段字首 儲存型別 含義
?PR? Program 程式儲存區的程式碼
?CO? code 程式儲存區的常量
?BI? Bit 內部資料儲存區的可位定址的位變數
?BA? Bdata 內部資料儲存區的可位定址的位元組變數
?DT? Data 內部資料儲存區的變數
?ID? Idata 內部資料儲存區可間接定址的變數
?PD? Pdata 外部資料儲存區的頁變數
?XD? Xdata 外部資料儲存區的變數

如何將微控制器的組合語言轉成微控制器的c語言

只有自己重新編寫

寫stc微控制器的程式,用匯編語言用什麼軟體來程式設計呢

51微控制器系列一般都用KEIL程式設計 匯編 C語言都可以

在keil-c51中如何將匯編程式載入微控制器

我來回答,首先生成(.害克思)檔案,然後各家微控制器載入方法都不一樣,初學者以stc微控制器載入最簡單,慢慢學,在以後就明白了為什麼它載入簡單,可買盡量支援微控制器型號多得燒寫器,美名曰程式設計器,stc基本不用,為什麼不用,可能是stc耍了個小聰明,在裡面加了點小程式,就可以串列埠下載拉,製作stc下載線很簡單,網上一搜就知道歷派,經濟緊張用stc,方便又快捷

如何用c語言編寫微控制器程式。

使用微控制器專用的編譯器,比如AVR微控制器要用ICC for AVR、AVR Studio 等。然後在選項中選擇微控制器型號,比如ATmega16、ATmega128。最後要查詢微控制器所對應的庫,也就是標頭檔案。包含對應的標頭檔案,標頭檔案中有定義好的微控制器的變數名和函式,寫程式要用到,比如引腳可能定義為PORTA,這些要記住,不可以寫其他的變數羨爛寬名。具體寫程式,和普通的C程式沒有什麼區別。

基本與普通C語言差不多,只不過微控制器標頭檔案肯定是與各自微控制器相關了,不是一般C所多用的STDIO.H,像51,一般是
#include<reg51.h>

51微控制器的程式設計軟體(Keil)用匯編語言程式設計,如何將它匯入到isis 中?

你是想模擬嗎????只要生成hex檔案,在proteus拖入的晶片點右鍵選擇edit(一般第二個選項) 然後將hex得路徑匯入,就可以模擬。。。生成hex檔案的方法是在keil選項卡中的output中設定,hexcreate打勾。。。。。

如何用keil軟體編寫微控制器程式

Keil系列教程:
:blog.csdn./column/details/13472.

使用匯編語言編寫微控制器程式

^_^,這個可以用兩個紅外對管來實現,進去的時候1,2依次得到低電平,暫存器加1;有人出來的時候2,1依次得到低電平,暫存器減1
當暫存器等於0的時候,燈滅,不等於0的時候燈亮
^_^
程式很簡單
就是怕學生會故意搗鬼,要是有一個人背著另一個走出去,燈就不會滅了
^_^

微控制器如何用C語言以及組合語言寫濾波程式?

濾波,關鍵問題是演演算法,有了演演算法剩下的就是coding了
說白了,匯編與C,程式結構是一樣的,也就是C一句話匯編要幾句語句而已

閱讀全文

與如何在mdk使用其它編譯器相關的資料

熱點內容
操作系統代碼編譯 瀏覽:483
程序員東北大學 瀏覽:426
編譯忽略空字元 瀏覽:117
多店鋪阿里雲伺服器教程 瀏覽:378
單片機求初值 瀏覽:420
安卓機如何在電腦備份圖片 瀏覽:925
ca證書加密機價格 瀏覽:798
天乾地支年份演算法 瀏覽:796
程序員打造的視頻 瀏覽:7
java和php通信 瀏覽:680
為什麼黑程序員 瀏覽:163
程序員男生 瀏覽:456
戴爾文件夾內文件怎麼置頂 瀏覽:582
雲伺服器6m網速 瀏覽:722
vivo手機中國聯通伺服器地址 瀏覽:862
工程總控編譯失敗 瀏覽:707
燕趙紅楓app如何下載 瀏覽:867
php查殺軟體 瀏覽:878
教育管理學pdf 瀏覽:547
伺服器均衡怎麼使用 瀏覽:626