keil

阅读 / 问答 / 标签

keil 中warning: code space memory overlap??

代码段重叠。解决方法第一种方法:在工程中删除STARTUP.A51文件,再编译就可以了。第二种方法:删除你自己新建的文件,增加一个*.c文件,里面必须包含main()函数。

*** WARNING L6: XDATA SPACE MEMORY OVERLAP 用keil编译出现的问题。。请问怎么解决啊?

overlap是重叠的意思,就是你程序有问题,RC我忘了是什么意思,它是52底下的,和这个没关系

Proteus和Keil 如何联调。Proteus如何使用

Keil 与proteus 联调仿真单片机攻略 一、 先从网上下载Keil 与proteus 联调用的VDM51.dll 文件 二、 把此文件复制到KeilC51BIN 目录中 三、 打开keil 安装目录下 Tools.ini 文件 小鱼 四、 把TDRV8=BINVDM51.DLL ("Proteus VSM Monitor-51 Driver" ) 添加到Tools.ini 文件里面去。注意上文件已有TDRV 到7 了 五、 打开KEIL 程序编写好源程序,并生成目标程序 小鱼 六、然后进入[工程]菜单,选择Options for Target…… 七、弹出对话框,在“调试”项,选中U 使用Proteus VSM…… 小鱼 八、按“设置”,如果是同一台机就默认设置,如果是另一台机就填那台机的IP地址,端口号一定是8000 九、打开proteus,画出相应电路。在proteus的tools菜单中选中use remote debug monitor 十、双击电路中的MCU(单片机),在Program File里导入在KEIL 里生成的目标文件(后缀为hex 的文件) 十一、然后在KEIL 里按下“开始调试”按钮,结合设置断点,运行按钮进行联调仿真。

keil和Proteus联调

Proteus6.94、95与keilC51联调设置方法1、将KeilC51(u2、u3均可)、Proteus6(94、95均可)都安装好;2、下载两个软件,一个是Proteu的Vdmagdi.exe,另一个是授权后的Prospice.dll(两个文件链接地址看下面)3、先运行Vdmagdi.exe安装Keil接口,然后将Prospice.dll覆盖在Proteus的安装文件夹下的Bin中如:D:ProgramFilesLabcenterElectronicsProteus6ProfessionalBIN;4、打开Proteus,在【菜单】【Debug】下拉菜单中选【UserRemoteDebugMonitor】(在该项前打勾);5、打开KeilC51,点击【菜单】【工程】【为目标"XX"设置选项】,在【调试】标签下选择右边的【使用U】单选,并在下拉框中选【ProteusVSMSimulator】仿真设备;6、在Proteus侧做好硬件连线,Keil侧写好软件,点击Keil【调试】【运行】,您可以欣赏联调了。proteus6.9sp4与keil联调几点发现:在这里联调的一些基本操作就不再赘述了1,一定要把keil的工程和Proteus的文件放到同一个目录下(这里所说的Keil的工程指工程的目录,即Proteus的工程Design文件(后缀名.DSN)要和包含Keil工程所有文件的那个文件夹在同一层目录下);经过操作发现:Keil的工程目录文件夹一定要命名为keil(可能与路径设置有关,目前还不清楚),否则proteus报错:UnabletoopenHEXfile"KeilDS1302.hex".keil报错:targetdllhasbeencancelleddebuggeraborted!),另外针对其他版本的联调,以上两点原则也要遵守2,6.9以上版本需要添加与Keil联调补丁Vdmagdi.exe,其作用就是添加在程序目录keil/c51/bin目录下添加Vdm51.dll,(注意:与其他版本不同,6.9以上版本Proteus6ProfessionalMODELS目录下没有VDM51.dll)并且修改keil目录下tools配置文件,添加两行文本:TDRV8=BINVDM51.DLL("ProteusVSMSimulator")BOOK2=HLPVDMAGDI.HLP("ProteusVSMAGDIDriver"),经过实际操作证明,不一定要安装补丁Vdmagdi.exe,手动操作也可成功实现联调功能,其中第二行非必需3,至于Proteus6ProfessionalBIN目录下Prospice.dll的作用,有网友说与授权有关,有网友说与授权有关,确有可能。默认安装的版本是早于2006.6.26的版本,好像是2006.6.17,替换时没记清,联调失败。当用2006.6.26版本代替后,联调才成功,但是用更新的2006.8.18版本替换时,联调又会失败。

我的系统是win7 64位的,下载keil4 汉化补丁安装时,显示出无法找到xerces-c_3_0.dll 我该怎么办呢?

要下一个VDM51.dll,然后在修改一个文件,自己添加,还要用到回环地址127.0.0.1,我的也是WIN7 64位的很好用的!!1、打开keil安装目录下的tools.ini2、在“[C51]”字段中,添加一行TDRV8=BINVDM51.DLL ("PROTEUS VSM MONITOR 51 DRIVER")(注意这里的TDRV8不能与其他重合,如果重合的话,后面的8可以修改成9、10或更高)。3、保存tools.ini文件,然后打开keil,右键“目标1”---> Options for Target选项,点击“Debug”标签页,在右半部分,选择“使用”(这个DEBUG标签页共有两种仿真方式可选,左边的是keil软件仿真器,右边的是外部仿真器),点击下拉框,就会出现“Proteus VSM Monitor 51 Driver”,当然这里的这个名字可以你第1步里自定义,自己喜欢取什么名字就什么名字吧,当然最好是一目了然的名字比较好。4、选择“PROTEUS VSM MONITOR 51 DRIVER”,点旁边的“设置”,如果你的keil和proteus是装在同一台电脑上的话,那这里的“HOST”(主机)就填写本机IP地址:127.0.0.1(如果keil和proteus装在不同的电脑上,那就需要在HOST中填写另外一台电脑的IP),,在“PORT”(端口)中写入 8000 ,一般在右边会选中“Cache memory”不调试的时候软件好用吗?安装目录对吗?

keil里Use没有proteus,安装VDM也用不了

keil里的debug项里没有 proteus vsm 51选项是因为你少装了一个软件。解决办法是1、下载proteus vsm a GDI Driver 就是vdmagdi.exe,2、安装该软件,之后在KEIL文件夹下的TOOLS.INI文件中的[c51]字段的最后多了两行就是tdrv5=binvdm51.dll和book10=hlplvdmagd用于两软件的联接和帮助文档。3、现在点击project-->options for target "工程名"。4、现在"debug"选项卡中选择左边的“use“,在下拉框就有了”proteus vsm simulator",选择它,再点击"Setting"设置通信接口,在Host后面添上"127.0.0.1"。

keil中的linker的设置问题

你使用的MDK是评估板,最大只能编译不超过32kB的代码。而你目前的项目编译后的代码都快100kB了……要么购买专业版License,要么进行中国式和谐……

keil中的linker的设置问题

你使用的MDK是评估板,最大只能编译不超过32kB的代码。而你目前的项目编译后的代码都快100kB了……要么购买专业版License,要么进行中国式和谐……

keilgenerickeygen激活码没用怎么办

激活码没用可以按照下面的步骤操作。1、打开keil软件,在file里找到licensemanagement。2、点开在右上角有CID,把那个CID复制到keilgenerickeygen里面,再生成licensecode。3、把licensecode复制到licensemanagement里就可以啦。注意这个过程中最好关闭网络连接,不然会报错。

