0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

米尔科技DS-5教程-使用ARM DS-5 和DSTREAM仿真器调试裸机程序介绍

米尔科技 来源:米尔科技 作者:米尔科技 2019-11-18 10:38 次阅读

1 概述

本文介绍使用ARM DS-5创建一个裸机程序,并用DS-5里面的ARM编译器进行编译,编译之后通过DSTREAM仿真器将程序加载到MYD-SAMA5D34开发板的SRAM(内存)上。

通过DS-5和DSTREAM,就可以对SRAM上的程序进行调试,包括单步调试、全速运行、设置断点、寄存器、变量和函数调用等。

本文的程序是一个简单的打印程序,程序在MYD-SAMA5D34开发板SRAM上运行,通过DSTREAM仿真器的半主机机制将打印信息传送到主机上,在DS-5上显示。

说明:如果是应用程序开发,请跳过这一章节,直接进入《ARM DS-5创建和编译linux应用程序》及其后面的 章节,因为裸机程序和kernel调试部分都用到DSTREAM仿真器,没有则无法进行。直接进行应用程序的开发可以不用DSTREAM仿真器,直接使用DS-5就可以了。

2 设备

编号

设备

数量

用途

1

PC

1

搭建整个开发平台,包括安装DS-5软件,并通过DS-5编译程序。

2

DS-5开发工具

1

ARM开发工具,在Linux或者Window主机下使用其自带的Gcc编译Linux应用程序。

本文适用ARM DS-5的社区版30天全功能评估版或者专业版

DS-5 30天评估板请参考设备介绍中的链接。

3

DSTREAM仿真器

1

在调试开发板时,DSTREAMPC机和开发板之间,用以接受PC机上DS-5的调试命令,并控制开发板执行。

4

MYD-SAMA5D34

D31/33/35)开发板

1

米尔科技基于Atmel芯片ARM Cortex-A5内核开发板,板载的LinuxAndroid操作系统可以完整结合ARM DS-5进行开发。

本文用到开发板的5V电源、串口线和网线等配件

3 设备介绍

关于本例程使用的设备,除PC机是通用的设备不做介绍以外,其他设备请参考以下地址了解详细情况。

(1)ARM DS-5详细介绍:http://www.myir-tech.com/product/ds-5.htm

(2)获取ARM DS-5的30天评估板:http://www.myir-tech.com/faq_list.asp?id=473

(3)MYD-SAMA5D34(D31/33/35)开发板详细介绍:http://www.myir-tech.com/product/myd-sama5d3x.htm

(4)MYD-SAMA5D34(D31/33/35)核心板/工控板详细介绍:http://www.myir-tech.com/product/myc-sama5d3x.htm

(5)DSTREAM仿真器详细介绍:http://www.myir-tech.com/product/dstream.htm

4 开发步骤

M1 创建工程并生成二进制文件

(1)从开发菜单选择“ARM DS-5” > “Eclipse for DS-5”打开DS-5,或者直接双击DS-5桌面快捷图标(需自己创建)打开。然后点击“Go to the workbench”进入DS-5的工程管理界面。

(2)选择菜单栏 File > New > Project,在弹出的对话框中选择“C/C++”下的“C Project”,再点击“Next”。

(3)在C++ Project对话框中,“Project name”中输入工程名称,我们这里以“MYD-SAMA5D34”作为工程名称,再点选“Bare-metal Executable”下的“Empty Project”,点击“Next”进入下一步,如下图:

(4)进入下一步后,点击“Finish”完成新建并进入工作界面。

此时在DS-5左侧的工程管理器(project explorer)会看到新创建的工程“MYD-SAMA5D34”,展开会看到”Includes”下自动包含了一些目录,这些是我们编译的时候要用到的,DS-5已经自动添加好了。

(5)再选择菜单File > New > source file”,弹出对话框中的“source file”中输入文件名为”main.c”的C文件,点击“Finish”完成。

(6)自动打开“main.c”文件后(或者双击打开),在注释后面添加mian()函数代码并保存。

/*

* main.c

*

* Created on: 2013-8-27

* Author: GARY

*

* Copyright: Shenzhen MYIR Tech Limited

* Support: www.myir-tech.com/bbs/

*

*/

#include

int main(int argc, char** argv)

{

while(1){

printf("Welcome to ARM DS-5!\n"); //打印内容

}

return 0;

}

添加后如下图:

(7)接下来我们还要创建一个“scatter”文件。择菜单File > New >“Other…”,在弹出的对话框中选择“scatter file editor” > “scatter file”,点击“next”进入下一步。

