第7章-基于SoC-EDS的嵌入式系统设计课件_第1页
第7章-基于SoC-EDS的嵌入式系统设计课件_第2页
第7章-基于SoC-EDS的嵌入式系统设计课件_第3页
第7章-基于SoC-EDS的嵌入式系统设计课件_第4页
第7章-基于SoC-EDS的嵌入式系统设计课件_第5页
已阅读5页,还剩663页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

第7章基于SoCEDS的嵌入式系统设计7.1SoCEDS简介7.2DS-5设计输入7.3设计项目的编译7.4设计项目的调试7.5基于ARM编译器的裸机实例7.6基于GNU编译器的裸机实例7.7ARMStreamline硬件性能分析器第7章基于SoCEDS的嵌入式系统设计7.1SoC

7.1SoCEDS简介

7.1.1SoCEDS嵌入式系统设计套件Altera公司的嵌入式系统设计套件(SystemonaChipEmbeddedDesignSuite,SoCEDS)是针对AlteraSoC器件的综合软件设计工具。应用SoCEDS能够进行高效软件开发,提升软件质量,加快产品上市时间。SoCEDS可以完成基于AlteraSoCFPGA器件所有软件的开发,如图7.1所示。

7.1SoCEDS简介

7.1.1SoCEDS图7.1AlteraSoC嵌入式设计套装图7.1AlteraSoC嵌入式设计套装

1. Altera版ARMDevelopmentStudio5(DS-5)工具包

AlteraSoCEDS开发套件的核心是Altera版ARMDevelopmentStudio5(DS-5)工具包。ARMDS-5高级多核调试功能与FPGA自适应功能相结合,无缝链接至Altera的SignalTap Ⅱ嵌入式逻辑分析器。SoCEDS套件结合了业界增强型ARMDS-5工具套装以及AlteraSoC器件,为嵌入式开发人员提供了前所未有的全芯片可视化控制功能。

1. Altera版ARMDevelopment

1)完整的开发环境

作为AlteraSoCEDS的一部分,Altera版ARMDS-5工具包为AlteraSoC器件提供了完整的嵌入式开发工具,其主要特性包括:

(1)支持电路板开发、驱动开发、操作系统(OS)移植、裸金属和Linux应用程序开发。

(2)支持应用程序开发,包括支持开发基于Linux的应用程序的Yocto插件。

(3)支持开发并调试多核芯片以对称多处理(SMP)和非对称多处理(AMP)模式运行的系统。

1)完整的开发环境

作为AlteraSoCE

(4)基于ARM体系结构的多核调试功能,为AlteraSoC器件提供FPGA自适应调试

功能。

(5)采用集成在FPGA架构中的ARMCoreSight跟踪宏单元,支持ARMCortex-A9处理器以及任何定制内核进行同时调试,并提供跟踪连接。

(6) ARM流线性能分析器采用来自SoC和FPGA域的性能计数器,实现全系统级分析。

图7.2所示的ARMDS-5工具包支持对Linux应用程序的调试。

(4)基于ARM体系结构的多核调试功能,为Alter图7.2DS-5对Linux应用程序的调试图7.2DS-5对Linux应用程序的调试

2) FPGA自适应调试

由于在FPGA中采用了定制逻辑,因此,每一个基于SoC的系统都是独一无二的。为了能够高效地调试系统,Altera版ARMDS-5工具包动态适应用户的不同配置,统一了来自CPU和FPGA域的所有软件调试信息,在标准DS-5用户界面中以分组的方式呈现这些信息。Altera和ARM开发的工具包可帮助设计者提高设计调试的可视化和控制功能,有效提高设计效能。

2) FPGA自适应调试

由于在FPGA中采用

与AlteraSignalTap Ⅱ嵌入式逻辑分析仪一起使用,该工具包为CPU和FPGA域之间的高级信号级硬件提供了交叉触发功能。通过该功能,软件和FPGA设计人员可以分析并采集硬件至软件边界的踪迹,进行协同调试。如图7.3所示,通过在SignalTap Ⅱ嵌入式逻辑分析仪中的触发点设置,可启动软件踪迹采集。

与AlteraSignalTap Ⅱ嵌入式逻辑分析仪图7.3SignalTap Ⅱ逻辑分析仪中的触发点设置图7.3SignalTap Ⅱ逻辑分析仪中的触发点设置

3)与Altera工具和开发套件的兼容性

ARMDS-5工具包和其他Altera基于JTAG的工具可以通过AlteraUSB-Blaster电缆连接至AlteraSoC电路板。该工具包还可以对所有AlteraSoC开发套件和兼容电路板上的闪存ROM进行编程。

3)与Altera工具和开发套件的兼容性

AR

2.硬件和软件之间的交互开发方式

Altera硬件和软件之间的交互开发方式支持硬件和软件工程师按照自己熟悉的设计流程独立工作。交互方式采用了AlteraQuartus Ⅱ和Qsys生成的输出文件,产生软件设计流程中所需的接口文件。软件工程师可以尽量避免参与FPGA开发,而将精力集中在软件设计上,因而具有更高的效率。图7.4给出了Altera集成开发环境中硬件和软件之间的交互开发方式结构图。

2.硬件和软件之间的交互开发方式

Altera硬件图7.4硬件和软件之间的交互开发方式图7.4硬件和软件之间的交互开发方式

3. Linux应用开发

(1) SoCEDS:包括U-Boot和Linux开发环境、源文件以及经过预编译的库。对于Altera

SoC电路板,可以立即运行这些库,迅速开始软件开发工作。

(2) Yocto支持:Linux开发环境基于开源Yocto工程,为开发人员提供了开放的、高性价比的通用解决方案。

3. Linux应用开发

(1) SoCED

4.SoC硬件库

SoCEDS包括嵌入式应用程序二进制接口(EABI)GNU编译器工具链和SoC硬件库,支持裸机(bare-metal)应用开发。SoC硬件库提供底层软件接口,以支持SoC硬件实现,这一应用程序接口(API)方便了SoC硬件资源的使用、配置和控制。图7.5所示为SoC的硬件库结构层描述。

4.SoC硬件库

SoCEDS包括嵌入式应用程序图7.5SoC的硬件库结构层描述图7.5SoC的硬件库结构层描述

SoC硬件库的应用包括:

(1)电路板开发支持;

(2)对SoC硬件的底层访问功能;

(3)器件驱动开发;

(4)诊断工具开发;

(5)定制启动加载程序开发;

(6)操作系统移植;

(7)裸机应用开发。

SoC硬件库的应用包括:

(1)电路板开发支持;

7.1.2SoCEDS安装

1. SoCEDS的安装步骤

