爱问 爱问共享资料 爱问分类
首页 > > > ADS1.2中文教程.pdf

ADS1.2中文教程.pdf

ADS1.2中文教程.pdf

上传者: 自语的骆驼
7次下载 0人收藏 暂无简介 简介 2011-06-27 举报

简介:当前资料暂无简介!

一步一步基于ADS1.2进行设计开发目录1ADS1.2集成开发环境简介......................................................................................................22利用HELLOWORLD来学习使用ARMSYS...........................................................................23编写好源程序代码...................................................................................................................34使用CODEWARRIOR建立工程并进行编译...........................................................................44.1调入模板或重新建立项目.............................................................................................44.2在工程中添加源文件.....................................................................................................84.3进行编译和链接...........................................................................................................105使用AXD进行仿真调试.......................................................................................................115.1硬件准备.......................................................................................................................115.2使用UART串口和超级终端进行系统调试...............................................................115.3运行JTAG调试代理软件............................................................................................125.4调试器设置...................................................................................................................135.5调试器的使用...............................................................................................................155.6观察窗口.......................................................................................................................165.7全速运行.......................................................................................................................176USB口下载工具.....................................................................................................................177代码固化.................................................................................................................................217.1空板烧录.......................................................................................................................227.2FLASH内代码的覆盖烧录.........................................................................................221ADS1.2集成开发环境简介ADS1.2是一个使用方便的集成开发环境,全称是ARMDeveloperSuitev1.2。它是由ARM公司提供的专门用于ARM相关应用开发和调试的综合性软件。在功能和易用性上比较SDT都有提高,是一款功能强大又易于使用的开发工具。以下就我们对ADS1.2进行一些简要的介绍。ADS囊括了一系列的应用,并有相关的文档和实例的支持。使用者可以用它来编写和调试各种基于ARM家族RISC处理器的应用。你可以用ADS来开发、编译、调试采用包括C、C++和ARM汇编语言编写的程序。ADS主要由以下部件构成:n命令行开发工具;n图形界面开发工具;n各种辅助工具;n支持软件。其中重点介绍一下图形界面开发工具。nAXD提供给基于Windows和UNIX使用的ARM调试器。它提供了一个完全的Windows和UNIX环境来调试你的C,C++,和汇编语言级的代码。nCodeWarriorIDE提供基于Windows使用的工程管理工具。它的使用使源码文件的管理和编译工程变得非常方便。但CodeWarriorIDE在UNIX下不能使用。2利用Helloworld来学习使用ARMSYS本实验利用光盘中source\Helloworld\下的源代码进行实验,要求完成以下工作:1)利用工程模板source\template.mcp,在ADS1.2的CodeWarriorIDE(项目管理器)中建立新的工程,在工程中加入source\Helloworld\Target目录中提供的文件;2)编写主程序文件main.c,并将文件加入到工程中;3)正确设置编译器的编译选项,并对工程进行编译、除错,最终产生可执行的映像文件(*.axf)和二进制代码(*.bin)文件;4)打开超级终端,正确配置串口参数;5)采用AXD(视窗调试器)通过JTAG模块下载可执行程序,并仿真调试,观察实验现象;6)采用ARMSys提供的USB下载器下载二进制代码,并观察运行情况。将source目录整个拷贝到硬盘中,例如拷贝到D:\source处,方便进行实验。【注意】在进行ADS程序调试之前,确保开发板中已经固化了bootloader.bin。Bootloader启动时超级终端上应当显示如下:如果板之上已固化的不是bootloader,请按照7.2节中的说明,讲bootloader固化到flash中。首先,安装ADS1.2,在光盘的\开发工具\集成开发环境\Windows\目录下有ADS1.2的安装文件,双击setup.exe进行安装,具体的安装过程这里就不赘述了。3编写好源程序代码用CodeWarriorIDE打开source\HelloWorld\main.C文件,读懂其中的代码。其中main()函数的定义是:voidMain(void){charaa;Uart_Init(0,115200);//初始化UART0口,设置波特率为115200bpsLed_Display(0xf);//点亮绿色发光二极管Uart_Select(0);//选中UART0Beep(0x1);//点响蜂鸣器Uart_Printf("\n********************************************");//向串口输出字符串Beep(0x0);//Uart_Printf("\n*立宇泰电子*");Uart_Printf("\n*-HelloWorld!-*");Uart_Printf("\n*Version1.21*");Uart_Printf("\n*Email:Support@hzlitai.com.cn*");Uart_Printf("\n*UARTConfig--COM:115.2kbps,8Bit,NP,UART0*");Uart_Printf("\n*BegintoStudyEmbeddedSystem,OK?(Y/N)---*");Led_Display(0x0);aa=Uart_Getch();//等待并从串口获得一个字符if((aa=='Y')||(aa=='y'))Uart_Printf("\nGood!Seeyounexttime!");elseUart_Printf("\nByeBye!");}这是一个简单的例子,因此代码比较简单。这里你可以尝试修改一下代码,将:Uart_Printf("\nGood!Seeyounexttime!");修改为:Uart_Printf("\n好!我们马上开始学习嵌入式系统!");然后保存文件。除了main.C文件以外,在一个工程中,我们还要具备几个必不可少的源文件:系统初始化程序44binit.s,和它引用的存储器控制寄存器定义文件Memcfg.s和系统选项文件Option.s,这3个文件都由汇编语言写成。C语言基本函数库定义文件44blib.a(或44blib.c,该文件可以在/BIOS/Target或者bootloader/Target下找到)和头文件44blib.h、option.h、44b.h。这些文件定义了最基本硬件系统信息,几乎在所有的应用工程中都要使用到,你可以在每个工程的Target目录下找到它们。4使用CodeWarrior建立工程并进行编译首先我们学习如何使用ADS中的CodeWarrior——项目管理器来管理源代码。一个嵌入式系统项目通常是由多个文件构成的,这其中包括用不同的语言(例如汇编或C)、不同的类型(源文件,或库文件)的文件。CodeWarrior通过“工程(Project)”来管理一个项目相关的所有文件。因此,在我们正确编译这个项目代码以前,首先要建立“工程”,并加入必要的源文件、库文件等。4.1调入模板或重新建立项目我们通常采用工程模板来建立新的工程,工程模板已经针对目标系统对编译选项进行了设置,为避免重复设置,我们提供了一个在ARMSys上使用的通用工程模板——template.mcp。点击CODEWARRIOR菜单[File|open…],找到source\template.mcp,选中并打开。图6打开模板工程点击[File|Saveas…],将它另存为:source\Myhelloworld(或者是自定义的其它目录)\Myhelloworld.mcp。然后,关闭当前的工程,重新调入Myhelloworld.mcp,就可以向工程中添加文件了。如果你不想利用模板,也可以按照以下步骤来新建一个工程:选择File菜单下的new选项,或直接按下,出现以下对话框:图7新建对话框2).选中“ARMExecutableImage”选项,在右边的编辑框中输入工程名(例如Myhelloworld),在下面的Location栏中,点击“Set…”,选择放置工程的路径。3).点击“确定”则工程被建立:图8新建工程但这样的工程还并不能正确地被编译,还需要对工程的编译选项进行适当配置。为了设置方便,先点选Targets页面,选中DebugRel和Relese变量,按下Del键将它们删除,仅留下供调试使用的Debug变量。点击菜单[Edit|DebugSetting…],弹出配置对话框:图9工程配置对话框——目标设置首先选中TargetSetting,将其中的Post-linker设置为ARMfromELF,使得工程在链接后再通过fromELF产生二进制代码。然后选中ARMLinker,对链接器进行设置:图10(a)ARMLinker的设置注意,在调试时,-ro-base的设置应当大于0xc000000。我们为了与uClinux的memorymap保持一致,采用了0xc008000这个地址。选取Layout页面进行设置:图10(b)ARMLinker的设置将44binit.o放在映象文件的最前面,它的区域名是Init。最后,如果你希望编译的最后生成二进制文件,就要设置ARMfromELF:图11ARMfromELF的设置在Outputformat栏中选择Plainbinary,在Outputfilename栏中,点击“Choose…”选择你要输出的二进制文件的文件名和路径(如果此栏为空,则二进制文件将会产生到默认的工程目录下)。这样,对于Debug变量的基本设置都完成了。按下“OK”键退出。4.2在工程中添加源文件在图7的对话框中,点选File页面,选中TextFile,并设置好文件名和路径,点击确定,CodeWarrior就会为你新建一个源文件,并可以开始编辑该空文件。CodeWarrior与SDT中的APM不同,它具有一个很不错的源代码编辑器,因此,大多数时候,我们可以直接采用它的代码编辑器来编写好程序,然后再添加到工程中。添加源文件的步骤如下:例如添加main.c文件,点选Files页面,在空白处按下鼠标右键,点选“AddFiles”项,从目录中选取main.c文件(Myhelloworld\main.c),点击“打开”,main.c文件就被加入了工程中。图12添加源文件用同样的方法,将Myhelloworld\下所有的*.C和*.S源文件文件都添加到source中去(包括Target目录下的源文件)。Target目录下还有一个44blib.a文件,这是一个库文件,其中提供了一些常用函数的定义,这些函数在44blib.h进行了声明。这个文件也必须添加到工程中。同样的方法,按鼠标右键,Addfiles…,将44blib.alf文件添加到工程中。所有必须的文件添加完成后如图13所示。图13源文件添加完成4.3进行编译和链接注意到在上图中新加入的文件前面有个红色的“钩”,说明这个文件还没有被编译过。在进行编译之前,你必须正确设置该工程的工具配置选项。如果前面采用的是直接调入工程模板,有些选项已经在模板中保存了下来,可以不再进行设置。如果是新建工程,则必须按照4.1节中所述的步骤进行设置。选中所有的文件,点击图标进行文件数据同步;然后点击图标,对文件进行编译(compile);点击按钮,对工程进行make,make的行为包括以下过程:编译和汇编源程序文件,产生*.o对象文件;链接对象文件和库产生可执行映像文件;产生二进制代码。Make之后将弹出“Errors&Warnings”对话框,来报告出错和警告情况。编译成功后的显示如下。注意到左上脚标示的错误和警告数目都是0:图14编译后的结果Make结束后产生了可执行映象文件Myhelloworld.axf文件,这个文件可以载入AXD进行仿真调试了。并且还通过fromelf工具将ELF文件转换为二进制格式文件hello.bin。它可以用来最终固化到flashROM中(但链接选项中的-ro-base要修改),也可以通过USB口下载运行。5使用AXD进行仿真调试5.1硬件准备如图4所示,在调试之前,我们先用并口电缆将PC机并口和JTAG调试模块连接起来,用串口线将PC机串口和主板的UART0口连接起来(当然还要将主板和JTAG板连接起来)。然后,就可以上电了。参考2.4节选择ARMSYS的供电方式。电源打开之后,可以听到主板发出一声蜂鸣器的“嘀——”声,看到绿色发光管点亮后熄灭,这说明主板启动正常。此时JTAG模块上只有指示电源的红灯点亮,说明并口已经连接好了。5.2使用UART串口和超级终端进行系统调试在Windows操作系统下,点击[开始|程序|附件|通讯|超级终端]。新建一个超级终端项目,将其命名为ARMSYS,点击“确定”,弹出以下对话框:图15超级终端属性在“连接时使用”项中选好你所使用的串口,点击“确定”按钮。按照下图配置该串口:图16串口属性配置点击确定,超级终端就配置好了。在进行调试之前,要先建立好AXD与目标系统之间的通讯。如果采用简易JTAG调试器进行调试,则首先要运行JTAG调试代理软件。如果采用Multi-ICE仿真器来调试,则首先要运行Multi-ICEServer(具体请查看仿真器的使用说明)。5.3运行JTAG调试代理软件将光盘中的开发工具\ARMJtagDebugFinal\目录拷贝至硬盘某个目录下,按照其中《使用说明》安装驱动程序。驱动安装成功后,双击ARM7.exe运行调试代理软件。如果调试代理软件与目标系统连接成功,则显示以下对话框:图17JTAG调试代理软件运行对话框在运行AXD调试器之前必须首先运行它。注意,在AXD调试器在线仿真期间,不要关闭它!5.4调试器设置在CODEWARRIOR中,工程经过编译成功,产生了*.axf文件之后,就可以进行调试了。点击按钮,进入了AXD视窗界面。点击菜单项[Option|ConfigureTarget…],对调试目标进行配置:图18调试目标设置对话框在TargetEnvironment栏中选中“ADP”选项,注意到下面的注释的说明,“ADP是直接连接ARMDebugger到目标板或者到目标板上的EmbeddedICE单元的一种方式。直接连接目标板需要Angel调试监视器软件的支持。参考RDI1.51”,点击“Configure”按钮,进入到该项设置:图19Remote_A连接设置其中“RemoteConnectiondriver”栏中,点击右边的“Select…”按钮,选择“ARMethernetdriver”。点击右边的“Configure…”按钮,在编辑栏中输入本机的IP地址或者127.0.0.1。其它设置如上图所示,保持不变。点击“OK”退出调试目标的设置。这时会弹出:图20重新载入对话框点击“是”按钮,如果目标系统正确链接了,会看到程序下载的进度条显示。进度消息框消失后,显示当前执行代码视窗,蓝色指针指向第一条执行的语句:图21当前执行代码视窗这时,先点击按钮,尝试进行单步运行,如果程序立即正确地跳转到“ResetHandler”处执行,而没有跑飞或顺序执行,则说明程序的下载成功了,可以进行调试了。5.5调试器的使用我们来熟悉一下断点的设置。下拉滚动条至377行,在BLMain语句处点击按钮设置一个断点,如图22。然后点击按钮(GO),令程序自动执行到断点。当程序执行到BLMain语句处,自动停止,点击按钮,程序跳转到main.c文件的的Main()处程序开始运行,如图23。图22放置断点图23进入主函数运行通过上面的操作,我们了解到,44binit.S程序中的BLMain语句就是跳转到C语言main()函数的入口语句。AXD也会自动在Main()函数的入口处放置一个断点,因此程序下载后,立即全速运行的话,就会首先跳到该断点停下来。读者可以继续进行一些单步操作,了解每条语句的作用。5.6观察窗口AXD提供了许多有用的观察窗口,点击菜单项中的ProcessorView,可以从它的下拉菜单项中了解可观察的项目。图24观察窗口这里说明一下其中常用的项目:Registers:可以查看CPU在各个工作模式下内部寄存器的值;Variables:查看变量,本地变量、全局变量、类变量;Watch:可以用表达式查看变量的值;Backtrace:函数调用情况(堆栈)查看;Memory…:查看存储器内容。输入地址,即可查看这个地址开始的存储单元的值。…………5.7全速运行在AXD中点击‘GO’图标,可以全速地运行程序,注意观察超级终端窗体,上面将显示如下信息。图25HelloWorld运行后超级终端的显示在“BegintoStudyEmbeddedSystem,OK?(Y/N)”后,在计算机键盘上键入Y,超级终端上出现“Good!Seeyounexttime!”。如果你按照第3节修改了源程序,则应当出现“好!我们马上开始学习嵌入式系统!”字符串。6USB口下载工具USB口下载工具能够将二进制代码快速下载到ARMSys上并运行。用户能够立即观察到程序运行的效果。USB下载器工具放在光盘的开发工具\usb目录下。安装驱动程序步骤如下:l步骤1,将usbinstall目录,整个拷贝到C:\下(注意必须是C:\);l步骤2,双击C:\usbinstall\install.bat,等待一会儿,直到整个批处理程序执行完毕(注意:弹出的控制台窗口自动消失之前不要手动关闭!在98下标题栏中最后显示“已完成”);l步骤3,用USB口线连接ARMSys核心板和PC机USB口,打开电源;开发板正确复位后超级终端显示如下:图26复位时超级终端的输出按下键盘上的‘1’键,会提示你输入地址,如下图所示:图27输入SDRAM载入地址这个地址就是你下载到SDRAM中的地址,也是链接器代码定位的地址,直接敲回车则使用括号中的缺省地址。输入地址并回车后出现:图28USB设备被激活这样USB接口就成功地被使能了;这时可能会报告“找到新硬件”,一般可以让驱动指向usbinstall目录下即可。打开“设备管理器”会看到Jungo下面自动识别出了USBToolDevice设备,说明驱动安装成功了。图29设备管理器树形图l步骤4,双击运行C:\usbinstall\Usbdownload.exe,出现如下对话框界面:图26USB下载工具界面l步骤6,点击USBTool工具的菜单项[文件|打开文件],然后在“文件类型”中下拉选择*.bin类型文件,选择好要下载的文件后(例如刚刚产生的helloworld.bin文件),点击“打开”。这时可以看到,对话框的文件名、后缀、文件长度编辑框中即出现所选文件的相关信息。点击“下载文件”按钮,二进制文件被下载到ARMSys中。等待一会儿,系统自动开始运行刚刚下载的程序。通过超级终端上显示的内容,可以看到程序的运行情况。图27下载成功界面7代码固化请注意,将工程编译为烧入二进制代码时,需要将链接器重新设置,将调试时程序空间定位地址(ROBase地址)由0x0c008000改为0x00000000,如下图所示。图28EntryandBase设置页然后重新Make整个工程。产生新的二进制代码文件。7.1空板烧录注意,以下说明的是空板烧录。如果您的开发板中已经烧录过启动程序,并且能够正常运行,则不必进行这一步,直接跳到7.2节。建议采用fluted工具,由于fluted烧写速度较慢,可以先烧录一个led_test.bin小程序,只要烧录的程序在启动后能够正确初始化SDRAM即可,具体方法参考光盘中开发工具/programmer/fluted目录中的说明;然后再进行7.2,烧录你的应用程序代码。7.2FLASH内代码的覆盖烧录采用光盘中开发工具/programmer/ADS_programmer目录下提供的工程进行烧录。按照第4、5节的方法,对该工程进行编译然后载入开发板进行调试。载入成功后,点击菜单File>LoadMemoryFromFile…,弹出图29的对话框,在Address中写入0xc200000,选中你要烧录的bin文件,点击打开。这样bin文件很快被下载到相应的地址。全速运行烧录程序。可以通过超级终端观察到烧录的情况,烧录过程分为片擦除、空检查、写入和校验,烧录成功的输出信息为:Chiperased!BlankcheckOK!BegintoWriteflash...WriteOK!BegintoVerify...VerifyOK!如果终端输出以上信息,其间没有报告错误,说明烧录已经成功了。图29LoadMemoryFromFile对话框到此为止,我们已经对ARMSYS上的整个开发过程进行了一次体验。读者可以按照以上步骤说明,多操作几次,有任何问题,欢迎来信与我公司的技术支持进行交流:office@hzlitai.com.cn、support@hzlitai.com.cn,或垂询技术支持电话:0571-8833144689902166。

ADS1.2中文教程.pdf

ADS1.2中文教程.pdf

上传者: 自语的骆驼
7次下载 0人收藏 暂无简介 简介 2011-06-27 举报

简介:当前资料暂无简介!

一步一步基于ADS1.2进行设计开发目录1ADS1.2集成开发环境简介......................................................................................................22利用HELLOWORLD来学习使用ARMSYS...........................................................................23编写好源程序代码...................................................................................................................34使用CODEWARRIOR建立工程并进行编译...........................................................................44.1调入模板或重新建立项目.............................................................................................44.2在工程中添加源文件.....................................................................................................84.3进行编译和链接...........................................................................................................105使用AXD进行仿真调试.......................................................................................................115.1硬件准备.......................................................................................................................115.2使用UART串口和超级终端进行系统调试...............................................................115.3运行JTAG调试代理软件............................................................................................125.4调试器设置...................................................................................................................135.5调试器的使用...............................................................................................................155.6观察窗口.......................................................................................................................165.7全速运行.......................................................................................................................176USB口下载工具.....................................................................................................................177代码固化.................................................................................................................................217.1空板烧录.......................................................................................................................227.2FLASH内代码的覆盖烧录.........................................................................................221ADS1.2集成开发环境简介ADS1.2是一个使用方便的集成开发环境,全称是ARMDeveloperSuitev1.2。它是由ARM公司提供的专门用于ARM相关应用开发和调试的综合性软件。在功能和易用性上比较SDT都有提高,是一款功能强大又易于使用的开发工具。以下就我们对ADS1.2进行一些简要的介绍。ADS囊括了一系列的应用,并有相关的文档和实例的支持。使用者可以用它来编写和调试各种基于ARM家族RISC处理器的应用。你可以用ADS来开发、编译、调试采用包括C、C++和ARM汇编语言编写的程序。ADS主要由以下部件构成:n命令行开发工具;n图形界面开发工具;n各种辅助工具;n支持软件。其中重点介绍一下图形界面开发工具。nAXD提供给基于Windows和UNIX使用的ARM调试器。它提供了一个完全的Windows和UNIX环境来调试你的C,C++,和汇编语言级的代码。nCodeWarriorIDE提供基于Windows使用的工程管理工具。它的使用使源码文件的管理和编译工程变得非常方便。但CodeWarriorIDE在UNIX下不能使用。2利用Helloworld来学习使用ARMSYS本实验利用光盘中source\Helloworld\下的源代码进行实验,要求完成以下工作:1)利用工程模板source\template.mcp,在ADS1.2的CodeWarriorIDE(项目管理器)中建立新的工程,在工程中加入source\Helloworld\Target目录中提供的文件;2)编写主程序文件main.c,并将文件加入到工程中;3)正确设置编译器的编译选项,并对工程进行编译、除错,最终产生可执行的映像文件(*.axf)和二进制代码(*.bin)文件;4)打开超级终端,正确配置串口参数;5)采用AXD(视窗调试器)通过JTAG模块下载可执行程序,并仿真调试,观察实验现象;6)采用ARMSys提供的USB下载器下载二进制代码,并观察运行情况。将source目录整个拷贝到硬盘中,例如拷贝到D:\source处,方便进行实验。【注意】在进行ADS程序调试之前,确保开发板中已经固化了bootloader.bin。Bootloader启动时超级终端上应当显示如下:如果板之上已固化的不是bootloader,请按照7.2节中的说明,讲bootloader固化到flash中。首先,安装ADS1.2,在光盘的\开发工具\集成开发环境\Windows\目录下有ADS1.2的安装文件,双击setup.exe进行安装,具体的安装过程这里就不赘述了。3编写好源程序代码用CodeWarriorIDE打开source\HelloWorld\main.C文件,读懂其中的代码。其中main()函数的定义是:voidMain(void){charaa;Uart_Init(0,115200);//初始化UART0口,设置波特率为115200bpsLed_Display(0xf);//点亮绿色发光二极管Uart_Select(0);//选中UART0Beep(0x1);//点响蜂鸣器Uart_Printf("\n********************************************");//向串口输出字符串Beep(0x0);//Uart_Printf("\n*立宇泰电子*");Uart_Printf("\n*-HelloWorld!-*");Uart_Printf("\n*Version1.21*");Uart_Printf("\n*Email:Support@hzlitai.com.cn*");Uart_Printf("\n*UARTConfig--COM:115.2kbps,8Bit,NP,UART0*");Uart_Printf("\n*BegintoStudyEmbeddedSystem,OK?(Y/N)---*");Led_Display(0x0);aa=Uart_Getch();//等待并从串口获得一个字符if((aa=='Y')||(aa=='y'))Uart_Printf("\nGood!Seeyounexttime!");elseUart_Printf("\nByeBye!");}这是一个简单的例子,因此代码比较简单。这里你可以尝试修改一下代码,将:Uart_Printf("\nGood!Seeyounexttime!");修改为:Uart_Printf("\n好!我们马上开始学习嵌入式系统!");然后保存文件。除了main.C文件以外,在一个工程中,我们还要具备几个必不可少的源文件:系统初始化程序44binit.s,和它引用的存储器控制寄存器定义文件Memcfg.s和系统选项文件Option.s,这3个文件都由汇编语言写成。C语言基本函数库定义文件44blib.a(或44blib.c,该文件可以在/BIOS/Target或者bootloader/Target下找到)和头文件44blib.h、option.h、44b.h。这些文件定义了最基本硬件系统信息,几乎在所有的应用工程中都要使用到,你可以在每个工程的Target目录下找到它们。4使用CodeWarrior建立工程并进行编译首先我们学习如何使用ADS中的CodeWarrior——项目管理器来管理源代码。一个嵌入式系统项目通常是由多个文件构成的,这其中包括用不同的语言(例如汇编或C)、不同的类型(源文件,或库文件)的文件。CodeWarrior通过“工程(Project)”来管理一个项目相关的所有文件。因此,在我们正确编译这个项目代码以前,首先要建立“工程”,并加入必要的源文件、库文件等。4.1调入模板或重新建立项目我们通常采用工程模板来建立新的工程,工程模板已经针对目标系统对编译选项进行了设置,为避免重复设置,我们提供了一个在ARMSys上使用的通用工程模板——template.mcp。点击CODEWARRIOR菜单[File|open…],找到source\template.mcp,选中并打开。图6打开模板工程点击[File|Saveas…],将它另存为:source\Myhelloworld(或者是自定义的其它目录)\Myhelloworld.mcp。然后,关闭当前的工程,重新调入Myhelloworld.mcp,就可以向工程中添加文件了。如果你不想利用模板,也可以按照以下步骤来新建一个工程:选择File菜单下的new选项,或直接按下,出现以下对话框:图7新建对话框2).选中“ARMExecutableImage”选项,在右边的编辑框中输入工程名(例如Myhelloworld),在下面的Location栏中,点击“Set…”,选择放置工程的路径。3).点击“确定”则工程被建立:图8新建工程但这样的工程还并不能正确地被编译,还需要对工程的编译选项进行适当配置。为了设置方便,先点选Targets页面,选中DebugRel和Relese变量,按下Del键将它们删除,仅留下供调试使用的Debug变量。点击菜单[Edit|DebugSetting…],弹出配置对话框:图9工程配置对话框——目标设置首先选中TargetSetting,将其中的Post-linker设置为ARMfromELF,使得工程在链接后再通过fromELF产生二进制代码。然后选中ARMLinker,对链接器进行设置:图10(a)ARMLinker的设置注意,在调试时,-ro-base的设置应当大于0xc000000。我们为了与uClinux的memorymap保持一致,采用了0xc008000这个地址。选取Layout页面进行设置:图10(b)ARMLinker的设置将44binit.o放在映象文件的最前面,它的区域名是Init。最后,如果你希望编译的最后生成二进制文件,就要设置ARMfromELF:图11ARMfromELF的设置在Outputformat栏中选择Plainbinary,在Outputfilename栏中,点击“Choose…”选择你要输出的二进制文件的文件名和路径(如果此栏为空,则二进制文件将会产生到默认的工程目录下)。这样,对于Debug变量的基本设置都完成了。按下“OK”键退出。4.2在工程中添加源文件在图7的对话框中,点选File页面,选中TextFile,并设置好文件名和路径,点击确定,CodeWarrior就会为你新建一个源文件,并可以开始编辑该空文件。CodeWarrior与SDT中的APM不同,它具有一个很不错的源代码编辑器,因此,大多数时候,我们可以直接采用它的代码编辑器来编写好程序,然后再添加到工程中。添加源文件的步骤如下:例如添加main.c文件,点选Files页面,在空白处按下鼠标右键,点选“AddFiles”项,从目录中选取main.c文件(Myhelloworld\main.c),点击“打开”,main.c文件就被加入了工程中。图12添加源文件用同样的方法,将Myhelloworld\下所有的*.C和*.S源文件文件都添加到source中去(包括Target目录下的源文件)。Target目录下还有一个44blib.a文件,这是一个库文件,其中提供了一些常用函数的定义,这些函数在44blib.h进行了声明。这个文件也必须添加到工程中。同样的方法,按鼠标右键,Addfiles…,将44blib.alf文件添加到工程中。所有必须的文件添加完成后如图13所示。图13源文件添加完成4.3进行编译和链接注意到在上图中新加入的文件前面有个红色的“钩”,说明这个文件还没有被编译过。在进行编译之前,你必须正确设置该工程的工具配置选项。如果前面采用的是直接调入工程模板,有些选项已经在模板中保存了下来,可以不再进行设置。如果是新建工程,则必须按照4.1节中所述的步骤进行设置。选中所有的文件,点击图标进行文件数据同步;然后点击图标,对文件进行编译(compile);点击按钮,对工程进行make,make的行为包括以下过程:编译和汇编源程序文件,产生*.o对象文件;链接对象文件和库产生可执行映像文件;产生二进制代码。Make之后将弹出“Errors&Warnings”对话框,来报告出错和警告情况。编译成功后的显示如下。注意到左上脚标示的错误和警告数目都是0:图14编译后的结果Make结束后产生了可执行映象文件Myhelloworld.axf文件,这个文件可以载入AXD进行仿真调试了。并且还通过fromelf工具将ELF文件转换为二进制格式文件hello.bin。它可以用来最终固化到flashROM中(但链接选项中的-ro-base要修改),也可以通过USB口下载运行。5使用AXD进行仿真调试5.1硬件准备如图4所示,在调试之前,我们先用并口电缆将PC机并口和JTAG调试模块连接起来,用串口线将PC机串口和主板的UART0口连接起来(当然还要将主板和JTAG板连接起来)。然后,就可以上电了。参考2.4节选择ARMSYS的供电方式。电源打开之后,可以听到主板发出一声蜂鸣器的“嘀——”声,看到绿色发光管点亮后熄灭,这说明主板启动正常。此时JTAG模块上只有指示电源的红灯点亮,说明并口已经连接好了。5.2使用UART串口和超级终端进行系统调试在Windows操作系统下,点击[开始|程序|附件|通讯|超级终端]。新建一个超级终端项目,将其命名为ARMSYS,点击“确定”,弹出以下对话框:图15超级终端属性在“连接时使用”项中选好你所使用的串口,点击“确定”按钮。按照下图配置该串口:图16串口属性配置点击确定,超级终端就配置好了。在进行调试之前,要先建立好AXD与目标系统之间的通讯。如果采用简易JTAG调试器进行调试,则首先要运行JTAG调试代理软件。如果采用Multi-ICE仿真器来调试,则首先要运行Multi-ICEServer(具体请查看仿真器的使用说明)。5.3运行JTAG调试代理软件将光盘中的开发工具\ARMJtagDebugFinal\目录拷贝至硬盘某个目录下,按照其中《使用说明》安装驱动程序。驱动安装成功后,双击ARM7.exe运行调试代理软件。如果调试代理软件与目标系统连接成功,则显示以下对话框:图17JTAG调试代理软件运行对话框在运行AXD调试器之前必须首先运行它。注意,在AXD调试器在线仿真期间,不要关闭它!5.4调试器设置在CODEWARRIOR中,工程经过编译成功,产生了*.axf文件之后,就可以进行调试了。点击按钮,进入了AXD视窗界面。点击菜单项[Option|ConfigureTarget…],对调试目标进行配置:图18调试目标设置对话框在TargetEnvironment栏中选中“ADP”选项,注意到下面的注释的说明,“ADP是直接连接ARMDebugger到目标板或者到目标板上的EmbeddedICE单元的一种方式。直接连接目标板需要Angel调试监视器软件的支持。参考RDI1.51”,点击“Configure”按钮,进入到该项设置:图19Remote_A连接设置其中“RemoteConnectiondriver”栏中,点击右边的“Select…”按钮,选择“ARMethernetdriver”。点击右边的“Configure…”按钮,在编辑栏中输入本机的IP地址或者127.0.0.1。其它设置如上图所示,保持不变。点击“OK”退出调试目标的设置。这时会弹出:图20重新载入对话框点击“是”按钮,如果目标系统正确链接了,会看到程序下载的进度条显示。进度消息框消失后,显示当前执行代码视窗,蓝色指针指向第一条执行的语句:图21当前执行代码视窗这时,先点击按钮,尝试进行单步运行,如果程序立即正确地跳转到“ResetHandler”处执行,而没有跑飞或顺序执行,则说明程序的下载成功了,可以进行调试了。5.5调试器的使用我们来熟悉一下断点的设置。下拉滚动条至377行,在BLMain语句处点击按钮设置一个断点,如图22。然后点击按钮(GO),令程序自动执行到断点。当程序执行到BLMain语句处,自动停止,点击按钮,程序跳转到main.c文件的的Main()处程序开始运行,如图23。图22放置断点图23进入主函数运行通过上面的操作,我们了解到,44binit.S程序中的BLMain语句就是跳转到C语言main()函数的入口语句。AXD也会自动在Main()函数的入口处放置一个断点,因此程序下载后,立即全速运行的话,就会首先跳到该断点停下来。读者可以继续进行一些单步操作,了解每条语句的作用。5.6观察窗口AXD提供了许多有用的观察窗口,点击菜单项中的ProcessorView,可以从它的下拉菜单项中了解可观察的项目。图24观察窗口这里说明一下其中常用的项目:Registers:可以查看CPU在各个工作模式下内部寄存器的值;Variables:查看变量,本地变量、全局变量、类变量;Watch:可以用表达式查看变量的值;Backtrace:函数调用情况(堆栈)查看;Memory…:查看存储器内容。输入地址,即可查看这个地址开始的存储单元的值。…………5.7全速运行在AXD中点击‘GO’图标,可以全速地运行程序,注意观察超级终端窗体,上面将显示如下信息。图25HelloWorld运行后超级终端的显示在“BegintoStudyEmbeddedSystem,OK?(Y/N)”后,在计算机键盘上键入Y,超级终端上出现“Good!Seeyounexttime!”。如果你按照第3节修改了源程序,则应当出现“好!我们马上开始学习嵌入式系统!”字符串。6USB口下载工具USB口下载工具能够将二进制代码快速下载到ARMSys上并运行。用户能够立即观察到程序运行的效果。USB下载器工具放在光盘的开发工具\usb目录下。安装驱动程序步骤如下:l步骤1,将usbinstall目录,整个拷贝到C:\下(注意必须是C:\);l步骤2,双击C:\usbinstall\install.bat,等待一会儿,直到整个批处理程序执行完毕(注意:弹出的控制台窗口自动消失之前不要手动关闭!在98下标题栏中最后显示“已完成”);l步骤3,用USB口线连接ARMSys核心板和PC机USB口,打开电源;开发板正确复位后超级终端显示如下:图26复位时超级终端的输出按下键盘上的‘1’键,会提示你输入地址,如下图所示:图27输入SDRAM载入地址这个地址就是你下载到SDRAM中的地址,也是链接器代码定位的地址,直接敲回车则使用括号中的缺省地址。输入地址并回车后出现:图28USB设备被激活这样USB接口就成功地被使能了;这时可能会报告“找到新硬件”,一般可以让驱动指向usbinstall目录下即可。打开“设备管理器”会看到Jungo下面自动识别出了USBToolDevice设备,说明驱动安装成功了。图29设备管理器树形图l步骤4,双击运行C:\usbinstall\Usbdownload.exe,出现如下对话框界面:图26USB下载工具界面l步骤6,点击USBTool工具的菜单项[文件|打开文件],然后在“文件类型”中下拉选择*.bin类型文件,选择好要下载的文件后(例如刚刚产生的helloworld.bin文件),点击“打开”。这时可以看到,对话框的文件名、后缀、文件长度编辑框中即出现所选文件的相关信息。点击“下载文件”按钮,二进制文件被下载到ARMSys中。等待一会儿,系统自动开始运行刚刚下载的程序。通过超级终端上显示的内容,可以看到程序的运行情况。图27下载成功界面7代码固化请注意,将工程编译为烧入二进制代码时,需要将链接器重新设置,将调试时程序空间定位地址(ROBase地址)由0x0c008000改为0x00000000,如下图所示。图28EntryandBase设置页然后重新Make整个工程。产生新的二进制代码文件。7.1空板烧录注意,以下说明的是空板烧录。如果您的开发板中已经烧录过启动程序,并且能够正常运行,则不必进行这一步,直接跳到7.2节。建议采用fluted工具,由于fluted烧写速度较慢,可以先烧录一个led_test.bin小程序,只要烧录的程序在启动后能够正确初始化SDRAM即可,具体方法参考光盘中开发工具/programmer/fluted目录中的说明;然后再进行7.2,烧录你的应用程序代码。7.2FLASH内代码的覆盖烧录采用光盘中开发工具/programmer/ADS_programmer目录下提供的工程进行烧录。按照第4、5节的方法,对该工程进行编译然后载入开发板进行调试。载入成功后,点击菜单File>LoadMemoryFromFile…,弹出图29的对话框,在Address中写入0xc200000,选中你要烧录的bin文件,点击打开。这样bin文件很快被下载到相应的地址。全速运行烧录程序。可以通过超级终端观察到烧录的情况,烧录过程分为片擦除、空检查、写入和校验,烧录成功的输出信息为:Chiperased!BlankcheckOK!BegintoWriteflash...WriteOK!BegintoVerify...VerifyOK!如果终端输出以上信息,其间没有报告错误,说明烧录已经成功了。图29LoadMemoryFromFile对话框到此为止,我们已经对ARMSYS上的整个开发过程进行了一次体验。读者可以按照以上步骤说明,多操作几次,有任何问题,欢迎来信与我公司的技术支持进行交流:office@hzlitai.com.cn、support@hzlitai.com.cn,或垂询技术支持电话:0571-8833144689902166。
  • 相关资料
  • 该用户的其他资料
  • 名称/格式
  • 下载次数
  • 资料大小
  • 名称/格式
  • 下载次数
  • 资料大小

用户评论

0/200
暂无评论
上传我的资料

资料阅读排行

关闭

请选择举报的类型

关闭

提示

提交成功!

感谢您对爱问共享资料的支持,我们将尽快核实并处理您的举报信息。

关闭

提示

提交失败!

您的举报信息提交失败,请重试!

关闭

提示

重复举报!

亲爱的用户!感觉您对爱问共享资料的支持,请勿重复举报噢!

全屏 缩小 放大
收藏
资料评价:

/ 0
所需积分:2 立即下载
返回
顶部
举报
资料
关闭

温馨提示

感谢您对爱问共享资料的支持,精彩活动将尽快为您呈现,敬请期待!