文档库 最新最全的文档下载
当前位置:文档库 › Keil 51常用见警告及解决方法

Keil 51常用见警告及解决方法

Keil 51常用见警告及解决方法
Keil 51常用见警告及解决方法

Keil 51常用见警告及解决方法

WARNING L16: UNCALLED SEGMENT, IGNORED FOR OVERLAY PROCESS

子函数没有被调用,

void main拼错了。。。拼成mian了也会出现以上警告

warning C276:constant in condition expression

warning C316: unterminated conditionals

你用了条件编译#ifndef而忘记写#endif。因为他们本来就是配套的。有前者必有后者。不能丢掉其中任何一个。就像你写C语句,你不会写了 int i 而不能忘记写 " ; " 。总之,出现上述问题。先看看整个C文件中是否出现上述错误。或整个工程中自己做的头文件中。

***WARNING 1:UNRESOLVED EXTERNAL SYMBOL

SYMBOL:MUSIC3

MODULE:C:8051MUSIC.OBJ(MUSIC)

***WARNING 2:REFERENCE MADE TO UNRESOLVED EXTERNAL

SYMBOL:MUSIC3

MODULE:C:8051MUSIC.OBJ(MUSIC)

ADDRESS:0018H

说明程序中有调用MUSIC 函数但未将该函数的含扩档C 加入到工程档

Prj 作编译和连接。

解决方法设MUSIC3 函数在MUSIC C 里将MUSIC C 添加到工程文件中去。*** WARNING L15: MULTIPLE CALL TO EGMENT

这个问题必须注意,可能引起程序冲突,假设你用于自动化领域,则可能导致信号产生尖峰。产生这一警告的一个根源是:你在主循环里调用了一个函数(如aaa),而在中断服务函数里,你用调用了这个函数(如aaa)。这样当主循环运行到该函数中是,一旦产生中断,则在中断里又再次调用该函数!这时,很可能出错!避免这种情况的方法很多:如,在进中断的时候置需调用该函数的标志,而在主循环中调用该函数- 0 Error(s) 一般我们都不去管多少个Warning(s).了,一般这样程序基本都能运行,但是其实仔细想想,这里还是有问题的,否则编译器没事吃饱了撑得,报什么警告啊~~~其实这个问题应该是引起注意的,有可能引起程序冲突,但是一般时候程序运行不会有问题,但是如果出来问题,那将会是很讨厌的问题.

分析一下产生这一警告的一个根源是:例如在主循环里调用了一个函数,而在中断服务中,你又一次调用了同样的函数。这样当主循环运行到该函数中时,一旦产生中断,则在中断里又再次调用该函数!而使得该子函数发生了重入,这时,经管概率很低,但是很可能出错!这样,编译器就给出了警告!告诉你*** WARNING L15: MULTIPLE CALL TO SEGMENT ,表达的意思是发生了重入!字面意思自己理解去吧~~~

想要避免这种情况的方法

一、用reentrant使函数重入

关于reentrant的说明:

1,重入函数不能传递bit类型的参数和变量;

2,重入函数建立的是模拟堆栈区,所以不使用一般函数位于存储模式默认空间的可覆盖式堆栈,而是在同一空间从顶端另行分配一个非覆盖式的重入堆栈。

small 默认空间是data;

compact 默认空间是pdata;

largr 默认空间是xdata;

3,由于要保存参数和局部变量,所以会消耗很大的栈空间;尽量少用这种模式;

4、在同一程序中可以定义和使用不同存储器模式的重入函数,任意模式的重入函数不能调用不同存储器模式的重入函数,但可以调用普通函数。

5、实际参数可以传递给间接调用的重入函数。无重入属性的间接调用函数不能包含调用参数。

二、如果空间多的话,可以定义两个同功能的函数,分别在中断和中断外调用

别的方法没研究出来,嘿嘿~~~对了我建议用第二种方法好点,第一种有些限制,不爽~~

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指令能使编译器除去上述警告信息。 如果函数可以在其执行时被调用,则情况会变得更复杂一些。这时可以采用以下几种方法:

MHDD使用方法以及图文教程