如何在keil 4中添加STC单片机型号

其实这个问题已经有人问过了,现在帮你再回答一次你要添加STC单片机的目的是什么呢?一,到STC官网下载一个数据文件就可以了。二,如果想仿真,就算是添加了,也不能仿真的,特别是STC增加的寄存器及相应的功能是仿真不出来的,仍然是按传统单片机来仿真的。三,如果是想为STC单片机编写程序,但不仿真,就不必要添加STC单片机。只不过是在新建工程时,需要选择一个单片机吗,就选一个典型的AT89C51/52就行了。写程序时,还是按STC单片机来写,但STC新增的寄存器,需要加载STC单片机的头文件就可以了。把原来的#include<reg51.h>换成STC的头文件,如STC89C52系列的单片机#include"STC89C52.h"要求这个头文件放在工程的同一个文件夹下。STC各系列单片机的头文件,可以在STC-ISP软件中导出。见下图,画红圈的三处参考:https://zhidao.baidu.com/question/748985396040364612

keil中如何添加stc单片机

3个方法:【1】数据库替换法(STC官网方法):先备份KEIL安装目录UV2(或者UV3)文件夹下面的UV2.CDB(或者UV3.CDB)文件,然后用STC官网提供的同名的CDB文件代替。说明:这个方法最简单,但缺点是在器件选型时,只能选择STC单片机,原来的单片机都没了,让人不爽。【2】新数据库添加法:1、在Keil/C51/INC下新建目录"STC"文件夹,把STC单片机的头文件拷贝到"STC"目录下。2、下载的用于keil下的STC器件数据库更名为STC.CDB并拷贝到Keil/UV2目录下。(如果是Kile3则是UV3,Kile4则是UV4)3、打开Keil文件夹下的TOOLS.ini文件,在[UV2]下面(也就是[C51]上方)键入CDB0=UV2STC.CDB("STC"),然后保存退出即添加完毕。(如果是Kile3则是UV3,Kile4则是UV4)说明:另外增加一个单片机数据库,既可以选择STC单片机,又不影响原来数据库的使用。使用:为目标设置选项时,点击Device页,在Database中选择“STC”。新建工程时,在SelectaCPUDateBaseFile中选择“STC”。注意:关于数据库CDB文件,Kile4向下兼容,Kile4可以使用Kile2、Kile3的数据库CDB文件。Kile2不向上兼容,Kile2无法使用Kile4的数据库CDB文件。【3】原数据库添加法:(这个需要自己编辑数据,就不介绍了)说明:只添加自己使用STC型号,简洁方便,可以选择STC单片机,又不影响原来数据库的使用。

如何给keil添加stc89C52

你要添加STC单片机的目的是什么呢?一,到STC官网下载一个数据文件就可以了。二,如果想仿真,就算是添加了,也不能仿真的,特别是STC增加的寄存器及相应的功能是仿真不出来的,仍然是按传统单片机来仿真的。三,如果是想为STC单片机编写程序,但不仿真,就不必要添加STC单片机。只不过是在新建工程时,需要选择一个单片机吗,就选一个典型的AT89C51/52就行了。写程序时,还是按STC单片机来写,但STC新增的寄存器,需要加载STC单片机的头文件就可以了。把原来的#include<reg51.h>换成STC的头文件,如STC89C52系列的单片机#include"STC89C52.h"要求这个头文件放在工程的同一个文件夹下。STC各系列单片机的头文件,可以在STC-ISP软件中导出。见下图,画红圈的三处

stc公司的12c5a60s2在用keil4 新建工程的cpu是什么

用keilc建工程时,是没有单片机stc12c5a60s的,其实,建工程时所选单片机是可以任选一款51单片机就行的,关键是在写程序时,要加相应的头文件就可以了。所以,你可以选单片机at89c52,在主程序中加stc12c5a60s的头文件就行,再写程序时,它内部的寄存器就能用了,但如果是用keilc仿真是不行的,stc12c5a60s所增加的寄存器是不能仿真的,必须将hex代码程序下载到实物单片机中才能正确运行。附件是stc12c5a60s的头文件。

如何在Keil uVision4 中加入STC系列单片机型号

现在更简单了,上stc官网上下载最新ISP下载工具 V6.8 运行后在仿真设置里可以自动添加了

如何在keil4中添加STC单片机

1、在STC的官网下载好最新的STC-ISP软件,然后在电脑上打开此软件。2、在kiel仿真设置页面下,点击“添加STC仿真驱动到keil软件中/添加型号和头文件到keil软件中”选项。3、然后在电脑中选择keil的安装目录(如:C:keil),选中keil文件夹,点击确定按钮。4、然后在弹出的对话框中,直接点击确定按钮。5、打开keil4软件,新建一个工程文件,就可以通过下拉箭头选择STC MCU Database。6、然后在出来的界面中,选择好需要的stc单片机型号即可。

如何向Keil中添加STC

【1】数据库替换法(STC官网方法):先备份KEIL安装目录UV2(或者UV3)文件夹下面的UV2.CDB(或者UV3.CDB)文件,然后用STC官网提供的同名的CDB文件代替。说明:这个方法最简单,但缺点是在器件选型时,只能选择STC单片机,原来的单片机都没了,让人不爽。【2】新数据库添加法:1、在Keil/C51/INC下新建目录"STC"文件夹, 把STC单片机的头文件拷贝到"STC"目录下。 2、下载的用于keil下的STC器件数据库更名为STC.CDB并拷贝到Keil/UV2目录下。(如果是Kile3则是UV3,Kile4则是UV4) 3、打开Keil文件夹下的TOOLS.ini文件,在[UV2]下面(也就是[C51]上方) 键入CDB0=UV2STC.CDB("STC"),然后保存退出即添加完毕。(如果是Kile3则是UV3,Kile4则是UV4) 说明:另外增加一个单片机数据库,既可以选择STC单片机,又不影响原来数据库的使用。 使用:为目标设置选项时,点击Device页,在Database中选择“STC”。 新建工程时,在Select a CPU Date Base File中选择“STC”。 注意:关于数据库CDB文件, Kile4向下兼容,Kile4可以使用Kile2、Kile3的数据库CDB文件。 Kile2不向上兼容,Kile2无法使用Kile4的数据库CDB文件。【3】原数据库添加法:(这个需要自己编辑数据,就不介绍了)说明:只添加自己使用STC型号,简洁方便,可以选择STC单片机,又不影响原来数据库的使用。

新买的一块STM32开发板,用STLINK和串口线连接上之后,在keil下载,结果no target connected,什么问题?

板子没坏的,,你设置KEIL没?

keil 中结构体和指针的问题……

c语言支持默认形参吗。

keil 串口调试问题 command命令

首先你要先设置串口参数:MODE COM1 9600,0,8,1然后分配设备ASSIGN COM1<SIN>SOUT

您好,我在使用c8051f340单片机,进行keil调试时遇到一个问题:DIR VTREG后没有找到sin,sout虚拟寄存器。

