《电子技术应用》
您所在的位置:首页 > 嵌入式技术 > 业界动态 > MDK(uVsion3)问题总结及解决方法

MDK(uVsion3)问题总结及解决方法

2008-02-18
作者:http://www.realv

使用MDK已经有快半年的时间了,开始一直使用试用版(不到半个月就上手了),后来研发部门购买了三套MDK工具进行产品研发,以下是我在使用过程中出现过的一些问题,现在总结出来供大家一起分享下吧,呵呵,希望对大家有用啦。
问题1:MDK工具的CARM编译器?
我原来对CARM编译器比较熟悉,想用CARM编译器编译工程,但是却弹出一个不能执行“cc”的错误,到KEIL网站查下才知道原因:由于CARM编译器是比较老的编译器,并且KEIL公司两年前已经停止了对CARM编译器的维护与升级,所以目前KEIL公司已经没有把CARM编译器集成到MDK开发工具" title="开发工具">开发工具里面来。于是我就改用RealView编译工具,却发现RealView编译工具确实很好用,编译效率很高,不愧为业内最优秀的编译器啊,呵呵,所以建议大家都用RealView编译器吧。不过现在KEIL网站也可以下载CARM编译器,版本为2.54,具体情况见http://www.keil.com/support/docs/3267.htm。4d.y5q4O4_$R
问题2:使用MDK工具将程序下载到RAM里面调试?
MDK支持将代码下载到RAM中进行调试。之前我以为只能通过编写脚本文件的方法,后来看帮助文档才知道有一个更为快捷的方法,点下鼠标就可以了。可以有两种方法实现RAM下载的功能。电子论坛" title="电子论坛">电子论坛,电子设计论坛,电子开发论坛+I,y*o*t i2u,Q%f
方法一电子开发论坛)e T2M)p0\
我们只需要简单的设置就可以实现此功能。具体方法大家可在MDK帮助文档里看到:MDK帮助文档(Help)->RealView编译工具简介->嵌入式程序->指定存储域。在这一章节说明了将代码拷贝到RAM中执行的方法。也就是只要点下鼠标就可以实现的方法。
方法二bbs.dzkf.net"y:U2Z0z7T C9e3f.z
我们可以写脚本文件实现这一功能,脚本文件的写法和ADS或者Embest IDE大致相同,只是有些格式需要稍微修改,具体写法大家可以参阅MDK里面的PDF帮助文档,文档路进为:打开MDK工具->workspace->books->双击RV Linker/Utilities打开PDF文档->第五章Using Scatter-loading Description Files。这里面有关于脚本文件的详细讲述。
脚本文件写好以后我们需要以下步奏添加到工程中去:
1:打开“option for target”电子论坛,电子设计论坛,电子开发论坛7F#B/I$l&@
2:在“linker”里面去掉“use memory layout for target dialog”的选择,在“scatter file”中点击“…”指定你编写好的脚本文件的路径。单击右边的“eidt”可以编辑脚本文件。见图1—— 全球最大" title="最大">最大的中文电子开发论坛1A(]'W'D0l,B5?9c)q&B
3:单击确认

说明:选中“use memory layout for target dialog”这一项实际上是默认在“target”中对Flash和RAM的地址配置,编译链接时会产生一个默认的脚本文件。—— 全球最大的中文电子开发论坛$C0r5O4T;`$~
—— 全球最大的中文电子开发论坛5@1V$j;c-F$H+]"e1b

问题三:关于License的问题—— 全球最大的中文电子开发论坛!A(L P:[2W0Z.a5b"z+n/u
我之前就因为License使用不当造成我的工具用不了,经过技术支持的处理才解决,所以建议大家一定要在License使用上要慎重,
1、卸载MDK开发工具或者格式化MDK所在硬盘分区时一定要先卸载License,不然就会导致不可预料的后果,如License不可用或者License不可再申请等。
2、License与硬件(比如网卡MAC地址)是绑定再一起的,在一台电脑上使用过的License不能拿到另外一台电脑上使用,如果有这个需要的话,需要先卸载License然后再用需要使用License的电脑去申请一个新的License,但是License卸载次数不能超过两次。
问题四:“Could not stop ARM device”
我在使用LPC2364开发板" title="开发板">开发板进行调试的时候,有时会出现“Could not stop ARM device,please check the JTAG cable”的现象电子开发论坛3O.F)Y-J!?!{-P2q7b4_%z,R
该现象与开发板的频率有关以及仿真器的频率有关,将JTAG Clock 调低到100KHz,晶振频率设置再12MHz左右就可以了。我想其它板子出现此情况也可以参照这个办法吧,再不行就干脆拔了仿真器再接上(很管用的)。电子论坛,电子设计论坛,电子开发论坛0g,y'K2E(M,t!n2v.Y

问题五:将二进制可执行文件(bin)通过MDK烧写" title="烧写">烧写到板子里面的方法9|5j+Z5r+V7T F.U6g/])T
我之前用过ADS,想把ADS下面编译通过的BIN文件通过MDK下载到开发板里面去,结果下不进去,经过咨询才知道原来是因为MDK暂时不支持直接烧写二进制格式的可执行文件(bin文件),对于二进制文件的写入方式是先将二进制文件(bin)转换为十六进制文件(hex)。转换完成后按照以下步奏完成文件的烧写:
1.通过Project - New Project....菜单命令产生一个μVision工程文件; 电子论坛,电子设计论坛,电子开发论坛)K'A3P*k"d5G
2.在设备数据库中选择合适的微控制器,但是不要将初始化代码拷贝到工程中去; 电子论坛,电子设计论坛,电子开发论坛3I3l/x'k/F;S#J
3.在Project - Options for Target - Output页中输入即将生成的十六进制文件名; 7A8u){#u)X#H
4.按照配置Flash菜单中所述的内容设置下载工具;
当使用“Flash – Download”命令时, μVision会将指定的十六进制文件下载到Flash中 。二进制到十六进制文件的转换需要采用相关的转换程序;这个在keil 的网站上有提供。电子论坛,电子设计论坛,电子开发论坛7w+p#K%l(|$K)B

问题七:调试时弹出needs to close 对话框?bbs.dzkf.net0Z,y%`:H"E&b8l,x)R-I
我在调试工程的时候有时会弹出“needs to close ”的提示,开始一直不知道是什么问题,后来在网上搜索才知道该问题主要是工程代码问题,引起软件调试失败,更改程序或更换正常程序后问题解决。
问题八:Error:C3900:Unrecognized option '-O3'.电子论坛,电子设计论坛,电子开发论坛:|,e+J:o&z p;~.I"i-R#?5y
我使用的是MDK大众版,使用中曾弹出这个错误,原因是MDK中国版有三个版本,大众版支持优化级别0,企业版和专业版都能支持0、1、2、3四个级别,如果使用的是大众版,选择高的优化级别是会出错的。

本站内容除特别声明的原创文章之外,转载内容只为传递更多信息,并不代表本网站赞同其观点。转载的所有的文章、图片、音/视频文件等资料的版权归版权所有权人所有。本站采用的非本站原创文章及图片等内容无法一一联系确认版权者。如涉及作品内容、版权和其它问题,请及时通过电子邮件或电话通知我们,以便迅速采取适当措施,避免给双方造成不必要的经济损失。联系电话:010-82306118;邮箱:aet@chinaaet.com。