(8)在父项目框中选择刚刚创建的工程“MYD-SAMA5D34”,“File name”栏输入scatter文件的名称,我们这里用“sama5d3”(该文件可以用于MYD-SAMA5D3X系列开发板,包括MYD-SAMA5D31、MYD-SAMA5D33、MYD-SAMA5D34、MYD-SAMA5D35)。点击“finish”完成,如下图。

(9)DS-5自动打开“sama5d3.scat”文件,我们在文件中输入如下的信息,具体可参考芯片用户手册中的SRAM地址。

SRAM 0x00300000

{

APP_CODE +0

{

* (+RO, +RW, +ZI)

}

ARM_LIB_STACKHEAP 0x00301000 EMPTY 0x00001000 ; Application heap and stack

{ }

}

输入完成后如下图。

(10)然后我们要配置一下编译选项。点击“MYD-SAMA5D34”工程,选择菜单“Project” > “Properties”打开“Properties for MYD-SAMA5D34”对话框。如下图,显示工程的一些基本信息。

(11)选择左侧的“C/C++ Build”,点选其中的“general makefile automatically”(默认也是选择),表示使用DS-5自动生成的Makefile文件。如果要用自己手动编写的makefile文件,需要取消点选该项。

(12)点击“C/C++ Build”前面的三角符号,点击“Settings”选项,配置右侧的“Tool Settings”编译工具。

“ARM C Compiler” > “Code Generation” > “Target CPU (--cpu)”配置为“Cortex-A5”。

“ARM Assembler” > “Code Generation” > “Target CPU (--cpu)”配置为“Cortex-A5”。

“ARM Linker” > “Image Layout” > “Scatter file (--scatter)”选择上面创建的scatter文件的地址,如下图。

配置好后,点击“OK”完成并返回工程管理界面。

(13)点选工程管理器(Project Explorer)下的“MYD-SAMA5D34”工程,选择菜单”Project” >“Build Project”编译工程。此时DS-5会自动在“Debug”目录下创建makefile文件,并按照这些规则进行编译。

如果Problems栏下没有“Error”提示,说明编译成功,同时在“MYD-SAMA5D34”工程的“Debug”目录下生成二进制文件“MYD-SAMA5D34.axf”,如下图。

M2 连接开发板

(14)连接好DSTREAM仿真器,包括DSTREAM仿真器5V电源线、转接板、USB线(或网线)。

15)连接好MYD-SAMA5D34开发板,包括开发板5V电源线、DSTREAM上的20PIN-JTAG调试线、以及串口线。

16)给开发板上电,通过串口终端将开发板停止在“u-boot”界面,如下图。这样做是防止开发板进入系统,影响裸机调试。

M3 调试配置

16)点选工程管理器(Project Explorer)下的“MYD-SAMA5D34”工程,选择菜单“Run” > “Debug Configurations…”,在弹出的对话框中右击“DS-5 Debugger”,选择“New”新建一个调试选项。

(17)在新建的调试选项中,将调试选项名称改为“MYD-SAMA5D34_Debug”。在“Connection”选项的filter platform中输入“SAMA5D3”,然后选择过滤后 “SAMA5D3x”下 “Bare Metal Debug” > “Debug cortex-a5 via DSTREAM/RVI”。选项的目的是,通过DSTREAM对MYD-SAMA5D34开发板进行裸机调试。如下图。

然后再点击“connections”中的“Browse…”按钮,选择DS-5搜索到的DSTREAM仿真器,选择后点击“OK”使用该仿真器,如下图。

(18)点击调试选项名称下方的“File”选项,在“Target Configuration”下点击“Workspace…”按钮,然后从“Open”对话框中选择上面生成的二进制文件。

添加后如下图,然后选择“Load symbols”。

(19)点击“Debug”按钮开始调试。出现提示是否切换到调试窗口,点击“Yes”即可。

