嵌入式linux培训

更新时间:2022-11-25 17:57:54 阅读: 评论:0


2022年11月25日发(作者:keep的过去式)

第⼀天实验指导书之实验⼀嵌⼊式linux常⽤软件的安装

及使⽤

实验⼀嵌⼊式开发软件的安装及使⽤(2)

1、ADS1.2(2)

1)、ADS1.2软件安装(3)

2)、ADS1.2软件的使⽤(9)

2、KeilMDK开发套件的安装及使⽤(20)

1)、keilMDK软件安装(20)

2)、keilµvision4的使⽤(25)

3、Jlink软件安装及使⽤(31)

1)、Jlink驱动的安装(31)

2)、Jlink简单使⽤(34)

4、超级终端的使⽤(38)

5、DNW软件使⽤(40)

实验⼀嵌⼊式开发软件的安装及使⽤

[实验⽬的]

1.掌握嵌⼊式的开发软件ADS1.2,KEILMDK,Jlink的安装;

2.掌握ADS1.2,KEILµvision4、Jlink、超级终端、DNW开发软件的使⽤,熟悉开发环境。

[实验仪器]

PC机1台

开发软件安装包1套

[实验步骤]

1、ADS1.2

ADS(ARMDeveloperSuite)是ARM公司推出的新⼀代ARM继承开发⼯具。ADS由命令⾏开发⼯具,ARM实时库,GUI开

发环境(CodeWarrior和AXD),实⽤程序和⽀持软件组成。有了这些部件,⽤户就可以为ARM系统的RISC处理器编写和调

试⾃⼰的开发应⽤程序。

命令⾏开发⼯具:这些⼯具完成将源代码编译,链接成可执⾏代码的功能。ADS提供的命令⾏开发⼯具主要有:

注意:如果同学们要⽤到的时候关于其的指令⽤法,⼤家可以参照“3+1实验班嵌⼊式linux培训电⼦书ADS1.2使⽤说明和教

程”中的⽂章。在这⾥主要进⾏介绍,对于⽤法不赘述。

1)、armcc:armcc是ARMC编译器。这个编译器通过了PlumHallCValidationSuite为ANSIC的⼀致性测试。armcc⽤于

将⽤ANSIC编写的程序编译成32位ARM指令代码。

2)、armcpp:armcpp是ARMC++编译器。它将ISOC++或EC++编译成32位ARM指令代码。

3)、tcc:tcc是ThumbC编译器。该编译器通过了PlumHallCValidationSuite为ANSI⼀致性的测试。tcc将ANSIC源代码

编译成16位的Thumb指令代码。

4)、tcpp:tcpp是ThumbC++编译器。它将ISOC++和EC++源码编译成16位Thumb指令代码。

5)、armasm:armasm是ARM和Thumb的汇编器.它对⽤ARM汇编语⾔和Thumb汇编语⾔写的源代码进⾏汇编。

6)、armlink:armlink是ARM连接器。该命令既可以将编译得到的⼀个或多个⽬标⽂件和相关的⼀个或多个库⽂件进⾏链

接,⽣成⼀个可执⾏⽂件,也可以将多个⽬标⽂件部分链接成⼀个⽬标⽂件,以供进⼀步的链接。ARM链接器⽣成的是ELF

格式的可执⾏映像⽂件。

7)、armsd:armsd是ARM和Thumb的符号调试器。它能够进⾏源码级的程序调试。⽤户可以在⽤C或汇编语⾔写的代码中

进⾏单步调试,设置断点,查看变量值和内存单元的内容。

ARM实时库:ADS提供运⾏时库来⽀持被编译的C和C++代码包括,ANSIC库函数,C++库函数

GUI开发环境(CodeWarrior和AXD):CodeWarriorforARM是⼀套完整的集成开发⼯具,充分发挥了ARMRISC的优势,使产

品开发⼈员能够很好的应⽤尖端的⽚上系统技术.该⼯具是专为基于ARMRISC的处理器⽽设计的,它可加速并简化嵌⼊式开发

