ADS arm程序设计实验

2024-04-16 22:38
文章标签 实验 程序设计 arm ads

本文主要是介绍ADS arm程序设计实验,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

#实验指导 ADS arm程序设计实验

####学习目的

Arm程序设计
熟悉ADS集成环境

实验内容

在ADS中新建工程,并设置开发环境。
在AXD中调试汇编程序

实验环境

硬件: PC机
软件:ADS
操作系统:windows7

实验流程

1)ADS编译系统工程建立配置步骤描述

a)新建工程:先建一个文件夹如:D:\test1(可以用自己的名字缩小命名)。然后运行ADS1.2集成开发环境,选择File->New菜单项,弹出一个对话框,然后出来下图,工程类型选择对话框所示选择Project,在“Project name”
中输入工程文件名,点击确定,同时创建一个与工程名相同的工作区。
在这里插入图片描述
为当前工程添加源程序文件:ARM汇编程序源文件后缀名为S大小写均可。选择Debug,DebugRel Release. 按照同样步骤建立test2.s。
在这里插入图片描述
c)添加源文件:选择Project→Add To Project→File项,或单击工程管理窗口中的相应右键快捷菜单命令,打开文件选择对话框,在工程目录下选择刚才建立的源并添加到文件test1.s。在“Add  Files”对话框中选择“DebugRel”按照同样步骤建立test2.s。
在这里插入图片描述
d)基本设置:设置中只需设置“entry  point”
e)生成目标代码:按下图标 生成目标代码。
f)调试设置:按下图标首先编译和链接之后,在工程test1所在的目录下生成一个名为“test_data的目录,同时打开对话框使用Debugrel目标,选择生成的test.axf用于调试。
g)打开存储器窗口,观察地址的内容.
h)单步执行程序并观察和记录寄存器与存储器值的变化。
i)结合实验内容和相关资料,观察程序运行,通过实验加深理解ARM指令

2)完成程序设计:X=|X|+|Y|+|Z|,其中R0=X=1,R1=Y=2,R2=Z=3,用子程序调用的方法,入口参数为R3,出口参数为R4

a)一个*.s文件实现
b)写出完整的代码

AREA	Fctrl,CODE,READONLY
ENTRY
CODE32
START
MOV R0, #1MOV R1, #2MOV R2, R3
MOV R3,R0
BL  	SUBPRO		跳转到子程序
MOV R0,R4
MOV R3,R1
BL		SUBPRO
ADD R0,R0,R4
MOV R3,R2
BL		SUBPRO
ADD R0,R0,R4
SUBPRO
CMP R3,#0
BGE ENDP        有符号数大于或等于
RSB R3,R3,#0
ENDP
MOV R4,R3
MOV PC,LR		从子程序返回STOP
B STOP
END

3)完成程序设计:编制程序,统计寄存器R0中数据中,各位中是0的个数,将结果存放在寄存器R2中.

a)一个*.s文件实现
b)写出完整的代码

	AREA zeronum,CODE,READONLYENTRY   CODE32   
STARTMOV R0, #0x12800   MOV R1, #1 MOV R2, #0
LOOP  ANDS R3, R0, R1 CMP R3, #0 ADDEQ R2, R2, #1MOV R1, R1, LSL #1CMP R1, #0BNE LOOP   
STOPB STOP   END	 

实验收获

通过动手实践,发现了ARM程序设计其实并没有理论课听起来的那么无聊,还是挺有意思的,只要我们用心去做,就会完成。

这篇关于ADS arm程序设计实验的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/910090

相关文章

STM32(十一):ADC数模转换器实验

AD单通道: 1.RCC开启GPIO和ADC时钟。配置ADCCLK分频器。 2.配置GPIO,把GPIO配置成模拟输入的模式。 3.配置多路开关,把左面通道接入到右面规则组列表里。 4.配置ADC转换器, 包括AD转换器和AD数据寄存器。单次转换,连续转换;扫描、非扫描;有几个通道,触发源是什么,数据对齐是左对齐还是右对齐。 5.ADC_CMD 开启ADC。 void RCC_AD

HNU-2023电路与电子学-实验3

