久久久久久久999_99精品久久精品一区二区爱城_成人欧美一区二区三区在线播放_国产精品日本一区二区不卡视频_国产午夜视频_欧美精品在线观看免费

專注電子技術學習與研究
當前位置:單片機教程網 >> MCU設計實例 >> 瀏覽文章

RealView MDK調試ARM(S3C2440)

作者:佚名   來源:本站原創   點擊數:  更新時間:2010年06月03日   【字體:

   始學習ARM,先準備學習ARM來當單片機用。同事拿了塊勤研的TQ2440的開發板給我玩,剛開始碰到不少難題。單單想讓ARM在RAM里運行,就花了好多天。

  上關于2440的教程很多,可很多都是相對于ADS集成開發環境的。聽說ARM公司自從收購了Keil公司,就不再更新ADS了,而是服務Keil了。所以我準備選用keil for ARM。現在網上有關Keil for ARM 的教程太少,我也一直徘徊在門外,今天終于有點喜色了,呵呵,記下。

 

1.RealView MDK介紹
2.Jlink 介紹
3.創建RealView MDK 的led點燈工程
4.調試程序

1.關于RealView MDK
其實RealView MDK也是Keil公司的產品,它是在Keil被ARM公司收購后開發的關于arm的新的開發環境,個人感覺它比ads1.2要好使的多。RealView MDK有很多突出特點:

啟動代碼生成向導,自動引導
  啟動代碼和系統硬件結合緊密,必須用匯編語言編寫,因而成為許多工程師難以跨越多門檻。RealView MDK的μVision3工具可以幫您自動生成完善的啟動代碼,并提供圖形化的窗口,隨您輕松修改。無論對于初學者還是有經驗的開發工程師,都能大大節省時間,提高開發效率。

軟件模擬器,完全脫離硬件的軟件開發過程
  RealView MDK的設備模擬器可以仿真整個目標硬件,包括快速指令集仿真、外部信號和I/O仿真、中斷過程仿真、片內所有外圍設備仿真等。開發工程師在無硬件的情況下即可開始軟件開發和調試,使軟硬件開發同步進行,大大縮短開發周期。而一般的ARM開發工具僅提供指令集模擬器,只能支持ARM內核模擬調試。

性能分析器,看得更遠、看得更細、看得更清
  RealView MDK的性能分析器好比哈雷望遠鏡,讓您看得更遠和更準,它輔助您查看代碼覆蓋情況,程序運行時間,函數調用次數等高端控制功能,指導您輕松的進行代碼優化,成為嵌入式開發高手。通常這些功能只有價值數千美元的昂貴的Trace工具才能提供。

Cortex-M3支持
  RealView MDK支持的Cortex-M3核是ARM公司最新推出的針對微控制器應用的內核,它提供業界領先的高性能和低成本的解決方案,未來幾年將成為MCU應用的熱點和主流。目前國內只有ARM公司的MDK和RVDS開發工具可以支持Cortex-M3芯片的應用開發。

業界最優秀的ARM編譯器——RealView 編譯器,代碼更小,性能更高
RealView MDK的RealView編譯器與ADS 1.2比較:
代碼密度:比ADS 1.2編譯的代碼尺寸小10%;
代碼性能:比ADS 1.2編譯的代碼性能高20%。
可以到KEIL的官方下載RealView MDK 下載的版本是試用版的有32K的代碼限制可以在網上找個注冊機,好像3.x的注冊機就行。

2.關于Jlink
Jlink是SEGGER公司為支持仿真ARM內核芯片推出的JTAG仿真器。配合IAR EWARM,ADS,KELL,WINARM,RealView等集成開發環境支持所有ARM7/ARM9內核芯片的仿真,通過RDI接口和各集成開發環境無縫連接,操作方便,簡單易學,是學習開發ARM的最實用的開發工具。關于Jlink的特性可以參考SEGGER的官方介紹SEGGER

3.創建跑馬燈工程

我的第一個程序就是點燈了,呵呵!
打開 Keil uVision4然后新建一個工程tq2440,然后選擇CPU類型,這里選tq2440所使用的s3c2440a

確定后會提示是否添加s3c2440的啟動代碼到工程(這是RealView MDK 相對是ads1.2的一個特點它會自動生成相應CPU的啟動代碼,而且配置啟動代碼也很方便后面會講到。)這里選是

這時候工程就建好了,啟動代碼也有了,下面就看一下這個啟動代碼

啟動代碼還不少啊,有1000多行,不要害怕其實代碼并不多,你可以仔細看一下,有一多半都是注釋,而且不用手動更改代碼就能實現啟動代碼的配置,點上圖中紅色部分的Configuration Wizard就可以圖形方式對啟動代碼進行配置