过程中的每⼀个环节,使得开发⼈员只需通过⼀个集成软件开发环境就能研制出ARM产品,在整个开

发周期中,开发⼈员⽆需离开CodeWarrior开发环境,因此节省了在操做⼯具上花的时间,使得开发⼈员有更多的精⼒投⼊到代码

编写上来,

CodeWarrior集成开发环境(IDE)为管理和开发项⽬提供了简单多样化的图形⽤户界⾯。⽤户可以使⽤ADS的CodeWarriorIDE

为ARM和Thumb处理器开发⽤C,C++,或ARM汇编语⾔的程序代码。

CodeWarriorIDE能够让⽤户将源代码⽂件,库⽂件还有其他相关的⽂件以及配置设置等放在⼀个⼯程中。每个⼯程可以创建

和管理⽣成⽬标设置的多个配置。例如,要编译⼀个包含调试信息的⽣成⽬标和⼀个基于ARM7TDMI的硬件优化⽣成⽬标,

⽣成⽬标可以在同⼀个⼯程中共享⽂件,同时使⽤各⾃的设置。CodeWarriorIDE缩短了⽤户开发项⽬代码的周期。

AXD调试器本⾝是⼀个软件,⽤户通过这个软件使⽤debugagent可以对包含有调试信息的,正在运⾏的可执⾏代码进⾏⽐如

变量的查看,断点的控制等调试操作。ADS中包含有3个调试器:AXD(ARMeXtendedDebugger):ARM扩展调试器;

armsd(ARMSymbolicDebugger):ARM符号调试器;与⽼版本兼容的Windows或Unix下的ARM调试⼯

具,ADW/ADU(ApplicationDebuggerWindows/Unix)。

调试器能够发送以下指令:

1)、装载映像⽂件到⽬标内存;

2)、启动或停⽌程序的执⾏;

3)、显⽰内存,寄存器或变量的值;

4)、允许⽤户改变存储的变量值。

实⽤⼯具:

fromELF:这是ARM映像⽂件转换⼯具。该命令将ELF格式的⽂件作为输⼊⽂件,将该格式转换为各种输出格式的⽂件,包括

plainbinary(BIN格式映像⽂件),Motorola32-bit

S-recordformat(Motorola32位S格式映像⽂件),IntelHex32format(Intel32位格式映像⽂件),和Verilog-likehex

format(Verilog16进制⽂件)。FromELF命令也能够为输⼊映像⽂件产⽣⽂本信息,例如代码和数据长度。

Armar:ARM库函数⽣成器将⼀系列ELF格式的⽬标⽂件以库函数的形式集合在⼀起,⽤户可以把⼀个库传递给⼀个链接器以

代替⼏个ELF⽂件。

Flashdownloader:⽤于把⼆进制映像⽂件下载到ARM开发板上的Flash存储器的⼯具⽀持的软件:

ADS为⽤户提供下⾯的软件,使⽤户可以在软件仿真的环境下或者在基于ARM的硬件环境调试⽤户应⽤程序。

ARMulator:这是⼀个ARM指令集仿真器,集成在ARM的调试器AXD中,它提供对ARM处理器的指令集的仿真,为ARM和

Thumb提供精确的模拟。⽤户可以在硬件尚未做好的情况下,开发程序代码。

1)、ADS1.2软件安装

通过以上的介绍,同学们对ADS集成开发环境有所简单了解,那么现在我们开始安装软件。步骤如下:

Step1、打开给⼤家拷的资料“3+1实验班嵌⼊式linux培训嵌⼊式开发软件及开发环境ads1.2”⽂件双击SETUP。

Step2、在出现的下图点击next

Step3、再出现的下图中点击YES

Step4、选择安装路径(默认是C盘要是想改的话点击Brow更改路径),点NEXT

Step5、在弹出的对话框中选择典型安装点击next。

Step6、在弹出的下⾯的对话框中点NEXT。

Step7、在弹出的如下对话框中点击next。

Step8、再出现的下图中点击next

Step9、在弹出的对话框中点击next。

