工欲善其事,必先利其器。 使用Qemu 虽然可以进行模拟开发,但在Qemu调试汇编有一些困难。
DS-5 (即ARM Development Studio 5) ,是一款针对 ARM 支持的 Linux 和 Android 平台的全面的端到端软件开发工具套件。
DS-5 安装
从官网选择一个ARM DS-5版本进行下载
我选择的版本是5.26.2, 已经支持Arm v8了。
下载完成后,解压, 点击setup.exe 进行安装, 安装完成后需要添加license, 否则项目无法编译。
license添加完成后既可以正常使用。
##使用DS-5 创建程序
首先新建一个空的C project, 输入project name, 选择tool chains为Arm compiler 6。
右击刚才新建的project, 添加source file
新增一个C文件 main.c 和一个汇编文件 asm_add.s。写一个很简单的a + b =c的程序。代码的核心部分使用汇编实现,C程序主要是入口以及检查结果的准确性。
主程序:
汇编部分:
代码编译
在编译之前需要预先做一些配置, 右击项目, 点击属性,选择C/ C++ build
选择设置, 将All Tools settings下的target CPU更改为arm v8:
将ARM linker6 中的Image_layout 改为如下配置:
应用这些修改后, 右击项目, 选择build project:
如果编译成功, 会在Debug目录下生成object 和 axf文件。
DEBUG 设置
选择run-> debug configuration
右击DS-5 debugger, 新建debug 配置
connection 选择 arm v8-a
files选择刚刚编译出来的axf文件:
debugger选择从main开始, 然后apply, 再然后点击debug
运行
点击debug 后,生成如下的界面
点击左上角的开始按钮, 会从左下角的光标位置开始运行, 右上角可以看程序的寄存器河内存信息, 右下角可以看程序的运行结果。
选择单步调试,当运行到汇编部分时,查看寄存器状态
可以看到,当运行到ADD w0, w0, w1那一步时,core寄存器的x0, x1已经变成了预设的2和3.
最终结果:
关键字:ARM aarch64 汇编
引用地址:
ARM aarch64汇编学习笔记(二):ARM DS-5模拟器安装和使用
推荐阅读最新更新时间:2024-11-07 14:24
ARM 系列 -- FS2410 开发板上的内存搬移实验
一、目的 通过将 Nand Flash 前 4K 代码搬移到 SDRAM 中,了解如何初始化并使用 ARM 的内存, 为编写 ARM bootloader 和搬移内核到内存作准备。 二、代码 关于如何建立开发环境,在我的前一篇随笔(FS2401 发光二极管循环点亮)里有介绍, 请 参考。要初始化并使用内存需要了解一些很锁碎的细节,上来就讲这些知识点未免生涩,不 如在代码中穿插讲解来的直接。 @ 文件 head.s @ 作用: 关闭看门狗、设置内存、向 SDRAM 搬移 Nand Flash 的前 4K 代码、设置堆栈、 @ 调用已经搬移到 SDRAM 的 main 函数 .text .global _star
[单片机]
分析:苹果完全放弃 Intel 转投 ARM,靠谱吗?
几天前,Semi Accurate 网站爆出苹果的全系列便携式 Mac 电脑都将抛弃 Intel 架构投奔 ARM 的消息, 而且还信誓旦旦的说这已经是“板上钉钉”的事情了,苹果将会在2013年中期正式迎来这一改变。也就是说,2013年之后的 MacBook、MacBook Pro、MacBook Air 等产品都不会再采用 Intel 的处理器及其硬件平台,而采用目前在手机、平板等移动互联设备上非常流行的 ARM 架构。 这一消息爆出之后,引起了国内外各大媒体的报道讨论,关于这一传言的肯定与质疑近几天都在国外各大科技网站频频出现,然而在这一传言满天飞的同时,我们有没有仔细思考过苹果真的会这么做吗?这条传言又到底靠谱不靠谱呢?
[手机便携]
Broadcom采用ARM Cortex-A8开发具备强悍影音核心之移动多媒体系列产品
结合ARM Cortex-A8处理器与Broadcom VideoCore 架构开发出最先进的移动多媒体装置 ARM于日前宣布Broadcom已取得ARM Cortex-A8高效能处理器之技术授权,并运用ARM相关IP支持产品,整合至其一系列移动与消费性产品之中。Broadcom选择Cortex-A8处理器,以满足新一代移动运算产品的效能需求。高阶的移动与消费性应用,尤需要精密、高效率的运算性能,以支持网络连结、平台媒介,以获取各种最新的Web 2.0服务,更于拥有高效能的同时,同时兼顾低耗能与消费者能接受的价位。 Broadcom的VideoCore是一项具弹性的多媒体加速技术,用来提供高效能、低耗能的2D/3D绘图、影像、
[焦点新闻]
C语言和ARM汇编混合编程实现阶乘运算
1.阶乘运算必须用汇编语言实现; 2. 通过C语言调用阶乘运算结果并显示出来。 (1) 用汇编语言编写阶乘运算子程序,命名为zmc.s; 程序如下: AREA asmfile,CODE,READONLY EXPORT asmDouble asmDouble sub R1,R0,#1 cmp R1,#00 BEQ L2 L1 mul R2,R0,R1 sub R1,R1,#1 mov R0,R2 cmp R1,#00 BNE L1 L2 mov pc, lr END (2) 将其添加到半主机程序中的SYS中; (3) 将半主机程序的main修改如下: #inclu
[单片机]
ARM学习笔记3——数据处理指令
一、数据处理指令概述 1、概念 数据处理指令是指对存放在寄存器中的数据进行处理的指令。主要包括算术指令、逻辑指令、比较与测试指令以及乘法指令 如果在数据处理指令前使用S前缀,指令的执行结果将会影响CPSR中的标志位。 2、语法格式 数据处理指令的基本语法格式 opcode { condition }{S} Rd , Rn , shifter_operand 3、参数说明 S :标志指令的条件域是否更新CPSR Rn :指示第一源操作数寄存器 Rd :指示目的寄存器 shifter_operand :指示第二源操作数 4、操作码 opcode 5、 shifte
[单片机]
STM8与汇编语言(1)(2)(3)
STM8与汇编语言(1) 不知是心血来潮,还是其它因素,突然又想起玩汇编语言了。这几年也没少跟单片机打交道,包括51系列,430系列,ARM系列,但都是用C语言来开发。不过由于使用C语言,实际上对这些CPU的了解还是不够深刻,当然除了51之外,因为那是我多年前曾经用汇编开发过的芯片。尽管当今C语言已经在嵌入式产品的开发过程中成为主流,但我个人依然认为,要想真正了解CPU的特点,还得用汇编语言。不知道这种观点是对还是错,也许是因为自己从硬件做起,写过机器码,用汇编语言做过优化,因此对汇编语音有一种特殊的偏爱。 51系列的芯片用多了,感觉有时写起程序来不太方便,因此总想寻找一些其它的8位单片机玩玩,正好手头有一个ST的三合一开
[单片机]
X86与ARM之战已经打响 鹿死谁手
ARM架构处理器盲目上多核而不考虑应用
ARM处理器这么快就实现从单核到双核再到四核的转变,已经是强弩之末的表现了(PC从四核开始盛极而衰,因为性能过剩)。ARM越来越复杂,功耗也越来越大,相反X86功耗越来越小,双方都在互相借鉴对方的优势。最终结果ARM失去了发展潜力、也丧失了最大的优势,而X86将在未来两年内夺回移动平台的控制权。
X86与微软分道扬镳?
WIntel联盟看似横空解体(Android支持X86,Win8支持ARM)实际上Intel和微软在下一盘很大的棋,这盘棋将ARM拉下水,从而让X86和ARM在公平的两种环境下进行正面交锋,目前来看X86能耗比较低稍逊一筹,但随着ARM复杂化而X86精简化
[单片机]
ARM处理器NEON编程及优化技巧——数据加载和存储
ARM的NEON协处理器技术是一个64/128-bit的混合SIMD架构,用于加速包括视频编码解码、音频解码编码、3D图像、语音和图像等多媒体和信号处理应用。本文主要介绍如何使用NEON的汇编程序来写SIMD的代码,包括如何开始NEON的开发,如何高效的利用NEON。首先会关注内存操作,即如何变更指令来灵活有效的加载和存储数据。接下来是由于SIMD指令的应用而导致剩下的若干个单元的处理,最后是一个例子来说明用NEON来进行SIMD优化。 SIMD的例子 首先看一个实例,24-bit的RGB图像,像素在内存里的组织方式是R, G, B, R, G, B...,如果你想做一个简单的图像处理,比如把R和B通道互换,你该如何高效的使用NE
[单片机]