(20)如果连接成功,可看到蓝色标示的“connected”文字,同时调试控制窗口显示开发板相应的内核。如下图,DS-5已经连接上了开发吧,并且显示当前连接SAMA5D34里面的第一个Cortex-A5核(如果有多个核,会用#1、#2等标注多核的序号)。

(21)点击如上图的绿色三角形“”,程序就会全速运行,在“App console”栏会打印从MYD-SAMA5D34开发板打印的信息。如下图。

M4 调试视图详解

(21)还是上面的图 “调试控制栏”,显示当前所有的调试名称,并且可以进行调试控制。

上图中,各控制按钮的作用为:

 连接目标板

 断开连接

  删除连接

 从main函数或者entry point调试

 继续全速运行

 停止运行

   单步调试

 选择按C程序单步调试,或者按汇编程序调试

(22)命令栏,可以在“commands”后面敲入命令,让开发板执行,比如敲入“step”就会进行单步调试。鼠标位于输入框内,按“Alt + /”可获得命令提示。

(23)历史栏,显示所有历史使用的命令。

(24)变量栏,显示程序使用的所有变量,在调试的时候可以进行修改。

(25)寄存器栏,显示内核里面的所有寄存器,在调试的时候可以对寄存器进行修改。

(25)函数栏,显示程序使用的所有函数,以及它们的开始和结束地址。

(25)源代码栏,显示源代码。

(26)汇编程序栏,显示程序对应的汇编程序、地址和操作数等。

(27)存储器栏,通过输入地址和大小,可以看到相应存储器的内容。如下图,地址输入“0x00300000”(内部SRAM地址),大小输入“1024”,就可以看到对应的存储地址的值。

(28)应用程序控制台,这里显示了通过半主机机制从开发板(如MYD-SAMA5D34)返回的打印信息。

(29)另外,还有一个比较重要的栏目“Progress”。有时候调试配置不正确,DS-5会一直“connecting”,从“调试控制”栏目又无法停止,这时候就要通过“progress”来停止了,如下图使用进度条后面的红色按钮就可以停止了。

“Progress”可以从菜单栏“window” > “show view” > “Progress”调出。

以上就是使用ARM DS-5和DSTREAM仿真器对裸机进行调试的内容。

5 说明

本文使用的是DS-5自带的gcc编译器,适用于ARM Cortex-A5/A7/A8/A9/A12/A15 Linux系统,包括但不限于以下芯片系统:

Avnet ZedBoard, Freescale i.MX6 Dual, Mindspeed T2200 / T3300, pandaboard.org OMAP 5432, Renesas RZ/A1H R7S721001, ST-Ericsson U8540, TI OMAP 543X and TI TMDX570LS04HDK / TMDX570LS12HDK / TMDX570LS31HDK / TMDXRM42HDK / TMDXRM46HDK / TMDXRM48HDK

Altera Arria V SoC, Altera Cyclone V SoC and Atmel ATSAMA5D3x

ARM Versatile Express AEMv7A RTSM (configured as Cortex-A15), ARM Versatile Express Cortex-A15x1 + Cortex-A7x1 RTSM, ARM Versatile Express Cortex-A15x4 + Cortex-A7x4 RTSM, ARM Versatile Express Cortex-A15x1 RTSM, ARM Versatile Express Cortex-A15x2 RTSM, ARM Versatile Express Cortex-A15x4 RTSM, ARM Versatile Express V2P Cortex-A15x2 + Corex-A7x3 and Freescale Vybrid VF6xx

ARM Versatile Express V2P Cortex-A15, ARM Versatile Express with Cortex-A15 NEON Soft Macrocell Model, ARM Versatile Express with Cortex-R5x2, ARM Versatile Express Cortex-A15x4 + CortexA7x4 RTSM, CALAO Systems Snowball board, NVIDIA Tegra 3, PandaBoard ES, ST-Ericsson AP9500, TI AM3352/4/6/7/8/9 / OMAP 4460 and Xilinx Zynq-7000 EPP ZC702

ARM Emulation Baseboard with ARM1156T2F-S Core Tile, ARM Versatile Express with Cortex-A15x2 Soft Macrocell Model, Atmel AT91SAM9G25 / AT91SAM9X35, LG Electronics L9, Mindspeed M84000 (Transcede 4000) and NXP LPC3131 / LPC3141 / LPC3152,

ARM Microcontroller Prototyping System (Cortex-M0/Cortex-M1/Cortex-M4), Keil MCBSTR9, ST STA2064/65, ST STR912, TI AM1707 / AM1808 / DM3725 / DM3730 / DM8168 / OMAP 3530 / OMAP L138

ARM Emulation Baseboard with ARM11 MPCore or Cortex-R4F Core Tile, ARM Microcontroller Prototyping System (Cortex-M3), ARM Platform Baseboard for ARM1176JZF-S, ARM Versatile Express A5x2, ARM Versatile Express with Cortex-A15 Soft Macrocell Model, Atmel AT91SAM9M10 / AT91SAM9G35 / AT91SAM9263-EK, CSR SiRFprimaII, Freescale i.MX233, Kyoto KZM-A9-Dual, ST SPEAr1310 and TI DM6467 / Blaze MDP

Atmel AT91SAM9M10, Core Logic CLM9721, Freescale i.MX50, nVidia Tegra 250, Samsung Exynos 4210, ST SPEAr 600, ST-Ericsson U8500 and TI Sitara AM1707/AM1808/AM387x, Integra C6A814x, and OMAP4430。


声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 嵌入式主板
    +关注

    关注

    7

    文章

    6064

    浏览量

    34614
  • 安卓
    +关注

    关注

    5

    文章

    2081

    浏览量

    54517
  • 米尔科技
    +关注

    关注

    5

    文章

    227

    浏览量

    20640
收藏 人收藏

    评论

    相关推荐

    DS-5教程-ARM DS-5配合DSTREAM仿真器调试Linux和Android内核

    U-boot专用的映像文件,它在zImage之前加上一个长度为0x40的tag。我们下一步需要将它下载到目标板上。 -- /vmlinux 编译出来未压缩的,最原始的内核文件。下面DS-5调试选项中需要调用
    发表于 10-13 11:19

    DS-5教程-使用ARM DS-5 RSE远程管理系统

    SSH,具体移植步骤可参考设备介绍里面的链接。如果使用米尔科技的MYD-SAMA5D34(D31/33/35)开发板则SSH已经移植好了。 通过本文,我们可以学到如何使用ARM
    发表于 10-13 13:44

    DS-5教程-使用ARM DS-5 RSE远程管理系统

    本帖最后由 i2c 于 2014-10-13 14:03 编辑 1概述 本文介绍使用ARM DS-5软件开发工具的RSE远程管理系统。DS-5 RSE相当于集成了SCP和Pu
    发表于 10-13 14:01

    ARM DS-5开发工具各版本比较

    调试和系统性能分析,它还包括高度优化的ARM编译和四核Cortex-A9的多核软件平台,在最短的时间内使用RTSM进行开发。 DS-5社区版 :轻量级免费版Android应用
    发表于 10-13 14:10

    ARM最新开发工具DS-5到底是什么?有什么用?

    优化程度比GNU高30%以上。 6、ARM DS-5配合 DSTREAM仿真器 、 RVI 仿真器、ULINKpro
    发表于 10-13 16:45

    ARM DS-5 RVDS MDK-ARM 三款ARM官方工具软件比较区别选择

    本帖最后由 i2c 于 2014-10-13 18:13 编辑 DS-5,MDK-ARM 和 RVDS 的功能非常相似,都有一个编译调试器、分析工具和模拟模块,如果拿工具链功
    发表于 10-13 18:10

    DS-5教程-ARM DS-5 添加新芯片至DS-5调试设备列表

    设备 1、PC机 x 1台 2、DS-5软件开发工具 x 1套 3、DSTREAM仿真器 x 1套 4、ARM内核开发板(本文以米尔MYD-
    发表于 10-13 18:17

    DS-5教程-使用ARM DS-5DSTREAM仿真器调试裸机程序

    1 概述 本文介绍使用ARM DS-5创建一个裸机程序,并用DS-5里面的
    发表于 10-13 18:23

    DS-5教程-ARM DS-5创建编译简单Linux应用程序

    1概述 本文介绍使用ARM DS-5软件开发工具创建和编译linux应用程序,可以在linux或者window主机上进行。 通过,可以基本了解ARM
    发表于 10-13 18:26

    DS-5 开发arm裸机程序

    请问各位大湿 如何用DS-5 开发arm裸机程序 比如samsung s3c2440的裸奔程序的串口,GPIO ,定时
    发表于 04-04 23:10

    DS-5开发环境

    在SoC上配置每个Arm?CoreSight?组件,同时保持调试器界面简单直观。  DS-5调试器的多功能性使其成为整个团队规范化的理想工具。从芯片设计开始到应用
    发表于 05-18 09:37

    构建一个简单的裸机程序使用Arm DS-5

    本教程将带您完成创建、配置和构建一个简单的裸机程序使用Arm DS-5。要在应用程序构建完成后运行它,本教程将带您完成配置到以软件实现的系统
    发表于 08-02 08:27

    ARM DS-5社区入门指南

    编辑工具运行和调试应用程序 。 该章还提供了有关 DS-5 社区编辑提供的示例和文档的信息 。 ARM 词汇表是 ARMDQDS 文档中使用的术语列表, 除非ARMS-
    发表于 08-08 06:50

    ARM DS-5社区版5.29版入门指南

    和ARMv8-A架构为目标,无需实际硬件即可进行软件开发。 ·ARM Streamline,一款图形性能分析工具。 ·专门的示例、应用程序和支持文档,帮助您开始使用DS-5工具。 某些第三方编译
    发表于 08-23 06:49

    ARM DS-5 5.26版入门指南

    形式呈现数据的报告。 ·ARM编译5ARM编译6工具链使您能够构建嵌入式和裸机代码。 ·您
    发表于 08-24 08:06