[实验]Keil 4下仿真三星2440A芯片的汇编及CPIO控制实验

2024-04-26 01:28

本文主要是介绍[实验]Keil 4下仿真三星2440A芯片的汇编及CPIO控制实验,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

一、安装Keil uVision4

(详细安装过程忽略)
在这里插入图片描述

点击finish完成安装
在这里插入图片描述

二、新建项目,导入项目文件

在这里插入图片描述

选择对应的芯片,此处我们选择三星的S3C2440A,点击OK
在这里插入图片描述

在Source Group 1处右键,点击Add Files to "Sourcce Group 1’…将下图款选的文件添加,然后点击Buil
在这里插入图片描述

运行后,再点击魔法棒,勾选Create HEX.File,,再点击Buil运行,底部会提示creating hex file….,没有报错的话就ok了
在这里插入图片描述

三、实验任务

任务1、修改x,y参数

此时可看到x,y的值在此处定义,调用add1函数,进行x+y的运算
在这里插入图片描述

点击Strat/Stop Debug Session进入调试界面
点击Strat/Stop Debug Session

点击左上角红框的Run按键,执行代码
在这里插入图片描述

此时观察右边Symbols框x的地址,通过右下角的Memory1框输入x的地址发现x的16进制值为1,对应代码中的x=1
在这里插入图片描述

同理y的16进制值查询为02,对应代码中的y=2
在这里插入图片描述

z的结果为16进制03,对应代码z的值z=1+2=3
在这里插入图片描述

此时修改x,y的参数,观察寄存器地址16进制值是否对应改变
①退出调试模式(点击图中按钮)

在这里插入图片描述

②更改你想要的参数,此处我将x改为16,y改为2,点击Buil,再进入调试模式

在这里插入图片描述

③再点击Run,查看Symbols框的x,y,z的值,发现都对应

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

至此完成参数的修改

任务2、改add算法

初始add的算法如下(算法解释在注释处)
在这里插入图片描述

观察C的代码可知其运算过程↓
在这里插入图片描述

进入调试界面检查结果是否一致,发现e的16进制值为4,与c代码运算结果符合
在这里插入图片描述

此时修改add.s的算法

①修改结果如图所示(可根据自己需要修改),修改完点击Buil

在这里插入图片描述

②根据c代码可推出结果应为e=5

在这里插入图片描述

打开调试界面,查看结果是否符合

在这里插入图片描述

结果符合,修改add算法完成

任务3、修改add10.s的连加次数,根据学号修改

add10代码如下,累加10次,结果为55
在这里插入图片描述

打开调试窗口查看g的10进制值是否为55,查看发现与10累加的值55符合
在这里插入图片描述

此时修改add的累加次数,例如学号尾号为14,那么修改如下,点金Buil运行

在这里插入图片描述

14的累加值为105,打开调试窗口查看结果是否符合
在这里插入图片描述
结果符合,实验完成!

这篇关于[实验]Keil 4下仿真三星2440A芯片的汇编及CPIO控制实验的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



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

相关文章

Java汇编源码如何查看环境搭建

《Java汇编源码如何查看环境搭建》:本文主要介绍如何在IntelliJIDEA开发环境中搭建字节码和汇编环境,以便更好地进行代码调优和JVM学习,首先,介绍了如何配置IntelliJIDEA以方... 目录一、简介二、在IDEA开发环境中搭建汇编环境2.1 在IDEA中搭建字节码查看环境2.1.1 搭建步

Python实现局域网远程控制电脑

《Python实现局域网远程控制电脑》这篇文章主要为大家详细介绍了如何利用Python编写一个工具,可以实现远程控制局域网电脑关机,重启,注销等功能,感兴趣的小伙伴可以参考一下... 目录1.简介2. 运行效果3. 1.0版本相关源码服务端server.py客户端client.py4. 2.0版本相关源码1

Spring Security 基于表达式的权限控制

前言 spring security 3.0已经可以使用spring el表达式来控制授权,允许在表达式中使用复杂的布尔逻辑来控制访问的权限。 常见的表达式 Spring Security可用表达式对象的基类是SecurityExpressionRoot。 表达式描述hasRole([role])用户拥有制定的角色时返回true (Spring security默认会带有ROLE_前缀),去

MCU7.keil中build产生的hex文件解读

1.hex文件大致解读 闲来无事,查看了MCU6.用keil新建项目的hex文件 用FlexHex打开 给我的第一印象是:经过软件的解释之后,发现这些数据排列地十分整齐 :02000F0080FE71:03000000020003F8:0C000300787FE4F6D8FD75810702000F3D:00000001FF 把解释后的数据当作十六进制来观察 1.每一行数据

基于UE5和ROS2的激光雷达+深度RGBD相机小车的仿真指南(五):Blender锥桶建模

前言 本系列教程旨在使用UE5配置一个具备激光雷达+深度摄像机的仿真小车,并使用通过跨平台的方式进行ROS2和UE5仿真的通讯,达到小车自主导航的目的。本教程默认有ROS2导航及其gazebo仿真相关方面基础,Nav2相关的学习教程可以参考本人的其他博客Nav2代价地图实现和原理–Nav2源码解读之CostMap2D(上)-CSDN博客往期教程: 第一期:基于UE5和ROS2的激光雷达+深度RG

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

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

控制反转 的种类

之前对控制反转的定义和解释都不是很清晰。最近翻书发现在《Pro Spring 5》(免费电子版在文章最后)有一段非常不错的解释。记录一下,有道翻译贴出来方便查看。如有请直接跳过中文,看后面的原文。 控制反转的类型 控制反转的类型您可能想知道为什么有两种类型的IoC,以及为什么这些类型被进一步划分为不同的实现。这个问题似乎没有明确的答案;当然,不同的类型提供了一定程度的灵活性,但

笔记整理—内核!启动!—kernel部分(2)从汇编阶段到start_kernel

kernel起始与ENTRY(stext),和uboot一样,都是从汇编阶段开始的,因为对于kernel而言,还没进行栈的维护,所以无法使用c语言。_HEAD定义了后面代码属于段名为.head .text的段。         内核起始部分代码被解压代码调用,前面关于uboot的文章中有提到过(eg:zImage)。uboot启动是无条件的,只要代码的位置对,上电就工作,kern

深入解析秒杀业务中的核心问题 —— 从并发控制到事务管理

深入解析秒杀业务中的核心问题 —— 从并发控制到事务管理 秒杀系统是应对高并发、高压力下的典型业务场景,涉及到并发控制、库存管理、事务管理等多个关键技术点。本文将深入剖析秒杀商品业务中常见的几个核心问题,包括 AOP 事务管理、同步锁机制、乐观锁、CAS 操作,以及用户限购策略。通过这些技术的结合,确保秒杀系统在高并发场景下的稳定性和一致性。 1. AOP 代理对象与事务管理 在秒杀商品

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

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