导航:首页 > 源码编译 > 如何在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使用其它编译器相关的资料

热点内容
单片机求初值 浏览:419
安卓机如何在电脑备份图片 浏览:925
ca证书加密机价格 浏览:798
天干地支年份算法 浏览:796
程序员打造的视频 浏览:7
java和php通信 浏览:680
为什么黑程序员 浏览:163
程序员男生 浏览:456
戴尔文件夹内文件怎么置顶 浏览:582
云服务器6m网速 浏览:722
vivo手机中国联通服务器地址 浏览:862
工程总控编译失败 浏览:707
燕赵红枫app如何下载 浏览:867
php查杀软件 浏览:878
教育管理学pdf 浏览:547
服务器均衡怎么使用 浏览:626
linux中jps 浏览:954
单片机实验感想 浏览:561
程序员级别数学算法逻辑 浏览:900
2k21公园怎么换服务器 浏览:724