MHDD使用方法以及图文教程(附带MHDD4.6光盘版和DOS版下载) MHDD软件简介 MHDD 是一款由俄罗斯人所开发的免费硬盘实体扫描维护程序,比起一般的硬盘表层扫描,MHDD 有相当令人激赏的扫描速度,让使用者不再需要花费数个小时来除错,只需几十分钟,一颗 80G 大小的硬盘就可以扫瞄完成,且 MHDD 还能够帮使用者修复坏轨,让使用者能够继续延续该硬盘的生命余光。此外, MHDD 还能够对硬盘进行低阶清除的动作,让想要卖掉硬盘的你不必担心硬盘中的数据被接手的买家回复盗用的困扰喔!官方所提供的 MHDD 可分为磁盘版与光盘版两种,如果使用者需要光盘版的话,要用刻录机烧录成光盘后使用。 简洁教程:(MHDD详细图文教程地址 https://www.wendangku.net/doc/f95858354.html,/thread-1161-1-1.html) 1、进入MHDD后,按shift+F3扫描端口上的硬盘,制作的这个光盘版启动后自动扫描硬盘; 2、选择要检测硬盘的对应序号并回车; 3、按一下F4进入扫描设置,再按一下F4开始扫描。默认的只是扫描不修复. 4、扫描完毕之后,在/MHDD/LOG下有个MHDD.LOG,是扫描生成的日志文件。在光盘里,已经集成https://www.wendangku.net/doc/f95858354.html,在/MHDD目录里面,可以输入EDIT打开文本编辑器,然后定位到/MHDD/LOG/MHDD.LOG,查看扫描结果,并采取下一步措施; 5、如果在按下F4没有反应的时候,可以从新光盘启动,运行一次/MHDD目录下的FBDISK,按ESC退出返回到DOS再输入MHDD,启动MHDD 4.6,这时候MHDD就能正常扫描了,这应该是软件的一个BUG; 6、在MHDD里输入man en all可以查看详细的帮助,输入help只是简短的帮助。《MHDD》工具使用详解与命令解释 1、MHDD是俄罗斯Maysoft公司出品的专业硬盘工具软件,具有很多其他硬盘工具软件所无法比拟的强大功能。 2、MHDD无论以CHS还是以LBA模式,都可以访问到128G的超大容量硬盘(可访问的扇区范围从512到137438953472),即使你用的是286电脑,无需BIOS支持,也无需任何中断支持; 3、MHDD最好在纯DOS环境下运行;中国硬盘基地网 https://www.wendangku.net/doc/f95858354.html, 4、MHDD可以不依赖于主板BIOS直接访问IDE口,但要注意不要使用原装Intel品牌主板; 5、不要在要检测的硬盘中运行MHDD;中国硬盘基地网 https://www.wendangku.net/doc/f95858354.html, 6、MDD在运行时需要记录数据,因此不能在被写保护了的存储设备中运行(比如写保护的软盘、光盘等); MHDD命令详解 EXIT(热键Alt+X):退出到DOS。 ID:硬盘检测,包括硬盘容量、磁头数、扇区数、SN序列号、Firmware固件版本号、LBA 数值、支持的DMA级别、是否支持HPA、是否支持AAM、SMART开关状态、安全模式级别及

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

https://www.wendangku.net/doc/f95858354.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 - 该警告表示连接器发现有一个函数可能会被主函数和一个中断服务程序(或者调用中断服务程序的函数)同时调用,

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

GHOST使用教程(图解

GHOST使用教程(图解)人人都可“拥有”4GHz的CPU **** 本内容跟帖回复才可浏览***** 河北的刘宗元朋友打电话告诉董师傅,他在查看朋友电脑的系统属性时,发现系统属性里显示这台电脑采用的是Intel的4GHz的P4 CPU(图1)。他很是好奇,要知道去年因4GHz P4 CPU难产,Intel的首席执行官贝瑞特曾当众下跪祈求原谅。 董师傅自然也不相信Intel真的出了4GHz的P4 CPU,不过对这个显示结果还是非常感兴趣,经过一番摸索,发现只要略施小计,我们每一个人都可以“拥有”4GHz的P4 CPU。你也想有这样一颗“心”?别着急,且听师傅慢慢道来。 都是sysdm.cpl文件“惹的祸” 知道了问题的关键,下面要做的就是修改信息了。 首先将C:WindowsSystem32文件夹下的sysdm.cpl文件复制一份出来,然后用资源编辑工具EXESCOPE打开复制出的sysdm.cpl文件,展开“资源→对话框→101”分支。在右侧一共有9个“Link Window”。除了第4、5个外,把另外七个的“可见”属性去掉(即去掉右侧“可见”前的钩),目的是在检测系统属性时只显示第4、5个的内容。 选中第4个“Link window”,在“标题”栏输入文字“Intel(R) Pentium4(R)处理器”;在第5个“Link window”的“标题”栏中输入“4 GHz,2048 MB 的内存”等信息(连内存信息也一并改了。数字可随意输入,但不可过长,否则显示效果较别扭);再将第4个“Link window”的“Y”坐标值改为“149”,将第5个的调整为“170”,以占据原来第1、2个“Link Window”的位置。 修改好后保存该文件,接下来只要用该文件替换原始文件即可。不过,在替换过程中,董师傅又遇到了一个新问题: 文件保护功能会“作祟” 董师傅使用的是Windows XP+SP2系统,要把修改后的sysdm.cpl文件复制到C:WindowsSystem32中替换原文件有些麻烦——SP2强大的文件保护功能会自动还原原始文件。 师傅我并不想禁用文件保护功能,所以借助文件替换工具Replacer解决了这个问题。 将下载回来的文件解压到任一文件夹,双击“replace.cmd”出现命令提示符窗口,将 C:WindowsSystem32sysdm.cpl文件拖到其中,回车;再将修改过的sysdm.cpl文件拖入其中并回车,输入“Y”后按回车,这样就能替换掉系统文件了(在弹出的Windows文件保护时请点“取消”)。 至此,董师傅所想要的4GHz的P4 CPU终于“出现”!心动了吧?那就赶快动手吧。 以上软件下面有得下载 资源编辑工具EXESCOPE 文件替换工具Replacer 一、什么是Ghost? Ghost(幽灵)软件是美国赛门铁克公司推出的一款出色的硬盘备份还原工具,可以实现FAT16、FAT32、NTFS、OS2等多种硬盘分区格式的分区及硬盘的备份还原。俗称克隆软件。 1、特点:既然称之为克隆软件,说明其Ghost的备份还原是以硬盘的扇区为单位进行的,也就是说可以将一个硬盘上的物理信息完整复制,而不仅仅是数据的简单复制;克隆人只能克隆躯体,但这个Ghost却能克隆系统中所有的东东,包

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(); ...? }

sniffer使用及图解教程

sniffer使用及图解 注:sniffer使用及图解sniffer pro 汉化注册版下载 黑白影院高清免费在线电影聚集网无聚集无生活,聚集网络经典资源下载 sniffer软件的安装还是比较简单的,我们只需要按照常规安装方法进行即可。需要说明的是: 在选择sniffer pro的安装目录时,默认是安装在c:\program files\nai\snifferNT目录中,我们可以通过旁边的Browse按钮修改路径,不过为了更好的使用还是建议各位用默认路径进行安装。 在注册用户时,随便输入注册信息即可,不过EMAIL一定要符合规范,需要带“@”。(如图1) 图1 点击放大 注册诸多数据后我们就来到设置网络连接状况了,一般对于企业用户只要不是通过“代理服务器”上网的都可以选择第一项——direct connection to the internet。(如图2) 图2 接下来才是真正的复制sniffer pro必需文件到本地硬盘,完成所有操作后出现setup complete提示,我们点finish按钮完成安装工作。 由于我们在使用sniffer pro时需要将网卡的监听模式切换为混杂,所以不重新启动计算机是无法实现切换功能的,因此在安装的最后,软件会提示重新启动计算机,我们按照提示操作即可。(如图3) 重新启动计算机后我们可以通过sniffer pro来监测网络中的数据包。我们通过“开始->所有程序->sniffer pro->sniffer”来启动该程序。 第一步:默认情况下sniffer pro会自动选择你的网卡进行监听,不过如果不能自动选择或者本地计算机有多个网卡的话,就需要我们手工指定网卡了。方法是通过软件的file菜单下的select settings来完成。 第二步:在settings窗口中我们选择准备监听的那块网卡,记得要把右下角的“LOG ON”前打上对勾才能生效,最后点“确定”按钮即可。(如图4) 图4 第三步:选择完毕后我们就进入了网卡监听模式,这种模式下将监视本机网卡流量和错误数据包的情况。首先我们能看到的是三个类似汽车仪表的图象,从左到右依次为“Utiliz ation%网络使用率”,“Packets/s 数据包传输率”,“Error/s错误数据情况”。其中红色区域是警戒区域,如果发现有指针到了红色区域我们就该引起一定的重视了,说明网络线路不好或者网络使用压力负荷太大。一般我们浏览网页的情况和我图11中显示的类似,使用率不高,传输情况也是9到30个数据包每秒,错误数基本没有。(如图5) 图5

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 。意思是错误的或者坏的类

(完整版)电脑简单使用说明书初学电脑实用教程

认知电脑 电脑的主要设备包括: 显示器 显示器开关,用来打开显示器,通常显示器打开状态下为开关指示灯(位于显示器开关旁边或显示器后方)亮着,显示器关闭状态开关指示灯则为熄灭。 电 脑 显示器 音箱 键盘 鼠标 主机 输出设备 输入设备 显示器开关

主机开关 主机重启开关 电脑主机如上图示主要有2个开关按钮,主机开关(通常为个头较大位于上方的开关按钮)用于作为电脑主机的开关,主机重启按钮(通常为个头较小位于较下方的开关按钮)用于作为电脑出现死机故障无法正常关机或重启的开关按钮,通常也叫短路开关。 键盘 键盘,电脑的重要输入设备之一,用于信息和操作录入的重要输入设备。

鼠标也作为电脑的重要输入设备,如上图所示,通常的鼠标主要有左键,滚动滑轮键, 右键这三个功能键组成。左右键的操作方式主要有:单击,双击,按住不放拖动鼠标等操作。 左键单击的作用:选中、连接、按钮的按入(像我们通常按电视遥控器按钮一样,打开了按钮显示的对应功能)。 左键双击的作用:打开windows 桌面的功能图标对应的功能。 注:通常2次敲击左键的间隔要尽可能小点,要快,否则电脑只认为你是做了2 次左键单击事件(只是对图标进行了2次选中操作),而不认为你是做1次左键双击事件,就不能达到你想要的打开这个功能的操作。如果出现上述的点击不够快的情况,只需重复回一次正确的双击操作就可以打开对应你所点击的图标功能。 右键单击的作用:打开你所点击的地方的高级菜单(高级功能菜单中有对你所点击的地方的大部分功能操作选项,通常有打开、改名即重命名、复制、删除、属性设置等功能)。右键单击弹出高级菜单后,将光标移进高级功能菜单里面,可以看见光标所在的菜单选项背景色改变为蓝色,这时你只要左键单击一下就可以进入这项功能。 注:如果失误右键点击弹出了高级菜单,只需将光标移到空白的地方(没文字,没图标,没按钮的地方)左键单击一次就可以退出并关闭高级菜单。 右键双击的作用:通常不使用右键双击,所以在不做详细介绍。 滚动滑轮的作用:通常文档或网页显示器不能一屏显示完,所以通常有部分在下方,这时我们想看下面的内容,就要将下面的内容拖上来看,这时就要使用滚动滑轮了。 滚轮向下滑动:页面向上拖动可以看到下面的内容。 滚轮向上滑动:页面向下拖动可以看到上面的内容。 左键 右键 滚动滑轮

GHOST使用教程(图解)

GHOST使用教程(图解) 收集者:小路发布于:https://www.wendangku.net/doc/f95858354.html, 发布时间:2007- 5-6 12:50:48 发布人:小路 减小字体增大字体 一、什么是Ghost? Ghost(幽灵)软件是美国赛门铁克公司推出的一款出色的硬盘备份还原工具,可以实现FAT16、FAT32、NTFS、O S2等多种硬盘分区格式的分区及硬盘的备份还原。俗称克隆软件。 1、特点:既然称之为克隆软件,说明其Ghost的备份还原是以硬盘的扇区为单位进行的,也就是说可以将一个硬盘上的物理信息完整复制,而不仅仅是数据的简单复制;克隆人只能克隆躯体,但这个Ghost却能克隆系统中所有的东东,包括声音动画图像,连磁盘碎片都可以帮你复制,比克隆人还厉害哟:)。Ghost支持将分区或硬盘直接备份到一个扩展名为.gho的文件里(赛门铁克把这种文件称为镜像文件),也支持直接备份到另一个分区或硬盘里。 2、运行ghost:至今为止,ghost只支持Dos的运行环境,这不能说不是一种遗憾:(。我们通常把ghost文件复制到启动软盘(U盘)里,也可将其刻录进启动光盘,用启动盘进入Dos环境后,在提示符下输入ghost,回车即可

运行ghost,首先出现的是关于界面,如图 按任意键进入ghost操作界面,出现ghost菜单,主菜单共有4项,从下至上分别为Quit(退出)、Options(选项)、Peer to Peer(点对对,主要用于网络中)、Loca l(本地)。一般情况下我们只用到Local菜单项,其下有三个子项:Disk(硬盘备份与还原)、Partition(磁盘分区备份与还原)、Check(硬盘检测),前两项功能是我们用得最多的,下面的操作讲解就是围绕这两项展开的。 3、由于Ghost在备份还原是按扇区来进行复制,所以在操作时一定要小心,不要把目标盘(分区)弄错了,要不

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

GHOST使用方法详细图解教程

GHOST使用方法详细图解教程 文章是转来的,也不知道人家是否原创,网上这类帖子很多,这个讲的比较细,列出来单独算一篇教程。正文开始: 很久以前就想做一个关于此类的网页,但一直找不到比较好的在纯DOS下抓图的软件,现在偶然在网上看见了图片,此处借鉴一下。由于是别人的图,或有小不同,但大体一样。 Ghost是一个备份软件,它能将一个分区内所有文件进行备份,通常我们是将系统盘C盘的所有文件制作成一个压缩文件,存放在电脑其它安全的分区内,在系统出现任意已知或未知的问题时候再

启动GHOST,提取此备份文件,还原到系统盘C盘以保证系统正常安全运行。GHOST适用于各种操作系统。名词解释 镜像文件:此处泛指GHOST软件制作成的压缩文件,以.gho为后缀,在ghost中显示为黄色 源盘:即将要备份的磁盘,一般情况下我们泛指操作系统盘如C盘 镜像盘:存放备份镜像的磁盘,一般情况下我们泛指文件存放盘D盘或 E F G 盘 打包、制作镜像文件:通常是指将操作系统盘如C盘经压缩后存放在其它盘,如D盘里面 解包、还原镜像文件:通常在系统盘如C盘出现错误或病毒木马后,将存放在其它盘里面的镜像文件还原到系统盘内,以求能恢复干净、良好的操作系统 我写这个网页是在一个前题下的: 1.针对没有软驱、没有光驱、没有引导光盘,也不会用光盘启动的人,能够在本地硬盘上简单操作就可维护好的 2.针对对电脑不是太懂或十分不懂的朋友所写的,我不能要求到他们了解到各种分区格式、内存交换文件、休眠文件;故而GHOST的相当多的其它功能都没有讲到,仅仅只讲到了最基本最实用的部分,一下要求他们了解到许多,他们或者说会望而却步的,只有当他们了解到了初步再在实用阶段,慢慢的一步一步熟悉,他们或才会一通百通的 3.个人主张:如无特别必要,不要在系统上安装限制性的软件或系统优化软件,通常都没有实际用处,而通常有副作用的通常只有RMB能够真正优化到电脑 一、使用GHOST之前必定要注意到的事 1.在备份系统时单个的备份文件最好不要超过 2GB 如果超过了2GB 程序会自动产生一个后缀名为如00100001.GHS 的文件请您一定要保证此文件与镜像文件在同一文件夹内没有此文件是不能还原成功的建议您新建一个文件夹名为 001 (如果您不断备份您可以依次新建文件夹名为 002 003 004 依此类推) 将镜像放置在里面GHOST 建议您选用选用最新的版本号需要最少 GHOST8.0版本或以上的版本

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 处并修正它

BT3使用方法-图文教程

下载U盘版bt3的文件 地址为:http://cesium.di.uminho.pt/pub/backtrack/bt3final_usb.iso 文件大概为 783MB 2.将此ISO文件加载到虚拟光驱中,在虚拟光驱中,得到如下文件: 当然,你也可以用winrar解压到目录中,估计应该没啥问题,因为空间问题,我就不想解压了我是直接加栽到虚拟光驱来用的,省空间,无需解压 3.将虚拟光驱中的文件也就是BT3,BOOT这两件文件夹copy到U盘中去 4.点击开始-运行,输入CMD, 然后回车,进入命令行模式 输入U盘的盘符,我的为I:,然后 回车 输入 cd boot 回车输入bootinst.bat回车,就会开始制作BT3 开始制作时,会出现这样的画面,大概意思就是,此操作将会重写U盘的 MBR(即引导区),如果此分区是您的一个硬盘上的分区,那您的Windows系统 将会启动不了,请小心,按X键中止操作,按其他任意键继续制作 我就是在U盘上操作的,所以不用理会,按任意键就可以了。

上面的图,是制作完成后的提示,设置引导记录成功,按任意键退出制作 制作的过程很快,大概不到十秒,其他,他只是重新写了一下U盘的引导区 就OK了 到此为止,此U盘就可以引导系统进去bt3了 ----------------------------------------------------我是下流的分割线----------------------------------- 破解:引导系统进入BT3的选择画面,选择后面带有KDE的BT3即可 1.进入bt3桌面后,需要用到的就是命令行模式,其实也不难,注意,我们要启动 bt3的命令行状态,点击下面这个图标就会启动bt3的命令行状态 2.点击图标,进入命令行状态,输入命令:ifconfig –a此命令,就是列出你电脑中的网卡,如果没有列出,那说明是不支持了,如果列出了,说明支持,也不一定能抓包

Keil+C编译器常见警告与错误信息的解决方法

??????? 本章列出了编程中可能遇到的致命错误语法错误和警告信息每节包括一个信息 的主要说明和消除错误或警告条件可采取的措施 致命错误 致命错误立即终止编译这些错误通常是命令行指定的无效选项的结果当编译器不能访问一个特定的源包含文件时也产生致命错误 致命错误信息采用下面的格式 C51 FATAL-ERROR – ACTION LINE: ERROR: C51 TERMIANTED. C51 FATAL-ERROR – ACTION FILE: ERROR: C51 TERMIANTED. 下面说明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 当写入列表文件OBJ文件或工作文件时遇到的错误

keil4 常见问题处理办法

keil 4 中的一些常见问题处理办法 keil 软件对于一个单片机编程者来说已经再熟悉不过了,我们都用得很多,但往往我们应用时总会遇到这样那样的问题,但又苦于无法解决,最终只能凑合着用。下面我就个人经验对部分问题的解决方法给大家分享一下,也为初学者打点keil的应用基础。不管他是哪个版本的,其处理办法基本都差不多,甚至可以说是完全一样的,下面我们就谈点实际的问题。 1、keil 4 中注释时,为什么不能打进汉字,都是方框? 其处理方法:Edit -> Configuration,点击Colors & Fonts选项卡,在Window列表中选择Editor C Files,在右侧选择字体Courier,Use color in Comments 不能打钩.

在做完上面的操作后,我来进行一下前后比较: 显示效果如下: 1、操作前: 如果后面注释的黑线是方框,操作一样,但要适当改变字体(eg:宋体、新宋体都行)。 2、操作后显示效果: 通过显示我们可以很直观的看到,注释中的文字已经清楚的显示了出来。 2、改变关键字颜色: 方法:Edit -> Configuration->Colors & Fonts->Editor C Files->keyword->选择foreground为任意你想要的颜色(蓝色)。

显示效果如下: 通过这一系列操作后,你可以将不同类型的数据改成你想要的颜色,方便你的编程和查错。

3、当前操作行底纹颜色和选中文字颜色设置:(1)当前工作行底纹和选中其文字设置: 显示效果: (2)当前选中文字颜色和底纹显示:

显示效果: 通过该项操作后,你可以快速的找到你所编辑的区域,行数,甚至行段。

keil常见错误

1.warning: #550-D: variable "d" was set but never used 描述:变量'd'定义但从未使用,或者是,虽然这个变量你使用了,但编译器认为变量d所在的语句没有意义,编译器把它优化了. 解决:仔细衡量所定义的变量d是否有用,若是认定变量d所在语句有意义,那么尝试用volatile关键字修饰变量d,若是真的没有用,那么删除掉以释放可能的内存. 2.warning: #1-D: last line of file ends without a newline 描述:文件最后一行不是新的一行.编译器要求程序文件的最后一行必须是空行,想了半天没想通为什么要这样. 解决:可以不理会.若是觉得出现警告不爽,那么在出现警告的文件的最后一行敲个回车,空出一行. 3. warning: #111-D: statement is unreachable 描述:声明不可能到达.多出现在这种场合: int main(void) { ... while(1) //无限循环,这在不使用操作系统的程序中最常见 { ...

} return 0; //这句声明在正常情况下不可能执行到,编译器发出警告 } 解决:不理会. 4. warning: C3017W: data may be used before being set 描述:变量'data'在使用前没有明确的赋值.如: uint8 i,data; //定义变量i和data,二者都没有明确赋值 for ( i = 0; i < 8; i++) //变量'i'在语句中被赋值0 { if ( IO1PIN & SO_CC2420 ) data |= 0x01; //变量'data'在使用前没有明确赋值,编译器发出警告 else data &= ~0x01; } 解决:应仔细衡量该变量的初始值是否为0,若是,可以不理会这个警告,因为MDK编译器在程序执行前,会将使用到的数据区初始化为0,但若是该变量的初始值不应该是0,忽略这个警告可能会引起致命错