单片机串行通讯在Keil环境中的调试技巧其中<sin>sout是指所选择芯片的串口输入输出寄存器,不同芯片可能会有不同的名字,可以使用dir vtreg查看,如如果没有,自己写程序,用串口助手调试就行啦。

用keilC51编译时用到_nop_()函数,之前未曾定义,下面报错如何解决??

是定义了,但是你得包含进来呀!

KEIL、uVision、RealView、MDK、KEIL C51有什么区别?

要做什么设计吗

关于Keil C软件的问题:请问用该软件编写单片机的C程序时或汇编程序时,里面那个START UP文件是干什么用的

是初始化文件,初始化单片机,然后跳转到你的主程序开始执行。给你一篇参考文档。http://zhishangsixia.blog.163.com/blog/static/116883245201031995415219/这只是笔者所使用版本中的一个Startup.A51文件,不同版本会有所不同,;但格式和基本内容是一样。这个文件是可以跟据需要更改的。;蓝色内容是笔者所加注释。;~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~;原文:$NOMOD51;------------------------------------------------------------------------------; This file is part of the C51 Compiler package; Copyright (c) 1988-2002 Keil Elektronik GmbH and Keil Software, Inc.;------------------------------------------------------------------------------; STARTUP.A51: This code is executed after processor reset.; ; To translate this file use A51 with the following invocation:;; A51 STARTUP.A51;; To link the modified STARTUP.OBJ file to your application use the following; BL51 invocation:;; BL51 <your object file list>, STARTUP.OBJ <controls>;;------------------------------------------------------------------------------;; User-defined Power-On Initialization of Memory; 用户上电初始化程序; With the following EQU statements the initialization of memory; at processor reset can be defined:;使用以下的EQU命令定义在CPU复位时初始化的内存空间即清零; ; the absolute start-address of IDATA memory is always 0IDATALEN EQU 80H ; the length of IDATA memory in bytes.;定义用0初始化的内部数据存储器长度以字节计XDATASTART EQU 0H ; the absolute start-address of XDATA memory;定义外部数据存储器的绝对起始地址XDATALEN EQU 0H ; the length of XDATA memory in bytes.;定义用0初始化的内部数据存储器长度,以字节计PDATASTART EQU 0H ; the absolute start-address of PDATA memory;;定义分页的外部数据存储器的绝对起始地址PDATALEN EQU 0H ; the length of PDATA memory in bytes.;定义用0初始化的分页外部数据存储器长度,以字节计; Notes: The IDATA space overlaps physically the DATA and BIT areas of the; 8051 CPU. At minimum the memory space occupied from the C51; run-time routines must be set to zero.;------------------------------------------------------------------------------;; Reentrant Stack Initilization /再入函数堆栈初始化;; The following EQU statements define the stack pointer for reentrant; functions and initialized it:;以下用EQU指令定义了再入函数模拟堆栈指针的初始化; Stack Space for reentrant functions in the SMALL model.; 使用SMALL存储器模式时再入函数的堆栈空间.IBPSTACK EQU 0 ; set to 1 if small reentrant is used.IBPSTACKTOP EQU 0FFH+1 ; set top of stack to highest location+1.; 将堆栈顶设置为最高地址+1.; Stack Space for reentrant functions in the LARGE model.; 使用LARGE存储器模式时再入函数的堆栈空间.XBPSTACK EQU 0 ; set to 1 if large reentrant is used.; 使用SMALL存储器模式再入函数时将其设置成1.XBPSTACKTOP EQU 0FFFFH+1; set top of stack to highest location+1.; 将堆栈顶设置为最高地址+1.; Stack Space for reentrant functions in the COMPACT model.; 使用COMPACT存储器模式时再入函数的堆栈空间.PBPSTACK EQU 0 ; set to 1 if compact reentrant is used.PBPSTACKTOP EQU 0FFFFH+1; set top of stack to highest location+1.; 将堆栈顶设置为最高地址+1.;------------------------------------------------------------------------------;; Page Definition for Using the Compact Model with 64 KByte xdata RAM;; The following EQU statements define the xdata page used for pdata; variables. The EQU PPAGE must conform with the PPAGE control used; in the linker invocation.;PPAGEENABLE EQU 0 ; set to 1 if pdata object are used.;PPAGE EQU 0 ; define PPAGE number.;PPAGE_SFR DATA 0A0H ; SFR that supplies uppermost address byte; (most 8051 variants use P2 as uppermost address byte);;------------------------------------------------------------------------------; Standard SFR Symbols /特殊功能寄存器符号定义 ACC DATA 0E0HB DATA 0F0HSP DATA 81HDPL DATA 82HDPH DATA 83HNAME ?C_STARTUP; 模块名为?C_STAUTUP?C_C51STARTUP SEGMENT CODE?STACK SEGMENT IDATARSEG ?STACKDS 1EXTRN CODE (?C_START)PUBLIC ?C_STARTUPCSEG AT 0?C_STARTUP: LJMP STARTUP1RSEG ?C_C51STARTUPSTARTUP1:;一下四个IF-ENDIF为数据区清零的程序段IF IDATALEN <> 0MOV R0,#IDATALEN - 1CLR AIDATALOOP: MOV @R0,ADJNZ R0,IDATALOOPENDIFIF XDATALEN <> 0MOV DPTR,#XDATASTARTMOV R7,#LOW (XDATALEN)IF (LOW (XDATALEN)) <> 0MOV R6,#(HIGH (XDATALEN)) +1ELSEMOV R6,#HIGH (XDATALEN)ENDIFCLR AXDATALOOP: MOVX @DPTR,AINC DPTRDJNZ R7,XDATALOOPDJNZ R6,XDATALOOPENDIFIF PPAGEENABLE <> 0MOV PPAGE_SFR,#PPAGEENDIFIF PDATALEN <> 0MOV R0,#LOW (PDATASTART)MOV R7,#LOW (PDATALEN)CLR APDATALOOP: MOVX @R0,AINC R0DJNZ R7,PDATALOOPENDIF; 下一IF-ENDIF函数设置使用SMALL存储器模式时再入函数的堆栈空间.IF IBPSTACK <> 0EXTRN DATA (?C_IBP)MOV ?C_IBP,#LOW IBPSTACKTOPENDIF; 下一IF-ENDIF函数设置使用LARGE存储器模式时再入函数的堆栈空间.IF XBPSTACK <> 0EXTRN DATA (?C_XBP)MOV ?C_XBP,#HIGH XBPSTACKTOPMOV ?C_XBP+1,#LOW XBPSTACKTOPENDIF; 下一IF-ENDIF函数设置使用COMPACT存储器模式时再入函数的堆栈空间.IF PBPSTACK <> 0EXTRN DATA (?C_PBP)MOV ?C_PBP,#LOW PBPSTACKTOPENDIF;下一语句为堆栈起始地址设置MOV SP,#?STACK-1; This code is required if you use L51_BANK.A51 with Banking Mode 4; EXTRN CODE (?B_SWITCH0); CALL ?B_SWITCH0 ; init bank mechanism to code bank 0LJMP ?C_START;上一语句使程序跳转至用户的main()函数END

KEIL的scat文件中,每一个都是什么意思? 代码如下

