ADS软件使用手册

时间:2019-08-12 07:00:01 来源:海外网 当前位置:峰哥悄悄话 > 诗词 > 手机阅读

ADS软件使用手册(LPC214x为例)

1.  在桌面新建文件夹,名称为:first_ADS;

2.  打开ADS1.2软件,在开始菜单中选择或双击软件图标;

3.新建文件,选择File/New;

4.在弹出的对话框的Project选项卡中,选ARM Executable Image,在Project name中填first_ADS,Location中浏览选择桌面的first_ADS文件夹,点击打开,再点击确定;

5.新建文件,选择File/New,在弹出对话框的File选项卡中,选Text File,在File Name中填main,Location中浏览选择桌面的first_ADS文件夹,在文件名中填main.c,点击保存,点击确定;

6.编写代码,保存;

7.将main文件填加到工程中, 在first_ADS.mcp窗口中右键,选Add Files…,在弹出对话框中选择刚才保存的文件,点击打开;

8.在弹出对话框中,按默认选择,点击OK;

DebugRel:使用该目标,在生成目标的时候,会为每一个源文件生成调试信息;

Debug:使用该目标为每一个源文件生成最完全的调试信息;

Release:使用该目标不会生成任何调试信息.

9.将LPC214x.h、config.h、Startup.s、target.c、target.h、mem_a、mem_b、mem_c文件复制到桌面上的first_ADS文件夹中;

10.将上述文件填加到工程中;

11.查找印象文件入口, 打开Startup.s,查找中断向量表,入口为Reset;

12.打开设置工程对话框,点击工具栏中的DebugRel Settings…;

13.检查ARM核架构设置,在目标设置面板中Language Settings中各项中检查相关Target选项卡中是否为相应目标器件的核架构;

14.设置链接参数,在ARM Linker中的Output选项卡中,Linktype中选Scattered,在下方对应的Scattere中浏览选择first_ADS文件夹中的mem_b(软仿用mem_a、men_c都可以),点击打开;

15.切换到Option,在Image entry point中填入Reset,点击OK;

16.编译链接文件,点击工具栏中的Make,在弹出的对话框中检查是否有错误,有错找错,无错继续;

17.打开调试器,调试代码,点击工具栏中的Debug按钮,出现AXD调试窗口;

18.在AXD的菜单Options中选择Configure Target…;

19.选择软件仿真的链接文件,如图示,点击OK,出现AXD对话框,点击是;

20.点击工具栏的Go,开始执行;

21.程序停止在主函数入口处;

22.单步或全速执行调试代码;

23.关闭AXD调试窗口;

24.关闭ADS窗口;

25.打开ADS1.2工程文件,打开软件,浏览目录选择工程文件first_ADS.mcp;

26.在RAM中硬件仿真,打开调试设置窗口,在ARM Linker中,Output选项卡中,Linktype选Scattered,在下方相应的Scatter中浏览选择mem_b.scf,点击打开,点击OK;

27.打开H-JTAG Sever窗口,在弹出的Auto Updata窗口中点No;

28.连接H-JTAG与目标板,将H-JTAG的USB端接到PC,另一端下载线接到目标板,打开电路板电源;

29.识别ARM7核,在以下窗口中,点Detect target;

30. 识别出ARM核的界面如下,将此窗口最小化,在整个硬件设试仿真过程中,不可关闭;

31. 在ADS1.2中点击Debug(方法见17项),弹出AXD调试窗口,在AXD的菜单Options中选择Configure Target…(方法见18项),在弹出的对话框中点Add,路径选择H-JTAG安装所在的目录中,找到H-JTAG.dll文件,点击打开,选择这个新填加的文件,点击OK;

32.关闭AXD调试窗口,重新在ADS1.2窗口中点Debug,重新打开AXD调试窗口,点击工具栏的Go,开始执行(见20项),注意到程序停止在主函数入口处(见21项);

33.单步或全速调试代码,比较目标板与代码执行是否一致;

