0
  • 聊天消息
  • 系統(tǒng)消息
  • 評(píng)論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會(huì)員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識(shí)你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

米爾科技DS-5教程-使用ARM DS-5 和DSTREAM仿真器調(diào)試裸機(jī)程序介紹

米爾科技 ? 來源:米爾科技 ? 作者:米爾科技 ? 2019-11-18 10:38 ? 次閱讀

1 概述

本文介紹使用ARM DS-5創(chuàng)建一個(gè)裸機(jī)程序,并用DS-5里面的ARM編譯器進(jìn)行編譯,編譯之后通過DSTREAM仿真器將程序加載到MYD-SAMA5D34開發(fā)板的SRAM(內(nèi)存)上。

通過DS-5和DSTREAM,就可以對(duì)SRAM上的程序進(jìn)行調(diào)試,包括單步調(diào)試、全速運(yùn)行、設(shè)置斷點(diǎn)、寄存器、變量和函數(shù)調(diào)用等。

本文的程序是一個(gè)簡(jiǎn)單的打印程序,程序在MYD-SAMA5D34開發(fā)板SRAM上運(yùn)行,通過DSTREAM仿真器的半主機(jī)機(jī)制將打印信息傳送到主機(jī)上,在DS-5上顯示。

說明:如果是應(yīng)用程序開發(fā),請(qǐng)?zhí)^這一章節(jié),直接進(jìn)入《ARM DS-5創(chuàng)建和編譯linux應(yīng)用程序》及其后面的 章節(jié),因?yàn)槁銠C(jī)程序和kernel調(diào)試部分都用到DSTREAM仿真器,沒有則無法進(jìn)行。直接進(jìn)行應(yīng)用程序的開發(fā)可以不用DSTREAM仿真器,直接使用DS-5就可以了。

2 設(shè)備

編號(hào)

設(shè)備

數(shù)量

用途

1

PC機(jī)

1

搭建整個(gè)開發(fā)平臺(tái),包括安裝DS-5軟件,并通過DS-5編譯程序。

2

DS-5開發(fā)工具

1

ARM開發(fā)工具,在Linux或者Window主機(jī)下使用其自帶的Gcc編譯Linux應(yīng)用程序。

本文適用ARM DS-5的社區(qū)版、30天全功能評(píng)估版或者專業(yè)版。

DS-5 30天評(píng)估板請(qǐng)參考設(shè)備介紹中的鏈接。

3

DSTREAM仿真器

1

在調(diào)試開發(fā)板時(shí),DSTREAMPC機(jī)和開發(fā)板之間,用以接受PC機(jī)上DS-5的調(diào)試命令,并控制開發(fā)板執(zhí)行。

4

MYD-SAMA5D34

D31/33/35)開發(fā)板

1

米爾科技基于Atmel芯片ARM Cortex-A5內(nèi)核開發(fā)板,板載的LinuxAndroid操作系統(tǒng)可以完整結(jié)合ARM DS-5進(jìn)行開發(fā)。

本文用到開發(fā)板的5V電源、串口線和網(wǎng)線等配件

3 設(shè)備介紹

關(guān)于本例程使用的設(shè)備,除PC機(jī)是通用的設(shè)備不做介紹以外,其他設(shè)備請(qǐng)參考以下地址了解詳細(xì)情況。

(1)ARM DS-5詳細(xì)介紹:http://www.myir-tech.com/product/ds-5.htm

(2)獲取ARM DS-5的30天評(píng)估板:http://www.myir-tech.com/faq_list.asp?id=473。

(3)MYD-SAMA5D34(D31/33/35)開發(fā)板詳細(xì)介紹:http://www.myir-tech.com/product/myd-sama5d3x.htm。

(4)MYD-SAMA5D34(D31/33/35)核心板/工控板詳細(xì)介紹:http://www.myir-tech.com/product/myc-sama5d3x.htm。

(5)DSTREAM仿真器詳細(xì)介紹:http://www.myir-tech.com/product/dstream.htm。

4 開發(fā)步驟

M1 創(chuàng)建工程并生成二進(jìn)制文件

