搜档网
当前位置:搜档网 › Keil MDK 三个版本比较总结

Keil MDK 三个版本比较总结

Keil MDK 三个版本比较总结
Keil MDK 三个版本比较总结

Keil MDK版本比较总结

Sunrise

QQ:279046843

2013.3 1、MDK版本:

V4.22V4.53V4.6

2、内核比较:

图1MDK4.22内核

图2MDK4.53内核

图3MDK4.6内核

由以上MDK内核比较看出,4.22和4.53的C编译器(C Compiler),汇编器(Assembler),链接/定位器(Linker/Locator),库文件基本一致,都是V4.1.0.xxx,相当于4.53是在4.22上的改进。而4.6的这些内核都已经升级到了V5.0.xx.x.xx,这说明较之以前的版本,其内核已经做了重大升级。

3、配色:

4.6沿用了4.53的版本,但较之4.22版本做了调整。

4、配置的C/C++选项卡:

由下图中的红框可见4.6的改进。

图4MDK4.22C/C++选项卡

图5MDK4.53C/C++选项卡

图6MDK4.6C/C++选项卡

5、编译效率

本人找了个一般的液晶程序,分别用这三个版本编译做了比较:由下面的截图可见,4.22的代码尺寸比后面的两个都稍大,说明后续改进的版本确实提高了编译效率。但这种优化改进是否对程序执行效果产生什么影响本人没有进一步测试,但就本程序看来没什么问题。

图7MDK4.22编译结果

图8MDK4.53编译结果

图9MDK4.6编译结果

6、器件支持与库资源

这里面是需要关心下的,即便是你在新版本中找到了你想要的芯片型号,也不意味着你能顺利将旧版本的程序移植到新版本。本人在测试STM32F103时就发现这一问题。我们首先来看看MDK各版本的ST意法半导体库发生了什么变化,见图10。由此可见,4.53比4.22支持的器件类型多了STM32F0xx 系列,而4.6又比4.53增加了STM32F30x/37x/W108xx三个系列。所以,如果选型的芯片是旧版本中没有的,那就得尝试用新版本的MDK了。但是在使用STM32F103从4.22移植到4.53和4.6时,却发生了编译无法通过的问题,发生的错误提示是“找不到相应的库文件”,相信这点很多朋友都遇到过,究其原因,是因为后两者的库文件发生了改变!见图11。对比发现,4.53和4.6的STM32F10x库竟然比4.22少了好多!这就是版本移植时编译失败的原因所在。所以,为了解决这个问题,要么,你将MDK 退回到较低的版本,如4.22,只要有你要的那款芯片;要么,你将4.53或4.6中缺少的库文件,从4.22中拷贝进去,这样就没问题了。另外还要注意一点,这三个版本中的重名文件在使用时也要小心,因为它们的版本不同!具体细节请打开相应的.h(还有一个启动文件startup_xxx.s)文件,看看开头的版本提示!这里不截图对比了。它们的差异也会导致程序移植时编译失败。

图10从左至右依次是MDK4.22,MDK4.53,MDK4.6

图11从左至右依次是MDK4.22,MDK4.53,MDK4.6

7、J-LINK驱动

这里是另一个需要注意的。升级MDK非常有可能同时需要升级你的J-Link固件,这样一来,如果你的是盗版的,很可能就会被发现,产生警告,接着MDK崩溃退出IDE。本人在测试时,原本4.22和4.53用着都没问题的J-Link,在换到4.6时就提示你升级固件,接着就悲剧了。请看图12。这时候不要以为

你的J-Link报废了,把MDK退回到4.53或4.22还是能用的。

图12克隆(盗版)J-Link被发现

本人推测认为,4.53之前的版本能用而4.6就禁用,归根到底还是内核问题,我们在比较内核时看到,4.53和4.22都是V4.1.0.xxx,即都是V4版本的,而4.6却是V5了,可能V5这个新内核同时更改了加密算法,因而旧的盗版J-Link就现出原形了。不过也不要紧,网上很多卖J-Link V8的,对新的V5也破解了(国人搞破解是一流的,呵呵),40块钱左右就能用,而我看了正版德国原厂的,竟然要2000以上!不过还是提倡用正版吧。

附录一:

在KEIL4环境下,如果有新华龙单片机的用户,可能会安装来自新华龙官方提供的KEIL4-C51-U-EC5驱动软件:“SiC8051F_uVision.exe”

安装完后,对KEIL-C51环境没有影响,但是对KEIL-ARM环境会造成影响:STM32库文件会丢失!当打开一个原来编译能通过的STM32工程文件,此时编译器会报错!

所以同时安装KEIL-C51and for ARM的朋友,千万要注意了!

可以尝试先安装C51,再安装新华龙驱动,最后安装ARM。

附录二:

keil中添加STC单片机

在keil中添加STC型号的方法

1.数据库替换法(STC官网方法):

说明:这个方法最简单,但缺点是在器件选型时,只能选择STC单片机,原来的单片机都没。

操作步骤:

先备份KEIL安装目录UV2(或者UV3/UV4)文件夹下面的UV2.CDB(或者UV3.CDB/UV4.CDB)文件,然后用STC官网提供的同名的CDB文件代替。

值得注意的是:没有UV4.CDB的话,可以将“UV2.CDB(或者UV3.CDB)”改名成“UV4.CDB”来使用。

2.新数据库添加法:

说明:另外增加一个单片机数据库,既可以选择STC单片机,又不影响原来数据库的使用。

操作步骤:

①下载用于keil的STC数据库更名为STC.CDB并拷贝到Keil/UV2目录下。(如果是Kile3则是UV3,Kile4则是UV4)

②打开Keil文件夹下的TOOLS.ini文件,在[UV2]下面(也就是[C51]上方)键入CDB0=UV2\STC.CDB ("STC"),然后保存退出即添加完毕。(如果是Kile3则是UV3,Kile4则是UV4)

使用:为目标设置选项时,点击Device页,在Database中选择“STC”。

新建工程时,在Select a CPU Date Base File中选择“STC”。

/**********************************************************************/

将下载的UV3.CDB重命名,命名为STC.CDB,然后复制到Keil 安装目录下UV3文件夹,这样就不会和原文件覆盖。

