欢迎来到天天文库
浏览记录
ID:28061362
大小:92.47 KB
页数:3页
时间:2018-12-07
《实验4axd仿真调试器的使用》由会员上传分享,免费在线阅读,更多相关内容在学术论文-天天文库。
1、实验4AXD仿真调试器的使用【AXD简介】AXD提供的一种软件仿真的调试方法,ARMulator调试方法。ARMulator调试方法是一种脱离硬件调试软件的方法。这种方法所使用的工具软件是Armulate.dll。本次试验以实验三中所给的源程序为例,对丼进行仿真调试。【实验步骤】(1)打开CodeWarriorIDE(项目管理器),建立新的工程(2)在工程中建立源程序文件watchdog.s和led_on.s(3)正确设置编译选项,DebugRelsetting(4)点击“Make”按钮,对工程进行编译,最终生成可执行的映像文件(*.axf)和二进制代码文件(*.b
2、in)(5)点击“Debug”调试按钮,打开AXD仿真调试器窗U昔先,需要configure,选择使用ARMulator的调试方法;然后,通过[File]〉【LoadImage】,将编译生成的映像文件*.axf加载进來;最后,利用AXD提供的工具进行调试,查看相关寄存器中的值。’'AXD-[AR17TD^I-F:ar«watchdog„cnablc>atchdog.s]El回®Fxl«SearchProcessorViewsSystemView釗時倒至
3、
4、
5、1^与
6、
7、
8、釗》^
9、
10、
11、lo12、ExecuteOpt.ionsWindowH13、elp—flXe14、b15、e16、囪曜17、田18、卽I匿[z19、b面□NMI)1“I!dH>ARM7TDMI-RegistersRegister-urrenc{•••}HrO0x53000000•rl0X00004A21-r20x53000008卜r30x00002710hr40x00000000hr50x00000000kr€0x00000000:Lr70x00000000rre0x00000000赛-AValue012345678123456789111111111WTCONEQU0x53000000WTCNTEQU0x53000008AREAKATCHDOG_ENA3LE,C20、ODE,READONLYENTRY;设罝■门狗控劍杏存器WTCONldrr0,=WTCON;加ttKTCOl;寄岑器ife址;0x4a21-[15:8]-74,[5]国1,[0]-1Idrrlr=0x4a21:将0x4a21保存到rl£szrrlr[rO];将rl里的<£存入r0指向的绝址;设S砉门狗什存器,ldrr2,■WTCNTIdrr3,=0x2710szrr3r[r2]该寄存器的!在上*.5»加敦,1秒超时;加钹KTCNT寄存器地址;袼0x2710呆存5Crl里;将r3里的!存入1:2指定的地址IMPORTledon;引入ledon符号SystemOutpu21、tMonitorRDILogjDebugLogLocfile:Softwaresuppliedby:TeamEFAaARM7TDMI.BILLLitHeendian.Semihosling.DebugCommsChannel.4GB,Mapfite,TimerzProffer,Tube,Mlisecond[20000cyctes_per_millrsecondhPagetables.IntDrLTracerzRDICodesequencesARMRD115.1->ASYNCRDIProtocolConverterADSv1.2[Bidnumber805)Copyri22、ght(c)ARMLtnited2001v<-」出23、_——I>ForH«lp4pressFISttppincImtc«24、OIoPox>ARHULABM7TDMIwttchdoc.25、连续运行聖Jstop暂停运行Hlstepin如果指令是一条函数调用指令,则将进入函数体内IlLlstep单步运行1^1stepout如果指令是在函数体内,则使程序跳出函数体。togglebreakpoint加断点注意:当需要从头开始调试程序的时候,必须重新加载源程序到AXD仿真调试器中。通过【File】>【LoadImage],将编译生成的映像文件*.axf加载进来;
12、ExecuteOpt.ionsWindowH
13、elp—flXe
14、b
15、e
16、囪曜
17、田
18、卽I匿[z
19、b面□NMI)1“I!dH>ARM7TDMI-RegistersRegister-urrenc{•••}HrO0x53000000•rl0X00004A21-r20x53000008卜r30x00002710hr40x00000000hr50x00000000kr€0x00000000:Lr70x00000000rre0x00000000赛-AValue012345678123456789111111111WTCONEQU0x53000000WTCNTEQU0x53000008AREAKATCHDOG_ENA3LE,C
20、ODE,READONLYENTRY;设罝■门狗控劍杏存器WTCONldrr0,=WTCON;加ttKTCOl;寄岑器ife址;0x4a21-[15:8]-74,[5]国1,[0]-1Idrrlr=0x4a21:将0x4a21保存到rl£szrrlr[rO];将rl里的<£存入r0指向的绝址;设S砉门狗什存器,ldrr2,■WTCNTIdrr3,=0x2710szrr3r[r2]该寄存器的!在上*.5»加敦,1秒超时;加钹KTCNT寄存器地址;袼0x2710呆存5Crl里;将r3里的!存入1:2指定的地址IMPORTledon;引入ledon符号SystemOutpu
21、tMonitorRDILogjDebugLogLocfile:Softwaresuppliedby:TeamEFAaARM7TDMI.BILLLitHeendian.Semihosling.DebugCommsChannel.4GB,Mapfite,TimerzProffer,Tube,Mlisecond[20000cyctes_per_millrsecondhPagetables.IntDrLTracerzRDICodesequencesARMRD115.1->ASYNCRDIProtocolConverterADSv1.2[Bidnumber805)Copyri
22、ght(c)ARMLtnited2001v<-」出
23、_——I>ForH«lp4pressFISttppincImtc«
24、OIoPox>ARHULABM7TDMIwttchdoc.25、连续运行聖Jstop暂停运行Hlstepin如果指令是一条函数调用指令,则将进入函数体内IlLlstep单步运行1^1stepout如果指令是在函数体内,则使程序跳出函数体。togglebreakpoint加断点注意:当需要从头开始调试程序的时候,必须重新加载源程序到AXD仿真调试器中。通过【File】>【LoadImage],将编译生成的映像文件*.axf加载进来;
25、连续运行聖Jstop暂停运行Hlstepin如果指令是一条函数调用指令,则将进入函数体内IlLlstep单步运行1^1stepout如果指令是在函数体内,则使程序跳出函数体。togglebreakpoint加断点注意:当需要从头开始调试程序的时候,必须重新加载源程序到AXD仿真调试器中。通过【File】>【LoadImage],将编译生成的映像文件*.axf加载进来;
此文档下载收益归作者所有