解决keil软件使用仿真器烧录程序失败及死机的问题
近期经常有朋友问道关于k eil软件烧录程序失败及死机的问题, 在这里,我简单说一下我曾经遇到这类问题的解决办法。
首先,keil使用仿真器经常会遇到程序烧写不进去,提示“No Cortex-M SW Device found”或“找不到CM3 Flash”等等,遇到这类问题千万不要慌,
报错
报错
可以试着从如下方面查找问题:
1)点击keil界面的Project - Options for Target ,或者直接点击类似于“魔术棒 ”的快捷图标,
进去之后选择“Debug ”选项,在右侧选择你的仿真器类型,如下图:
这里一定要选择正确,否则keil将不能识别到仿真器,再点击Settings ,仿真器一定要插到单片机上并上电,这时候在JTAG Device Chain 栏应该可以看到仿真器的信息。如果仍然没看到,查看一下是否已安装仿真器的驱动文件或者重新安装。
2)如果这里可以看到仿真器信息,但是仍不能下载,那么在上图界面中点击Settings ,并选择Flash Download ,点击下方的Add ,添加你的单片机flash信息 ,我的单片机flash内存是512k的,故选择第一项,如图:
选择好以后点击Add即可。
3)还有一种情况是仿真器驱动安装没问题,软件编译也正常,但是点击下载(Download )键或者点击“魔术棒 ”-Debug-Settings ,keil就会死机。之前在网上查找问题,大多都说是因为keil版本过低,换成高版本的keil即可。其实不用这么复杂,出现这种现象的原因可能是因为该工程曾经被低版本的keil编译过 ,这时候只需要把工程文件下后缀为 “.uvoptx ” 的文件删除,如图:再重新打开工程编译 即可。
ULINK2
Keil5_MDK
如何用SmartPRO 6000纠正NAND Flash烧录过程位反转?
摘要:关于使用烧录器烧录Nand Flash,一直都是很多用户头疼的难点,他们强调已经使用了正确的坏块管理方案,也制定了规范的操作流程,但是烧录的良品率还是无法提高,只能每天眼睁睁看着一盘盘“废品”被烧录器筛选出来!
近日某电子科技有限公司的客户邮件反馈:使用我们的SmartPRO 6000F-Plus烧录MICRON厂家的TSOP48封装的Nand Flash MT29F2G08ABAEA,不良率比较高,甚至达到了10%的烧录不良率,而烧录SAMSUNG厂家的TSOP48封装的K9F1G08U0E这颗芯片就不会有这种状况,由此可以确定烧录器与烧录座本身固件是没有问题的,所以客户怀疑应该是芯片算法有问题,需要我们重新优化下。
烧录器的功能很简单、很专一,那就是把数据完完整整、重复地复制到每一颗芯片上,复制成功了就提示Pass,复制失败了就提示Fail;SmartPRO 6000F-Plus是一台全心专注于高品质、高效率的Flash专用烧录编程器;目前为止,有广泛的、优秀的烧录客户群,软件、硬件和算法都是客户批量生产验证过的,非常成熟。
那问题究竟出在哪里呢,让我们继续看吧!
先友情提醒一下,我们的烧录软件做有一个监控“电子眼”(操作日记),时刻记录着客户对每颗芯片的烧录情况;客户有任何违规操作或者烧录异常现象,我们都可以迅速重返到“案发现场”,找到问题的根源;
我们第一时间让客户把操作日记发过来,从操作日记上看,客户反馈的现象确实存在,日志也帮助我们很快找到了这种异常:
但是这种现象并不是因为烧录器造成,而是芯片本身存在的工艺差异原因导致的;可能有人就会马上反驳,明显地出现如此高的烧录不良率,编程器原厂就没有任何责任,而是一句话就把问题推到芯片原厂?不要着急,继续往下看。
首先,我们普及一下Nand Flash的一个特性:位反转;Nand Flash由于本身硬件的内在特性,会导致(极其)偶尔的出现位反转的现象。所谓的位反转(bit flip),指的是原先Nand Flash中的某个位变化了,即要么从1变成0了,要么从0变成1了。而出现这种怪异的现象因素很多,主要是由以下一些原因或者效应所导致的:漂移效应(Drifting Effects)、编程干扰所产生的错误(Program-Disturb Errors)、读操作干扰产生的错误(Read-Disturb Errors);所以芯片原厂都是要求用户使用对应的ECC校验去解决这些位反转问题。
这种偶尔随机出现的位反转现象,对使用烧录器烧录Nand Flash的用户确实带来了头痛的麻烦,因为只要对芯片完成烧录之后,紧接着进行校验处理,若校验数据与源数据不同,烧录器立马就会提示报错,造成的直接后果就是不良品率一直居高不下;拿我们客户的案例分析,打开芯片数据手册查询到:MT29F2G08ABAEAWP需求ECC纠错算法:Minimum required ECC,4-bit ECC per 528 bytes;K9F1G08U0E需求ECC纠错算法:ECC regnirement,1 bit / 528bytes。所以这两个都有一定的概率出现位反转现象,而MT29F2G08ABAEAWP不良率较高,是因为MT29F2G08ABAEAWP出现偶尔随机的位反转的概率比K9F1G08U0E高好几倍。
对于专业的烧录厂家,对位反转现象当然也有专业的处理办法,今天就介绍一下我们SmartPRO 6000F-Plus特殊处理位反转的办法:“允许容错位”。
在对芯片作校验的时候,如果出现的位翻转的位数少于或者等于在“允许容错位”设置的数值,则烧录器认为校验正常,提示烧录成功;当然,用户设置的数值也必须是在自己使用的ECC计算方案纠正位数之内。提高烧录良品率,只需在烧录器上设置一个数值即可解决;后来客户反馈烧录一切正常,良品率也大大提高了,甚至几乎达到了100%,解决了大批量生产上的问题!
加入微信
更多内涵 你懂的 !
搜索微信公众号:电子产品世界
或用微信扫描二维码:
Copyright ©2000-2015 ELECTRONIC ENGINEERING & PRODUCT WORLD. All rights reserved.
相关问答
机顶盒刷机 烧录失败 -ZOL问答回复azhen24您好,按照下面的教程重新升级一次。刷机教程:1、首先要做好平...且在刷机时会格式化内置SD卡(系统中叫NANDFLASH),所以一定要做好备份。2...
NandFlash烧录 时坏块是如何处理的?WinCE或Linux系统通常存储于NandFlash中,而NandFlash频繁擦写易出现坏块,坏块影响系统正常工作,严重时会导致系统无法启动。M3352核心板、M283核心板、M287核...
flash 需要 烧录 吗?Flash芯片需要烧录。Flash芯片属于可擦写可编程的存储器,用户可以对Flash芯片进行反复的擦写和编程,因此Flash芯片需要烧录。Flash芯片需要烧录。Flash芯片属...
TTL电视开不开机了怎么办?1.如果TTL电视开不开机了,那么可能是电视机本身或者电源出现了故障或者损坏等原因导致,不能确定这个电视时间是否充足,因此不能作出。2.如果遇到TTL电视开...
程序无法 烧录 单片机是怎么回事-ZOL问答回复zhangjiaben上面一大堆数据都出来了,说明单片机和烧录软件的通信是没问题的,单片机的核心也没问题,能运行自举程序。问题出在单片机的FLASH存储器,很遗...
单片机可以重新 烧录 么?单片机是可以重新烧录的。重新烧录指的是将单片机中的程序代码进行更改或者更新。这可以通过将新的程序代码通过编程器或者下载器等工具烧录到单片机中来实现...
niz怎么刷固件?首先,需要下载对应niz机型的固件文件,并将其解压到电脑中。然后,将niz键盘连接到电脑上,并进入固件刷写模式(具体操作可参考niz官网或说明书)。接下来,...
embedded flash sd card 初始化 失败 ?是刻录机么?一般市面上有很多的烧录器会允许客户从外面调用烧录数据源,如SmartPRO5000U用的是CF卡。如果说检测SD卡失败,很多原因,大致分析一下:1、卡没...
flash烧录 和ic烧录?,IC烧录方式有效果吗??[回答]C默认是从右向左传递参数,也即函数参数先计算右边的,再计算左边的,以你这个为例,先计算-a--,得到的值是-8,作为实参传递给printf,此时a=7;然后计算-...
关于GBA 烧录卡 的问题. - 198****6440 的回答 - 懂得烧录卡肯定可以带记录的,除非是质量差的没有记录,千万不要买啊!比较好的牌子是EZ-FLASH2,我最喜欢了,价钱在500元RMB左右吧。至于月光宝盒什么的牌...