(1)在Altera官方网站下载安装程序SoCEDSSetup-32.exe或更高版本软件。网址为/download/software/soc-eds。下载完成后双击运行。

(2)点击Next,选择Iaccepttheagreement,点击Next,如图7.6所示。

7.1.2SoCEDS安装

1. SoCED图7.6接受授权协议图7.6接受授权协议

(3)选择所需的安装路径,点击Next,如图7.7所示。图7.7选择安装路径

(3)选择所需的安装路径,点击Next,如图7.7所

(4)继续点击Next,SoCEDS进行安装。安装完成后点Finish,自动弹出ARMDS-5安装程序。

(5)在ARMDS-5安装对话框中,点击Next。

(6)选择接受LicenseAgreement项,点击Next,如图7.8所示。

(7)点击Next,可按默认路径安装,也可点击Browse更改安装路径,如图7.9所示。

(4)继续点击Next,SoCEDS进行安装。安装图7.8接受LicenseAgreement图7.8接受LicenseAgreement图7.9更改安装路径图7.9更改安装路径

(8)选择所需安装目录,点击OK,如图7.10所示。

(9)返回图7.9所示界面,点击Next,再次点击Next,出现DS-5安装对话框后,点击Install按钮开始安装。安装程序显示ARMDS-5的安装进度。

(10)安装完成后,自动弹出DS-5驱动安装向导对话框,点击下一步开始安装。最后点击Finish按钮完成DS-5安装。

(8)选择所需安装目录,点击OK,如图7.10所示。图7.10选择DS-5安装目录图7.10选择DS-5安装目录

2.安装DS-5License文件

(1)在Windows操作系统下,点击开始→所有程序→ARMDS-5→EclipseforDS-5,启动EclipseforDS-5。

也可以通过命令行终端启动EclipseforDS-5,在DS-5安装目录embedded下选中Embedded_Command_Shell.bat文件,并用鼠标左键双击该文件,即可启动Shell命令行终端,在命令行终端输入eclipse,即可启动EclipseforDS-5,如图7.11所示。

2.安装DS-5License文件

(1)在图7.11通过命令行终端启动Eclipse图7.11通过命令行终端启动Eclipse

(2)启动Eclipse后,设置工作空间对话框将会弹出。点击Browse,设置所需的工作空间,点击OK,如图7.12所示。图7.12设定DS-5的工作空间

(2)启动Eclipse后,设置工作空间对话框将会弹

(3)在Eclipse开发环境主界面选择Help,点击ARMLicenseManager菜单命令,弹出ARMLicenseManager对话框,如图7.13所示。

注意:以下操作必须在计算机网络连接正常的情况下进行。

(3)在Eclipse开发环境主界面选择Help,图7.13打开ARMLicenseManager对话框图7.13打开ARMLicenseManager对话

(4)在ARMLicenseManager对话框点击AddLicense按钮,在获得一个新的许可对话框中选择Generate30-dayevaluationlicense项,点击Next,如图7.14所示。图7.14获得新的EvaluationLicense

(4)在ARMLicenseManager对话框

(5)在ChoosehostID对话框的下拉列表中选择本机的HostID,点击Next,如图7.15所示。图7.15选择HostID

(5)在ChoosehostID对话框的下拉列表

(6)输入ARM账户信息。如果拥有ARM账户,直接在对话框中输入账户和密码。如果没有ARM账户,点击here创建一个新账户,如图7.16所示。图7.16创建新账户

(6)输入ARM账户信息。如果拥有ARM账户,直接在

(7)在创建ARM新账户对话框中输入注册信息。注意:密码是大写字母+小写字母+数字结构,顺序随意。输入完点击Finish,如图7.17所示。图7.17注册新账户

(7)在创建ARM新账户对话框中输入注册信息。注意:

(8)点击Finish返回到输入ARM账户对话框,点击Finish。License生成后会弹出ARMLicenseManager对话框,点击Close,DS-5License安装完毕,如图7.18所示。

注意:本次安装的License有效期只有30天,试用期完后如需要请购买正版软件。

(8)点击Finish返回到输入ARM账户对话框,点图7.18ARMLicenseManager对话框图7.18ARMLicenseManager对话框

7.2DS-5设计输入

7.2.1创建C/C++ 工程创建一个新的C/C++ 工程的操作步骤如下:(1)从开始菜单或嵌入式命令行启动Eclipse。(2)设置工作空间(workspace)。建议选择一个专门的文件夹作为工作空间,用于存储项目文件。如果选择了一个含有其他资源的文件夹作为工作空间,那么在Eclipse开发环境中无法访问这些与项目无关的资源。此外,当创建或编译工程时有可能与这些资源产生冲突。

7.2DS-5设计输入

7.2.1创建C/C++ 

(3)在Eclipse开发环境主界面选择File→New→C++Project或CProject菜单,如图7.19所示。

(4)在C++Project或CProject对话框的Projectname中输入工程名。

(5)选中Usedefaultlocation前面的复选框,则在默认的文件夹中创建工程。如果不勾选,则可以选择用户想要存放的文件夹,如图7.20所示。

(3)在Eclipse开发环境主界面选择File→N图7.19新建C/C++ 工程图7.19新建C/C++ 工程图7.20设置工程属性图7.20设置工程属性

(6)选择所创建项目的类型。Eclipse提供了6种不同的项目类型。

①裸机可执行文件(Bare-metalExecutable):使用ARM编译工具链编译一个裸机可执行ELF镜像。

②裸机库(Bare-metallibrary):使用ARM编译工具链为裸机工程编译一个ELF格式的库。

③可执行文件(Executable):使用GNU编译工具链编译一个Linux系统可执行ELF镜像。

(6)选择所创建项目的类型。Eclipse提供了6种

④共享库(SharedLibrary):使用GNU编译工具链为Linux应用程序创建一个动态库。

⑤静态库(StaticLibrary):使用GNU编译工具链为Linux应用程序创建一个ELF格式的库。

⑥ Makefile工程(Makefileproject):创建一个工程所需要的Makefile文件来编译工程。Makefile文件也可以自己编写。

④共享库(SharedLibrary):使用GNU

7.2.2创建Makefile项目

如何为ARMLinux目标板创建一个新的C或C++ 的Makefile工程,具体步骤如下:

(1)参照7.2.1节创建一个新的C/C++ 工程的第(1)至(6)步。

(2)展开Makefileproject类型,选择EmptyProject。在右侧的Toolchains栏中选择所需的编译工具链,点击Finish,完成工程创建,如图7.21所示。

(3)在编译工程之前,需要一个包含所有编译工具设置的Makefile文件。可以从示例工程中拷贝一个Makefile文件到新建的工程中。在<DS-5安装目录>/examples/software文件夹中可以找到各种类型的示例工程。

