调试环境
软件:RealView MDK 4.03q
硬件:JLINK v7,TQ2440开发板
刚开端学习ARM无OS编程的时分用的是天嵌的TQ2440_Test工程,它是ads1.2的工程,但是我用的是windows7的操作体系,ads1.2比较老了在windows7下不太好使老是莫名美妙的就崩了,弄的我很抑郁所以我就换了RealView MDK,但是关于RealView MDK的教程网上很少(可能是用的人还不太多)经过一个星期的学习大约了解了RealView MDK的环境,下面就记录下我的调试进程。
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文件中
//界说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();
//点亮第三个小灯
return 0;
}
好了,代码都全了,下面咱们装备编译和衔接选项,咱们挑选工程特点
然后选Target选项按下图设置
在Output选项中选上Create HEX File就行了,其它的选项先不必管,然后咱们按F7试着Build下,检查输出信息,现已成功了只要一个Warning不能管它。