这个 其实就是 ld 连接程序的脚本,和Linux下的.lds文件类似!ER_IROM1 0x08004000 0x08020000 { vectors.o (VECT, +First) init.o (INIT) * (+RO) }意思就是 将 vectors.o 目标文件 中的 VECT 段,和 init.o的INIT 段 还有 所有目标文件的只读代码段 连接到 0x08004000 0x0802000 地址上 不清楚 可以追问 或者google lds 文件! 呵呵!

Keil中scatter文件中的RO,RW地址和启动代码中的RO,RW地址关系

在使用Keil时,如果你没有特别的需求,可以不用自己写Scatter文件,而是让Keil自动产生。这样可以避免产生错误。你的附图就是为芯片配置ROM和RAM的。只要在Options for Target "XXXX"->Linker页面中,将选项Use Memory Layout from Target Dialog打上勾就可以让Keil自动产生Scatter文件。如果一定要自己写Scatter文件,那么最基本的要求就是将你提到的几个变量和实际CPU的ROM/RAM相一致。

Keil uVision4建立STM32F103RBT6的工程时没有自动加载启动文件选择项怎么办?

正常的话会提示“copy startup_stm32f10x_md.s....”,是不是mdk版本低了呢?还是没有装好?建议找个最新版本,重装下。

用keil软件如何复制粘贴

- -#ctrl c ctrl v

嵌入式 stm32 以太网例程 中 keil中的 uip协议栈的那么多.C子文件是什么作用?跪求,一定采纳

这些c文件共同组成uip协议栈啊,psock.c目测包含了socket api实现的代码,uip.c就是ip层功能的实现代码,uip_arp.c就是arp协议的实现代码等等。uip是开源的微型ip协议栈,网上有好多资料呢,你找找看。

keil c51优化等级介绍

Keil的代码优化产生的问题阅 读了《单片机与嵌入式系统应用》2005年第10期杂志《经验交流》栏目的一篇文章《Keil C5l对同一端口的连续读取方法》(原文)后,笔者认为该文并未就此问题进行深入准确的分析。文章中提到的两种解决方法并不直接和简单。笔者认为这并非是 Keil C51中不能处理对一个端口进行连续读写的问题,而是对Keil C51的使用不够熟悉和设计不够细致的问题,因此特撰写本文。本文中对原文提到的问题,提出了三种不同于原文的解决方法。每种方法都比原文中提到的方法更直接和简单,设计也更规范。(无意批评,请原文作者见谅)1 问题回顾和分析原文中提到:在实际工作中遇到对同一端口反复连续读取,Keil C5l编译并未达到预期的结果。原文作者对C编译出来的汇编程序进行分析发现,对同一端口的第二次读取语句并未被编译。但可惜原文作者并未分析没有被编译 的原因,而是匆忙地采用一些不太规范的方法试验出了两种解决办法。对此问题,翻阅Keil C51的手册很容易发现:KellC51的编译器有一个优化设置,不同的优化设置,会产生不同的编译结果。一般情况缺省编译优化设置被设定为8级优化,实际最高可设定为9级优化:①Dead code elimination。②Data overlaymg。③Peephole optimization。④Register variables。⑤Common subexpression elimination。⑥Loop rotation。⑦Extended Index Access 0ptimizing。⑧Reuse Common。Entry Code。⑨Common Block Subroutines。而以上的问题,正是由于KeiI C5l编译优化产生的。因为在原文程序中将外设地址直接按如下定义:unsigned char xdata MAXl97_at_Ox8000;采用_at_将变量MAXl97定义到外部扩展RAM指定地址Ox8OOO。因此,Keil C51优化编译理所当然认为重复读第二次是没有用的,直接用第一次读取的结果就可以了,因此编译器跳过了第二条读取语句。至此,问题就一目了然了。2 解决方法由以上分析很容易就能提出很好的解决办法。2.1 最简单最直接的办法程序一点都不用修改,将Keil C5l的编译优化选择设置为0(不优化)就可以了。选择project窗口的Target,然后打开“Options forTarget”设置对话框,选择“C5l”选项卡,将“Code Optimiztaion”中的“Level”选择为“0:Costant folding”。再次编译后,大家会发现编译结果为:CLR MAXHBENMOV DPTR,#M.AXl97MOVX A,@DPTRMOV R7.AMOV down8.R7SETB MAXHBENMOV DPTR,#MAXl97MOVX A,@DPTRMOV R7.AMOV uD4.R7两次读取操作都被编译出来了。2.2 最好的方法告诉Keil C51,这个地址不是一般的扩展RAM,而是连接的设备,具有“挥发”特性,每次读取都是有意义的。可以修改变量定义,增加“volatile”关键字说明其特征:unsigned char volatile xdata MAXl97_at_Ox8000;也可以在程序中包含系统头文件:“#incIude”,然后在程序中修改变量,定义为直接地址:#defme MAXl97 XBYTE[Ox8000]这样,。Keil C51的设置仍然可以保留高级优化,且编译结果中,同样两次读取并不会被优化跳过。2.3 硬件解决方法原文中将MAXl97的数据直接连接到数据总线,而对地址总线并未使用,采用一根端口线选择操作高低字节。很简单的修改方法就是使用一根地址线选择操作高 低字节即可。比如:将P2.0(A8)连接到原来P1.O连接的HBEN脚(MAXl97的5脚),在程序中分别定义高低字节的操作地址:unsigned char volatile xdata MAXl97_L_aI_Ox8000;unsigned char volatile xdata MAXl97 H at 0.x8100;将原来的程序:MAXHBEN=O; //读取低8位down8=MAXl97:MAXHBEN=1; //读取高4位up4=MAXl97:改为以下两句即可:down8=MAXl97_L; //读取低8位up4=MAXl97_H; //读取高4位3 小结Keil C51经过长期考验和改进以及大量开发人员的实际使用,已经克服了绝大多数的问题,并且其编译效率也非常高。对于一般的使用,很难再发现什么问题。笔者曾 经粗略研究过一下Keil C51优化编译的结果,非常佩服Keil C51设计者的智慧,一些C程序编译产生的汇编代码,甚至比一般程序员直接用汇编编写的代码还要优秀和简练。通过研读KeilC51编译产生的汇编代码, 对提高汇编语言编写程序的水平都是很有帮助的。由本文中的问题可以看出:在设计中遇到问题时,一定不要被表面现象蒙蔽,不要急于解决。应该认真分析,找出问题的原因,这样才能从根本上彻底解决问题。上不会出现不必要的干扰,防止了数据不一致的发生。附表:Keil C51中的优化级别及优化作用级别 说明0 常数合并:编译器预先计算结果,尽可能用常数代替表达式。包括运行地址计算。 优化简单访问:编译器优化访问8051系统的内部数据和位地址。 跳转优化:编译器总是扩展跳转到最终目标,多级跳转指令被删除。1 死代码删除:没用的代码段被删除。 拒绝跳转:严密的检查条件跳转,以确定是否可以倒置测试逻辑来改进或删除。2 数据覆盖:适合静态覆盖的数据和位段被确定,并内部标识。BL51连接/定位器可以通 过全局数据流分析,选择可被覆盖的段。3 窥孔优化:清除多余的MOV指令。这包括不必要的从存储区加载和常数加载操作。当存 储空间或执行时间可节省时,用简单操作代替复杂操作。4 寄存器变量:如有可能,自动变量和函数参数分配到寄存器上。为这些变量保留的存 储区就省略了。 优化扩展访问:IDATA、XDATA、PDATA和CODE的变量直接包含在操作中。在多数时间没 必要使用中间寄存器。 局部公共子表达式删除:如果用一个表达式重复进行相同的计算,则保存第一次计算 结果,后面有可能就用这结果。多余的计算就被删除。 Case/Switch优化:包含SWITCH和CASE的代码优化为跳转表或跳转队列。5 全局公共子表达式删除:一个函数内相同的子表达式有可能就只计算一次。中间结果 保存在寄存器中,在一个新的计算中使用。 简单循环优化:用一个常数填充存储区的循环程序被修改和优化。6 循环优化:如果结果程序代码更快和有效则程序对循环进行优化。7 扩展索引访问优化:适当时对寄存器变量用DPTR。对指针和数组访问进行执行速度和 代码大小优化。8 公共尾部合并:当一个函数有多个调用,一些设置代码可以复用,因此减少程序大小 。9 公共块子程序:检测循环指令序列,并转换成子程序。Cx51甚至重排代码以得到更大 的循环序列。

