| | |

ds-九游会网页

文章来源:米尔科技 发布日期:2013.9.18 浏览次数:28934 次

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。


本文来自九游会网页-j9九游会官网登录科技,原文地址: http://www.myir-tech.com/resource/496.asp,转载请注明出处。

比较和选型

手册教程

应用笔记

好书推荐

九游会网页的技术支持服务指南

常见问题解答

网站地图