Step10、安装完毕后在弹出的下⾯的对话框中点击下⼀步。

Step11、破译ADS1.2,在弹出的下⾯的对话中选择Brow

Step12、选择安装软件包CRACK⽬录下的⽂件如下图所⽰,点击下⼀步。

Step13、在弹出的对话框中选择下⼀步。

Step14、在弹出的对话框中选择完成,安装完毕。

Step15、在弹出的对话框中选择finish,安装完毕。

Step16、为了使⽤⽅便,我们在桌⾯上建⽴快捷⽅式。如下图。

2)、ADS1.2软件的使⽤

安装完ADS1.2集成环境,我们熟悉⼀下环境。双击打开快捷⽅式图标。出现界⾯如下:

现在,我以建⽴⼀个简单的⼯程为例说⼀下ADS的使⽤。我事先在F盘下建⽴了⼀个

ADSexampleprogram⽂件夹⽤于存储编写的程序。

Step1、使⽤ADS创建⼀个新的⼯程。选择FILE->New选项或者⽤ctrl+shift+n组合键。

Step2、在弹出的对话框中选择要建⽴的项⽬模板,可以建⽴⼀个emptyprogram(空⼯程),也可以建⽴建⽴⼀个ARM

ExecutableImage(由ARM指令代码⽣成ELF格式的映像⽂件),初学者建议选择ARMExecutableImage,建⽴⼀个ARM

指令的项⽬。在Location项中设置项⽬的存放⽬录,并在Projectname项中输⼊新建项⽬的名称(本例取名ex1),然后确

定。如下图

注意:上图中的七个选项含义如下

ARMExecutablImage:⽤于由ARM指令的代码⽣成⼀个ELF格式的可执⾏映像⽂件;

ARMObjectLibrary:⽤于由ARM指令的代码⽣成⼀个armar格式的⽬标⽂件库;

EmptyProject:⽤于创建⼀个不包含任何库或源⽂件的⼯程;

MakefileImporterWizard:⽤于将VisualC的nmake或GNUmake⽂件转⼊到CodeWarriorIDE⼯程⽂件;

ThumbARMExecutableImage:⽤于由ARM指令和Thumb指令的混和代码⽣成⼀个可执⾏的ELF格式的映像⽂件;

ThumbExecutableimage:⽤于由Thumb指令创建⼀个可执⾏的ELF格式的映像⽂件;

ThumbObjectLibrary:⽤于由Thumb指令的代码⽣成⼀个armar格式的⽬标⽂件库。

Step3、⽣成窗⼝如下图,可以看到只有刚建成的空的项⽬⽂件。界⾯有三个标签页,分别为files,linkorder,target默

认的是显⽰第⼀个标签页files。

Step4、源⽂件建⽴,源⽂件可以通过file->new在⽂件编辑框中编写汇编代码建⽴*.s

源⽂件,也可以利⽤已有的源⽂件,直接添加即可,我们利⽤第⼆种⽅法,先将“3+1实验班嵌⼊式linux培训嵌⼊式开发资源

TQ2440测试程序”下的src源⽂件和inc头⽂件两个⽂件夹拷贝到⼯程⽂件夹ex1中。如图。

Step5、通过在该标签页点击⿏标右键,选中“AddFiles…”可以把要⽤到的源程序添加到⼯程中。

夹的⽂件。单击打开。

Step7、选择加载的形式,这三种形式都是默认加载的,按照默认的即可。点击OK。

注意:这三个选项的含义分别为:

DebugRel:使⽤该⽬标,在⽣成⽬标的时候,会为每⼀个源⽂件⽣成调试信息;

Debug:使⽤该⽬标为每⼀个源⽂件⽣成最完全的调试信息;

Relea:使⽤该⽬标不会⽣成任何调试信息。

Step8、加载完后,会出现下图,⽂件前⾯有红⾊的勾,是因为没有编译的缘故。编译后勾就会消失。到此⼯程建⽴完毕。

注意:在建⽴好⼀个⼯程时,默认的target是DebugRel,上图红框地⽅,本例使⽤的默认设置。