然后打开Keil安装目录下的TOOLS.INI文件,在

BOOK0=UV3\RELEASE_NOTES.HTM("uVision Release Notes")下面加入

CDB0=UV3\STC.CDB("STC CPU Data Base"),然后保存即可。

然后打开Keil uVision3,在新建的工程中,会出现一个数据库选择项

,在这里选择“STC CPU Data Base”即可。如果需要用AT89系列,选择“Generic CPU Data Base“即可。

经过这样的设置后,可以避免反复复制UV3.CDB文件到UV3文件中,为在不同工程中使用不同的元件提供了方便。

/**********************************************************************/ 3.原数据库添加法(未测试)来自互联网,对原作者表示感谢:

说明:直接在原数据库里面添加STC单片机,只添加自己需要的STC型号,简洁方便,既可以选择STC 单片机,又不影响原来数据库的使用。

操作步骤:

第1步:

第2步:

完成。

使用:

【添加STC15F104E的数据】

8051-based microcontroller with1T(1-clock)High-Speed Core,Dual DPTR,6I/O Lines,2 Timers/Counters,

4K bytes flash ROM,128bytes data RAM,

1K On-chip EEPROM,WDT

CPU=IRAM(0-0xFF)IROM(0-0x1FFF)CLOCK(45000000)MODP2

MON=S8051.DLL TP51.DLL("-p51")SIM=S8051.DLL DP51.DLL("-p51")

SFILE="LIB\STARTUP.A51"("Standard8051Strrtup Code")REGFILE=STC15F104E.H("STC")

↓将头文件STC15F104E.H放在C:\Keil\C51\INC\STC目录下(没有STC文件夹自建)。

注意:如果是REGFILE=STC15F104E.H,不用后面的("STC"),那头文件STC15F104E.H应该放在C:\Keil\C51\INC目录下。

【添加STC89C52RC的数据】

8051-based microcontroller,

Dual DPTR,32-36I/O Lines,3Timers/Counters,

8K bytes flash ROM,512bytes data RAM,

4K On-chip EEPROM,UART,WDT,ISP/IAP

CPU=IRAM(0-0xFF)XRAM(0-0xFF)IROM(0-0x1FFF)CLOCK(45000000)MODP2

MON=S8051.DLL TP51.DLL("-p51")SIM=S8051.DLL DP51.DLL("-p51")SFILE="LIB\STARTUP.A51" ("Standard8051Startup Code")REGFILE=STC89C52RC("STC")

【补充说明】关于数据库CDB文件,Kile4向下兼容,Kile4可以使用和编辑Kile2、Kile3的数据库CDB文件。

Kile2不向上兼容,Kile2无法使用Kile4的数据库CDB文件(未测试)。

Eclipse项目开发常用快捷键

在Java项目开发中,使用到的eclipse工具拥有很多快捷键,熟练使用这些快捷键可以是让码代码的速度得到相当的提升,下面是总结的一些常用的快捷键,供大家参考. (注:文中箭头对应键盘方向键,黄色为使用频率非常高的快捷键) Ctrl+Alt+↓向下复制当前行 Ctrl+Alt+↑向上复制当前行 (很多人这两个快捷键无效,主要两个原因造成: 1:与播放器快捷键冲突,如网易云,QQ播放器,解决办法:找到播放器设置快捷键 2:与集显快捷键冲突,解决步骤如下: 点击鼠标右键→选择→→ →将快捷键设置为禁用以后,重启eclipse即可生效) Alt+/ 快捷提示,如某个类中的方法,字段.( 1:打开Eclipse,在导航栏选择打开" Window -Preferences"。

2:在目录树上选择"Java-Editor-Content Assist",在右侧的"Auto-Activation"找到"Auto Activation triggers for java"选项。默认触发代码提示的是"."这个符号3: 在"Auto Activation triggers for java"选项中,将"."更 改:.abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ) Alt+↓移动当前行到下面一行 Alt+↑移动当前行到上面一行 Alt+←返回前一个编辑的页面 Alt+→到下一个编辑的页面 Alt+Shift+←选择上一个元素(根据鼠标光标位置),有时候选择复制一段代码可用 Alt+Shift+→选择下一个元素(同上) Alt+Enter快速显示当前文件的属性,如文件存放路径 Alt+Shift+S快速创建本类中的相关方法,如构造方法,实现或继承方法,get/set方法 Alt+Shift+W选中某个文件后,选择SystemExplorer可快速打开文件所在位置及其他相关信息(该快捷键仅支持高版本Eclipse,火星版本及以后) Ctrl+D 删除当前行 Ctrl+M当前窗口最大化 Ctrl+L定位到指定函数(也可直接点击编辑器右下角的SmartInsert) Ctrl+Q 定位到最后编辑的地方 Ctrl+F按下后,可输入查询关键字,查找该关键字在当前文件中的位置 Ctrl+K选中关键字,查找下一个关键字的位置 Ctrl+H打开查询窗口,可根据文件类型进行查找

KEIL51调试时一些的错误总结