7.2.2创建Makefile项目

如何为ARM图7.21Makefile工程选项图7.21Makefile工程选项

可按如下方法编辑拷贝的Makefile文件:

①在OBJS行,用自己的目标文件名替换原文件名。

②在TARGET行,用自己的目标文件名替换原文件名。

③保存文件。

(4)添加C/C++ 文件到新建工程,即可编译新建的工程(或在Shell中用make命令编译工程)。

可按如下方法编辑拷贝的Makefile文件:

7.2.3导入工程

基于DS-5的Eclipse开发环境,也可导入已存在的工程,具体操作步骤如下:

(1)在基于DS-5的Eclipse开发环境主界面选择File→Import菜单命令。

(2)在弹出的Import对话框中,展开General,选中ExistingProjectsintoWorkspace,然后点击Next按钮,如图7.22所示。

7.2.3导入工程

基于DS-5的Eclipse开图7.22导入已存工程到当前工作空间图7.22导入已存工程到当前工作空间

(3)在ImportProjects对话框窗口,选择Selectrootdirectory,点击其后的Browse按钮,弹出浏览文件夹对话框,选择所要导入的工程文件夹,点击确定,如图7.23所示。如果需要将导入工程拷贝到已存在的工作空间中,勾选ImportProjects对话框中的Copyprojectsintoworkspace复选框。

(4)点击ImportProjects对话框的Finish按钮,完成工程导入。

(3)在ImportProjects对话框窗口,选图7.23选择工程文件夹图7.23选择工程文件夹

7.2.4创建源文件

新的DS-5工程创建完毕后,需要为工程创建所需的源文件,比如C/C++ 源程序、调试脚本文件、Makefile文件等,此处以创建调试脚本文件为例说明创建步骤。

(1)在EclipseforDS-5开发环境主界面选择File→New→Other菜单命令。

(2)在弹出的新建文件对话框中,展开DS-5Debugger,选中DS-5DebuggerScript,点击Next按钮,如图7.24所示。

7.2.4创建源文件

新的DS-5工程创建完毕后,第7章--基于SoC-EDS的嵌入式系统设计课件

(3)在弹出的NewDS-5DebuggerScript对话框中,点击Location文本框右侧的FileSystem或Workspace按钮选择文件存储位置。在FileName栏输入文件名,点击Finish按钮完成创建DS-5调试脚本文件,如图7.25所示。其他文件的创建方式与此类似。

(3)在弹出的NewDS-5DebuggerS图7.25调试脚本对话框图7.25调试脚本对话框

7.3设计项目的编译

7.3.1ARM编译器和GNU编译器简介1.ARM编译器ARMDS-5中的ARM编译器专门用于为ARM架构提供最优支持。该编译器的开发历经20年,它被公认为业界标准的面向ARM处理器的C和C++ 编译器,用于生成面向ARM、Thumb、Thumb-2、VFP和NEON指令集的应用程序。ARM编译器支持所有ARM处理器中的新增处理器功能。

7.3设计项目的编译

7.3.1ARM编译器和GN

ARM编译器工具链可用于编译由C、C++ 或ARM汇编语言源代码编写的程序。它可为32位ARM、16位Thumb和Thumb-2指令集生成优化代码,并支持完整的符合ISO标准的C和C++ 代码,它还通过向量化NEON编译器支持NEONSIMD指令集。ARM编译器工具链由以下组件组成:

ARM编译器工具链可用于编译由C、C++ 或ARM汇编

(1) ARM、ThumbC和C++ 编译器armcc。

(2) NEON向量化编译器,可使用命令armcc--vectorize进行调用。

(3) ARM和Thumb汇编器armasm。

(4) ARM链接器armlink。

(5) ARM库管理程序armar。

(6) ARM镜像格式转换工具fromelf。

应用ARM编译器工具链进行开发的流程如图7.26所示。

(1) ARM、ThumbC和C++ 编译器ar图7.26应用ARM编译器工具链进行开发的流程图7.26应用ARM编译器工具链进行开发的流程

1)编译器(armcc)

ARM编译器工具链中的armcc可将标准C、C++ 源程序转换成基于ARM处理器架构的机器码,可编译相关C、C++ 代码生成的NEON向量指令,生成后缀为 .o的目标文件。

2)汇编器(armasm)

ARM编译器工具链中的armasm可将汇编指令转换为二进制的机器代码,可汇编NEONSIMD指令,生成后缀为 .o的目标文件。

1)编译器(armcc)

ARM编译器工具链中的

3)链接器(armlink)

ARM编译器工具链中的armlink可以将编译得到的一个或者多个目标文件和相关的一个或多个目标库链接起来,生成可执行镜像(.axf)。

4)镜像格式转换工具(fromelf)

应用ARM编译器工具链中的fromelf工具,能够实现将可执行镜像格式转换为各种输出文件,如去掉镜像文件(.axf)中的调试信息将其转换为二进制文件(.bin)。

3)链接器(armlink)

ARM编译器工具链

应用这些工具可以编译裸机嵌入式系统应用程序或库,包括DS-5安装目录下例程子目录中的各例程,用户可以通过Shell命令行或者在EclipseforDS-5集成开发环境中调用ARM编译工具。图7.27所示是在命令行中查询编译器armcc版本信息。

应用这些工具可以编译裸机嵌入式系统应用程序或库,包括D图7.27查询armcc版本信息图7.27查询armcc版本信息

2.GNU编译器

AlteraSoCEDS自带的裸机GNU编译工具是MentorSourceryCodeBenchLiteEdition4.6.3,安装在SoCEDS安装目录/embedded/host_tools/mentor/gnu/arm/baremetal中。此编译器是基于ARM架构的处理器,用于裸机程序编译。通过嵌入式命令行(Embedded_Command_Shell)启动,在计算机系统中将编译工具路径环境变量设置好,可直接键入命令,如arm-none-eabi-gcc命令。图7.28所示是在Shell命令行中查询该编译器版本信息。

2.GNU编译器

AlteraSoCEDS自带图7.28查询arm-none-eabi-gcc版本信息图7.28查询arm-none-eabi-gcc版本信息

AlteraSoCEDS自带的LinuxGNU编译工具是LinaroLinuxcompilerversion4.7.1(根据SoCEDS版本的不同会有所不同),此套编译器作为ARMDS-5的组件安装,位于SoCEDS安装目录/embedded/ds-5/bin中。此编译器是基于ARM架构的处理器,用于编译Linux应用程序。同样也可以从命令行直接启动编译工具,也可在Eclipse中创建Linux可执行程序项目,从而调用此套编译器。图7.29所示为在命令行中查询该编译器版本信息。