补充:新建并添加⽂件,上述步骤我们仅利⽤拷贝过来的⽂件添加到⼯程⽂件中的,如果我们要⾃⼰新建⽂件并添加到⼯程

中,那么选择File->New菜单中的File选项卡,新建⼀个⽂件:在Filename栏中填写⽂件名称,例如,led.c。勾中Addto

Project,表⽰将该⽂件添加到该项⽬中。后⾯的Target复选框内也全部打勾。选择确认。

注意:扩展名为c,表⽰C语⾔源⽂件。扩展名为s,表⽰汇编语⾔源⽂件

Step9、进⾏⽣成⽬标的配置。点击Edit菜单,选择“DebugRelSettings…”

注意,这个选项会因⽤户选择的不同⽬标(target)⽽有所不同。

Step10、出现下图对话框,此对话框中的设置很多,在这⾥指介绍⼀些最为常⽤的设置

选项。

1)、target->targetttings

TargetName⽂本框显⽰了当前的⽬标设置。

Linker选项供⽤户选择要使⽤的链接器。在这⾥默认选择的是ARMLinker,使⽤该链

接器,将使⽤armlink链接编译器和汇编器⽣成的⼯程中的⽂件相应的⽬标⽂件。在

Post-linker选择ARMfromELF。

注意:在linker设置中还有两个可选项,None不是不⽤任何链接器,如果使⽤它,则⼯程中的所有⽂件都不会被编译器或汇编

器处理。ARMLibrarian表⽰将编译或汇编得到的⽬标⽂件转换为ARM库⽂件。对于本例,使⽤默认的链接器ARMLinker。

Pre-linker:⽬前CodeWarriorIDE不⽀持该选项。

Post-Linker:选择在链接完成后,还要对输出⽂件进⾏的操作。因为在本例中,希望⽣成⼀个可以烧写到Flash中去的⼆进制

代码,所以在这⾥选择ARMfromELF,表⽰在链接⽣成映像⽂件后,再调⽤FromELF命令将含有调试信息的ELF格式的映像

⽂件转换成其他格式的⽂件。

2)、LanguageSettings->armasm

因为本例中包含有汇编源代码,所以要⽤到汇编器。⾸先看ARM汇编器。默认的ARM体系结构是ARM7TDMI,我们的⽬标板

S3C2440是ARM9,改为ARM920T。字节顺序默认就是⼩端模式。如下图:

注意:⼤家可以看到在设置框的右下脚,当对某项设置进⾏了修改,该⾏中的某个选项就会发⽣相应的改动,如上图红框位

置。实际上,这⾏⽂字就显⽰的是相应的编译或链接选项命令,由于有了CodeWarrior,开发⼈员可以不⽤再去查看繁多的命

令⾏选项,只要在界⾯中选中或撤消某个选项,软件就会⾃动⽣成相应的代码,为不习惯在DOS下键⼊命令⾏

的⽤户提供了极⼤的⽅便。

Options选项卡设置,sourcelinedebug是代码⾏调试按钮,默认是选中的,可以指导汇编程序⽣成调试表,默认选中此项

keepsymbols也选中了。Keepsymbols选中时可以保持对象⽂件符号表中的当地标签,供调试器使⽤。对我们来说这个选掉

也可以。

Language中其他编译器都改为ARM920T,还有在ARMCCompiler中,debug/options选项中enabledebugtablegeneration

选项是选择调试表⽣成。可以去掉。在optimizationlevel是选择优化⽔平,all为可以使⽤所有编译器的优化。

3)、Linker->ARMLinker

⿏标选中ARMLinker,出现如图对话框。这⾥详细介绍该对话框的主要的标签页选项。在标签页Output中,Linktype中提供了

三种链接⽅式。Partial⽅式表⽰链接器只进⾏部分链接,经过部分链接⽣成的⽬标⽂件,可以作为以后进⼀步链接时的输⼊⽂

件。Simple⽅式是默认的链接⽅式,也是最为频繁使⽤的链接⽅式,它链接⽣成简单的ELF格式的⽬标⽂件,使⽤的是链接器