KEIL51调试时一些的错误总结 (1)提示无M51文件 编译时候提示: F:\...\XX.M51 File has been changed outside the editor, reload ? ------ 解决方法: 重新生成项目,产生STARTUP.A51即可。 (2)L15重复调用 ***WARNING L15: MULTIPLE CALL TO SEGMENT SEGMENT: ?PR?SPI_RECEIVE_WORD?D_SPI CALLER1: ?PR?VSYNC_INTERRUPT?MAIN CALLER2: ?C_C51STARTUP 该警告表示连接器发现有一个函数可能会被主函数和一个中断服务程序(或者调用中断服务程序的函数)同时调用,或者同时被多个中断服务程序调用。 出现这种问题的原因之一是这个函数是不可重入性函数,当该函数运行时它可能会被一个中断打断,从而使得结果发生变化并可能会引起一些变量形式的冲突(即引起函数内一些数据的丢失,可重入性函数在任何时候都可以被ISR 打断,一段时间后又可以 运行,但是相应数据不会丢失)。 原因之二是用于局部变量和变量(暂且这样翻译,arguments,[自变量,变元一数值,用于确定程序或子程序的值])的内存区被其他函数的内存区所覆盖,如果该函数被中断,则它的内存区就会被使用,这将导致其他函数的内存冲突。 例如,第一个警告中函数WRITE_GMVLX1_REG 在D_GMVLX1.C 或者 D_GMVLX1.A51被定义,它被一个中断服务程序或者一个调用了中断服务程序的 函数调用了,调用它的函数是VSYNC_INTERRUPT,在MAIN.C中。 解决方法: 如果你确定两个函数决不会在同一时间执行(该函数被主程序调用并且中断被禁止),并且该函数不占用内存(假设只使用寄存器),则你可以完全忽略这种警告。 如果该函数占用了内存,则应该使用连接器(linker)OVERLAY指令将函数从覆盖分析(overlay analysis)中除去,例如: OVERLAY (?PR?_WRITE_GMVLX1_REG?D_GMVLX1 ! *) 上面的指令防止了该函数使用的内存区被其他函数覆盖。如果该函数中调用了其他函数,而这些被调用在程序中其他地方也被调用,你可能会需要也将这些函数排除在覆盖分析(overlay analysis)之外。这种OVERLAY指令能使编译器除去上述警告信息。 如果函数可以在其执行时被调用,则情况会变得更复杂一些。这时可以采用以下几种方法:

eclipse最全快捷键使用