NSIS使用详解(图文详解版)

NSIS使用教程 NSIS简介: NSIS 是“Nullsoft 脚本安装系统”(Nullsoft scrīptable Installation System)的缩写,它是一个免费的Win32 安装、卸载系统,它的特点:脚本简洁高效;系统开销小;当然进行安装、卸载、设置系统设置、解压文件等等更不在话下,几乎可以做所有的事情。更多的功能请阅读蓝色网际的《NSIS帮助文档》。 对于制作NSIS的使用教程,蓝色网际是NSIS方面的专家,她的《NSIS帮助文档》就是一本NSIS的圣经,而对初学者来说,最头疼的莫过于一大堆看不懂的代码,对他们来说无异于一本天书。缘于此,特草此基础教程,希望NSIS专家们勿见笑,不当之处欢迎批评指正以期完善,也希望给初学者作个铺垫。 工具: NIS Edit+Nullsoft Installation System(NSIS) [此两款软件都可以到世纪主站上下载到] 思路:脚本向导+修改代码=个性化安装包 步骤: I.利用向导制作安装包: 1.安装上述两款,启动NIS Edit,在“文件”菜单中“新建脚本:向导”=>下一步”,如图1:附图 2.设置应用程序信息,如软件名称、版本、出版人等,如图2。 当然最一个网站可以留空,如果设置了,则安装包会生成一个对应网址的“Internet 快捷方式”。