选项中指定的地址映射⽅式。Scattered⽅式使得链接器要根据scatter

格式⽂件中指定的地址映射,⽣成复杂的ELF格式的映像⽂件,这个选项使⽤不太多。

因为我们所举的例⼦⽐较简单,选择Simple⽅式就可以了。在选中Simple⽅式后,就会出现Simpleimage。

ROBa:这个⽂本框设置包含有RO段的加载域和运⾏域为同⼀个地址。默认是

0x8000。这⾥⽤户要根据⾃⼰硬件的实际SDRAM的地址空间来修改这个地址,保证在这⾥填写的地址,是程序运⾏

时,SDRAM地址空间所能覆盖的地址。我们的⽬标开发板是TQ2440,它的SDRAM起始地址为0x30000000。

其余选择默认设计。

补充:RWBa:这个⽂本框设置了包含RW和ZI输出段的运⾏域地址。如果选中split选项,链接器⽣成的映像⽂件将包含两

个加载域和两个运⾏域,此时,在RWBa中所输⼊的地址为包含RW和ZI输出段的域设置了加载域和运⾏域地址

Ropi:选中这个设置将告诉链接器使包含有RO输出段的运⾏域位置⽆关。

Rwpi:选中该选项将会告诉链接器使包含RW和ZI输出段的运⾏域位置⽆关。如果这个选项没有被选中,域就标识为绝对。每

⼀个可写的输⼊段必须是读写位置⽆关的。

SplitImage:选择这个选项把包含RO和RW的输出段的加载域分成2个加载域:⼀个是包含RO输出段的域,⼀个是包含RW输

出段的域。

在Options选项中,需要读者引起注意的是Imageentrypoint⽂本框。它指定映像⽂件的初始⼊⼝点地址值,当映像⽂件被加

载程序加载时,加载程序会跳转到该地址处执⾏。

对于options选项卡配置如下:是输⼊镜像⼊⼝点地址。

在Objetc/Symbol处写⼊包含要设置那个镜像要放在⾸位的⽂件,填写“⽂件名.o”,在

Sction处写⼊包含起始代码段段名。

4)、Linker->ARMfromELF:

fromELF实现将链接器,编译器或汇编器的输出代码进⾏格式转换的功能。例如,将ELF格式的可执⾏映像⽂件转换成可以烧

写到ROM的⼆进制格式⽂件;对输出⽂件进⾏反汇编,从⽽提取出有关⽬标⽂件的⼤⼩,符号和字符串表以及重定址等信

息。

在Outputformat下拉框中,为⽤户提供了多种可以转换的⽬标格式,本例选择Plainbinary,这是⼀个⼆进制格式的可执⾏⽂

件,可以被烧些的⽬标板的Flash中。

在Outputfilename⽂本域输⼊期望⽣成的输出⽂件存放的路径,或通过点击Choo...按钮从⽂件对话框中选择输出⽂件。如

果在这个⽂本域不输⼊路径名,则⽣成的⼆进制⽂件存放在⼯程所在的⽬录下。配置如下:

注意:只有在Target设置中选择了Post-linker,才可以使⽤该选项。

5)、debug->debugttings配置

在otherttings⾥⾯,要选上auto-targetlibraris,默认是没有选中的,建议选中。因为有的时候不能进⾏AXD,就要考虑这

⾥选没选中。

Step11、make编译。对于本例的⼯程⽽⾔,前⾯配置完就完成了make之前的设置⼯作了。执⾏make进⾏编译连接。

Step11、编译连接过程如下图。

Step12、我们可以在是DebugRe⽬标,所以⽣成的最终⽂件都应该在该⽬录下。进⼊到

本文发布于:2022-11-25 17:57:54,感谢您对本站的认可!

本文链接:http://www.wtabcd.cn/fanwen/fan/90/20019.html

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。

相关文章
留言与评论(共有 0 条评论)
   
验证码:
Copyright ©2019-2022 Comsenz Inc.Powered by © 专利检索| 网站地图