Keil优化及如何设置某段代码不优化

Keil默认会对代码进行优化的一般情况缺省编译优化设置被设定为8级优化,实际最高可设定为9级优化。1、Dead code elimination2、Data overlaying3、Peephole optimization4、Register variables5、Common subexpression elimination6、Loop rotation7、Extended Index Access Optimizing8、Reuse Common Entry Code9、Common Block Subroutines如何设定不优化或改变某个文件的优化设置1、针对某个文件(1) 右键->Option for File XXXX(2) 切换到【C51】选项卡default表示与工程设置一致2、针对某段代码(局部优化)#pragma OPTIMIZE(x) x就是你希望的优化级别举例如下:#pragma OPTIMIZE(6)void FunA(){}............#pragma OPTIMIZE(9)void FunB(){}上面的意思就是说,在void FunA()到void FunB()之前的所有函数,包括FunA在内,都采用6级的优化,而从FunB开始直到之后,只要没碰上#pragma OPTIMIZE,都采用9级优化了。OPTIMIZE还可以多一个参数,就是speed和size,用法: #pragma OPTIMIZE(9,speed)或#pragma OPTIMIZE(5,size)对应的就是9级优化,以速度为主,或5级优化,以空间最小为主。

请问在IAR中调试软件的时候,可否像KEIL那样看到程序的运行时间么?

貌似不能,如果是TI的处理器建议使用CCS5

求KEIL3注册码

LICO码 GM80R-KS981-NPMZP-QM5MB-LSXU4-C0F63SN序列号 K1FXC-JP8E1-L0M79如果激活失败请激活窗口的截图上来

keil v3的CID是CIT5N-M10HL,求序列号。

21NRA-1HNHM-824LD-8S0D3-VIYF2-TR5L4

keil uvision3 licence 怎么装

注册方法1.从附件下载注册机,解压2.打开uVision3,点击File---LicenseManagement...,打开LicenseManagement窗口,复制右上角的CID3.打开注册机,MCUtype选择51,勾选ExternalCID,将原来的00000-00000换成自己的CID,其它设置不变4.点击Generate生成许可号,复制LICO的内容5.将LICO的内容复制到LicenseManagement窗口下部的NewLicenseIDCode,点击右侧的AddLIC6.若上方的Product显示的是PK51Prof.DevelopersKit即注册成功,SupportPeriod为有效期,一般可以到30年左右,我的为2033年,若有效期较短,可多次生成许可号重新注册。

keil里面可以用memcpy函数吗

可以的,在string.h头文件里面!

keil uvision4.0编译时出现以下错误提示..OBJHZ.axf: error: L6050U: The code size of this......

那是因为没有完全破解 我可以给你个 破解软件 不知道你要不要 突破32K限制的

keil5压缩后的项目一直出错

安装KEIL5后创建工程后出现这个报错 解决方法:打开下图目录的文件。 Keil.STM32F1xx_DFP.pdsc文件是只读文件,必须将只读属性取消。 如下图所示,注释掉红色圆圈的哪一行,保存退出,再打开工程就不会报错了

关于keil 和source insight的问题

si建立个工程,吧keil用到的文件载入就好了.也可以直接用si配置编译器,直接编译代码.(选项->自定义命令->编译)就是速度比较慢..还是直接用keil编译来的省力.

在keil4中可以使用strstr()函数吗?

你好! 可以 含有 strstr 函数 #include <string.h> 需要加入这个头文件

keil C中的警告:UNCALLED SEGMENT, IGNORED FOR OVERLAY PROCESS 是因为什么造成的?

这个警告是因为所给的段未被调用,已被排除在覆盖过程之外。keilC中的警告解释:WARNING1:UNSOLVEDEXTERNALSYMBOLS指定模块的外部符号在PUBLIC符号表中找不到WARNING2:REFERENCEMADETOUNSOVEDEXTERNAL访问了未能匹配的外部符号code地址WARNING4:DATASPACEMEMORYOVERLAP数据空间指定范围出现覆盖WARNING5:CODESPACEMEMORYOVERLAP程序空间指定范围出现覆盖WARNING6:XDATASPACEMEMORYOVERLAP外部数据空间指定范围出现覆盖WARNING7:MODULENAMENOTUNIQUE模块名重名。模块未处理WARNING8:MODULENAMEEXPLICITLYREQUESTEDFROMANOTHERFILE其他文件指名要求本模块名WARNING9:EMPTYABSOLUTESEGMENT本模块包含空的绝对段,因未定位,它可能在不通知的情况下随时被覆盖WARNING10:CANNOTDETERMINEROOTSEGMENTL51对输入文件要求分辨是C51还是PL/M文件,然后进行流程分析,在无法确定的时候,发出本警告。它发生在主程序被汇编调用的时候,需要程序员用OVERLAP特殊控制选项进行干预WARNING11:CANNOTFINDSEGMENTORFUNCTIONNAME在目标模块中找不到OVERLAP控制选项中规定的段或者函数间调用WARNING12:NOREFERENCEBETWEENSEGMENTS试图用OVERLAP控制选项删除本来不存在的段间访问或者函数间调用WARNING13:RECURSIVECALLTOSEGMENTCALLER段递归调用SEGMENT段。PL/M51和C51的非重入函数不允许递归调用WARNING14:IMCOMPIABLEMEMORYMODEL指定模块试图与以前不同的存储模式编译WARNING15:MULTICALLTOSEGMENT两个函数调用同一个函数(如主函数和中断函数),参数和局部变量将被覆盖WARNING15:UNCALLEDSEGMENT,IGNOREDFOROVERLAPPROCESS所给的段未被调用,已被排除在覆盖过程之外

求教:怎样在 keilc51 用C语言来定义十六进制数?

换系统没事!

keil里添加芯片后出现的starup.s 是什么文件?

STARTUP文件是单片机上电后,作了基本初始化,再跳转到C_MAIN段去,也就是C语言的MAIN函数,这才真正进入C语言写的程序段。

用keil4编译ARM7[lpc2138]使用keil自带的启动文件startup.s ,还需要自己配置系统时钟么?

