apj源码
㈠ IE7浏览器 有些内容无法显示如何解决
我感觉不是因为不是什么软件没装,因为你所缺少的只不过是gif图片罢了,你看看是不IE----工具---internet选项----高级里面的显示图像前的勾没选上
㈡ 先在大公司用的[软件调试工具]有哪些
LZ好,思创嵌入式开发网(EMBED.8800.ORG) 思创S3C44B0黄金开发板SDT集成开发环境程序开发功略
ARM开发日益流行,大有逐步取代51系列单片机的趋势,为了更好帮助大家掌握ARM开发的相关集成开发环境,思创嵌入式开发团队将利用思创S3C44B0黄金开发板为一个具体的开发平台,详细介绍ARM SDT2.51集成开发环境、IAR集成开发环境、ADS集成开发环境下应用程序开发的具体过程,给众多嵌入式学习的爱好者提供由浅入深的指导。 同时,我们也希望更多的嵌入式学习爱好者加入我们的行列,写出更多更好的文档,为嵌入式系统开发设计在国内的蓬勃发展作出自己的努力! 本文将讲述SDT2.51的详细安装过程、通过思创S3C44B0黄金开发板提供的LEDTEST示例详细讲述SDT下程序编译、调试、运行的具体过程,通过这样一个示例的详细介绍,力图达到抛砖引玉的作用,让刚接触ARM嵌入式开发的爱好者能够在短短的1-2个小时内迅速掌握SDT集成开发黄金的基本应用技巧,而后马上进行相关的项目开发,并在项目开发的过程中不断解决碰到的问题,当然,思创也很欢迎大家通过思创嵌入式开发论坛(embed.8800.org)不断将自己的困惑、疑难、学习心得进行交流,这样,必将极大提高大家的学习效率。 一、 安装SDT2.51 SDT2.51是ARM公司提供的调试ARM内核CPU的一个功能比较强大的集成开发环境,虽 然现在ARM公司不再升级SDT,而转向主推ADS集成开发环境,但是,由于ADS集成开发环境需要昂贵的MULTI-ICE硬件仿真调试器与之配合,因此,对于嵌入式设计的个人用户而言,还是不太现实的一种开发手段。而SDT集成开发环境只需要制作成本低廉的简易JTAG电缆与之配合,无疑对于个人用户来说,这是一种理想的开发模式。其实,思创在发展初期,全套的软件都是利用建议JTAG电缆+SDT实现的。 下面,我们将讲述SDT2.51的安装过程。 点击SDT安装目录下的setup.ext程序,出现如下安装界面: 思创嵌入式开发网(EMBED.8800.ORG) 1思创嵌入式开发网(EMBED.8800.ORG) 一直点击NEXT,采用默认的设置,不用任何其他的修改,最后完成安装。这样,SDT2.51就安装在C:\ARM251下了。 二、 启动SDT2.51 安装完毕后,点击开始?程序?ARM SDT 2.51?ARM PROJECT MANAGER启动SDT项 目管理器: 思创嵌入式开发网(EMBED.8800.ORG) 2思创嵌入式开发网(EMBED.8800.ORG) 将出现如下的窗口: 这样,就可以开始具体的程序开发过程了。 三、创建工程、添加源文件 SDT采用了流行的项目管理源文件的机制,这种风格对于大多数程序开发者都是比较熟悉的。其基本的流程就是“创建一个PROJECT”?“依次将源文件添加到相应的PROJECT中”。 z 创建一个”LedTest”的PROJECT 在SDT2.51集成开发环境中,选取菜单“FILE?NEW?PROJECT”,将出现下图: 几个参数填写如下: TYPE: ARM EXECUTABLE IMAGE PROJECT NAME: LedTest PROJECT DIRECTORY: D:\TEST\LED_Test 然后一直选择OK,就可以出现一个没有任何源文件的项目了,该项目有3种源代码的发布 思创嵌入式开发网(EMBED.8800.ORG) 3思创嵌入式开发网(EMBED.8800.ORG) 方式:Debug、DebugRel、Release。我们一般都使用Debug。 z 编写和添加源文件到项目中 由于SDT2.51的程序编辑器不是很好用,一般建议大家用UltraEdit编写源代码,然后将源 文件添加到项目中。这也是SDT2.51一直一来被人诟病的一个方面。为了我们那些可怜的银子,也只有暂时迁就SDT了^_^ 下面我们将以思创光盘上提供的LED_EXAMPLE目录下LED跑马灯的程序为例,讲述添加文件和编译的过程。 首先将LED_EXMAPLE目录下的*.C / *.h文件以及INC目录(存放一些头文件)拷贝到D:\TEST\LED_TEST目录下,然后在SDT项目管理器中打开D:\TEST\LED_TEST.APJ项目,点击Arm Executable Image目录树中的Debug栏目,将出现下图: 然后,点击选中SOURCE,选择菜单“PROJECT? ADD FILES TO SOURCES”,依次选择当前目录中的C文件和S文件,这样,就将源文件全部加入到了项目中。 四、编译和链接程序 在进行下一步的编译之前,需要着重提到链接过程的几个参数的设置。选择菜单“project?Tool Configuration for "Debug"?armlink?Set”,将出现下图: 思创嵌入式开发网(EMBED.8800.ORG) 4思创嵌入式开发网(EMBED.8800.ORG) z 确保General标签页中的Search Path for Libraries的路径是C:\ARM251\LIB,保证程序链接过程中能够在正确的路径下找到需要的库文件。 z 确保在“ENTRY AND BASE”标前页中的BASE OF IMAGE的设置为: Read-only :0XC1000000 Read-Write:0XC5000000 这样设置的原因是:思创黄金开发板上SYSTEM SDRAM占用的地址空间是0x0C000000-0x0C7FFFFF,具体可以参看《思创S3C44B0黄金开发板资源列表》一文。这样,在调试过程中,SDT的调试数据和命令将通过JTAG电缆下载到开发板上的SYSTEM SDRAM中,进行程序的运行和DEBUG过程。当然,也可以将READ-ONLY的地址设置到FLASH中,即0X00000000。一般我们建议直接在SDRAM中直接运行程序。 思创嵌入式开发网(EMBED.8800.ORG) 5思创嵌入式开发网(EMBED.8800.ORG) 做好这些准备工作后,就可以正式开始程序的编译和链接过程了。首先在ROM窗口中,选中DEBUG,然后选择菜单“PROJECT?FORCE BUILD LEDTEST.APJ DEBUG”,SDT开始编译和链接过程,将出现下图: 可以看到编译和链接没有错误,一个WARNING可以忽略。 五、调试程序 通过前面的介绍,相信大家对SDT下如何创建和编译、链接自己的项目有了很好的了解,接下来,重点将放在如何利用思创提供的WIGGLER JTAG电缆进行SDT下程序的调试过程。 首先,选择菜单“Project?Debug LEDTEST.APJ DEBUG”,将出现下图ARM DEBUGGER窗口: 思创嵌入式开发网(EMBED.8800.ORG) 6思创嵌入式开发网(EMBED.8800.ORG) SDT提供两种放置模式:ARMULATER和ARM REMOTE,后者是真实地利用实际硬件进行ARM 调试过程,前者提供了一种软件模拟ARM调试过程。为了进行真正地ARM硬件仿真,还需要进行一些设置。 在ARM DEBUGGER窗口中,选择菜单“OPTIONS?CONFIGURE DEBUGGER”,出现下图: 在TARGET ENVIRONMENT选项中选择REMOTE A,然后点击下边的CONFIGURE按钮,出现下图: 思创嵌入式开发网(EMBED.8800.ORG) 7思创嵌入式开发网(EMBED.8800.ORG) 在HEARBEAT前面打勾,并且在ETHERNET后面输入127.0.0.1表示本机的IP。之所以要 在此设置网络的地址,我们在《嵌入式系统软件开发指南——移植uClinux到思创S3C44B0黄金开发板》一文的第一节有一详细的阐述。 在做好这些设置后,就可以开始进行目标码的转载了,下图比较清晰地描述了目标码地下载机制,其实这也是各种调试器进行调试的一般机制。 在上位机后台运行的JTAG.EXE程序将SDT2.51各种调试数据和命令的网络数据包转换成符合JTAG标准的计算机并口信号,并通过WIGGLER JTAG电缆下载到思创黄金开发板上。 思创嵌入式开发网(EMBED.8800.ORG) 8思创嵌入式开发网(EMBED.8800.ORG) 具体操作步骤如下: 1. 在上位机的JTAG(即将思创光盘的JTAG目录拷贝到用户具体的目录)目录下,在DOS SHELL直接敲入JTAG命令,将出现如图结果: 表明ARM JTAG已经在运行,等待SDT2.51发送各种调试数据。需要提醒的是:思创提供的JTAG.BAT文件是针对WIN2000的上位机开发环境,如果是WIN98的开发环境,需要修改JTAB.BAT文件,将ALLOWIO 0X378去掉。关于这一问题的具体原理请参见《嵌入式系统软件开发指南——移植uClinux到思创S3C44B0黄金开发板》一文的第一节。 2. 选择菜单“FILE?LOAD IMAGE”,出现下图: 选择LEDTEST.AXF,SDT2.51将开始下载过程,如图: 思创嵌入式开发网(EMBED.8800.ORG) 9思创嵌入式开发网(EMBED.8800.ORG) 这个过程将进行几分钟,具体时间视AXF文件大小而定。最后程序将停在ASM代码的入口处。如图: 现在就可以开始进行仿真了! 选择菜单“EXECUTE”,就可以看到各种DEBUG命令以及相关的快捷键,如按F8就可以开始单步仿真,F5就可以开始全速仿真。 呵呵,这时我们不妨按F5,观察开发板上LED,就可以发现LED的跑马灯程序运行起来了。 将光标停留在44BINIT.S汇编文件的369行,如下图: 思创嵌入式开发网(EMBED.8800.ORG) 10思创嵌入式开发网(EMBED.8800.ORG) 这是MAIN.C程序的入口地址,选择菜单“EXECUTION?RUN TO CURSOR”,然后按F8单步执行,程序将跳转到MAIN.C程序,如图: 思创嵌入式开发网(EMBED.8800.ORG) 11思创嵌入式开发网(EMBED.8800.ORG) 这时,可以开始采用SDT提供的各种调试技巧,如设置断点、全速运行、观察变量、观察寄存器、观察存储器空间等等。具体可以参见SDT提供的一些文档,不再赘述。如果有用户感兴趣,不妨作一些工作,将各种具体的调试技巧一一介绍给大家。 最后,值得提醒大家的一点就是不妨在单步操作的时候观察上位机JTAG窗口的变化情况,如图: 大家可以清楚看到SDT不断向JTAG电缆发出各种操作数据和命令。 小结 ARM开发在如火如荼地进行着,对于思创而言,拿一句流行地话来说,就是“将ARM开发进行到底”,思创将一如既往地恪守在嵌入式开发领域,不断研发和销售优秀的嵌入式开发板和各种工具,同时不断完善各种相关的技术文档。 最后,再次申明,我们是站在前辈们的基础上不断前行,在此,向所有为嵌入式开发提供各种研发工具和资源的前辈们表示敬意。 本文的目录结构参看了龚俊先生的《ARM开发软件使用教程》,在此表示谢意! 思创嵌入式开发网(EMBED.8800.ORG)
1.1 ARM SDT 2.5开发环境简介
一、实验目的
熟悉ARM SDT 2.5开发环境,学会ARM并行口仿真器的使用。使用SDT编译、下载、调试并跟踪一段已有的程序,了解嵌入式开发的基本思想和过程。
二、实验内容
本次实验使用ARM SDT 2.5集成开发环境。新建一个简单的工程文件,并编译这个工程文件。学习ARM并行口仿真器的使用和开发环境的设置。下载已经编译好的文件到嵌入式控制器中运行。学会在程序中设置断点,观察系统内存和变量,为调试应用程序打下基础。
三、预备知识
C语言的基础知识、程序调试的基础知识和方法。
四、实验设备及工具(包括软件调试工具)
硬件:ARM嵌入式开发平台、用于ARM7TDMI的JTAG仿真器、Pentium100以上PC机。
软件:PC机操作系统Windows 98、Windows 2000或Windows XP,ARM SDT 2.51或ADS 1.2集成开发环境,仿真器驱动程序、超级终端通信程序。
五、实验步骤
1.建立工程文件
(1)运行ARM SDT 2.5集成开发环境(ARM Project Manager)。选择File|New命令,在对话框中选择Project选项卡,单击“确定”按钮后弹出New Project对话框,如图1-1所示,Type为工程模板类型,这里选择ARM Executable Image,然后输入工程名和所在路径。单击OK按钮后新建一个工程文件。
(2)在新建的工程中,如图1-2所示,选中工程树的“根部”。使用命令Project|Tool Configuration for work1.apj|<asm> = armasm|Set,对整个工程的汇编进行设置。
图1-1 新建一个工程文件 图1-2 对整个工程的汇编进行设置
(3)因为开发板上的嵌入式处理器ARM7TDMI没有浮点处理器,所以,如图1-3所示,在弹出的对话框中设置Floating Point Processor为none,并保持其他的设置不变。
(4)选中工程树的“根部”,通过Project|Tool Configuration for work1.apj|asmlink|Set命令,对整个工程的连接方式进行设置。
(5)在弹出的对话框中,打开Entry and Base选项卡,如图1-4所示,设置连接的Read-Only(只读)和Read-Write(读写)地址。地址0x0c080000是开发板上SDRAM的真实地址,是由系统的硬件决定的;0x0c200000指的是系统可读写的内存地址。也就是说,在0x0c080000~0x0c1fffff之间是只读区域,存放程序的代码段,从0x0c200000开始是程序的数据段。
图1-3 设置Floating Point Processor为none 图1-4 设置连接的地址
提示:用户可以修改这两个数值来决定程序存储区的大小和数据存储区的大小。但应注意SDRAM为8MB,地址范围为0x0c000000~0x0c7fffff。其中0x0c080000之前的空间是留给LCD显示缓存区的。
(6)打开Linker Configuration对话框中的ImageLayout选项卡,如图1-5所示,设置程序的入口模块。指定在生成的代码中,程序是从44binit.s开始运行的,这里填写44binit.s对应的目标文件44binit.o,Init是该汇编文件中的代码段名字。
(7)选择Project|Edit Project Template命令,系统弹出Project Template Editor对话框。在该对话框中可以看到一系列步骤名称。SDT在处理工程文件时是按这些步骤完成的,每个步骤设定了对应的操作,以及该操作的输入、输出和命令行等。读者可以选择已有的步骤,单击Edit按钮打开该步骤设置对话框,观察每个步骤所实现的功能。例如:步骤Compile是把.c和.h文件编译成.o文件的,而步骤Link则就是把.o文件和 .alf文件连接生成.axf文件的。在这些步骤中的设置建议保留默认值。但这里缺少一个从.axf文件生成所需的.bin文件的步骤,所以使用New按钮,为编译器新建一个步骤,如图1-6所示,取名为RomImage。
图1-5 设置程序的入口模块 图1-6 为编译器新建一个步骤
(8)按照如图1-7的内容设置步骤RomImage的内容。使编译器编译的时候可以生成system.bin文件,这就是系统的可执行文件。可以看出该操作的输入是当前工程的.axf文件,所在位置是Image,输出是system.bin,位置在Eprom,操作由fromelf组件完成,命令行是fromelf -nozeropad <$projectname>.axf -bin system.bin。这里的Image和Eprom可以在设置好后的工程窗口中看到。步骤名称和输出位置名称并不要求一致。
提示:在文本框中输入文字后必须单击Add按钮添加到上方列表框中,否则单击OK按钮后该设置信息丢失。
(9)选择Project|Edit Variables for work1.apj命令,系统弹出Edit Variables for work1.apj对话框。列表框中是该工程的一些变量,读者也可以选择某个变量名,在Value文本框中可以看到其值。$ProjectName变量设置的是工程名,可以和工程文件的文件名不一致,Image下的.axf文件将以此命名。这里注意一下变量config$armlink的值,应该是-info.total#total -ro-base#0xc080000 -rw-base#0xc200000 -first#44binit.o(init),和前面对armlink的设置一致。而变量config$asm的值是-fpu#none。这里需要将build_target变量的值设为system.bin,编译器在生成此文件后步骤执行完毕,如图1-8所示。
提示:选择某个变量并更改其值后,必须单击Apply按钮使其生效,如果更改完毕后又选择其他变量,则该设置将无效。
图1-7 设置RomImage的内容 图1-8 设置build_target变量
(10)选中工程树中的DebugRel子树,按Delete键删除。
提示:在系统工程树中Debug子树是应用程序的调试版本,在生成的目标代码中,包含了系统的调试信息。Release子树是应用程序的发行版本,生成的代码中不包括调试信息,而且编译器还针对速度和代码的大小进行优化。DebugRel子树是一个折衷版本,通常用不到,所以,在这里删除。
(11)回到Project Template Editor对话框中,单击Edit Detail按钮,在弹出的对话框中可以重新命名模板,如图1-9所示。重新命名模板后可以保存该工程,并把该空工程(还没有添加工程文件)复制到SDT安装路径下的Template目录下,下次新建工程时可以在New Project对话框中的Type列表框中看到该模板,使用该模板无需重新设置工程参数。
(12)至此,工程文件设置完毕。包括对armlink和armasm的参数设置,新建生成system.bin文件的编译步骤和对应变量。建议将该设置后的工程文件作为模板保存,以方便日后使用。同时注意上文关于操作的提示,以前多数用户建立模板失败的原因可能就在于操作上的失误。
(13)把光盘中SDT实验所在目录中的“1-开发环境实验”下的STARTUP目录复制到工程路径下。如图1-10所示,选中工程树中Debug子树的Sources选项。通过Project|Add Files to Sources命令,把STARTUP目录下的*.S和*.c文件加入到工程中。
图1-9 重新命名模板 图1-10 加入工程的源文件
(14)选中工程树中Debug子树的IncludedFiles选项。通过Project|Add Files to IncludedFiles命令,把STARTUP目录下的所有*.h文件都加入工程中。
(15)在需要用到库文件的工程中,选中工程树中Debug子树的Libraries选项。通过Project|Add Files to Libraries命令,把*.ALF库文件加入工程中。
(16)双击工程树中Debug子树的Sources选项中的main.c,打开main.c文件。下面是Main()函数中的内容,程序向LCD和串口输出字符串“Hello world!”。
int Main(int argc, char **argv)
{
ARMTargetInit();
LCD_Init();
LCD_ChangeMode(DspTxtMode); //转换LCD显示模式为文本显示模式
LCD_Cls(); //文本模式下清屏命令
LCD_printf("Hello world!\n"); //向液晶屏输出
Uart_Printf("\nHello world!\n"); //向串口输出
while(1);
}
读者可以分别打开其他的源文件,了解该系统运行的基本知识。这个程序没有用到操作系统,只是简单地说明工程的开发过程,带有操作系统的实验将在“μC/OS-II在ARM处理器上的移植及编译”实验之后出现。
2.进行程序的在线仿真、调试
(1)回到ARM Project Manager对话框,选中工程树中的Debug子树,通过Project |
Build work1.apj“Debug”命令(或者工具栏中的相应按钮)编译整个工程。
(2)把ARM的JTAG仿真器连接到PC机的并行口和开发板上,打开开发板的电源,运行仿真器的驱动程序UarmJTAG.exe。
(3)使用Project|Debug work1.apj“Debug”命令(或者工具栏中的相应按钮)启动ARM Debugger软件调试程序。
(4)在ARM Debugger中,通过Options|Configure Debugger命令设置仿真器。如 图1-11所示,在弹出的对话框中,设置Target Environment为Remote_A。
(5)单击Configure按钮,按照如图1-12所示,设置仿真器。
图1-11 设置仿真器 图1-12 设置仿真器
(6)出现下面的提示信息以后,单击“是”按钮,ARM Debugger开始通过仿真器装载程序,如图1-13所示。
图1-13 装载程序
注意:第(4)、(5)步设置好后,以后再调试的时候直接进行到第(6)步,不需要再设置。当不能进行第(6)步时,重复第(4)和第(5)步。
(7)装载完毕以后,通过Execute|Go命令(或者工具栏中的相应按钮)运行程序。
(8)当程序运行时,可以使用Execute|Stop命令(或者工具栏中的相应按钮)暂停程序的运行。如图1-14所示,在Execute窗口中将显示出程序暂停的位置。
图1-14 显示程序暂停的位置
(9)通过Execute|Step命令(或者工具栏中的相应按钮)可以单步运行程序。也可以使用Step In、Step Out命令进入或者跳出函数的调用。
(10)在程序停止运行的时候,选择View|Source Files命令,可以打开如图1-15所示的源程序列表窗口,双击列表中的文件名可以查看相应的源文件。
注意:查看源文件时,有时可能会出现看不到自己的源文件的情况,这时要将工程重新强制编译一下。
(11)在源文件列表中打开main.c文件。选择源文件中的某一行,单击鼠标右键,如图1-16所示,用Toggle Breakpoint命令可以设置断点,使程序运行到这里停下来。
(12)使用在View菜单下的Registers、Variables和Memory命令可以查看工作寄存器或者内存变量。读者可以逐一地尝试,为以后调试程序打下基础。
图1-15 查看源文件 图1-16 设置断点 7025希望对你有帮助!