34.调试完成后关闭AXD调试窗口,关闭目标板电源,片刻后,重新给目标板上电,此时目标板应未执行刚才下载到RAM中的代码;

35.在FLASH中硬件仿真,打开设置窗口,将ARM Linker中Scatter中的文件在浏览中换为mem_a.scf,点击OK;

36.在FLASH中硬件仿真过程中RDI Severe Error 00602错误的处理,在点击Debug后,出现以下对话框,表明出现了错误;原因:当在非GPIO模式下操作IOnDIR时,会出现JTAG调试中无法暂停的情况,并且AXD会弹出以下信息的窗口并被迫关闭:"RDI Severe Error 00602:Can't halt target and make it enter DEBUG state."简单翻译一下就是:“RDI严重错误00602: 无法暂停目标并使它进入调试状态。”当出现这种情况后,就要复位目标板(或者重新上电),然后重新打开H-JTAG软件和AXD等(此错误容易在H-JTAG server识别目标器件后,断电再上电继续调试中出现)。

37.关闭报错窗口,关闭ADS,关闭目标板电源,关闭H-JTAG server;

38.打开目标板电源,打开H-JTAG server,重新查找识别目标器件(见28,29项),打开ADS,打开first_ADS工程,检查ARM Linker中Scatter中的文件是否为mem_a.scf(见34项);

39.点击Debug,弹出AXD调试窗口,点击Go开始执行(见20项),注意到程序停止在主函数入口处(见21项);

40.单步或全速调试代码,比较目标板与代码执行是否一致;

41.调试完成后关闭AXD调试窗口,关闭目标板电源,片刻后,重新给目标板上电,此时目标板应执行刚才下载到FLASH中的代码;

42.调试过程中查看寄存器值方法:

    在程序运行前,可以先查看两个宏变量IOPMOD和IOPDATA的当前值,方法是:从Processor Views菜单中选择“Memory”选项,如下图所示。

在Memory Start address选择框中,可以根据要查看的存储器的地址输入起始地址,在下面的表格中会列出连续的64个地址。因为I/O模式控制寄存器和I/O数据控制寄存器都是32位的控制寄存器,所以从0x3ff5000开始的连续四个地址空间存放的是I/O模式控制寄存器的值,从上图可以读出该控制寄存器的值开始为0Xe7ff0010,I/O数据控制寄存器的内容是从地址0x3FF5008开始的连续四个地址空间存放的内容。从上图中可以看出IODATA中的初始值为0Xe7ff0010,注意因为用的是小端模式,所以读数据的时候注意高地址中存放的是高字节,低地址存放的是低字节。

    现在对程序进行单步调试,当程序运行到这个寄存器相关行之后,可以再一次查看这两个寄存器中的内容,此时存储器的内容如下图所示:


从图中可以看出运行完两个赋值语句后,两个寄存器的内容的确发生了变化,在地址0x3FF5000作为起始地址的连续四个存储单元中,可以读出I/O模式控制寄存器的内容为0Xffffffff,在地址0x3ff5008开始的连续的四个存储单元中,可以读出I/O数据控制寄存器的内容为0x00000001。

43.查看变量值

    如果希望查看某个变量的值,比如查看变量i的值,可以在Processor View菜单中选择“Watch”,会出现watch窗口,然后用鼠标选中变量i,点击鼠标右键,在快捷菜单中选中“Add to watch”,这样变量i默认是添加到watch窗口的Tab1中。程序运行过程中,用户可以看到变量i的值在不断的变化。默认显示器变量数值是以十六进制格式显示的,如果用户对这种显示格式不习惯的话,可以通过在watch窗口点击鼠标右键,在弹出的快捷菜单中选择“Format”选项,用户可以选择所查看的变量显示数据的格式。


上一篇刚刚,华为在深圳总部发布重要声明:决定起诉美国政府

下一篇王思聪也救不了熊猫直播?员工发文告别,主播找粉丝加群防失联

相关文章:

诗词本月排行

诗词精选