写在前面: 一、实验目的 1.了解简易模型机的内部结构和工作原理。 2.分析模型机的功能,设计 8 重 3-1 多路复用器。 3.分析模型机的功能,设计 8 重 2-1 多路复用器。 4.分析模型机的工作原理,设计模型机控制信号产生逻辑。 二、实验内容 1.用 VERILOG 语言设计模型机的 8 重 3-1 多路复用器; 2.用 VERILOG 语言设计模型机的 8 重 2-1 多

C语言程序设计(数据类型、运算符与表达式)

一、C的数据类型 C语言提供的数据类型: 二、常量和变量 2.1常量和符号常量 在程序运行过程中,其值不能被改变的量称为常量。 常量区分为不同的类型: 程序中用#define(预处理器指令)命令行定义变量将代表常量,用一个标识符代表一个常量,称为符合常量。 2.2变量 变量代表内存中具有特定属性的一个存储单元,用来存放数据,在程序运行期间,这些值是可以 改变的。 变

C语言程序设计(选择结构程序设计)

一、关系运算符和关系表达式 1.1关系运算符及其优先次序 ①<(小于) ②<=(小于或等于) ③>(大于) ④>=(大于或等于 ) ⑤==(等于) ⑥!=(不等于) 说明: 前4个优先级相同,后2个优先级相同,关系运算符的优先级低于算术运算符,关系运算符的优先级高于赋值运算符 1.2关系表达式 用关系运算符将两个表达式(可以是算术表达式或关系表达式,逻辑表达式,赋值表达式,字符

bash: arm-linux-gcc: No such file or directory

ubuntu出故障重装了系统,一直用着的gcc使用不了,提示bash: arm-linux-gcc: No such file or directorywhich找到的命令所在的目录 在google上翻了一阵发现此类问题的帖子不多,后来在Freescale的的LTIB环境配置文档中发现有这么一段:     # Packages required for 64-bit Ubuntu

编译linux内核出现 arm-eabi-gcc: error: : No such file or directory

external/e2fsprogs/lib/ext2fs/tdb.c:673:29: warning: comparison between : In function 'max2165_set_params': -。。。。。。。。。。。。。。。。。。 。。。。。。。。。。。。。 。。。。。。。。 host asm: libdvm <= dalvik/vm/mterp/out/Inte

Cortex-A7:ARM官方推荐的嵌套中断实现机制

0 参考资料 ARM Cortex-A(armV7)编程手册V4.0.pdf ARM体系结构与编程第2版 1 前言 Cortex-M系列内核MCU中断硬件原生支持嵌套中断,开发者不需要为了实现嵌套中断而进行额外的工作。但在Cortex-A7中,硬件原生是不支持嵌套中断的,这从Cortex-A7中断向量表中仅为外部中断设置了一个中断向量可以看出。本文介绍ARM官方推荐使用的嵌套中断实现机

智能工厂程序设计 之1 智能工厂都本俱的方面(Facet,Aspect和Respect)即智能依赖的基底Substrate 之1

Q1、昨天分别给出了三个智能工厂的 “面face”(里面inter-face,外面outer-face和表面surface) 以及每个“面face” 各自使用的“方”(StringProcessor,CaseFilter和ModeAdapter)  。今天我们将继续说说三个智能工厂的“方面” 。在展开之前先看一下三个单词:面向facing,取向oriented,朝向toword。理解这三个词 和

ARM 虚拟化介绍

0.目录 文章目录 0.目录1.概述 1.1 Before you begin 2.虚拟化介绍 2.1 虚拟化为什么重要2.2 hypervisors的两种类型2.3 全虚拟化和半虚拟化2.4 虚拟机和虚拟CPUs 3.AArch64中的虚拟化4.stage 2 转换 4.1 什么是stage 2 转换4.2 VMIDs4.3 VMID vs ASID4.4 属性整合和覆盖4.5模拟

61.以太网数据回环实验(4)以太网数据收发器发送模块

(1)状态转移图: (2)IP数据包格式: (3)UDP数据包格式: (4)以太网发送模块代码: module udp_tx(input wire gmii_txc ,input wire reset_n ,input wire tx_start_en , //以太网开始发送信