ff jkhjhgj

KEIL生成不了HEX文件。

1、先打开KEIL软件。2、依次点击“project”——“new project”新建一个项目。3、点开ATMEL选中AT89C51,依次点“确定”——“是”。4、点击设置图标,切换到output选项卡。5、勾选Create HEX FILE。6、在新弹出的界面点击“Add Files to Group Source Group 1”。7、选中c文件后,点击“Add”。8、点击编译图标即可。

Keil uVision生成hex文件在哪里能找到

如果没有可以更改保存路径,在默认路径中能找到,具体查看默认路径方法如下:1、首先打开软件,然后点击工程选项卡,下拉菜单中随意选择一个文件。2、然后弹出的文本文件夹框中看到路径,默认路径就在收藏夹。3、双击桌面计算机图标,打开文件夹。4、然后点击收藏夹,单击单片机,打开程序文件夹,找到独立按键文件夹,就找到生成的hex文件了。

KEIL怎样生成HEX文件和相关设置

1、先打开KEIL软件。2、依次点击“project”——“new project”新建一个项目。3、点开ATMEL选中AT89C51,依次点“确定”——“是” 。4、点击设置图标,切换到output选项卡。5、勾选Create HEX FILE。6、在新弹出的界面点击“Add Files to Group Source Group 1”。7、选中c文件后,点击“Add”。8、点击编译图标即可 。

keil uvision4如何生成hex?

keil uvision4生成hex的具体步骤如下:1、首先打开KEIL软件,点击打开project中的“new project”。2、然后在弹出来的窗口中点击输入一个想要的文件名,回车确定。3、然后在弹出来的窗口中点击打开“ATMEL”,选择“AT89C51”4、然后在弹出来的窗口中点击打开设置图标。5、切换到“output”选项卡,勾选下图中“create HEX file”。如果要改变HEX文件的保存位置,可以点左上角的“select flolder for objects”选一个新的文件夹完成设置后选确定。6、然后右键单击source group 1,选择打开“add files to group source group 1”。7、选中要加入的C文件,C文件可以是从别处复制过来,也可以自己写。8、点“add”后可以看到C文件出现在左侧的目录中。这时要点击“close”关闭对话框9、源程序添加进来后可以点击图中编译图标生成HEX文件。

keil stm32中go to definition不能使用,出现browser的窗口.求大神解答,在线等。。。

这个我也常长碰到这种情况。。。也不知道为什么,同求大神!不过我一般的都是找到go to definition相近的函数或变量,然后再在那个附近找

keil中Go To Definition和Go To reference有什么区别

Go To Definition 跳转到定义该标识符的地方 Go To reference 跳转到使用(引用)该标识符的地方

keil里面使用RTX51-Tiny的问题

今天第一次接触RTX51 Tiny ,打开Keil自带的例程后,同样在链接时出现与你相同的问题:*** FATAL ERROR L257: RTX51-TINY REQUIRES UPGRADE TO PK51打开帮助文档对这个错误的解释如下:You have no valid license to run the LX51 Linker/Locator. Contact Keil or your Keil distributor to get an upgrade to the PK51 Professional Developers Kit.貌似要用PK51才能完成链接!找了一圈没找到能用的,要是你解决的话给留个言吧! 刚找到答案了,问题结局了。重新用注册机生成lisence导入。

把存放keil编译的工程文件的文件夹改名了,打开时不能读取starup.a51,怎么办?

新建一个工程就行了呀

把存放keil编译的工程文件的文件夹改名了,打开时不能读取starup.a51,怎么办?

新建一个工程就行了呀

Rand函数和srand函数在keil中怎么用,能给我举个例子吗

srand((unsigned)time(NULL))则使用系统定时/计数器的值作为随机种子。每个种子对应一组根据算法预先生成的随机数,所以,在相同的平台环境下,不同时间产生的随机数会是不同的,相应的,若将srand(unsigned)time(NULL)改为srand(TP)(TP为任一常量),则无论何时运行、运行多少次得到的“随机数”都会是一组固定的序列,因此srand生成的随机数是伪随机数。[1] 库函数中系统提供了两个函数用于产生随机数:srand()和rand()。 原型为:函数一:int rand(void);返回一个[0,RAND_MAX]间的随机整数。函数二:void srand(unsigned seed);参数seed是rand()的种子,用来初始化rand()的起始值。但是,要注意的是所谓的“伪随机数”指的并不是假的随机数。其实绝对的随机数只是一种理想状态的随机数,计算机只能生成相对的随机数即伪随机数。计算机生 成的伪随机数既是随机的又是有规律的 —— 一部份遵守一定的规律,一部份则不遵守任何规律。比如“世上没有两片形状完全相同的树叶”,这体现到了事物的特性 —— 差异性;但是每种树的叶子都有近似的形状,这正是事物的共性 —— 规律性。从这个角度讲,我们就可以接受这样的事实了:计算机只能产生伪随机数而不是绝对的随机数。系统在调用rand()之前都会自动调用srand(),如果用户在rand()之前曾调用过srand()给参数seed指定了一个值,那么 rand()就会将seed的值作为产生伪随机数的初始值;而如果用户在rand()前没有调用过srand(),那么系统默认将1作为伪随机数的初始 值。如果给了一个定值,那么每次rand()产生的随机数序列都是一样的~~所以为了避免上述情况的发生我们通常用srand((unsigned)time(0))或者srand((unsigned)time(NULL))来 产生种子。如果仍然觉得时间间隔太小,可以在(unsigned)time(0)或者(unsigned)time(NULL)后面乘上某个合适的整数。 例如,srand((unsigned)time(NULL)*10)另外,关于time_t time(0):time_t被定义为长整型,它返回从1970年1月1日零时零分零秒到目前为止所经过的时间,单位为秒。srand()、rand()用法举例:123456789101112131415 #include<time.h>#include<stdlib.h>#include<stdio.h>voidmain(){inti,j;srand((int)time(0));for(i=0;i<10;i++){j=1+(int)(10.0*rand()/(RAND_MAX+1.0));printf("%d",j);}}

keil C中的警告是因为什么造成的?

这个警告是因为所给的段未被调用,已被排除在覆盖过程之外。keil C中的警告解释:WARNING1:UNSOLVED EXTERNAL SYMBOLS指定模块的外部符号在PUBLIC符号表中找不到WARNING2:REFERENCE MADE TO UNSOVED EXTERNAL访问了未能匹配的外部符号code地址WARNING4:DATA SPACE MEMORY OVERLAP数据空间指定范围出现覆盖WARNING5:CODE SPACE MEMORY OVERLAP程序空间指定范围出现覆盖WARNING6:XDATA SPACE MEMORY OVERLAP外部数据空间指定范围出现覆盖WARNING7:MODULE NAME NOT UNIQUE模块名重名。模块未处理WARNING8:MODULE NAME EXPLICITLY REQUESTED FROMANOTHER FILE其他文件指名要求本模块名WARNING9:EMPTYABSOLUTE SEGMENT本模块包含空的绝对段,因未定位,它可能在不通知的情况下随时被覆盖WARNING10:CANNOT DETERMINE ROOT SEGMENTL51 对输入文件要求分辨是C51还是PL/M文件,然后进行流程分析,在无法确定的时候,发出本警告。它发生在主程序被汇编调用的时候,需要程序员用OVERLAP 特殊控制选项进行干预WARNING11:CANNOT FIND SEGMENT OR FUNCTION NAME在目标模块中找不到OVERLAP控制选项中规定的段或者函数间调用WARNING12:NO REFERENCE BETWEEN SEGMENTS试图用OVERLAP控制选项删除本来不存在的段间访问或者函数间调用WARNING13:RECURSIVE CALL TO SEGMENTCALLER段递归调用SEGMENT段。PL/M51和C51的非重入函数不允许递归调用WARNING14:IMCOMPIABLE MEMORYMODEL指定模块试图与以前不同的存储模式编译WARNING15:MULTICALL TO SEGMENT两个函数调用同一个函数(如主函数和中断函数),参数和局部变量将被覆盖WARNING15:UNCALLED SEGMENT,IGNORED FOR OVERLAP PROCESS所给的段未被调用,已被排除在覆盖过程之外