(1)從開發(fā)菜單選擇“ARM DS-5” > “Eclipse for DS-5”打開DS-5,或者直接雙擊DS-5桌面快捷圖標(biāo)(需自己創(chuàng)建)打開。然后點(diǎn)擊“Go to the workbench”進(jìn)入DS-5的工程管理界面。

(2)選擇菜單欄 File > New > Project,在彈出的對(duì)話框中選擇“C/C++”下的“C Project”,再點(diǎn)擊“Next”。

(3)在C++ Project對(duì)話框中,“Project name”中輸入工程名稱,我們這里以“MYD-SAMA5D34”作為工程名稱,再點(diǎn)選“Bare-metal Executable”下的“Empty Project”,點(diǎn)擊“Next”進(jìn)入下一步,如下圖:

(4)進(jìn)入下一步后,點(diǎn)擊“Finish”完成新建并進(jìn)入工作界面。

此時(shí)在DS-5左側(cè)的工程管理器(project explorer)會(huì)看到新創(chuàng)建的工程“MYD-SAMA5D34”,展開會(huì)看到”Includes”下自動(dòng)包含了一些目錄,這些是我們編譯的時(shí)候要用到的,DS-5已經(jīng)自動(dòng)添加好了。

(5)再選擇菜單File > New > source file”,彈出對(duì)話框中的“source file”中輸入文件名為”main.c”的C文件,點(diǎn)擊“Finish”完成。

(6)自動(dòng)打開“main.c”文件后(或者雙擊打開),在注釋后面添加mian()函數(shù)代碼并保存。