AlteraSoCEDS自带的LinuxGNU编图7.29查询arm-linux-guneabihf-gcc版本信息图7.29查询arm-linux-guneabihf-g

7.3.2DS-5编译器及其选项设置

以armcc为例,在EclipseforDS-5环境中,新建或导入以ARMCompiler为编译器创建的DS-5工程,并用鼠标右键点击工程名,在右键菜单中选择Properties命令,如图7.30所示。在弹出的Properties对话框中,展开左侧的C/C++Build,点击Settings即可对armcc编译器进行设置,如图7.31所示。

7.3.2DS-5编译器及其选项设置

以armcc图7.30在右键菜单中选择Properties命令图7.30在右键菜单中选择Properties命令图7.31编译选项设置图7.31编译选项设置

在图7.31中可以看到ARM编译器的所有选项,如Alloptions中显示:--cpp-O0-g,其中包括了相关的编译指令。如果想添加或者修改指令,则点击SourceLanguage、Optimizations、CodeGeneration、Debugging等选项,然后在右侧展开的相关选项中进行选择设置。例如,在ARMC++Compiler下面:

(1)可以选择Includes选项,添加头文件包含搜索目录。

(2)可以选择Optimizations选项,其中包括:

在图7.31中可以看到ARM编译器的所有选项,如All

①优化等级(Optimizationlevel):大写之母O后面带一个数字表示优化等级的高低,O0表示不优化,O1表示关闭影响调试结果的优化功能,O2表示该优化级别提供了最大的优化功能。

②优化方式(Optimizefor):可以选择尺寸最优、时间最优或默认。

(3)可以选择CodeGeneration选项,其中包括:

①数据存储格式(Byteorder):大端格式或小端格式。

②指令集选择(Instructionset):ARM指令或Thumb指令。

①优化等级(Optimizationlevel):

7.4设计项目的调试

ARMDS-5为用户提供了功能强大的调试工具,DS-5Debugger可与硬件目标板连接后进行在线调试,也可应用基于ARM架构处理器的模型进行调试,开发人员可完全控制程序执行流程并快速定位、纠正错误,其提供的功能有:

7.4设计项目的调试

ARMDS-5为用户提供了

(1)加载镜像文件或符号。

(2)运行可执行镜像文件。

(3)设置断点、监视点。

(4)单步执行源程序及指令。

(5)访问变量、寄存器值。

(6)堆栈调用(navigatingthecallstack)。

(7)支持异常处理及Linux信号。

(8)可调试多线程Linux应用程序。

(9)可调试Linux内核模块,启动代码。

(10)可调试对称多核裸机系统。

(1)加载镜像文件或符号。

(2)运行可执行镜

7.4.1调试配置(DebugConfiguration)

项目编译成功后,启动配置调试对话框,在Eclipse主界面菜单栏选择Run->DebugConfigurations,如图7.32所示。

7.4.1调试配置(DebugConfigurati图7.32启动DebugConfigurations对话框图7.32启动DebugConfigurations对

在弹出的DebugConfigurations对话框中,选择左侧列表中的DS-5Debugger,单击左上角新建按钮(或双击DS-5Debugger选项,或右键菜单选择New)创建新的调试连接,如图7.33所示。

在弹出的DebugConfigurations对话框图7.33新建调试连接图7.33新建调试连接

在新创建的DS-5调试器中开始配置调试选项。

1.Connection标签页

Connection标签页配置选项如图7.34所示。

(1) Selecttarget:指定目标器件及调试选项。

(2) DTSLOptions:指定调试器及跟踪选项配置。

(3) Connections:指定连接目标方式。

在新创建的DS-5调试器中开始配置调试选项。

1.

1) Selecttarget选项

如图7.34所示,在Connection标签页的Selecttarget列表中,可选择器件系列(如Altera->CycloneVSoC等)。不同的器件系列包含不同的配置选项,如CycloneVSoC下面可选择的配置选项有三大类:

(1) BareMetalDebug:此项用于调试裸机应用程序。

(2) LinuxApplicationDebug:此项用于调试Linux应用程序。

(3) LinuxKerneland/orDeviceDriverDebug:此项用于调试Linux内核及设备驱动。

1) Selecttarget选项

如图7.3图7.34DS-5调试器配置Connection标签页图7.34DS-5调试器配置Connection标签页

2) DTSLOptions选项

单击DTSLOptions选项右侧的Edit按钮,弹出DTSL配置编辑器,即DebugandTraceServicesLayer(DTSL)Configuration窗口,开始创建并配置跟踪会话。该窗口有6个标签页选项:CrossTrigger、TraceBuffer、Cortex-A9、STM、ETR和ETF标签页。

(1) CrossTrigger标签页。如图7.35所示,在此标签页配置SoCFPGA交叉触发选项。

2) DTSLOptions选项

单击DTSL图7.35DTSL配置编辑器CrossTrigger标签页图7.35DTSL配置编辑器CrossTrigger标

① EnableFPGA->HPSCrossTrigger:使能FPGA到HPS的触发。

② EnableHPS->FPGACrossTrigger:使能HPS到FPGA的触发。

③ AssumeCrossTriggerscanbeaccessed:选择此项用于确认Preloader已加载,以使DS-5可访问交叉触发窗口。

① EnableFPGA->HPSCross

(2) TraceBuffer标签页。该标签页用于选择跟踪信息捕捉方法,如图7.36所示。图7.36DTSL配置编辑器设置跟踪信息捕捉方式

(2) TraceBuffer标签页。该标签页用于

① None:跟踪功能关闭。

② ETR:应用HPS可访问的任何缓冲存储器。

③ ETF:应用32KB的片上跟踪缓冲存储器。

④ DSTREAM4GBTraceBuffer:应用DSTREAM(ARM仿真器)的4G缓冲存储器。此选项仅在Targetconnection被配置为DSTREAM时可选。

在TraceBuffer标签页中,还可以设置时间戳频率(Timestampfrequency),如图7.37所示。

① None:跟踪功能关闭。

② ETR:应用图7.37DTSL配置编辑器设置时间戳频率图7.37DTSL配置编辑器设置时间戳频率

(3) Cortex-A9标签页。该标签页用于设置内核跟踪选项,如图7.38所示。

① EnableCortex-A90trace:勾选后使能跟踪内核0。

② EnableCortex-A91trace:勾选后使能跟踪内核1。

③ PTMTriggershaltexecution:勾选后使得跟踪时可终止程序。

④ EnablePTMTimestamps:勾选后允许启用PTM时间戳。

(3) Cortex-A9标签页。该标签页用于设置内

⑤ EnablePTMContextIDs:勾选后使能跟踪PTM上下文ID设备。