比如要配置看門狗定時器就可以選中Watchdog Time Setup,點開它左邊的加號可以進行詳細的設置,這里圖省事把所有對鉤都點上。好了啟動代碼也配置好了,下面添加led點燈程序,在工程的目錄下新建一個main.c文件然后把它添加到工程的源文件中來然后把下面的代碼添加到main.c文件中

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
//定義PORTB的控制寄存器地址
#define GPBCON (*(volatile unsigned *) 0x56000010)
#define GPBDAT (*(volatile unsigned *) 0x56000014)
#define GPBUP (*(volatile unsigned *) 0x56000018)
 
 
void delay()
{
	int i, j;
	for(i = 0; i < 10000; i ++)
		for(j = 0; j < 50; j ++);
}
int main()
{
 
	GPBCON = 0x155555;//配置protB的所有引腳為輸出
 
	while(1)
	{
		//點亮第一個小燈
		GPBDAT |= 0x1E0;
		GPBDAT &= 0x1C0;
		delay();
 
		//點亮第二個小燈
		GPBDAT |= 0x1E0;
		GPBDAT &= 0x1A0;
		delay();
 
		//點亮第三個小燈	
		GPBDAT |= 0x1E0;
		GPBDAT &= 0x160;
		delay();
 
		//點亮第四個小燈	
		GPBDAT |= 0x1E0;
		GPBDAT &= 0x0E0;
		delay();
	}
 
	return 0;
}

好了,代碼都全了,下面配置編譯和連接選項,選擇工程屬性

然后選Target選項按下圖設置

在Output選項中選上Create HEX File就行了,其它的選項先不用管,然后按F7試著Build下,查看輸出信息,已經成功了只有一個Warning不能管它。

從上圖可以看到hex文件已經生成了,還說明了代碼大小為920字節,只讀數據為16字節,可讀寫數據為0,ZI數據為1256字節。
好,下面就把它燒到開發板中。還需要配置一下燒寫選項還是選擇工程屬性然后選Utilities選項然后在燒寫選項中選J-LINK/J-Trace,然后去掉Update Target before Debugging選項,最后點Settings添加燒寫算法,這里沒有針對norflash EN29LV160AB的算法,選一個相近是AM29F160DBFlash,但是這個算法只能燒寫不能擦除(有興趣的話可以自己寫一個燒寫算法)。
好了萬事具備只欠JLINK了,不過在燒寫之前請確認你已經安裝了JLINK的驅動,JLINK的驅動可以到SEGGER官方下載Software and documentation pack V4.14b ,驅動安裝好了以后接上開發板,然后在把開發板的啟動方式改為從norflash啟動,然后啟動開發板,最后點Download,如果沒有意外的話,你就可以看到led的開始閃了。

4.RAM調試跑馬燈程序
光能下載可不行,最主要的是能調試.其實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函數入口。此外不需要一個調試初始化文件,這個文件不用寫,可以在RealView MDK的例子中找到它,比如在我機子上是D:\Tool\Electronic\RealViewMdk\ARM\Boards\Samsung\S3C2440\RTX_Blinky下的Ext_ARM.ini,把它拷到工程目錄下然后在Initialization File中選擇它就OK了。

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

好了,調試選項都設置好了,開始調試,如果沒有意外的話會出現下面所示

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

關閉窗口

相關文章

主站蜘蛛池模板: 欧美国产大片 | 黄免费在线 | 国产高清精品在线 | 97综合在线 | 精品在线一区二区 | 欧美精品一二三区 | 国产精品久久久久久久午夜 | 国产99久久精品一区二区永久免费 | 国产成人精品一区二区三区 | 免费看91| 欧美成年网站 | h免费观看 | 日韩精品一区二区三区中文字幕 | 国产91久久精品一区二区 | 日韩在线小视频 | 国产精品久久久久aaaa | 99精品在线 | 精品亚洲一区二区三区 | 日韩欧美国产一区二区 | 日韩最新网址 | 久久亚洲经典 | 日韩 国产 在线 | 色婷婷av一区二区三区软件 | 久久www免费人成看片高清 | 毛片国产| 欧美日本亚洲 | 国产精品99精品久久免费 | 欧美一级电影免费 | 在线免费观看黄a | 日日草夜夜草 | www.亚洲精品| 国产网站在线免费观看 | www精品| 亚洲一区二区精品视频 | 99免费在线观看 | 性欧美精品一区二区三区在线播放 | 精品亚洲一区二区 | 久久久999成人 | 国产在线一区二区 | 视频一区中文字幕 | 亚洲a在线观看 |