1.2.5打开旧工程点击【File】菜单,选择【Open.】即弹出“打开”对话框,找到相应的工程文件(*.mcp),单击【打开】即可。在工程窗口的【Files】页中,双击源程序的文件名即可打开该文件进行编辑。1.3工程的调试1.3.1选择调试目标2区Choose TargetTarget EnvironmentsTargetRDIFileAddVersionADPBINRemote Adll1.2.0.8051ARMULBINARMulate.dl1.2.0.805RemoveEasyJTAG1..C:L..BinEasyJtagdll1,04,0RenameSave AsConfigureUse the ARM Debugger with theARMulator Instruction Set SimulatorThis allows you toexecute ARM progrswithoutphysical ARhardwareISby simulating theARM instructionsin softwareOKCancelHelp图1.12ChooseTarget窗口当工程编译连接通过后,在工程窗口中点击"Debug”图标按钮,即可启动AXD进行调试(也可以通过【开始】菜单起动AXD)。点击菜单【Options】选择【ConfigureTarget..】,即弹出ChooseTarget窗口,如图1.12所示。在没有添加其它仿真驱动程序前,Target项中只有两项,分别为ADP(JTAG硬件仿真)和ARMUL(软件仿真)。选择仿真驱动程序后,点击【File】选择【LoadImage..】加载ELF格式的可执行文件,即*.axf文件。说明:当工程编译连接通过后,在“工程名\工程名Datal当前的生成目标”目录下就会生成一个*.axf调试文件。比如工程TEST,当前的生成目标Debug,编译连接通过后,则在...ITESTITESTDataDebug目录下生成TEST.axf文件。1.3.2调试工具条AXD运行调试工具条如图1.13所示,调试观察窗口工具条如图1.14所示,文件操作工具条如图1.15所示。0003图1.13运行调试工具条11
1.2.5 打开旧工程点击【File】菜单,选择【Open.】即弹出“打开”对话框,找到相应的工 程文件(*.mcp), 单击【打开】即可。在工程窗口的【Files】页中, 双击源程序的文件名即可打开该文件进行编 辑。 1.3 工程的调试 1.3.1 选择调试目标 图1.12 Choose Target 窗口 当工程编译连接通过后, 在工程窗口中点击“Debug” 图标按钮,即可启动AXD 进行调试 (也可以通过【开始】菜单起动AXD) 。点击菜单【Options 】选择【Configure Target. 】, 即 弹出Choose Target 窗口,如图1.12 所示。在没有添加其它仿真驱动程序前,Target 项中只有 两项,分别为ADP(JTAG 硬件仿真)和ARMUL(软件仿真)。 选择仿真驱动程序后, 点击【File】选择【Load Image. 】加载ELF 格式的可执行文 件,即*.axf 文件。说明:当工程编译连接通过后,在“工程名\工程名_Data\当前的生成目标” 目录下就会生成一个*.axf 调试文件。比如工程TEST, 当前的生成目标Debug, 编译连接通 过后,则在.\TEST\TEST_Data\Debug 目录下生成TEST.axf 文件。 1.3.2 调试工具条 AXD 运行调试工具条如图1.13 所示, 调试观察窗口工具条如图1.14 所示, 文件操作 工具条如图1.15 所示。 图1.13 运行调试工具条 11
该函数。单步运行(Step),每次执行一条语句,这时函数调用将被作为一条语句执行。单步运行StepOut),执行完当前被调用的函数,停止在函数调用的下一条语句。运行到光标(RunToCursor),运行程序直到当前光标所在行时停止。设置断点(ToggleBreakPoint)O图1.14调试观案窗口工具条打开寄存器窗口(ProcessorRegisters)打开观察窗口(ProcessorWatch)打开变量观察窗口(ContextVariable)打开存储器观察窗口(Memory)打开反汇编窗口(Disassembly)国eDnr图1.15文件操作工具条重新加载文件(ReloadCurrentImage)。由于AXD没有复位命令,所以通常使用Reload实现复位(直接更改PC寄存器为零也能实现复位)。1.4LPC2200系列ARM7微控制器工程模板在第1.2节介绍新建立工程时,我们已经接触了ADS1.2提供的几个标准工程模板,使用各个模板建立的工程,它们的各项设置均有不同之处,方便生成不同结构的代码,如ARM可执行映象(生成ARM指令的代码)或Thumb可执行映象(生成Thumb指令的代码),或ThumbARM交织映象(生成Thumb、ARM指令交织的代码)。针对LPC2200系列ARM7微控制器,我们定义了6个工程模板,这些模板一般包含的设置信息有FLASH起始地址0x00000000、片内RAM起始地址0x40000000、片外RAM起始地址为0x80000000、编译连接选项及编译优化级别等等;模板中包含了LPC2200系列ARM7微控制器的起动文件,包括STARTUP.S、TARGET.C:模板还包含了LPC2200系列ARM7微控制器的头文件(如:LPC2294.h和LPC2294.inc,LPC2294的寄存器是向下兼容的),分散加载描述文件(如:mem_a.scf、mem_b.scf、mem_c.scf)等等。12
该函数。单步运行(Step) ,每次执行一条语句,这时函数调用将被作为一条语句执行。单步运 行(Step Out) ,执行完当前被调用的函数,停止在函数调用的下一条语句。运行到光标(Run To Cursor) ,运行程序直到当前光标所在行时停止。设置断点(Toggle BreakPoint) 图1.14 调试观察窗口工具条 打开寄存器窗口(Processor Registers) 打开观察窗口(Processor Watch) 打开变量观 察窗口(Context Variable) 打开存储器观察窗口(Memory) 打开反汇编窗口 (Disassembly) 图1.15 文件操作工具条 重新加载文件(Reload Current Image) 。由于AXD 没有复位命令,所以通常使用Reload 实现复 位(直接更改PC 寄存器为零也能实现复位)。 1.4 LPC2200 系列ARM7 微控制器工程模板 在第1.2 节介绍新建立工程时,我们已经接触了ADS1.2 提供的几个标准工程模板,使用 各个模板建立的工程,它们的各项设置均有不同之处,方便生成不同结构的代码,如ARM 可 执行映象(生成ARM 指令的代码)或Thumb 可执行映象(生成Thumb 指令的代码),或Thumb 、 ARM 交织映象(生成Thumb 、ARM 指令交织的代码)。 针对LPC2200 系列ARM7 微控制器,我们定义了6 个工程模板, 这些模板一般包含的设置信 息有FLASH 起始地址0x00000000 、片内RAM 起始地址0x40000000 、片外RAM 起始地址为 0x80000000 、编译连接选项及编译优化级别等等;模板中包含了LPC2200 系列ARM7 微控制 器的起动文件,包括STARTUP.S 、TARGET.C ;模板还包含了LPC2200 系列ARM7 微控制 器的头文件(如:LPC2294.h 和LPC2294.inc,LPC2294 的寄存器是向下兼容的), 分散加载描 述文件(如:mem_a.scf 、mem_b.scf 、mem_c.scf)等等。 12
1.4.1为ADS1.2增加LPC2200专用工程模板将“lpc2200projectmodule”目录下的所有文件和目录拷贝到“<ADS1.2安装目录>IStationeryl”即可,操作如图1.16和图1.17所示。这个步骤只需1次,以后就可以直接使用工程模板了。口区LPC220D Project nodule文伴)编播()查看)转到)收魔()帮助Q0品文L+后退地址入式系统基础出实验数程(2))AnS集成开发环境及EasTTAG仿真器应用LPC2200专用工程模板\LPC2200ProjectmodalTe200bthExecutsExecuts...LPC2200Project打开(0)module资源管理器()查找Q6选定的项目Addto ZipZipand E-MailFC2200Projectmodale:zipAEmExecutable Imgge forUCOSII(forlpe2200共享0AIM Enecutable Image forlpe2200发送到Q)1pe2200Thunb ABn Interworkine剪切)Imazefor1pe2200Thuns Ezecutable Inage For复制(Ciete ne a包健快捷方式()UC0SII (ferIpe2200)珊除@)重命名库性()将所选项目复制到单帖板上,使用“粘贴”可以把它们放到陈位置,图1.166选择拷贝的文件和目录址@C:IProgrmFileslAmASvl_2IStationeryThunb ARrThunb ObjectARMARMObjectThunbIntervorkingExecuta..Executa..LibraryLibraryStationeryInage选定项目可以查着其说明。查看自定义文件夹).排列图标对齐图标)刷新粘贴()粘贴快捷方式(S)图1.17复制文件目录13
1.4.1 为ADS1.2 增加LPC2200 专用工程模板 将 “lpc2200 project module ” 目录下 的所有 文 件和目 录 拷贝到 “<ADS1.2 安装目录 >\Stationery\” 即可,操作如图1.16 和图1.17 所示。这个步骤只需1 次, 以后就可以直接使用 工程模板了。 图1.17 复制文件目录 13
1.4.2.使用LPC2200专用工程模板建立工程启动ADS1.2IDE,点击【File】菜单,选择【NeW.】即弹出New对话框,如图1.18所示。由于事先增加了LPC2200专用工程模板,所以在工程模板栏中多出几项工程模板选项。区HewProjectFileObjectProject name:ARM Executable ImageARM Executable Image for lpc2200ARM Executable Image for UCOSII(forIpLocation:DARM ObjectLibraryD:EasyARM2200\实验程序\Aasmfor1pc2200etDEmptyProjectAdd to ProjeDMakefileImporter WizardProject:Thumb ARM Interworking ImageThunb ARMInterworkingImage forIpc220DThunb Executable ImageThumb ExecutableImage forIpc2200Thunb Executable Image forUCOSII(for1DThumb Ubject Library职消确定图1.18增加的工程模板LPC2200专用工程模板说明如下:ARMExecutableImageforlpc2200:无操作系统时所有C代码均编译成ARM指令的工程模板。asmforlpc2200:汇编程序工程模板。ThumbARMInterworkingImageforIpc2200:无操作系统时部分C代码编译为ARM指令,部分C代码编译为Thumb指令的工程模板。ThumbExecutableImageforIpc2200:无操作系统时所有C编译成Thumb指令的工程模板。ARMExecutableImageforUCOSII(forIpc2200):所有C代码均编译为ARM指令的uC/OS-II工程模板ThumbExecutableImageforUCOSII(forlpc2200):部分C代码编译为ARM指令,部分C代码编译为Thumb指令的μC/OS-II工程模板(使用μC/OS-II时,不可能所有代码均编译成Thumb指令)。用户选择相应的工程模板建立工程,如图1.19所示为使用ARMExecutableImageforIpc2200工程模板建立的一个工程。工程有四个生成目标(targetsystem):DebuglnExramDebuglnChipFlash、RellnChip和RelOutChip,它们的配置如表1.2所示。工程模板已经将相应的编译参数设置好了,可以直接使用即可。14
1.4.2 使用LPC2200 专用工程模板建立工程 启动ADS1.2 IDE ,点击【File】菜单,选择【New.】即弹出New 对话框,如图1.18 所 示。由于事先增加了LPC2200 专用工程模板,所以在工程模板栏中多出几项工程模板选项。 图1.18 增加的工程模板 LPC2200 专用工程模板说明如下: ARM Executable Image for lpc2200 : 无操作系统时所有C 代码均编译成ARM 指令的工 程模板。 asm for lpc2200 :汇编程序工程模板。 Thumb ARM Interworking Image for lpc2200 :无操作系统时部分C 代码编译为ARM 指 令,部分C 代码编译为Thumb 指令的工程模板。 Thumb Executable Image for lpc2200 :无操作系统时所有C 编译成Thumb 指令的工程模 板。 ARM Executable Image for UCOSII(for lpc2200) :所有C 代码均编译为ARM 指令的 µC/OS-II 工程模板 Thumb Executable Image for UCOSII(for lpc2200) :部分C 代码编译为ARM 指令,部分 C 代码编译为Thumb 指令的µC/OS-II 工程模板(使用µC/OS-II 时, 不可能所有代码均编译 成Thumb 指令)。 用户选择相应的工程模板建立工程,如图1.19 所示为使用ARM Executable Image for lpc2200 工程模板建立的一个工程。工程有四个生成目标(target system):DebugInExram 、 DebugInChipFlash 、RelInChip 和RelOutChip, 它们的配置如表1.2 所示。工程模板已经将相 应的编译参数设置好了,可以直接使用即可。 14
注意:选用ReIInChip目标时,将会对LPC2200芯片进行加密(没有片内FLASH的芯片不能加密)。加密的芯片只能使用ISP进行芯片全局擦除后,才能恢复JTAG调试及ISP读/写操作。表1.2LPC2200专用工程模板各生成目标的配置生成目标分散加载描述文件调试入口点地址TC优化等级应用说明DebugInExrammem_b.scf0x80000000Most片外RAM调试模式,程序在片外RAM中0x00000000MostDebuglnChipFlashmem_c.scf片内FLASH调试模式,程序在片内FLASH中RellnChipmem_c.scf0x00000000Most片内FLASH工作模式,程序在片内FLASH中。程序写入芯片后芯片即被加密RelOutChipmem_a.scf0x80000000Most片外FLASH工作模式,程序在片外FLASH中CO区test.ncDebugInExcran窗交金口DebugInExranDebugInChipPlashRelInChipCodeData 浆RelOutChip00.0target0.n0-user7files图1.19用LPC2200专用工程模板建立的工程1.4.3模板适用范围(1)本模板假设用户系统使用片外存储器。如果用户不使用片外存储器,可以使用LPC2100的工程模板,下载地址为http://www.zlgmcu.com/tools/kaifaban/EasyARM2100.asp的EaSyARM2100开发套件快速入门和LPC210...(2)本模板假设用户系统片外存储器使用16位总线,且不使用ETM功能。如果用户的片外存储器不是使用16位总线,和/或使用ETM功能,需要修改Startup.s这个文件,修改点见程序清单1.1。如何修改请参考LPC2200芯片的使用手册,下载地址为:15
注意:选用RelInChip 目标时,将会对LPC2200 芯片进行加密(没有片内FLASH 的芯片不 能加密)。加密的芯片只能使用ISP 进行芯片全局擦除后,才能恢复JTAG 调试及ISP 读/写操 作。 表1.2 LPC2200 专用工程模板各生成目标的配置 生成目标 分散加载描述文件 调试入口点地址 C 优化等级 应用说明 DebugInExram mem_b.scf 0x80000000 Most 片外RAM 调试模式,程序 在片外RAM 中 DebugInChipFlash mem_c.scf 0x00000000 Most 片内FLASH 调试模式,程 序在片内FLASH 中 RelInChip mem_c.scf 0x00000000 Most 片内FLASH 工作模式,程 序在片内FLASH 中。程序 写入芯片后芯片即被加密 RelOutChip mem_a.scf 0x80000000 Most 片外FLASH 工作模式,程 序在片外FLASH 中 图1.19 用LPC2200 专用工程模板建立的工程 1.4.3 模板适用范围 (1) 本模板假设用户系统使用片外存储器。如果用户不使用片外存储器,可以使用LPC2100 的工程模板,下载地址为http://www.zlgmcu.com/tools/kaifaban/EasyARM2100.asp 的 EasyARM2100 开发套件快速入门和LPC210.。 (2) 本模板假设用户系统片外存储器使用16 位总线,且不使用ETM 功能。如果用户的片 外存储器不是使用16 位总线,和/或使用ETM 功能,需要修改Startup.s 这个文件,修改点见 程序清单1.1 。如何修改请参考LPC2200 芯片的使用手册,下载地址为: 15