⑥ ContextIDSize:选择ID位宽,可选为8、16、32位。仅当PTMContextID勾选后可用。

⑦ CycleAccurate:勾选后创建循环精确跟踪。

⑧ Tracecapturerange:勾选后仅对确定范围地址进行跟踪。

⑨ StartAddress,EndAddress:确定跟踪首地址及末地址。

⑤ EnablePTMContextIDs:勾图7.38配置内核跟踪选项图7.38配置内核跟踪选项

(4) STM标签页。在此配置是否启用STM(SystemTraceMacrocell)跟踪,如图7.39所示。图7.39配置启用STM

(4) STM标签页。在此配置是否启用STM(Sy

(5) ETR标签页。在此配置ETR(EmbeddedTraceRouter)选项,如图7.40所示,用于直接将跟踪信息写入一个可以被HPS访问的缓冲存储器。图7.40配置ETR选项

(5) ETR标签页。在此配置ETR(Embedde

(6) ETF标签页。在此配置ETF(EmbeddedTraceFIFO)选项,如图7.41所示。ETF是HPS上的一个32KB的缓存,可以被调试器用来存储检索到的跟踪数据,但也可作为通过ETR或外部DSTREAM器件存储跟踪数据的灵活缓存。

① Configuretheon-chiptracebuffer:若ETF被设置为跟踪信息存储器,则选中此项。

② Size:定义ETF大小,默认设置为0x1000(4KB),但可以设为0x8000(32KB)以匹配实际缓存大小。

(6) ETF标签页。在此配置ETF(Embedde图7.41配置ETF选项图7.41配置ETF选项

3) Connections选项

单击图7.34下方Connections部分中Connection框右侧的Browse按钮,弹出SelectDebugHardware对话框(目标板需要通过电缆与计算机连接,如USB-Blaster)。在此用户可以指定用于与目标板通信的连接,基于不同的调试选项,有不同的设置。

(1)对于BareMetalDebug和LinuxKerneland/orDeviceDriverDebug目标类型,点击Browse按钮,弹出的对话框如图7.42所示,用户可选AlteraUSB-Blaster或者DSTREAMinstances。

(2)对于LinuxApplicationDebug目标类型,用户可选为RemoteSystemExplorerview。

3) Connections选项

单击图7.34图7.42Connections连接选项图7.42Connections连接选项

2.Files标签页

Files文件标签页选项如图7.43所示。

(1) Applicationonhosttodownload:设置要下载至目标的应用程序名。可通过浏览工作空间(Workspace)或文件系统(FileSystem)来设置。

2.Files标签页

Files文件标签页选项如图图7.43Files标签页选项图7.43Files标签页选项

(2) Files:包含一组文件,通过点击“+”或“-”按钮来添加或移除文件。每个文件可以设置为以下2种类型:

① Loadsymbolsfromfile:调试器通过此文件载入标记。

② Addperipheraldescriptionfilesfromdirectory:调试器通过此路径中的SVD文件载入外设寄存器描述。SVD文件是在硬件开发中生成的。

(2) Files:包含一组文件,通过点击“+”或“

3.Debugger标签页

Debugger标签页配置选项如图7.44所示。

(1) Runcontrol:该选项有Connectonly、Debugfromentrypoint和Debugfromsymbol,Runtargetinitializationdebuggerscript(.ds/.py)(运行用户指定目标初始化的调试器脚本),Rundebuginitializationdebuggerscript(.ds/.py)(运行用户指定调试初始化的调试器脚本)以及Executedebuggercommands(执行用户自定义调试命令)。

(2) Hostworkingdirectory(选择主机工作路径):设置DS-5调试器的工作路径。可以勾选Usedefault来使用DS-5的工作空间路径。

(3) Paths(路径):允许调试器搜索多个路径,通过单击“+”或“-”进行添加或移除。

3.Debugger标签页

Debugger标签页图7.44Debugger标签页配置选项图7.44Debugger标签页配置选项

4.RTOSAwareness标签页

RTOSAwareness标签页如图7.45所示。如果应用了指定的实时操作系统(RTOS),则可以使调试器识别KeilTMCMSIS-RTOSRTX。

4.RTOSAwareness标签页

RTOS图7.45TROSAwareness实时操作系统选项图7.45TROSAwareness实时操作系统选项

5.Arguments标签页

Arguments标签页如图7.46所示。在该标签页中允许以文本方式输入调试参数。根据需要可以点击右下角的Variables按钮选择相应的变量作为程序参数。

5.Arguments标签页

Arguments标图7.46Arguments标签页图7.46Arguments标签页

6.Environment标签页

Environment标签页如图7.47所示。在该标签页中可以设置程序执行过程中所用环境变量。图7.47环境变量设置

6.Environment标签页

Environm

7.EventViewer标签页

EventViewer标签页如图7.48所示。在此标签页中可使能及配置查看STM(SystemTraceMacrocell)和ITM(InstrumentationTraceMacrocell)事件。SoCFPGA没有ITM,因此只有STM可用,当STMViewer启用后,可配置跟踪深度大小。

7.EventViewer标签页

EventV图7.48EventViewer标签页图7.48EventViewer标签页

7.4.2调试视图(DebugViews)

在7.4.1节的DebugConfiguration相关调试配置选项设置完成后,点击DebugConfiguration对话框右下角的Debug按钮即开始连接目标板进行调试。根据对话框提示,如图7.49所示,选择Yes,切换至调试窗口,如图7.50所示。

7.4.2调试视图(DebugViews)

在7图7.49切换到调试窗口提示对话框图7.49切换到调试窗口提示对话框图7.50DS-5调试视图(DebugViews)图7.50DS-5调试视图(DebugViews)

1.DebugControl调试控制窗口

图7.50左上角有DebugControl(调试控制)子窗口,如图7.51所示。使用调试控制子窗口,可以非常轻松地管理调试连接、展现上下文和控制程序执行。调试连接在此视图中列出,并且只需一次单击即可启动连接,而与连接类型(例如JTAG或GDB)无关。在顶部栏中,开发人员可利用运行控制命令来执行程序,这具有很高的灵活性。在由于计算处理或断点设置而暂停执行时,进程、线程和调用堆栈信息将立即显示出来。DebugControl窗口允许与一个或多个目标同时建立多个连接,并且在用户将重心放在某个连接时自动刷新所有其他调试器视图窗口。

1.DebugControl调试控制窗口

图7.图7.51DebugControl调试控制子窗口图7.51DebugControl调试控制子窗口

2.Disassembly源代码反汇编窗口

图7.50中包含Disassembly子窗口,如图7.52所示,该窗口为对底层调试或优化感兴趣的开发人员提供了源代码的反汇编。DS-5调试器提供的反汇编,可用于自动或手动对ARM或Thumb指令进行解码。通过与程序执行完全同步,该反汇编子窗口突出显示了与所选源代码行匹配的所有指令,并且还可以用于单步执行机器指令以及源代码。在DebugControl调试控制子窗口,可通过运行、暂停和单步执行/单步跳过/单步跳出图标对程序执行进行控制。

2.Disassembly源代码反汇编窗口

图7.图7.52Disassembly源代码及反汇编子窗口图7.52Disassembly源代码及反汇编子窗口

3.Commands调试命令行窗口

图7.50上部有Commands调试命令行窗口,如图7.53所示。DS-5调试器实现自己的类似于GDB的命令行接口,扩展了GNU工具的功能,并且包含JTAG/SWD和GDB连接。DS-5调试器命令提示符可从DS-5IDE内访问,也可以通过控制台从外部访问,前者还具备自动完成功能和工具提示帮助以方便使用。所有调试器操作(CLI或GUI驱动的)都显示在命令视图中并且记录在历史记录视图中,这允许用户只需通过选择文本并在脚本视图中拖放脚本,即可将任何命令序列转换为脚本。然后,用户可以随时调用已保存的脚本,在初始化或设置断点时自动执行已保存的脚本。

3.Commands调试命令行窗口

图7.50上部图7.53Commands调试命令行窗口图7.53Commands调试命令行窗口

4.Breakpoints断点和观察点窗口

图7.50右上方包括Breakpoints子窗口,如图7.54所示。断点和观察点已成为软件调试的重要环节,DS-5调试器使得该功能更加强大且更易于使用。软件和硬件断点可以轻松地从源代码进行设置,并且在断点视图中与观察点一起列出。Breakpoints子窗口用于禁用、启用、删除或配置断点和观察断点属性,确保程序以正确的顺序执行。

4.Breakpoints断点和观察点窗口

图7.图7.54Breakpoints子窗口图7.54Breakpoints子窗口

5.Registers寄存器、Memory内存、Variables变量和Functions表达式子窗口

在DS-5调试器内核中,协处理器和外设寄存器全都在寄存器视图中列出,如图7.55所示。

5.Registers寄存器、Memory内存、Var第7章--基于SoC-EDS的嵌入式系统设计课件

有许多方法可以使用DS-5调试器查看和修改内存内容。Memory内存窗口是传统的以线性方式展示内存空间的视图,如图7.56所示。此视图对于底层调试非常有用,可对此视图进行配置以便以不同的格式(默认为十六进制)和宽度显示数据,接受表达式和符号作为起始地址,并且可在特定的内存地址设置数据观察点。

有许多方法可以使用DS-5调试器查看和修改内存内容。M第7章--基于SoC-EDS的嵌入式系统设计课件

6.Trace跟踪子窗口

DS-5调试器支持ARMCoreSightETM和PTM非侵入性程序跟踪,允许开发人员在出现错误时查看说明(以及关联的源代码)。它还使开发人员能够调试对时间敏感的问题,而用传统的侵入性单步技术很难发现这些问题。

6.Trace跟踪子窗口

DS-5调试器支持ARM

DS-5调试器提供了灵活的跟踪显示功能,如图7.57所示。跟踪是用于调试和短期性能分析的宝贵工具,但很少有开发人员能够仅通过长长的已执行机器指令列表做到这一点,DS-5为开发人员提供了友好的方式来展示这些数据,例如将指令链接到相应的源代码、显示功能级别跟踪分析或者提供图形跟踪显示。基于跟踪数据,DS-5调试器还生成时间表图表,所含信息可帮助开发人员迅速理解其软件在目标上的执行方式以及哪些功能最占用CPU。通过提供不同的缩放级别,该时间表可基于每个时间单位的指令数,以其最高分辨率显示热点地图,并且提供按每组指令的典型延迟时间以不同的颜色来编码每条指令显示。

DS-5调试器提供了灵活的跟踪显示功能,如图7.57所第7章--基于SoC-EDS的嵌入式系统设计课件

7.AppConsole应用程序控制台窗口

程序执行过程中,会在AppConsole窗口打印出相关信息,如图7.58所示。

7.AppConsole应用程序控制台窗口

程序图7.58应用程序控制台窗口图7.58应用程序控制台窗口

7.5基于ARM编译器的裸机实例

7.5.1创建ARMCC项目可以通过两种方式来启动EclipseforDS-5。在<DS-5安装目录>/embedded目录下选中Embedded_Command_Shell.bat文件,双击启动Embedded_Command_Shell,键入eclipse命令后回车即可启动Eclipse,如图7.11所示;

7.5基于ARM编译器的裸机实例

7.5.1创建A

另一种方式为选择开始→所有程序→ARMDS-5→EclipseforDS-5,通过嵌入式命令行启动,将所有编译工具命令添加到系统搜索路径中,可以直接调用,无需完整路径。采用第二种方式启动EclipseforDS-5后会弹出工作空间路径选择对话框,可根据开发需要自行选择工作空间路径,如图7.59所示。

另一种方式为选择开始→所有程序→ARMDS-5→E图7.59选择工作空间(Workspace)图7.59选择工作空间(Workspace)

Eclipse启动后出现ARMDS-5欢迎界面,如图7.60所示。可以通过页面中的链接访问DS-5相关文档、教程和教学视频等。

Eclipse启动后出现ARMDS-5欢迎界面,如图图7.60DS-5欢迎界面图7.60DS-5欢迎界面

(1) DS-5软件开发是基于项目的,并可在EclipseIDE中方便地进行项目管理。软件开发首先要新建项目,按前述方法启动Eclipse,本节中的流水灯实例程序全部代码应用C语言编写,所以新建一个C语言项目。具体操作是在主菜单中选择File→New→CProject命令,如图7.61所示。

(1) DS-5软件开发是基于项目的,并可在Ecli第7章--基于SoC-EDS的嵌入式系统设计课件

(2)选择CProject命令后弹出项目类型选择对话框,如图7.62所示。本节中的流水灯实例程序是应用ARM编译器的裸机可执行程序类型,故此处选择Bare-metalExecutable项目类型。在其中的EmptyProject和HelloWorldProject两种模板子类型中,选择创建空的项目。在项目创建完成后手动新建源程序,选择完毕点击下一步(Next)。

(2)选择CProject命令后弹出项目类型选择对

(3)设置工程配置选项。在工程向导的选择配置(SelectConfigurations)窗口中提供调试(Debug)与发布(Release)两种选项,如图7.63所示。若设置为调试(Debug)选项,则编译后生成具有完整调试特性的二进制可执行文件,但程序优化性能级别为最低(level0);若设置为发布(Release)选项,则编译过程中会对程序做最高级别优化(level3),但在调试功能上不如调试选项。点击Finish之后,新建项目即可完成。

(3)设置工程配置选项。在工程向导的选择配置(Sel图7.62选择项目类型图7.62选择项目类型图7.63工程配置选项图7.63工程配置选项

(4)在第6章硬件设计部分介绍SoCKIT开发板上左边4个LED由HPS的GPIO1外设控制,Qsys设计中添加的PIO接口控制右边4个LED。本实例项目应用SoCEDS提供的HWLIB中的API访问板上硬件,故需要在项目编译选项中添加HWLIB路径。

①在EclipseforDS-5左侧的ProjectExplorer中选中新建好的项目,用鼠标右键点击,在右键菜单中选择Properties。或在选中项目名称后,选择Eclipse主菜单Project->Properties命令,如图7.64所示。

(4)在第6章硬件设计部分介绍SoCKIT开发板上第7章--基于SoC-EDS的嵌入式系统设计课件

②在弹出的PropertiesforLedWater对话框中,选择C/C++Build中的Settings子项,如图7.65所示。在右边的ARMCCompiler选项中点击Includes子项,该子项可添加三种目录。本实例需要添加的是项目编译时需要包含的HWLIB路径,并非系统路径或预处理所需路径。

②在弹出的PropertiesforLedWat图7.65添加HWLIB路径图7.65添加HWLIB路径

③点击图7.65对话框中Includepath(-I)右侧的第一个绿色带加号按钮,弹出如图7.66所示的路径选择对话框。点击Filesystem按钮,通过Windows资源管理器选择路径<SoCEDS安装路径>\ip\altera\hps\altera_hps\hwlib\include。完成后点击OK按钮。图7.66添加HWLIB路径

③点击图7.65对话框中Includepath(

7.5.2建立项目文件

(1)在新建的C工程中添加主程序main.c,其中包含程序入口点main函数,主程序控制软件的整个执行流程,其中需要预包含所需系统头文件,以及将用到的设备驱动头文件。此处先建立源程序,至于主程序具体代码,在后续步骤再加以编辑。

选中在7.5.1节新建的C工程,选择主菜单File->New->SourseFile命令,如图7.67所示,或在工程名上点击右键选择New→SourseFile命令。

7.5.2建立项目文件

(1)在新建的C工程中添图7.67创建源文件图7.67创建源文件

在弹出的NewSourceFile对话框的Sourcefile栏中输入主程序文件名,如图7.68所示。模板(Template)选择默认C程序模板(DefaultCsourcetemplate),点击Finish按钮,即完成主程序main.c的创建。

在弹出的NewSourceFile对话框的Sour图7.68创建源文件图7.68创建源文件

(2)创建硬件设备描述头文件hps_0.h。SoCEDS提供了由Qsys硬件系统信息转换为软件开发所需设备描述头文件的工具swinfo2header,使得软硬件设计衔接起来。

在SoCEDS安装路径中,双击Embedded_Command_Shell.bat打开嵌入式命令行Shell,进入Qsys工程所在目录,并输入以下命令:

sopc-create-header-filessoc_system.sopcinfo–singlehps_0.h–modulehps_0

图7.69中,sopc-create-header-files第二个选项为Qsys系统设计完成后产生的soc_system.sopcinfo文件,开发人员可根据项目情况进行修改,回车后在命令行当前目录下会生成hps_0.h文件,可将其拷贝至Eclipse当前软件项目目录中。

(2)创建硬件设备描述头文件hps_0.h。SoC图7.69产生hps_0.h头文件图7.69产生hps_0.h头文件

脚本文件编辑完成后将其保存在当前项目目录中,在命令行中切换到当前项目目录,然后执行该脚本,即可在当前项目目录下生成hps_0.h,如图7.70所示。图7.70通过脚本文件产生hps_0.h头文件

脚本文件编辑完成后将其保存在当前项目目录中,在命令行中

在Eclipse中用鼠标右键点击项目名称,选择刷新(Refresh),可看到hps_0.h已被添加至当前项目,双击后可查看该文件的内容,如图7.71所示。

在Eclipse中用鼠标右键点击项目名称,选择刷新(R图7.71将hps_0.h头文件加入Eclipse工程图7.71将hps_0.h头文件加入Eclipse工程

(3)将<SoCEDS安装目录>\embedded\ip\altera\hps\altera_hps\hwlib\src\hwmgr中的看门狗驱动程序alt_watchdog.c拷贝至项目目录,如图7.72所示。

(3)将<SoCEDS安装目录>\embedd图7.72拷贝看门狗alt_watchdog.c程序图7.72拷贝看门狗alt_watchdog.c程序

由于alt_watchdog.c中包含C++ 编译器方可编译的函数,因此本节实例项目需要对看门狗驱动程序进行简单修改。本节实例仅应用了看门狗alt_wdog_start()和alt_wdog_reset()函数,故需对拷贝后的alt_watchdog.c做裁减。

由于alt_watchdog.c中包含C++ 编译器方

(4)ARM链接器支持分散加载机制,可通过一个描述性分散文件(*.scat)指定链接生成的可执行映像存储器映射情况,使开发人员完全控制映像各部分的组织、布局情况。分散文件通常用于控制需要复杂存储器映射的映像,比如加载和执行映像均分布在多个分散的存储器映射区域。关于ARM链接器生成映像结构、分散加载机制及分散文件详细信息,可查看ARMDS-5帮助文档。在主菜单界面选择Help->HelpContents,弹出帮助主题窗口,在左侧导航栏选择ARMDS-5Documentation->ARMCompilertoolchain->usingthelinker->Usingscatterfiles,如图7.73所示。

(4)ARM链接器支持分散加载机制,可通过一个描述性图7.73查看ARMDS-5帮助文档中的scatter信息图7.73查看ARMDS-5帮助文档中的scatter

接下来需要为当前流水灯项目建立分散文件OnchipRAM.scat。选择File→New→Other,如图7.74所示。

接下来需要为当前流水灯项目建立分散文件OnchipRA图7.74创建分散文件OnchipRAM.scat图7.74创建分散文件OnchipRAM.scat

在弹出的New新建文件向导对话框中,选择ScatterFileEditor下的ScatterFile选项,点击Next,如图7.75所示。图7.75为工程创建分散文件OnchipRAM.scat

在弹出的New新建文件向导对话框中,选择Scatter第7章--基于SoC-EDS的嵌入式系统设计课件

在弹出的NewScatterFile对话框中选择当前项目文件夹为分散文件父文件夹,在Filename栏中输入文件名(如OnchipRam),如图7.76所示。点击Finish按钮,完成Scatter文件的创建。

在弹出的NewScatterFile对话框中选择当图7.76创建分散文件OnchipRAM.scat图7.76创建分散文件OnchipRAM.scat

本节流水灯实例项目仅需对映像存储器映射进行简单控制即可,控制映像在片内

64KB的OnchipRAM连续的存储区域加载执行。由第6章SoCFPGA硬件介绍可知,片内64KB的RAM存储器地址映射为0xFFFF0000~0xFFFFFFFF。

本节流水灯实例项目仅需对映像存储器映射进行简单控制即可

保存编辑好的Scatter文件并关闭该文件,再次双击打开该分散文件,可以看到映像加载区与执行区两种存储器映射视图,如图7.77所示。图7.77OnchipRAM.scat存储器映射视图

保存编辑好的Scatter文件并关闭该文件,再次双击打

(5)编辑主程序文件main.c。首先需要包含用的头文件,包括C语言系统标准输入输出库、SoCFPGA器件HWLIB库、硬件系统设备描述以及看门狗驱动,在主程序中定义两个变量i、j来分别控制HPS的GPIO、Qsys中添加的PIO外设输出。程序中使i和j循环移位,从而使板上LED呈现流水灯实验现象。主程序main.c的具体代码如图7.78所示。

(5)编辑主程序文件main.c。首先需要包含用的头图7.78main.c程序代码图7.78main.c程序代码

7.5.3项目编译

对Eclipse项目进行编译之前,需要为ARMLinker指定生成可执行程序所需的分散文件OnchipRam.scat(该文件在前述步骤已成功创建),步骤如下:

在工程属性对话框的C/C++Build->Settings选项中,选择ARMLinker->ImageLayout,点击Scatterfile(--scatter)右侧的Browse按钮,选择编辑好的分散文件OnchipRam.scat,点击OK关闭属性对话框,如图7.79所示。

7.5.3项目编译

对Eclipse项目进行编译图7.79为工程编译添加分散文件图7.79为工程编译添加分散文件

编译项目步骤为:在主菜单中选择Project→BuildProject,或在工程名上选择右键菜单BuildProject。编译过程中可在Console窗口中查看相关信息。在该窗口可观察到,整个编译过程先启动ARMCCompiler进行编译生成目标文件,然后启动ARMCLinker链接为可执行程序。

编译完成后,生成LedWater.axf可执行程序映象,如图7.80所示。

编译项目步骤为:在主菜单中选择Project→Buil图7.80工程编译过程中的相关信息图7.80工程编译过程中的相关信息

7.5.4设计项目的调试

(1)参考6.2.2节,将生成的Preloader引导可执行文件E:\chapter7\Software\spl_bsp\uboot-socfpga\spl\u-boot-spl拷贝至当前项目目录,然后将Quartus Ⅱ编译完成的FPGA硬件设计(参考第6章相关内容)通过USB-Blaster下载至目标板中,如图7.81所示。

7.5.4设计项目的调试

(1)参考6.2.2节图7.81下载硬件设计图7.81下载硬件设计

(2)参考7.4节,当DS-5调试器成功连接到目标后,可在命令视图中键入命令进行调试会话。通过编写包含按次序执行的调试命令的脚本,可以便捷地控制调试会话。

在新建文件向导对话框中为本节流水灯项目创建调试脚本DebugLedWater.ds,如图7.82所示。

(2)参考7.4节,当DS-5调试器成功连接到目标后图7.82创建调试脚本DebugLedWater.ds图7.82创建调试脚本DebugLedWater.ds

调试脚本每行只能包括一条命令,以 # 开头的是注释内容,双击即可编辑创建的DebugLedWater.ds。关于调试命令的详细信息,可参考DS-5帮助主题,如图7.83所示。

调试脚本每行只能包括一条命令,以 # 开头的是注释内容图7.83DS-5调试命令帮助图7.83DS-5调试命令帮助

编辑调试脚本文件DebugLedWater.ds,具体内容如图7.84所示。调试脚本文件也可以拷贝DS-5例程中的调试脚本进行修改。

编辑调试脚本文件DebugLedWater.ds,具体图7.84调试脚本DebugLedWater.ds的内容图7.84调试脚本DebugLedWater.ds的内容

(3)调试配置(DebugConfiguration)。该部分操作可参考7.4.1节内容。

① Connection标签页:选择目标(Target)为Altera→CycloneVSoC→BareMetalDebug→DebugCortex-A9_0viaUSB-Blaster,点击Browse按钮选择当前与目标建立连接的USB-Blaster,如图7.85所示。

(3)调试配置(DebugConfiguratio图7.85配置Connection标签页选项图7.85配置Connection标签页选项

② Files标签页:选择Addperipheraldescriptionfilesfromdirectory,并点击下面的FileSystem按钮添加硬件设计中的设备描述目录,如图7.86所示。

③ Debugger标签页:将Runcontrol运行控制设置为Connectonly,勾选运行调试初始化脚本(Rundebuginitializationdebuggerscript(.ds/.py)),点击Workspace按钮,选择前述步骤创建的调试脚本文件,如图7.87所示。

② Files标签页:选择Addperiphera图7.86配置Files标签页选项图7.86配置Files标签页选项图7.87配置Debugger标签页选项图7.87配置Debugger标签页选项

(4)点击右下角的Debug按钮,弹出是否切换至调试视图对话框。选择Yes则切换至调试视图,DS-5Debugger自动连接目标板,按序执行DebugLedWater.ds中的调试命令,目标板系统开始运行,程序自动停在主函数入口处,如图7.88所示。

(4)点击右下角的Debug按钮,弹出是否切换至调试图7.88启动调试图7.88启动调试

设置断点(BreakPoint),查看变量与寄存器内容。

在主程序中的while(1)循环的开头处设置一个断点,如图7.89所示,使变量i、j每次移位后停在断点处,使得目标板上LED每次改变状态后停下。点击DebugControl子窗口快捷按钮Continue(绿色箭头按钮)或按键盘上的F8键继续运行,则可使i、j继续移位。

设置断点(BreakPoint),查看变量与寄存器内容图7.89在主程序中设置断点图7.89在主程序中设置断点

程序运行前,查看变量与复位寄存器视图,如图7.90所示。可见,此时还观察不到程序中局部或者全局变量,因为程序还未执行到定义变量的代码处。

程序运行前,查看变量与复位寄存器视图,如图7.90所示图7.90程序执行前变量、寄存器视图图7.90程序执行前变量、寄存器视图

点击DebugControl调试控制子窗口快捷按钮中的Continue按钮,或按F8执行程序,程序停在断点处,如图7.91所示。

点击DebugControl调试控制子窗口快捷按钮中图7.91程序执行至断点处图7.91程序执行至断点处

此时,观察本地变量与r

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论