/*

* 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"); //打印內(nèi)容

}

return 0;

}

添加后如下圖:

(7)接下來我們還要?jiǎng)?chuàng)建一個(gè)“scatter”文件。擇菜單File > New >“Other…”,在彈出的對(duì)話框中選擇“scatter file editor” > “scatter file”,點(diǎn)擊“next”進(jìn)入下一步。

(8)在父項(xiàng)目框中選擇剛剛創(chuàng)建的工程“MYD-SAMA5D34”,“File name”欄輸入scatter文件的名稱,我們這里用“sama5d3”(該文件可以用于MYD-SAMA5D3X系列開發(fā)板,包括MYD-SAMA5D31、MYD-SAMA5D33、MYD-SAMA5D34、MYD-SAMA5D35)。點(diǎn)擊“finish”完成,如下圖。

(9)DS-5自動(dòng)打開“sama5d3.scat”文件,我們?cè)谖募休斎肴缦碌男畔?,具體可參考芯片用戶手冊(cè)中的SRAM地址。

SRAM 0x00300000

{

APP_CODE +0

{

* (+RO, +RW, +ZI)

}

ARM_LIB_STACKHEAP 0x00301000 EMPTY 0x00001000 ; Application heap and stack

{ }

}

輸入完成后如下圖。

(10)然后我們要配置一下編譯選項(xiàng)。點(diǎn)擊“MYD-SAMA5D34”工程,選擇菜單“Project” > “Properties”打開“Properties for MYD-SAMA5D34”對(duì)話框。如下圖,顯示工程的一些基本信息。

(11)選擇左側(cè)的“C/C++ Build”,點(diǎn)選其中的“general makefile automatically”(默認(rèn)也是選擇),表示使用DS-5自動(dòng)生成的Makefile文件。如果要用自己手動(dòng)編寫的makefile文件,需要取消點(diǎn)選該項(xiàng)。

(12)點(diǎn)擊“C/C++ Build”前面的三角符號(hào),點(diǎn)擊“Settings”選項(xiàng),配置右側(cè)的“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)”選擇上面創(chuàng)建的scatter文件的地址,如下圖。

配置好后,點(diǎn)擊“OK”完成并返回工程管理界面。

(13)點(diǎn)選工程管理器(Project Explorer)下的“MYD-SAMA5D34”工程,選擇菜單”Project” >“Build Project”編譯工程。此時(shí)DS-5會(huì)自動(dòng)在“Debug”目錄下創(chuàng)建makefile文件,并按照這些規(guī)則進(jìn)行編譯。

如果Problems欄下沒有“Error”提示,說明編譯成功,同時(shí)在“MYD-SAMA5D34”工程的“Debug”目錄下生成二進(jìn)制文件“MYD-SAMA5D34.axf”,如下圖。

M2 連接開發(fā)板

(14)連接好DSTREAM仿真器,包括DSTREAM仿真器5V電源線、轉(zhuǎn)接板、USB線(或網(wǎng)線)。

15)連接好MYD-SAMA5D34開發(fā)板,包括開發(fā)板5V電源線、DSTREAM上的20PIN-JTAG調(diào)試線、以及串口線。

16)給開發(fā)板上電,通過串口終端將開發(fā)板停止在“u-boot”界面,如下圖。這樣做是防止開發(fā)板進(jìn)入系統(tǒng),影響裸機(jī)調(diào)試。

M3 調(diào)試配置

16)點(diǎn)選工程管理器(Project Explorer)下的“MYD-SAMA5D34”工程,選擇菜單“Run” > “Debug Configurations…”,在彈出的對(duì)話框中右擊“DS-5 Debugger”,選擇“New”新建一個(gè)調(diào)試選項(xiàng)。

(17)在新建的調(diào)試選項(xiàng)中,將調(diào)試選項(xiàng)名稱改為“MYD-SAMA5D34_Debug”。在“Connection”選項(xiàng)的filter platform中輸入“SAMA5D3”,然后選擇過濾后 “SAMA5D3x”下 “Bare Metal Debug” > “Debug cortex-a5 via DSTREAM/RVI”。選項(xiàng)的目的是,通過DSTREAM對(duì)MYD-SAMA5D34開發(fā)板進(jìn)行裸機(jī)調(diào)試。如下圖。

然后再點(diǎn)擊“connections”中的“Browse…”按鈕,選擇DS-5搜索到的DSTREAM仿真器,選擇后點(diǎn)擊“OK”使用該仿真器,如下圖。

(18)點(diǎn)擊調(diào)試選項(xiàng)名稱下方的“File”選項(xiàng),在“Target Configuration”下點(diǎn)擊“Workspace…”按鈕,然后從“Open”對(duì)話框中選擇上面生成的二進(jìn)制文件。

添加后如下圖,然后選擇“Load symbols”。

(19)點(diǎn)擊“Debug”按鈕開始調(diào)試。出現(xiàn)提示是否切換到調(diào)試窗口,點(diǎn)擊“Yes”即可。

(20)如果連接成功,可看到藍(lán)色標(biāo)示的“connected”文字,同時(shí)調(diào)試控制窗口顯示開發(fā)板相應(yīng)的內(nèi)核。如下圖,DS-5已經(jīng)連接上了開發(fā)吧,并且顯示當(dāng)前連接SAMA5D34里面的第一個(gè)Cortex-A5核(如果有多個(gè)核,會(huì)用#1、#2等標(biāo)注多核的序號(hào))。

(21)點(diǎn)擊如上圖的綠色三角形“”,程序就會(huì)全速運(yùn)行,在“App console”欄會(huì)打印從MYD-SAMA5D34開發(fā)板打印的信息。如下圖。

M4 調(diào)試視圖詳解

(21)還是上面的圖 “調(diào)試控制欄”,顯示當(dāng)前所有的調(diào)試名稱,并且可以進(jìn)行調(diào)試控制。

上圖中,各控制按鈕的作用為:

?連接目標(biāo)板

?斷開連接

??刪除連接

?從main函數(shù)或者entry point調(diào)試

?繼續(xù)全速運(yùn)行

?停止運(yùn)行

???單步調(diào)試

?選擇按C程序單步調(diào)試,或者按匯編程序調(diào)試

(22)命令欄,可以在“commands”后面敲入命令,讓開發(fā)板執(zhí)行,比如敲入“step”就會(huì)進(jìn)行單步調(diào)試。鼠標(biāo)位于輸入框內(nèi),按“Alt + /”可獲得命令提示。

(23)歷史欄,顯示所有歷史使用的命令。

(24)變量欄,顯示程序使用的所有變量,在調(diào)試的時(shí)候可以進(jìn)行修改。

(25)寄存器欄,顯示內(nèi)核里面的所有寄存器,在調(diào)試的時(shí)候可以對(duì)寄存器進(jìn)行修改。

(25)函數(shù)欄,顯示程序使用的所有函數(shù),以及它們的開始和結(jié)束地址。

(25)源代碼欄,顯示源代碼。

(26)匯編程序欄,顯示程序?qū)?yīng)的匯編程序、地址和操作數(shù)等。

(27)存儲(chǔ)器欄,通過輸入地址和大小,可以看到相應(yīng)存儲(chǔ)器的內(nèi)容。如下圖,地址輸入“0x00300000”(內(nèi)部SRAM地址),大小輸入“1024”,就可以看到對(duì)應(yīng)的存儲(chǔ)地址的值。

(28)應(yīng)用程序控制臺(tái),這里顯示了通過半主機(jī)機(jī)制從開發(fā)板(如MYD-SAMA5D34)返回的打印信息。

(29)另外,還有一個(gè)比較重要的欄目“Progress”。有時(shí)候調(diào)試配置不正確,DS-5會(huì)一直“connecting”,從“調(diào)試控制”欄目又無法停止,這時(shí)候就要通過“progress”來停止了,如下圖使用進(jìn)度條后面的紅色按鈕就可以停止了。

“Progress”可以從菜單欄“window” > “show view” > “Progress”調(diào)出。

以上就是使用ARM DS-5和DSTREAM仿真器對(duì)裸機(jī)進(jìn)行調(diào)試的內(nèi)容。

5 說明

本文使用的是DS-5自帶的gcc編譯器,適用于ARM Cortex-A5/A7/A8/A9/A12/A15 Linux系統(tǒng),包括但不限于以下芯片系統(tǒng):

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。


聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場(chǎng)。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請(qǐng)聯(lián)系本站處理。 舉報(bào)投訴
  • 嵌入式主板
    +關(guān)注

    關(guān)注

    7

    文章

    6085

    瀏覽量

    35336
  • 安卓
    +關(guān)注

    關(guān)注

    5

    文章

    2130

    瀏覽量

    57198
  • 米爾科技
    +關(guān)注

    關(guān)注

    5

    文章

    227

    瀏覽量

    20969
收藏 人收藏

    評(píng)論

    相關(guān)推薦

    DS-5教程-ARM DS-5配合DSTREAM仿真器調(diào)試Linux和Android內(nèi)核

    U-boot專用的映像文件,它在zImage之前加上一個(gè)長(zhǎng)度為0x40的tag。我們下一步需要將它下載到目標(biāo)板上。 -- /vmlinux 編譯出來未壓縮的,最原始的內(nèi)核文件。下面DS-5調(diào)試選項(xiàng)中需要調(diào)用
    發(fā)表于 10-13 11:19

    ARM DS-5開發(fā)工具各版本比較

    調(diào)試和系統(tǒng)性能分析,它還包括高度優(yōu)化的ARM編譯和四核Cortex-A9的多核軟件平臺(tái),在最短的時(shí)間內(nèi)使用RTSM進(jìn)行開發(fā)。 DS-5社區(qū)版 :輕量級(jí)免費(fèi)版Android應(yīng)用
    發(fā)表于 10-13 14:10

    ARM最新開發(fā)工具DS-5到底是什么?有什么用?

    優(yōu)化程度比GNU高30%以上。 6、ARM DS-5配合 DSTREAM仿真器 、 RVI 仿真器、ULINKpro
    發(fā)表于 10-13 16:45

    ARM DS-5 RVDS MDK-ARM 三款ARM官方工具軟件比較區(qū)別選擇

    本帖最后由 i2c 于 2014-10-13 18:13 編輯 DS-5,MDK-ARM 和 RVDS 的功能非常相似,都有一個(gè)編譯、調(diào)試器、分析工具和模擬模塊,如果拿工具鏈功
    發(fā)表于 10-13 18:10

    DS-5教程-ARM DS-5 添加新芯片至DS-5調(diào)試設(shè)備列表

    設(shè)備 1、PC機(jī) x 1臺(tái) 2、DS-5軟件開發(fā)工具 x 1套 3、DSTREAM仿真器 x 1套 4、ARM內(nèi)核開發(fā)板(本文以米爾MYD-
    發(fā)表于 10-13 18:17

    DS-5教程-使用ARM DS-5DSTREAM仿真器調(diào)試裸機(jī)程序

    1 概述 本文介紹使用ARM DS-5創(chuàng)建一個(gè)裸機(jī)程序,并用DS-5里面的
    發(fā)表于 10-13 18:23

    DS-5教程-ARM DS-5創(chuàng)建編譯簡(jiǎn)單Linux應(yīng)用程序

    1概述 本文介紹使用ARM DS-5軟件開發(fā)工具創(chuàng)建和編譯linux應(yīng)用程序,可以在linux或者window主機(jī)上進(jìn)行。 通過,可以基本了解ARM
    發(fā)表于 10-13 18:26

    DS-5 開發(fā)arm裸機(jī)程序

    請(qǐng)問各位大濕 如何用DS-5 開發(fā)arm裸機(jī)程序 比如samsung s3c2440的裸奔程序的串口,GPIO ,定時(shí)
    發(fā)表于 04-04 23:10

    構(gòu)建一個(gè)簡(jiǎn)單的裸機(jī)程序使用Arm DS-5

    本教程將帶您完成創(chuàng)建、配置和構(gòu)建一個(gè)簡(jiǎn)單的裸機(jī)程序使用Arm DS-5。要在應(yīng)用程序構(gòu)建完成后運(yùn)行它,本教程將帶您完成配置到以軟件實(shí)現(xiàn)的系統(tǒng)
    發(fā)表于 08-02 08:27

    ARM DS-5 5.26版入門指南

    形式呈現(xiàn)數(shù)據(jù)的報(bào)告。 ·ARM編譯5ARM編譯6工具鏈?zhǔn)鼓軌驑?gòu)建嵌入式和裸機(jī)代碼。 ·您
    發(fā)表于 08-24 08:06

    米爾科技DSTREAM-ST高性能仿真器介紹

    概念:該產(chǎn)品官方名稱為DSTREAM-ST仿真器,配合ARM DS-5可對(duì)所有的ARM內(nèi)核芯片進(jìn)行開發(fā)。
    的頭像 發(fā)表于 11-15 14:26 ?2280次閱讀
    <b class='flag-5'>米爾</b>科技<b class='flag-5'>DSTREAM</b>-ST高性能<b class='flag-5'>仿真器</b><b class='flag-5'>介紹</b>

    米爾科技DSTREAM-PT高性能仿真器介紹

    該產(chǎn)品官方名稱為DSTREAM-PT仿真器,配合ARM DS-5可對(duì)所有的ARM內(nèi)核芯片進(jìn)行開發(fā)。
    的頭像 發(fā)表于 11-18 11:00 ?1890次閱讀
    <b class='flag-5'>米爾</b>科技<b class='flag-5'>DSTREAM</b>-PT高性能<b class='flag-5'>仿真器</b><b class='flag-5'>介紹</b>

    米爾科技ARM最新開發(fā)工具DS-5簡(jiǎn)介

    ARM DS-5 從以下工具發(fā)展而來:DS-5 < RVDS < ADS < SDT。
    的頭像 發(fā)表于 11-22 09:27 ?2194次閱讀
    <b class='flag-5'>米爾</b>科技<b class='flag-5'>ARM</b>最新開發(fā)工具<b class='flag-5'>DS-5</b>簡(jiǎn)介

    米爾科技DS-5教程-ARM DS-5教程

    本文介紹使用ARM DS-5軟件開發(fā)工具創(chuàng)建和編譯linux應(yīng)用程序,可以在linux或者window主機(jī)上進(jìn)行。
    的頭像 發(fā)表于 11-18 11:19 ?2145次閱讀
    <b class='flag-5'>米爾</b>科技<b class='flag-5'>DS-5</b>教程-<b class='flag-5'>ARM</b> <b class='flag-5'>DS-5</b>教程

    ARM DS-5到底是什么? 為什么不建議使用DS-5開發(fā)STM32?

    ARM DS-5到底是什么?為什么不建議使用DS-5開發(fā)STM32?
    的頭像 發(fā)表于 02-27 16:59 ?9837次閱讀