keil MDK 对话框中的英文"utilities"是什么意思?如下图(STM32)

功能 的 意思

Keil编程中出现illegal error

第二行有非法字符。保险起见,把第一第二第三行都删了,用英文输入法再写一遍。

keil编译ERROR L104: MULTIPLE PUBLIC DEFINITIONS?

问题是我所有文件里面都没有这三个变量那只是你空口白牙的辩解。打开自己的文件好好检查吧。你可以全局搜索“hzk”“F8x16”“F6x8”这几个符号看看到底在哪里。有可能在某个头文件的阴暗角落里。

keil触摸屏按一下显示一个圆代码

平台:linux arm开发板; LCD: 800x480(宽x高),32位色深,带电容触摸屏二、LCD 显示的过程:定义一个数组 unsigned int virtual_lcd[480][800] 作为虚拟显存每次显示内容,先将内容画在虚拟显存上(调用draw_xxx函数)要显示什么就画什么,要显示几个就画几个(两次画在同一位置,新的会覆盖旧的)全部画完之后,把虚拟显存上的东西显示出来(调用show_lcd_now函数)三.功能使用1.1版本可以实现如下功能:1、 触屏返回坐标2、划屏返回坐标和划过的距离3、在LCD上显示文本:语言:中文,英文字体:仿宋,楷体,黑体,微软雅黑, 只能显示默认字体,没有粗体,斜体等字号:支持6个字号:16 ,24, 32 ,40, 48, 56;16号既为16*16个像素点,中文是这样,英文和标点宽度可能减半,使用时请注意4、 在LCD上显示色块(block)5、 显示带框线的方框(box)6、 显示带文本的按钮(button)7、 显示bmp图(24bit, 底到上型DIB(bottom-up),应该是最常见的24bit bmp格式)8、 按按钮时按钮反显(按下时显示另一种颜色),并触发事件(调用一个回调函数)各功能对应的函数:struct touch_screen_data touch_screen(void);//触屏struct cross_screen_data cross_screen(void);//划屏int draw_block(lcd_block * block);//画色块int draw_box(lcd_box * box);//画方框int draw_text(lcd_text * text ); //画文本int draw_button(lcd_button * button); //画按钮(只能画矩形按钮)int draw_bmp(int x,int y,const char *filename);//画bmp图int show_lcd_now(void);//将画的内容显示出来int press_button(int num_of_button,...);//按按钮函数,可以配置按下可以配置按下按钮要做的事四、例程main.c中是上述函数使用方法的例程,有详述细注释。源码lcd.c,lcd.h中也有详细注释。测试效果:开发板返回信息:2c24a1fea39148663faf6d21528d3b68.pngLCD显示效果:816523d2ea83f325eb6071b0b7def953.png五、注意1、字库路径使用显示文本功能,必须要把字库文件放到开发板上,本demo默认需要将【fontlibrary文件及里面的字库文件】整体放到开发板/目录(根目录)下,如果要放到别的路径,请到lcd.c文件中找到这句话:sprintf(filename,"/fontlibrary/%c%d.bin",text->type,text->size); 去修改字库文件的路径2、 使用时在你的工程中包含lcd.c,font.c,lcd.h,font.h 这四个文件,并一同编译3、 本demo使用的测试图片103x100.bmp要和本demo的可执行文件放在同一个目录下

keil安装教程crack打不开

找不到Crack??文件夹么吧,首先说说你运行的是什么镜像,模拟人生3是吧。找到你下的那一堆压缩宝,解压以后得到一个iso文件,,打开Crack文件夹,里面有一个ts3,把它复制到安装目录下的game/bin就可以了。

keil mdk 5用哪个版本

Keil MDK-ARM 5.34是一款基于Cortex -M、Cortex-R4、ARM7和ARM9处理器设备的完整软件开发环境。MDK-ARM专为微控制器(单片机)应用而设计,易于学习和使用,但功能强大,足以满足要求最苛刻的嵌入式应用。每个MDK版本都包括IDE、C / C ++编译器、调试器、软件包管理和CMSIS。MDK-Core为超过3,750个基于Cortex-M的设备提供领先的支持,包括新的Arm Cortex-M23 / M33内核。软件支持64位的Win7/Win8/Win10/Win11系统或更高,安装包大小919M。链接: https://pan.baidu.com/s/1quyfvpzzqylApVi0J1QSNg?pwd=699w 提取码: 699w

keil c51软件的作用是什么?

编译程序,是单片机C语言的主要编译工具

keil uvison4和keil MDK有什么区别?

MDK是专用版本,主要针对ARM,比如用的51单片机,你应该用通用版,而不是MDK版

Keild编程问题?

用Keil编程软件编译时老是出现“目标未创建”是由于建立工程错误,具体编译步骤如下:1、在软件顶部下拉菜单选【工程】-【新建工程】。2、在弹出窗口,选择工程文件。(如果无工程文件,新建一个工程文件,填一个名词点保存。)3、选择一个单片机型号(比如89C52,也可以89C51)。4、右击左侧工程“Source Group 1”,选择增加一个C文件到工程组里。(比如增加下面的C程序文件。)5、增加后,左侧会看到C文件名称了,双击文件可以在右侧进行编辑程序。6、编辑完C程序,进行编译成hex文件,用于写进CPU单片机。

keil5多大

因为KEIL是可以装在一起的,我装了KEIL2,KEIL3,KEIL4,对应的核心包括了C51和C251,目前总共大小是162M_eil C51是美国Keil Software公司出品的51系列兼容单片机C语言软件开发系统,与汇编相比,C语言在功能上、结构性、可读性、可维护性上有明显的优势,因而易学易用。Keil提供了包括C编译器、宏汇编、链接器、库管理和一个功能强大的仿真调试器等在内的完整开发方案,通过一个集成开发环境(μVision)将这些部分组合在一起。运行Keil软件需要WIN98、NT、WIN2000、WINXP等操作系统。如果你使用C语言编程,那么Keil几乎就是你的不二之选,即使不使用C语言而仅用汇编语言编程,其方便易用的集成环境、强大的软件仿真调试工具也会令你事半功倍。

keil5和mdk5的区别是什么