3.设置程序选项,如安装包图标、安装程序文件、安装包语言[这里选“SimChinese”]、用户图形界面及压缩方式等, 我们可以选用默认值,也可以点击对应项目的按钮或下拉菜单更改设置,如下图3 附图 4.设置安装目录及授权信息,如图4后“下一步”:

Keil常见编译错误

Keil编译常见错误 Part 1 Warnings warning: #167-D: argument of type "XXXX" is incompatible with parameter of type "YYYY" 意义: 类型为XXXX的参数(实参)与类型为YYYY的参数(形参)不一致。 说明: 编译器在编译过程中会检查函数调用时的实参与形参数据类型的匹配情况。当发现两者不一致时,给出警告。 warning: #177-D: variable "XXXX" was declared but never referenced. 意义: 定义的变量XXXX从未被使用过。 warning: #223-D: function "XXXX" declared implicitly 意义: 函数XXXX采用了隐含式的声明。 说明: 函数XXXX在调用时没有定义或编译器没有看到该函数的声明,于是编译器将使用了缺省的数据类型作为该函数的定义。 常见问题: 1.函数的定义出现在函数调用之后。 2.函数没有定义 warning: #513-D: a value of type "XXXX" cannot be assigned to an entity of type "YYYY" 意义: 类型为XXXX的值不能赋值给一个YYYY的实体。 说明: 按照C语言的规则,变量和数值都被赋予一定的数据类型。在赋值操作时,变量的类型与其所赋的值的类型必须一致。遇到这类问题时,要仔细观察和思考两者是否存在冲突。常见问题: warning: #1295-D: Deprecated declaration XXXX - give arg types. 意义: 弃用的声明XXXX, 请给出参数的数据类型。 说明: 按照最新C语言标准的要求,函数在声明时必须说明所有参数的类型,以及返回值的类型。当函数没有输入参数或者返回值时,应该使用void来加以说明。 例如: LED_Config()。正确的声明方式应该写成void LED_Config(void) Part 2 Compiling Errors error: #20: identifier "XXXX" is undefined 意义: 标识符XXXX没有定义。 说明: 按照C语言的要求,任何标识符(变量、函数、自定义数据类型等等)都必须先定义再使用。 常见问题:

相关文档