STM32在Keil MDK環(huán)境下RAM上代碼調(diào)試
圖6
9.Debug的配置
分成幾部分,原界面和Setting界面
1)原界面,如圖7~首先選好J-link~這里由于使用的是keil4~和keil3的選項(xiàng)會(huì)有不同~在keil3下~選擇“Cortex-M3 J-Link”,取消Load Application at Startup的勾選~
圖7
再說(shuō)說(shuō)這個(gè)CouRAM.ini文件~內(nèi)容如下~如圖8~有注釋~
首先LOAD output.axf~加載啟動(dòng)代碼到RAM~關(guān)關(guān)于hex,bin文件和axf的關(guān)系~是在axf中存有Debug需要的一些調(diào)試語(yǔ)句~所以這文件與前 2者內(nèi)容上是不相同的~前兩者屬于其子集的關(guān)系~(這里的output.axf名字對(duì)應(yīng)了我們上邊設(shè)定的output的文件名設(shè)定~此文件在output 中設(shè)定的文件夾下生成~跟output.sct在一起~)從文件內(nèi)容可以看到~中斷向量表已經(jīng)被映射到0x20000000,PC也指向了 0x20000004~說(shuō)明在RAM中進(jìn)行調(diào)試時(shí)理論上可以的了~
圖8
2)進(jìn)入setting如圖9~首先要選對(duì)interface~有時(shí)候莫名其妙的會(huì)在keil死機(jī)后(我調(diào)程序總是把Keil弄掛了~真不是為何~難道說(shuō)他是Keil~而我是Killer么~哈哈)~一定要注意~不然容易出現(xiàn)J-Link連接失敗的效果~
圖9
3)Trace label不用調(diào)整~默認(rèn)就可以~如果需要使用~記得算好了選用的時(shí)鐘Core Clock~這里是指PLL后的~
4)然后進(jìn)入了Flash Download label,如圖10~Flash的擦寫有規(guī)矩~需要在有內(nèi)容的情況下擦出一個(gè)扇區(qū)后方可寫入,而此時(shí)的RAM自然不必要這樣做~然后RAM for Algorithm需要改下~接著需要點(diǎn)擊add添加Flash編程算法(我還不會(huì)寫這算法,不過大概看了下,就是麻煩點(diǎn)的一堆調(diào)用和設(shè)置)~接著進(jìn)入了選擇界面~如圖11
圖10
在這里選擇好屬于自己的芯片F(xiàn)lash大小~我的這個(gè)挺大的~512K呢~呵呵~
add后還需要再更改最后一行紅線上的內(nèi)容~此時(shí)需要先點(diǎn)一下剛選好的變成算法就會(huì)反白可編輯~然后編程算法會(huì)自動(dòng)更改其自身的地址~
圖11
10.進(jìn)入U(xiǎn)tilities~同Debug一樣~選擇~其中的setting其實(shí)剛剛講過~其實(shí)是同一個(gè)~如圖12
圖12
到此為止~這一天半的RAM調(diào)制研究之旅的總結(jié)畫上了一個(gè)圓滿的句號(hào)~
需要提醒大家注意的幾點(diǎn)是:
1.Debug開始后~不要點(diǎn)reset~因?yàn)檫@樣后走的就是Flash的程序了~容易造成調(diào)試問題~結(jié)果是產(chǎn)生keil被kill掉的PC錯(cuò)誤~
2.重新啟動(dòng)開發(fā)板后一定要build target 一次~或者rebuild all一次再燒寫程序~不然~很容易同上~原因是不太清楚~希望有人能告訴我~呵呵~
評(píng)論