eclipse快捷键及各种设置 2014-02-28 分类:Eclipse 1、提示键配置 一般默认情况下,Eclipse 的代码提示功能是比Microsoft Visual Studio的差很多的 ,主要是Eclipse本身有很多选项是默认关闭的,要开发者自己去手动配置。如果开发 者不清楚的话,就不知道Eclipse的代码提示功能一样能像Microsoft Visual Studio的 代码提示功能一样强大。 先举个简单的例子说明问题所在,例如在Eclipse代码里面,打个foreach,switch等 这些,是无法得到代码提示的(不信自己试试),其他的就更不用说了,而在Microsoft Visual Studio 里面是得到非常友好的代码提示的。实际上,Eclipsee代码里面的代码提示功能 默认的一般是点“.”,一般是有了点“.”,才会有代码提示。 原理:“Auto Activation triggers for java”这个选项就是指触发代码提示的的选项,把“.” 改成“.abcdefghijklmnopqrstuvwxyz(,”的意思,就是指遇到26个字母和.,(这些符号就触发 代码提示功能了。增强Eclipse 的代码提示功能,具体怎么样来配置? 下面开始说步骤: 1. 打开Eclipse ,然后“window”→“Preferences” 2. 选择“java”,展开,“Editor”,选择“Content Assist”。 3. 选择“Content Assist”,然后看到右边,右边的“Auto-Activation”下面的“Auto Activation triggers for java”这个选项。其实就是指触发代码提示的就是“.”这个符号. 4. “Auto Activation triggers for java”这个选项,在“.”后加abc字母,方便后面的查找修改。然后“apply”,点击“OK”。 5. 然后,任意选择个项目“File”→“Export”,在弹出的窗口中选择“Perferences”,点击“下一步”。 6. 选择导出文件路径,本人导出到桌面,输入“test”作为文件名,点击“保存”。 7. 在桌面找到刚在保存的文件“test.epf”,右键选择“用记事本打开”。 8. 可以看到很多配置Eclipse 的信息 9. 按“ctrl + F”快捷键,输入“.abc”,点击“查找下一个”。 10. 查找到“.abc”的配置信息. 11. 把“.abc”改成“.abcdefghijklmnopqrstuvwxyz(,”,保存,关闭“test.epf”。 12. 回到MyEclipse 界面,“File”→“Import”,在弹出的窗口中选择“Perferences”,点 击“下一步”,选择刚在已经修改的“test.epf”文件,点击“打开”,点击“Finish”。该步骤 和上面的导出步骤类似。 13. 最后当然是进行代码测试了。随便新建一个工程,新建一个类。在代码输入switch,foreach等

Keil C 编译器常见警告与错误信息

https://www.sodocs.net/doc/c75623680.html,/support/man/docs/c51/c51_c277.htm错误信息查询 Keil C 编译器常见警告与错误信息 error C132 :“****”not in formal parameter list 花了偶将近半个小时来查找错误,最终发现原来是在头文件里的一个函数声明时露了一个分号造成紧挨着在它下面声明的参数not in formal parameter list。 记在在这里,免得以后忘记了,同时也供大家分享。 下面是另外一些常见的错误提示: 1.第一种错误信息 ***WARNING L15: MULTIPLE CALL TO SEGMENT SEGMENT: ?PR?_WRITE_GMVLX1_REG?D_GMVLX1 CALLER1: ?PR?VSYNC_INTERRUPT?MAIN CALLER2: ?C_C51STARTUP ***WARNING L15: MULTIPLE CALL TO SEGMENT SEGMENT: ?PR?_SPI_SEND_WORD?D_SPI CALLER1: ?PR?VSYNC_INTERRUPT?MAIN CALLER2: ?C_C51STARTUP ***WARNING L15: MULTIPLE CALL TO SEGMENT SEGMENT: ?PR?SPI_RECEIVE_WORD?D_SPI CALLER1: ?PR?VSYNC_INTERRUPT?MAIN CALLER2: ?C_C51STARTUP - 该警告表示连接器发现有一个函数可能会被主函数和一个中断服务程序(或者调用中断服务程序的函数)同时调用,

eclipse快捷键大全

Ctrl+M 当前窗口最大化 Ctrl+F7 视窗口切换 Ctrl+F8 模式切换 Ctrl+F6 编辑窗口切换(手指张得太大不雅观啊) Ctrl+E 编辑窗口切换(这个比较文雅点:) ) Alt+← 前一个编辑的页面 Alt+→ 下一个编辑的页面 Ctrl+Alt+↓ 复制(增加)当前行到下一行 Ctrl+Alt+↑ 复制(增加)当前行到上一行 Alt+↓ 当前行和下面一行交互位置(用不着剪切了) Alt+↑ 当前行和上面一行交互位置 Ctrl+D 删除当前行 Alt+Enter 显示当前选择文件的属性 Shift+Enter 在当前行插入空行(下一行) Shift+Ctrl+Enter 在当前行插入空行(上一行) Ctrl+Q 定位到最后编辑的地方 Ctrl+L 定位在具体某行 Ctrl+/ 注释当前行(可多行),再按则取消注释 Ctrl+Shift+R 找文件 Ctrl+Shift+T 找类 Ctrl+K 选中的Word快速定位到下一个 Ctrl+Shift+K 选中的Word快速定位到上一个 Ctrl+Shift+U 选中后列出查询到的结果 Ctrl+/(小键盘) 折叠当前类中的所有代码 Ctrl+×(小键盘) 展开当前类中的所有代码 Ctrl+Shift+P 定位到对于的匹配符(如{},()) CTRL+SHIFT+X 切换字符的大小写(大写) CTRL+SHIFT+Y 切换字符的大小写(小写) Ctrl+1 当某行出错时或警告时,跳出帮助 Ctrl+Shift+F 格式排版 Alt+Shift+R 重命名(改量和类名时很方便) Alt+Shift+C 修改函数结 Alt+Shift+M 重构方法(选中要重构方法,再生成个新方法) Alt+Shift+Z 重构恢复 Ctrl+W 关闭当前窗口 Ctrl+Shift+F4 关闭所有打开的窗口 Ctrl+Shift+O :import相关类,同时若已经import的类,没有被用到,就删除。sysout->Ctrl+Space->System.out.println() Window->Preference->Workbench->Keys 有兴趣的可以自定义热键 编辑 作用域功能快捷键

Excel表格中常用快捷键大全81959

Excel表格中常用快捷键大全 一、关于处理工作表的快捷键总结 1、插入新工作表Shift+F11或Alt+Shift+F1 2、移动到工作簿中的下一张工作表Ctrl+PageDown 3、移动到工作簿中的上一张工作表Ctrl+PageUp 4、选定当前工作表和下一张工作表Shift+Ctrl+PageDown 5、取消选定多张工作表Ctrl+ PageDown 6、选定其他的工作表Ctrl+PageUp 7、选定当前工作表和上一张工作表Shift+Ctrl+PageUp 8、对当前工作表重命名Alt+O H R 9、移动或复制当前工作表Alt+E M 10、删除当前工作表Alt+E L 二、关于在工作表内移动和滚动的快捷键总结 1、向上、下、左或右移动一个单元格箭头键 2、移动到当前数据区域的边缘Ctrl+箭头键 3、移动到行首Home 4、移动到工作表的开头Ctrl+Home 5、移动到工作表的最后一个单元格,位于数据中的最右列的最下行Ctrl+End 6、向下移动一屏PageDown 7、向上移动一屏PageUp 8、向右移动一屏Alt+PageDown 9、向左移动一屏Alt+PageUp 10、切换到被拆分的工作表中的下一个窗格Ctrl+F6 11、切换到被拆分的工作表中的上一个窗格Shift+F6 12、滚动以显示活动单元格Ctrl+Backspace 13、弹出“定位”对话框F5 14、弹出“查找”对话框Shift+F5 15、查找下一个Shift+F4 16、在受保护的工作表上的非锁定单元格之间移动Tab 三、在选定区域内移动 1、在选定区域内从上往下移动Enter 2、在选定区域内从下往上移动Shift+Enter 3、在选定区域中从左向右移动。如果选定单列中的单元格,则向下移动Tab 4、在选定区域中从右向左移动。如果选定单列中的单元格,则向上移动Shift+Tab

KEIL常见编译错误大全

KEIL常见编译错误大全 【致命错误】 立即终止编译这些错误通常是命令行指定的无效选项的结果当编译器不 能访问一个特定的源包含文件时也产生致命错误 致命错误信息采用下面的格式 C51FATAL-ERROR– ACTION: LINE: ERROR: C51TERMIANTED. C51FATAL-ERROR– ACTION: FILE: ERROR: C51TERMIANTED. 下面说明Action和Error中可能的内容 Actions ALLOCATING MEMORY 编译器不能分配足够的存储区来编译指定的源文件. CREATING LIST-FILE/OBJECT-FILE/WORKFILE 编译器不能建立列表文件,OBJ文件,或工作文件这个错误的出现可能是磁盘满或写保护,或文件已存在和只读. GENERATING INTERMEDIATE CODE 源文件包含的一个函数太大,不能被编译器编译成虚拟代码.尝试把函数分小或重新编译. OPENING INPUT-FILE 编译器不能发现或打开所选的源或包含文件. PARSING INVOKE-/#PRAGMA-LINE 当在命令行检测到参数计算,或在一个#pragma中检测到参数计算,就产生这样的错误. PARSING SOURCE-FILE/ANALYZING DECLARATIONS 源文件包含太多的外部参考.减少源文件访问的外部变量和函数的数目. WRITING TO FILE

Eclipse快捷键 10个最有用的快捷键

Eclipse中10个最有用的快捷键组合 一个Eclipse骨灰级开发者总结了他认为最有用但又不太为人所知的快捷键组合。通过这些组合可以更加容易的浏览源代码,使得整体的开发效率和质量得到提升。 1. ctrl+shift+r:打开资源 这可能是所有快捷键组合中最省时间的了。这组快捷键可以让你打开你的工作区中任何一个文件,而你只需要按下文件名或mask名中的前几个字母,比如applic*.xml。美中不足的是这组快捷键并非在所有视图下都能用。 2. ctrl+o:快速outline 如果想要查看当前类的方法或某个特定方法,但又不想把代码拉上拉下,也不想使用查找功能的话,就用ctrl+o吧。它可以列出当前类中的所有方法及属性,你只需输入你想要查询的方法名,点击enter就能够直接跳转至你想去的位置。

3. ctrl+e:快速转换编辑器 这组快捷键将帮助你在打开的编辑器之间浏览。使用ctrl+page down或ctrl+page up可以浏览前后的选项卡,但是在很多文件打开的状态下,ctrl+e会更加有效率。 4. ctrl+2,L:为本地变量赋值

开发过程中,我常常先编写方法,如Calendar.getInstance(),然后通过ctrl+2快捷键将方法的计算结果赋值于一个本地变量之上。这样我节省了输入类名,变量名以及导入声明的时间。Ctrl+F的效果类似,不过效果是把方法的计算结果赋值于类中的域。 5. alt+shift+r:重命名 重命名属性及方法在几年前还是个很麻烦的事,需要大量使用搜索及替换,以至于代码变得零零散散的。今天的Java IDE提供源码处理功能,Eclipse也是一样。现在,变量和方法的重命名变得十分简单,你会习惯于在每次出现更好替代名称的时候都做一次重命名。要使用这个功能,将鼠标移动至属性名或方法名上,按下alt+shift+r,输入新名称并点击回车。就此完成。如果你重命名的是类中的一个属性,你可以点击alt+shift+r两次,这会呼叫出源码处理对话框,可以实现get及set方法的自动重命名。 6. alt+shift+l以及alt+shift+m:提取本地变量及方法 源码处理还包括从大块的代码中提取变量和方法的功能。比如,要从一个string创建一个常量,那么就选定文本并按下alt+shift+l即可。如果同一个string在同一类中的别处出现,它会被自动替换。方法提取也是个非常方便的功能。将大方法分解成较小的、充分定义的方法会极大的减少复杂度,并提升代码的可测试性。 7. shift+enter及ctrl+shift+enter Shift+enter在当前行之下创建一个空白行,与光标是否在行末无关。Ctrl+shift+enter则在当前行之前插入空白行。 8. Alt+方向键 这也是个节省时间的法宝。这个组合将当前行的内容往上或下移动。在try/catch部分,这个快捷方式尤其好使。 9. ctrl+m 大显示屏幕能够提高工作效率是大家都知道的。Ctrl+m是编辑器窗口最大化的快捷键。 10. ctrl+.及ctrl+1:下一个错误及快速修改 ctrl+.将光标移动至当前文件中的下一个报错处或警告处。这组快捷键我一般与ctrl+1一并使用,即修改建议的快捷键。新版Eclipse的修改建议做的很不错,可以帮你解决很多问题,如方法中的缺失参数,throw/catch exception,未执行的方法等等。

Excel常用快捷键大全(2016)

Excel常用快捷键大全(非常全面) 2016-09-16 18:02 关于处理工作表的快捷键总结 插入新工作表:Shift+F11或Alt+Shift+F1 移动到工作簿中的下一张工作表:Ctrl+PageDown 移动到工作簿中的上一张工作表:Ctrl+PageUp 选定当前工作表和下一张工作表:Shift+Ctrl+PageDown 取消选定多张工作表:Ctrl+ PageDown 选定其他的工作表:Ctrl+PageUp 选定当前工作表和上一张工作表:Shift+Ctrl+PageUp 对当前工作表重命名:Alt+O H R 移动或复制当前工作表:Alt+E M 删除当前工作表:Alt+E L 关于在工作表内移动和滚动的快捷键总结 向上、下、左或右移动一个单元格:箭头键 移动到当前数据区域的边缘:Ctrl+箭头键 移动到行首:Home 移动到工作表的开头:Ctrl+Home 移动到工作表的最后一个单元格,位于数据中的最右列的最下行:Ctrl+End 向下移动一屏:PageDown 向上移动一屏:PageUp 向右移动一屏:Alt+PageDown 向左移动一屏:Alt+PageUp 切换到被拆分的工作表中的下一个窗格:Ctrl+F6 切换到被拆分的工作表中的上一个窗格:Shift+F6 滚动以显示活动单元格:Ctrl+Backspace 弹出“定位”对话框:F5 弹出“查找”对话框:Shift+F5 查找下一个:Shift+F4 在受保护的工作表上的非锁定单元格之间移动:Tab 在选定区域内移动 在选定区域内从上往下移动:Enter 在选定区域内从下往上移动:Shift+Enter

Keil编译常见问题

Error: L6200E Error: L6200E: Symbol temp multiply defined (by and .在编译的时候出现了这个问题,但是检查不出来,希望各位大侠帮帮忙 什么变量你给付了两次值 你看看是不是那个外部变量你又给赋值了 申明,其他.c文件对应的.h文件中用extern引用 error: #20 error: #20: identifier "TIM2_IRQChannel" is undefined 谁能说说,哪里错了 你的固件库里的库文件没有添加进工程里面,所以出现未定义的情况。 TIM2_IRQChannel指定时器2的中断通道没有定义,其实在固件库对这些参数都有定义,宏定义代替了一串寄存器地址数据。需要将.C文件添加到工程文件中 warning: #1-D (7): warning: #1-D: last line of file ends without a newline 当使用keil编译时,弹出这样的警告信息:(7): warning: #1-D: last line of file ends without a newline 这个是由于在main函数的“}”后,没有加回车。 只要在main函数的“}”后加回车键,此警告信息即可消除。 error:#65 ...(27):error:#65:expected a ";"

分数送你了,问题在你回答之前已经解决了,头文件里的结构体定义里的最后一行没有加";" 如NB menu{..}; error:#1113: 折腾了大半天,才搞明白一个空操作的指令 先在网上查有的说是__asm{NOP;},从里调用,可犄角旮旯全找了,也没看到什么的文件。如果直接用,就出现error:#1113:InlineassemblernotpermittedwhengeneratingThumbcode 最后搜索这条错误,知道是因为__asm("指令");这种语法是内联汇编(inlineassembly)的语法。而RMDK下,内联汇编仅支持ARM汇编语言,不支持Thumb或者Thumb-2汇编语言;但内嵌汇编器支持Thumb和Thumb-2。 __asm放到一个单独的子函数再被调用就没问题了 如下: __asmvoidnop(void) { NOP } 然后在之后的C代码中调用该函数: voidmain() { ... nop(); ...? }

eclipse编程常用快捷键-提高编程效率

9 12 Eclipse中10个最有用的快捷键组合 一个Eclipse骨灰级开发者总结了他认为最有用但又不太为人所知的快捷键组合。通过这些组合可以更加容易的浏开发效率和质量得到提升。 1. ctrl+shift+r:打开资源 这可能是所有快捷键组合中最省时间的了。这组快捷键可以让你打开你的工作区中任何一个文件,而你只需要的前几个字母,比如applic*.xml。美中不足的是这组快捷键并非在所有视图下都能用。 2. ctrl+o:快速outline 如果想要查看当前类的方法或某个特定方法,但又不想把代码拉上拉下,也不想使用查找功能的话,就用ctr 类中的所有方法及属性,你只需输入你想要查询的方法名,点击enter就能够直接跳转至你想去的位置。

3. ctrl+e:快速转换编辑器 这组快捷键将帮助你在打开的编辑器之间浏览。使用ctrl+page down或ctrl+page up可以浏览前后的选项卡的状态下,ctrl+e会更加有效率。 4. ctrl+2,L:为本地变量赋值 开发过程中,我常常先编写方法,如Calendar.getInstance(),然后通过ctrl+2快捷键将方法的计算结果赋

这样我节省了输入类名,变量名以及导入声明的时间。Ctrl+F的效果类似,不过效果是把方法的计算结果赋值于类 5. alt+shift+r:重命名 重命名属性及方法在几年前还是个很麻烦的事,需要大量使用搜索及替换,以至于代码变得零零散散的。今天理功能,Eclipse也是一样。现在,变量和方法的重命名变得十分简单,你会习惯于在每次出现更好替代名称的时使用这个功能,将鼠标移动至属性名或方法名上,按下alt+shift+r,输入新名称并点击回车。就此完成。如果你属性,你可以点击alt+shift+r两次,这会呼叫出源码处理对话框,可以实现get及set方法的自动重命名。 6. alt+shift+l以及alt+shift+m:提取本地变量及方法 源码处理还包括从大块的代码中提取变量和方法的功能。比如,要从一个string创建一个常量,那么就选定文即可。如果同一个string在同一类中的别处出现,它会被自动替换。方法提取也是个非常方便的功能。将大方法义的方法会极大的减少复杂度,并提升代码的可测试性。 7. shift+enter及ctrl+shift+enter Shift+enter在当前行之下创建一个空白行,与光标是否在行末无关。Ctrl+shift+enter则在当前行之前插入 8. Alt+方向键 这也是个节省时间的法宝。这个组合将当前行的内容往上或下移动。在try/catch部分,这个快捷方式尤其好 9. ctrl+m 大显示屏幕能够提高工作效率是大家都知道的。Ctrl+m是编辑器窗口最大化的快捷键。 10. ctrl+.及ctrl+1:下一个错误及快速修改 ctrl+.将光标移动至当前文件中的下一个报错处或警告处。这组快捷键我一般与ctrl+1一并使用,即修改建议的修改建议做的很不错,可以帮你解决很多问题,如方法中的缺失参数,throw/catch exception,未执行的方法 Eclipse程序员要掌握的常用快捷键

Keil编程常见错误

uint i, j; uchar a = 0xfe; EA = 1; EX0 = 1;不能这样 EA = 1; EX0 = 1; uint i, j; uchar a = 0xfe; 否则出现外部中断.C(18): error C141: syntax error near 'unsigned' 外部中断.C(18): error C202: 'i': undefined identifier 外部中断.C(19): error C141: syntax error near 'unsigned' 外部中断.C(19): error C202: 'a': undefined identifier 外部中断.C(23): error C202: 'i': undefined identifier 外部中断.C(27): error C202: 'a': undefined identifier 外部中断.C(29): error C202: 'a': undefined identifier 外部中断.C(31): error C202: 'i': undefined identifier 外部中断.c - 8 Error(s), 0 Warning(s). 原因:顺序问题,keil中的顺序 外部中断和内部中断的区别是什么; 外部中断是在单片机的外面给单片机一个信号单片机收到这个信号开始中断这是外部中断 内部中断是通过软件把中断打开执行中断

error c236:‘——display’:different length of parameter lists参数列表的长度不同。 检查开始的函数声明和这定义的参数是否一致。 还有参数没说明类型 有很大的区别, 错误3 unreferenced local variable 是未使用定义的变量,就是你定义了但是没有使用。 错误4 syntax error语法错误。 电平触发方式是按照电平的高或者低来触发,所以用的时候,必须在发生触发事件后立即将电平拉到非触发电平上,如果不这样做的话,会导致程序一直在触发事件程序入口处,而不会执行其他地方的程序。所以一般比较少用。 边沿触发方式是按照(上或下)边沿触发事件,由于触发的条件是边沿(上或下),所以即使在触发事件后,保存原来的电平都没有关系,不会一直在触发的,一般都用这种方式。 错误5 #define uchar unsigned char 不能写成 #define unsigned char uchar 否则出现会出现很多错误 错误6 不能这样定义字符数组 int a = “wwwsad”只能用char 错误7 error C244: 'table':can't initialize, bad type or class 。意思是错误的或者坏的类

excel表中常用符号快捷键

以下快捷键的使用方法是:先按住Alt键不放,然后依次分别按下小键盘上的数字键,最后松开Alt键,即可自动输入。 AIt 215 功能:输入×乘号 AIt 41420 功能:输入√打勾 AIt 41409 功能:输入×打叉 Alt 41446 功能:输入℃摄氏度 Alt 247 功能:输入÷除号 Alt 128 功能:输入欧元符号 Alt 137 功能:输入千分号? Alt 153 功能:输入商标(tm) Alt 165 功能:输入人民币¥ Alt 174 功能:输入商标(r) Alt 177 功能:输入正负符号± Alt 178 功能:设置上标2 Alt 179 功能:设置上标3 Alt 185 功能:输入上标1 Alt 186 功能:输入上标o Alt 188 功能:输入1/4 Alt 189 功能:输入1/2 Alt 190 功能:输入3/4 EXCEL中最常用的的快捷键 EXCEL中最常用的的快捷键

Ctrl+shift加方向键 按所指方向选取直到非空格的所有项。 Ctrl+D 在所选范围内,复制最上一栏的公式(效果于用鼠标拖动单格左下角的黑十字架) 这两个热键是我在EXCEL中最常用的。如大家还有觉得好用的请跟帖 Ctrl+Home快捷键 是强迫回到最前一个单元格 Ctrl+PgDn快捷键 到下一个工作表 Ctrl+PgUP快捷键 到上一个工作表。 按F4快捷键 是切换相对值为绝对值,若原公式为“= A1”,按第一次F4快捷键变为“=$A?” ,按第二次F4快捷键变为“=A?”,按第三次F4快捷键变为“=$A1”。 取消上一次操作 CTRL+Z 快速输入日期(=today()) CTRL+; 快速弹出单元格格式设置窗口 CTRL+1

java-Eclipse常用快捷键(常用)

下面几个是小弟在Java中常用到的快捷键,如果那位大哥有更好的常用快捷键应用,我们可以共同来完善此篇博文!!!请多支持 1、ctrl+shift+f自动对齐格式 2、alt+shift+s选择generate geter and seter 3、ctrl+f在全局进行常找并替换 4、alt+/内容辅助(代码提示) 5、ctrl+t列出所有实现此接口的类 6、ctrl+d删除当前行 7、ctrl+/注释当前行,再按则取消注释 8、F3查看源代码 1;解决sql注入的问题 2。多次编译sql语句,导致缓冲区益出 3,效率问题 //带参数数据操作一般使用preparedStatement ctrl+shift+f格式化代码 ctrl+shift+f格式化代码 把源代码与程序关联起来方法: 1:点击架包,再点attach sourch 2:右击架包,选——properties -------Eclipse快捷键大全(转载) Ctrl+1快速修复(最经典的快捷键,就不用多说了) Ctrl+D:删除当前行 Ctrl+Alt+↓复制当前行到下一行(复制增加)

Ctrl+Alt+↑复制当前行到上一行(复制增加) Alt+↓当前行和下面一行交互位置(特别实用,可以省去先剪切,再粘贴了) Alt+↑当前行和上面一行交互位置(同上) Alt+←前一个编辑的页面 Alt+→下一个编辑的页面(当然是针对上面那条来说了) Alt+Enter显示当前选择资源(工程,or文件or文件)的属性 Shift+Enter在当前行的下一行插入空行(这时鼠标可以在当前行的任一位置,不一定是最后) Shift+Ctrl+Enter在当前行插入空行(原理同上条) Ctrl+Q定位到最后编辑的地方 Ctrl+L定位在某行(对于程序超过100的人就有福音了) Ctrl+M最大化当前的Edit或View(再按则反之) Ctrl+/注释当前行,再按则取消注释 Ctrl+O快速显示OutLine Ctrl+T快速显示当前类的继承结构 Ctrl+W关闭当前Editer Ctrl+K参照选中的Word快速定位到下一个 Ctrl+E快速显示当前Editer的下拉列表(如果当前页面没有显示的用黑体表示) Ctrl+/(小键盘)折叠当前类中的所有代码 Ctrl+×(小键盘)展开当前类中的所有代码 Ctrl+Space代码助手完成一些代码的插入(但一般和输入法有冲突,可以修改输入法的热键,也可以暂用Alt+/来代替) Ctrl+Shift+E显示管理当前打开的所有的View的管理器(可以选择关闭,激活等操作) Ctrl+J正向增量查找(按下Ctrl+J后,你所输入的每个字母编辑器都提供快速匹配定位到某个单词,如果没有,则在stutes line中显示没有找到了,查一个单词时,特别实用,这个功能Idea两年前就有了) Ctrl+Shift+J反向增量查找(和上条相同,只不过是从后往前查) Ctrl+Shift+F4关闭所有打开的Editer Ctrl+Shift+X把当前选中的文本全部变味小写 Ctrl+Shift+Y把当前选中的文本全部变为小写 Ctrl+Shift+F格式化当前代码 Ctrl+Shift+P定位到对于的匹配符(譬如{})(从前面定位后面时,光标要在匹配符里面,后面到前面,则反之) 下面的快捷键是重构里面常用的,本人就自己喜欢且常用的整理一下(注:一般重构的快捷键都是Alt+Shift开头的了) Alt+Shift+R重命名(是我自己最爱用的一个了,尤其是变量和类的Rename,比手工方法能节省很多劳动力) Alt+Shift+M抽取方法(这是重构里面最常用的方法之一了,尤其是对一大堆泥团代码有用) Alt+Shift+C修改函数结构(比较实用,有N个函数调用了这个方法,修改一次搞定) Alt+Shift+L抽取本地变量(可以直接把一些魔法数字和字符串抽取成一个变量,尤其是多处调用的时候) Alt+Shift+F把Class中的local变量变为field变量(比较实用的功能) Alt+Shift+I合并变量(可能这样说有点不妥Inline) Alt+Shift+V移动函数和变量(不怎么常用)

keil c语言编程常见错误分析要点

1. Warning 280:’i’:unreferenced local variable 说明局部变量i 在函数中未作任何的存取操作解决方法消除函数中i 变量的宣告及即定义的参数在程序中并未调用 2 Warning 206:’Music3’:missing function-prototype 说明Music3( )函数未作宣告或未作外部宣告所以无法给其他函数调用 解决方法将叙述void Music3(void)写在程序的最前端作宣告如果是其他文件的函数则要写成extern void Music3(void),即作外部宣告 3Error:318:can’t open file ‘beep.h’ 说明在编译C:\8051\MANN.C 程序过程中由于main.c 用了指令#i nclude “beep.h”,但却找不到所致解决方法编写一个beep.h 的包含档并存入到c:\8051 的工作目录中 4 Error 237:’LedOn’:function already has a body 说明LedOn( )函数名称重复定义即有两个以上一样的函数名称 解决方法修正其中的一个函数名称使得函数名称都是独立的 5 ***WARNING 16:UNCALLED SEGMENT,IGNORED FOR OVERLAY PROCESS SEGMENT: ?PR?_DELAYX1MS?DELAY 说明DelayX1ms( )函数未被其它函数调用也会占用程序记忆体空间

解决方法去掉DelayX1ms( )函数或利用条件编译#if …..#endif,可保留该函数并不编译 6 ***WARNING 6 :XDATA SPACE MEMORY OVERLAP FROM : 0025H TO: 0025H 说明外部资料ROM 的0025H 重复定义地址 解决方法外部资料ROM 的定义如下Pdata unsigned char XFR_ADC _at_0x25 其中XFR_ADC 变量的名称为0x25,请检查是否有其它的变量名称也是定义在0x25 处并修正它 7 WARNING 206:’DelayX1ms’: missing function-prototype C:\8051\INPUT.C Error 267 :’DelayX1ms ‘:requires ANSI-style prototype C:\8051\INPUT.C 说明程序中有调用DelayX1ms 函数但该函数没定义即未编写程序内容或函数已定义但未作宣告 解决方法编写DelayX1ms 的内容编写完后也要作宣告或作外部宣告可在delay.h 的包含档宣告成外部以便其它函数调用 8 ***WARNING 1:UNRESOLVED EXTERNAL SYMBOL SYMBOL:MUSIC3

Eclipse中最常用的快捷键

Eclipse中最常用的快捷键 对eclipse熟悉的朋友一定对它的快捷键很有感触.很多,但常用的一般就10个左右.根据在项目中的实践,现总结如下,算是对一些不太熟悉的朋友的一点小帮助. Ctrl + Shift + O :引入及管理imports语句 Ctrl + Shift + T : 打开Open Type 查找类文件 Ctrl + Shift + F4 : 关闭所在打开的窗口 Ctrl + O : Open declarations Ctrl + E : 打开编辑器(切换窗口) Ctrl + / : 注释本行 Alt + Shift + R : 重命名 Alt + Shift + L : 抽取本地变量 Alt + Shift + M : 抽取方法 F3 : Open Declaration 以下为网友添加的内容: by sitinspring Ctrl + D : 删除本行 Ctrl + SHIFT + F : 整形 by Gandi Feng Ctrl + Alt + ↓(↑) : 向下(上)复制本行 Alt + ↓(↑) : 向下(上)移动本行 Alt + . : 输出提示 注:个人认为此快捷键用处最大,(1)在java类中,要输出main方法,只要输入main 然后用此快捷键按回车即可;要输出System.out.println(),你只需输入syso然后用此快捷键按回车即可;再比如你要覆盖父类的toString()方法,你只需输入to然后用此快捷键按回车;再比如你要用一个没有import的类(比如Calendar),你只需输入Ca然后用此快捷键即可用上下键选择;再比如你要生成某个field的get,set方法,你只需输入get然后用此快捷键生成(默认为public);再比如...(2)在jsp页面中可用此提示输入标签(标签内提示标签属性)。(3)在xml中也可用此快捷键。 by Gandi Feng Ctrl + S : 保存文件。 其它还有Ctrl + A、Z 、X、C、V;Shift + →;Shift + ←;一并列在这里,便于大家总结查询。 by 月芽儿 alt+shift+j给函数添加doc注释

Excel表格常用快捷键大全

Excel 表格常用快捷键大全Excel 中处理工作表的快捷键 插入新工作表Shift+F11 或Alt+Shift+F1 移动到工作簿中的下一张工作表Ctrl+PageDown 移动到工作簿中的上一张工作表Ctrl+PageUp 选定当前工作表和下一张工作表Shift+Ctrl+PageDow n 取消选定多张工作表Ctrl+ PageDown 选定其他的工作表Ctrl+PageUp 选定当前工作表和上一张工作表Shift+Ctrl+PageUp 对当前工作表重命名Alt+O H R 移动或复制当前工作表Alt+E M 删除当前工作表Alt+E L Excel 工作表内移动和滚动的快捷键 向上、下、左或右移动一个单元格箭头键移动到当前数据区域的边缘Ctrl+ 箭头键 移动到行首Home 移动到工作表的开头Ctrl+Home 移动到工作表的最后一个单元格,位于数 据中的最 Ctrl+End 右列的最下行 向下移动一屏PageDown 向上移动一屏PageUp 向右移动一屏Alt+PageDown 向左移动一屏Alt+PageUp 切换到被拆分的工作表中的下一个窗格Ctrl+F6 切换到被拆分的工作表中的上一个窗格Shift+F6滚动以显示活动单元格Ctrl+Backspace 弹出“定位”对话框F5 弹出“查找”对话框Shift+F5 查找下一个Shift+F4 在受保护的工作表上的非锁定单元格之间 移动Tab Excel 中在选定区域内移动的快捷键 在选定区域内从上往下移动Enter 在选定区域内从下往上移动Shift+Enter 在选定区域中从左向右移动。如果选定单

keil常见错误及解决办法

查看文章 【转】 KEIL C编译器常见警告与错误信息的解决办法 2010-09-03 16:21 转载自朝阳暮鼓 最终编辑朝阳暮鼓 KEIL C编译器常见警告与错误信息的解决办法 1. Warning 280:’i’:unreferenced local variab le 说明局部变量i 在函数中未作任何的存取操作 解决方法消除函数中i 变量的宣告 2 Warning 206:’Music3’:missing function-prototype 说明Music3( )函数未作宣告或未作外部宣告所以无法给其他函数调用 解决方法将叙述void Music3(void)写在程序的最前端作宣告如果是其他文件的函数 则要写成extern void Music3(void),即作外部宣告 3 Compling :C:\8051\MANN.C Error:318:can’t open file ‘beep.h’ 说明在编译 C:\8051\MANN.C 程序过程中由于main.c 用了指令#include “beep.h”,但却找不到所致 解决方法编写一个beep.h 的包含档并存入到c:\8051 的工作目录中 4 Compling:C:\8051\LED.C Error 237:’LedOn’:function already has a body 说明LedOn( )函数名称重复定义即有两个以上一样的函数名称 解决方法修正其中的一个函数名称使得函数名称都是独立的 5 ***WARNING 16:UNCALLED SEGMENT,IGNORED FOR OVERLAY PROCESS SEGMENT: ?PR?_DELAYX1MS?DELAY 说明DelayX1ms( )函数未被其它函数调用也会占用程序记忆体空间 解决方法去掉 DelayX1ms( )函数或利用条件编译#if …..#endif,可保留该函数并不编译 6 ***WARNING 6 :XDATA SPACE MEMORY OVERLAP FROM : 0025H TO: 0025H 说明外部资料ROM 的0025H 重复定义地址 解决方法外部资料ROM 的定义如下 Pdata unsigned char XFR_ADC _at_0x25 其中XFR_ADC 变量的名称为0x25,请检查是 否有其它的变量名称也是定义在0x25 处并修正它

相关主题