mdk5和keil5的区别:mdk5是扩展版本,包含了部分arm。为基于cortex-m、cortex-r4、arm7、arm9处理器设备提供了一个完整的开发环境。keil5是普通版本,只能适用于单片机,主要是基于8051系列单片机的开发环境。目前使用keiluvision4的产品有keilmdk-arm,keilc51,keilc166和keilc251。功能作用:keil5是一款兼容单机片C语言软件开发系统,该软件给用户提供了简单直观的操作界面,并且具备编译器、宏汇编、库管理和一个功能强大的仿真调试软件,极大的提高了工作效率和缩短项目开发周期。这款软件在同类软件中占有很大的优势,但是由于该软件的专业性特别强,所以很多新入手这款软件的小伙伴都不知道怎么使用这款软件。其实这款软件的使用方法并不难,经过小编的介绍,相信大家对这款软件的使用方法会有所了解。那么接下来小编就给大家详细介绍一下keil5的具体使用方法,有需要的朋友可以看一看并收藏起来。

mdk5和keil5有什么区别

  mdk5和keil5的区别:mdk5是扩展版本,包含了部分ARM。为基于Cortex-M、Cortex-R4、ARM7、ARM9处理器设备提供了一个完整的开发环境。keil5是普通版本,只能适用于单片机,主要是基于8051系列单片机的开发环境。   拓展资料:   目前使用KeiluVision4的产品有KeilMDK-ARM,KeilC51,KeilC166和KeilC251。

keil5对电脑配置要求高吗

Keil5对电脑配置没有太严格的要求,当然配置高些速度就快些。

Keil MDK 都有哪些关键字?

Keil C51基本关键字:一、由ANSI标准定义的共32个:auto double int struct break else long switch case enum register typedefchar extern return union const float short unsigned continue for signedvoid default goto sizeof volatile do if while static二、KeilCx51扩展的关键字:u2022_at_ alien bdata bit code compact data far idata interrupt largepdata _priority_ reentrant sbit sfr sfr16 small _task_ usingxdata具体代表的意义见网址:http://wenku.baidu.com/view/cd7c1c8f6529647d27285278.html如果是C++关键字详见:http://wenku.baidu.com/view/aed7c536a32d7375a41780f3.html

keil和arduino的区别

关注这个问题

德国Keil公司的MDK全称为?

MDK = Microcontroller Development Kit,字面的意思就是“微控制器开发套装”。

keil4 与 keil c51有什么区别吗 我们在学 嵌入式 用的是 keil4.也在学单片机

不要管它,直接用了,只要你不用ARM单片机,就没关系的

keil中开关叫什么

按钮。Keil是美国KeilSoftware公司出品的51系列兼容单片机C语言软件开发系统,其系统中开关叫按钮,其与汇编相比,C语言在功能上、结构性、可读性、可维护性上有明显的优势,因而易学易用。

用keil软件编程经过哪几个步骤

打开keil,点击project->new uvision project新建一个项目,新建好之后再点击file->new新建一个文件,保存成.c(C文件)格式,然后在keil的左侧project窗口中双击Target 1中的Sourse Group 1,就可以把你刚刚新建的C文件添加到项目中,然后在里面写代码就好了。写好之后按F7即刻编译加连接。

怎么样使用keil软件

这个没关系的,你点执行就有了

如何安装KEIL5

keil uvision5破解版http://www.ddooo.com/softdown/79273.htm1、双击“mdk511.exe”开始安装2、允许用户协议3、选择软件安装目录4、输入任意Name等信息5、安装完成后,点击“finish”6、双击运行桌面自动生成的“Keil uVision5”快捷方式,点击“File”,选择“License Management”,进入安装密钥。7、此时打开解压文件中的“keygen.exe”注册机,将注册界面的“CID”复制到注册机中,然后点击“Target”修改为"ARM",点击Generate,生成注册码8、将注册码复制到注册界面,点击“AddLIC”,出现如下界面说明破解完成。

keil uvision4和keil for ARM是什么区别啊?

keil是美国keil software公司推出的专门用于针对单片机、ARM等控制芯片开发的一个集成开发环境。这是一个专门针对MCU进行开发的独立的专用软件。对很多控制芯片都有良好的兼容性。keil uvision4 是指的keil的版本,这是相对keil v3.0老版本进行了升级。而keil for ARM则指的是keil的应用平台。keil主要有两个平台:分别是keil for C51和keil for ARM。其中,keil for C51是针对C51系列单片机的开发平台,如常见的ATMEL 89C51,而keil for ARM则是针对如STM32系列ARM7或者LPC系列的嵌入式开发平台。keil uverison和keil for ARM并没有可比性。

keil中的库文件是什么意思

广义的说,头文件也属于库文件的一种,当然,你所指的库文件是狭义的库文件。那个库文件,相当于头文件与C文件的一种有机集合,他是这么制作出来的,举个例子来说:当你写了一些C文件和头文件,这些C文件能够正确的编译,并能正确的生成Hex或者Bin代码文件,那么,你可以用Keil设置不输出Hex,而是生成Lib文件,也就是库文件,那么,你生成的这个库文件与你原来的C文件和头文件的功能完全相同,所不同的是,你这个库文件是只读的,也就是说,你可以利用里面的变量,利用里面的函数,但是你无法修改。一些官方的库文件,比如ST公司的库文件也是这样生成的。那么,库文件有什么意义呢?一是简化开发过程,试想一下,你开发一个工程,要加载数十乃至数百个C文件和头文件,与只加载一个等效功能的库文件,哪个省事?而其最重要的一个意义就是保密性,由于库文件是只读的,且你看不到里面的具体内容,所以,如果你想保密,不想让别人知道你某些程序具体是如何实现的,那么,就可以用库文件,这样,别人可以使用你写好的程序,但是,他们既修改不了,同时也看不到具体的实现过程。

keil5与mdk5的区别有哪些?

mdk5和keil5的区别:mdk5是扩展版本,包含了部分arm。为基于cortex-m、cortex-r4、arm7、arm9处理器设备提供了一个完整的开发环境。keil5是普通版本,只能适用于单片机,主要是基于8051系列单片机的开发环境。目前使用keiluvision4的产品有keilmdk-arm,keilc51,keilc166和keilc251。功能作用:keil5是一款兼容单机片C语言软件开发系统,该软件给用户提供了简单直观的操作界面,并且具备编译器、宏汇编、库管理和一个功能强大的仿真调试软件,极大的提高了工作效率和缩短项目开发周期。这款软件在同类软件中占有很大的优势,但是由于该软件的专业性特别强,所以很多新入手这款软件的小伙伴都不知道怎么使用这款软件。其实这款软件的使用方法并不难,经过小编的介绍,相信大家对这款软件的使用方法会有所了解。那么接下来小编就给大家详细介绍一下keil5的具体使用方法,有需要的朋友可以看一看并收藏起来。

关于MDK,keil和ARM的区别和联系

Keil是一家出产编译软件的公司,已经被ARM公司收购。MDK是Keil出产的针对ARM一系列内核的编译开发包。

keil中long和int的取值范围分别是多少?

int是0~65535,教你个方法,用c编一个小程序,定义unsigned long a=-1,unsigned int b=-1在输出,就知道了
 1 2 3  下一页  尾页