MDK(uVsion3)問(wèn)題總結(jié)及解決方法
本文引用地址:http://butianyuan.cn/article/186157.htm 使用MDK已經(jīng)有快半年的時(shí)間了,開始一直使用試用版(不到半個(gè)月就上手了),后來(lái)研發(fā)部門購(gòu)買了三套MDK工具進(jìn)行產(chǎn)品研發(fā),以下是我在使用過(guò)程中出現(xiàn)過(guò)的一些問(wèn)題,現(xiàn)在總結(jié)出來(lái)供大家一起分享下吧,呵呵,希望對(duì)大家有用啦。 問(wèn)題1:MDK工具的CARM編譯器? 我原來(lái)對(duì)CARM編譯器比較熟悉,想用CARM編譯器編譯工程,但是卻彈出一個(gè)不能執(zhí)行“cc”的錯(cuò)誤,到KEIL網(wǎng)站查下才知道原因:由于CARM編譯器是比較老的編譯器,并且KEIL公司兩年前已經(jīng)停止了對(duì)CARM編譯器的維護(hù)與升級(jí),所以目前KEIL公司已經(jīng)沒有把CARM編譯器集成到MDK開發(fā)工具里面來(lái)。于是我就改用RealView編譯工具,卻發(fā)現(xiàn)RealView編譯工具確實(shí)很好用,編譯效率很高,不愧為業(yè)內(nèi)最優(yōu)秀的編譯器啊,呵呵,所以建議大家都用RealView編譯器吧。不過(guò)現(xiàn)在KEIL網(wǎng)站也可以下載CARM編譯器,版本為2.54,具體情況見http://www.keil.com/support/docs/3267.htm。4d.y5q4O4_$R 問(wèn)題2:使用MDK工具將程序下載到RAM里面調(diào)試? MDK支持將代碼下載到RAM中進(jìn)行調(diào)試。之前我以為只能通過(guò)編寫腳本文件的方法,后來(lái)看幫助文檔才知道有一個(gè)更為快捷的方法,點(diǎn)下鼠標(biāo)就可以了??梢杂袃煞N方法實(shí)現(xiàn)RAM下載的功能。電子論壇,電子設(shè)計(jì)論壇,電子開發(fā)論壇+I,y*o*t i2u,Q%f 方法一電子開發(fā)論壇)e T2M)p0 我們只需要簡(jiǎn)單的設(shè)置就可以實(shí)現(xiàn)此功能。具體方法大家可在MDK幫助文檔里看到:MDK幫助文檔(Help)->RealView編譯工具簡(jiǎn)介->嵌入式程序->指定存儲(chǔ)域。在這一章節(jié)說(shuō)明了將代碼拷貝到RAM中執(zhí)行的方法。也就是只要點(diǎn)下鼠標(biāo)就可以實(shí)現(xiàn)的方法。 方法二bbs.dzkf.nety:U2Z0z7T C9e3f.z 我們可以寫腳本文件實(shí)現(xiàn)這一功能,腳本文件的寫法和ADS或者Embest IDE大致相同,只是有些格式需要稍微修改,具體寫法大家可以參閱MDK里面的PDF幫助文檔,文檔路進(jìn)為:打開MDK工具->workspace->books->雙擊RV Linker/Utilities打開PDF文檔->第五章Using Scatter-loading Description Files。這里面有關(guān)于腳本文件的詳細(xì)講述。 腳本文件寫好以后我們需要以下步奏添加到工程中去: 1:打開“option for target”電子論壇,電子設(shè)計(jì)論壇,電子開發(fā)論壇7F#B/I$l@ 2:在“linker”里面去掉“use memory layout for target dialog”的選擇,在“scatter file”中點(diǎn)擊“…”指定你編寫好的腳本文件的路徑。單擊右邊的“eidt”可以編輯腳本文件。見圖1—— 全球最大的中文電子開發(fā)論壇1A(]'W'D0l,B5?9c)qB 3:?jiǎn)螕舸_認(rèn) 說(shuō)明:選中“use memory layout for target dialog”這一項(xiàng)實(shí)際上是默認(rèn)在“target”中對(duì)Flash和RAM的地址配置,編譯鏈接時(shí)會(huì)產(chǎn)生一個(gè)默認(rèn)的腳本文件。—— 全球最大的中文電子開發(fā)論壇$C0r5O4T;`$~ —— 全球最大的中文電子開發(fā)論壇5@1V$j;c-F$H+]e1b 問(wèn)題三:關(guān)于License的問(wèn)題—— 全球最大的中文電子開發(fā)論壇!A(L P:[2W0Z.a5bz+n/u 我之前就因?yàn)長(zhǎng)icense使用不當(dāng)造成我的工具用不了,經(jīng)過(guò)技術(shù)支持的處理才解決,所以建議大家一定要在License使用上要慎重, 1、卸載MDK開發(fā)工具或者格式化MDK所在硬盤分區(qū)時(shí)一定要先卸載License,不然就會(huì)導(dǎo)致不可預(yù)料的后果,如License不可用或者License不可再申請(qǐng)等。 2、License與硬件(比如網(wǎng)卡MAC地址)是綁定再一起的,在一臺(tái)電腦上使用過(guò)的License不能拿到另外一臺(tái)電腦上使用,如果有這個(gè)需要的話,需要先卸載License然后再用需要使用License的電腦去申請(qǐng)一個(gè)新的License,但是License卸載次數(shù)不能超過(guò)兩次。 問(wèn)題四:“Could not stop ARM device” 我在使用LPC2364開發(fā)板進(jìn)行調(diào)試的時(shí)候,有時(shí)會(huì)出現(xiàn)“Could not stop ARM device,please check the JTAG cable”的現(xiàn)象電子開發(fā)論壇3O.F)Y-J!?!{-P2q7b4_%z,R 該現(xiàn)象與開發(fā)板的頻率有關(guān)以及仿真器的頻率有關(guān),將JTAG Clock 調(diào)低到100KHz,晶振頻率設(shè)置再12MHz左右就可以了。我想其它板子出現(xiàn)此情況也可以參照這個(gè)辦法吧,再不行就干脆拔了仿真器再接上(很管用的)。電子論壇,電子設(shè)計(jì)論壇,電子開發(fā)論壇0g,y'K2E(M,t!n2v.Y 問(wèn)題五:將二進(jìn)制可執(zhí)行文件(bin)通過(guò)MDK燒寫到板子里面的方法9|5j+Z5r+V7T F.U6g/])T 我之前用過(guò)ADS,想把ADS下面編譯通過(guò)的BIN文件通過(guò)MDK下載到開發(fā)板里面去,結(jié)果下不進(jìn)去,經(jīng)過(guò)咨詢才知道原來(lái)是因?yàn)镸DK暫時(shí)不支持直接燒寫二進(jìn)制格式的可執(zhí)行文件(bin文件),對(duì)于二進(jìn)制文件的寫入方式是先將二進(jìn)制文件(bin)轉(zhuǎn)換為十六進(jìn)制文件(hex)。轉(zhuǎn)換完成后按照以下步奏完成文件的燒寫: 1.通過(guò)Project - New Project....菜單命令產(chǎn)生一個(gè)μVision工程文件; 電子論壇,電子設(shè)計(jì)論壇,電子開發(fā)論壇)K'A3P*kd5G 2.在設(shè)備數(shù)據(jù)庫(kù)中選擇合適的微控制器,但是不要將初始化代碼拷貝到工程中去; 電子論壇,電子設(shè)計(jì)論壇,電子開發(fā)論壇3I3l/x'k/F;S#J 3.在Project - Options for Target - Output頁(yè)中輸入即將生成的十六進(jìn)制文件名; 7A8u){#u)X#H 4.按照配置Flash菜單中所述的內(nèi)容設(shè)置下載工具; 當(dāng)使用“Flash – Download”命令時(shí), μVision會(huì)將指定的十六進(jìn)制文件下載到Flash中 。二進(jìn)制到十六進(jìn)制文件的轉(zhuǎn)換需要采用相關(guān)的轉(zhuǎn)換程序;這個(gè)在keil 的網(wǎng)站上有提供。電子論壇,電子設(shè)計(jì)論壇,電子開發(fā)論壇7w+p#K%l(|$K)B 問(wèn)題七:調(diào)試時(shí)彈出needs to close 對(duì)話框?bbs.dzkf.net0Z,y%`:HEb8l,x)R-I 我在調(diào)試工程的時(shí)候有時(shí)會(huì)彈出“needs to close ”的提示,開始一直不知道是什么問(wèn)題,后來(lái)在網(wǎng)上搜索才知道該問(wèn)題主要是工程代碼問(wèn)題,引起軟件調(diào)試失敗,更改程序或更換正常程序后問(wèn)題解決。 問(wèn)題八:Error:C3900:Unrecognized option '-O3'.電子論壇,電子設(shè)計(jì)論壇,電子開發(fā)論壇:|,e+J:oz p;~.Ii-R#?5y 我使用的是MDK大眾版,使用中曾彈出這個(gè)錯(cuò)誤,原因是MDK中國(guó)版有三個(gè)版本,大眾版支持優(yōu)化級(jí)別0,企業(yè)版和專業(yè)版都能支持0、1、2、3四個(gè)級(jí)別,如果使用的是大眾版,選擇高的優(yōu)化級(jí)別是會(huì)出錯(cuò)的。 |
評(píng)論