RealView MDK+Jlink+TQ2440 調試筆記

從上圖我們可以看到hex文件已經生成了,還告訴我們,我們的代碼大小為920字節(jié),只讀數(shù)據(jù)為16字節(jié),可讀寫數(shù)據(jù)為0,ZI數(shù)據(jù)為1256字節(jié)。
好,下面我們就把它燒到我們的開發(fā)板中。我們還需要配置一下燒寫選項我們還是選擇工程屬性然后選Utilities選項然后在燒寫選項中選J-LINK/J-Trace,然后去掉Update Target before Debugging選項,最后點Settings添加燒寫算法,這里沒有針對我們的norflash EN29LV160AB的算法,我們只選一個相近的如我選的是AM29F160DBFlash,但是這個算法只能燒寫不能擦除(有興趣的話可以自己寫一個燒寫算法)。

好了萬事具備只欠JLINK了,不過在燒寫之前請確認你已經安裝了JLINK的驅動,JLINK的驅動可以到SEGGER官方下載Software and documentation pack V4.14b ,驅動安裝好了以后我們接上開發(fā)板,然后在把開發(fā)板的啟動方式改為從norflash啟動,然后啟動開發(fā)板,最后點Download,如果沒有意外的話,你就可以看到led的開始閃了。
4.調試跑馬燈程序
光能下載可不行,我們最主要的是能調試,下面我們看看怎么在RealView MDK下調試程序,其實RealView MDK的高度功能要比ads1.2好用的多。我們打開工程屬性先Debug選項然后選擇Use J-LINK/J-Trace,然后點Settings,在其中選擇JTAG Speed為Auto Selection,先擇Reset Strategy為Hardware,halt with BP@0。最后選上Run to main(),這樣在調試的時候會自動停到我們的main函數(shù)入口。此外我們不需要一個調試初始化文件,這個文件不用寫,我們可以在RealView MDK的例子中找到它,比如在我機子上是D:ToolElectronicRealViewMdkARMBoardsSamsungS3C2440RTX_Blinky下的Ext_ARM.ini,我們把它拷到我們的工程目錄下然后在Initialization File中選擇它就OK了。

還有一個地方我們得改就是程序的內存地址,剛剛我們燒寫的時候用的是起始地址為0大小2M的設置,而這個地址0對應的正好是我們的norflash的地址。而現(xiàn)在我們調試的時候是直接把代碼載入到內存(也就是sdram)中,在s3c2440上它對就的地址是0×30000000所以我們要把ROM的起始地址改為0×3000000,相應的RAM起始地址改為0×30200000,大小不變。

好了,調試選項都設置好了,我們開始調試,如果沒有意外的話會出現(xiàn)下面所示

我們可以看到它的調試環(huán)境很友好,很像vs之類的,左邊是各個寄存器的值右上是匯編代碼,下面是對應源碼當前指針停在main中,我們可以單步調試,還可以下斷點。還可以查看內存之類的信息等。
如果我們沒有JLINK還可以用RealView MDK自帶的仿真器方法是在Debug選項中選擇Use Simulator選項就可以了。如果出現(xiàn)了*** error 65: access violation at 0×53000008 : no ‘write’ permission類似這樣的的錯誤,可以試著去掉啟動代碼中的看門狗和時鐘的設置。
附上跑馬燈的工程
評論