电子科技大学微处理器与嵌入式系统设计实验报告一

电子科技大学微处理器与嵌入式系统设计实验报告一
电子科技大学微处理器与嵌入式系统设计实验报告一

微处理器系统结构与嵌入式系统设计实验报告

微处理器系统结构与嵌入式系统设计实验名称 ARM基础编程实验

一、实验目的

1.熟悉并掌握常用ARM汇编指令

2.熟悉并掌握“C+汇编”混合编程技术

3.熟练使用ARM软件开发调试工具Keil

二、实验内容

1.学习使用Keil开发工具

2.使用ARM汇编语言,编程实现1+2+……+N累加运算功能

3.使用C调用汇编函数,实现字符串拷贝功能

4.使用汇编调用C函数,实现求和运算功能

5.使用ARM汇编语言,实现冒泡排序算法(选做)

三、实验步骤

1.实验1.1:运行Keil,建立工程文件,单步运行调试演示

示例程序,深刻理解每一条指令,观察寄存器,内存空间

的变化。

2.实验1.2:用汇编语言实现1+2+...+N的累加:

a)建立新工程,加入实验1.2文件夹中的sum.s。

b)用汇编补充算法核心部分,代码参考流程图如下

图1.1所示。

c)使用单步调试,仔细观察过程中关键寄存器值的

变化。

微处理器系统结构与嵌入式系统设计实验报告

RO=R0+R1

R1=R1+1

SUM_END

结果溢出?

R1>=N

NO

YES

YES

NO

图1.1

3. 实验1.3:C 调用汇编实现字符串拷贝功能:

a) 建立新工程,加入实验1.3文件夹中的main.c 和testfile.s(同一个工程下添加两个文件一起编译)。

b) 补充完成源代码中缺失的部分,分别实现

1. 拷贝源字符串的一个字节到R2中;

2. 将拷贝的字节复制到目标空间。

c) 运行Debug 进行调试。

4. 实验1.4:汇编调用C 实现求和1+2+ (10)

a) 建立新工程,加入实验1.4文件夹中的sum.c 和testfile.s(同一个工程下添加两个文件一起编译)。 b) 补充完成源代码中缺失的部分,通过调用c 函数g()实现1+2+3+glovb1,结果存在R8中。 c) 运行Debug 进行调试

5. 实验1.5:ARM 汇编实现冒泡算法:

a) 建立新工程,加入实验1.5文件夹中的maopao.s 。 b) 补充完成源代码中缺失的部分,实现冒泡排序功能。 c) 运行Debug 进行调试

四、 实验结果

1. 实验1.2:用汇编语言实现1+2+...+N 的累加

R1自增1

R0暂存累加和

微处理器系统结构与嵌入式系统设计实验报告

核心代码如下:

ADD R0,R1

BVS SUM_END

CMP R1,R2

BHS SUM_END

ADD R1,#1

B SUN_L1

图1.2

可以看见最终结果显示在寄存器R8处,十六进制为13BA,转换成十进制为5050,实现了累加功能。

2.实验1.3:C调用汇编实现字符串拷贝功能

核心代码如下:

LDRB R2,[R1],#1 ;拷贝源字符串的一个字节STRB R2,[R0],#1 ;将拷贝的字节复制到目标空间

可以看出拷贝前srcstr是aaaa,dststr是bbbb,拷贝后srcstr是aaaa,dststr是aaaa,实现了字符串拷贝功能。

3.实验1.4:汇编调用C实现求和1+2+...+10

图1.3 前图1.4 后

微处理器系统结构与嵌入式系统设计实验报告

核心代码如下:

MOV R0,#1

MOV R1,#2

MOV R2,#3

MOV R3,#10

BL g

MOV R8,R0

图1.5

可以看出最终结果显示在寄存器R8处,十六进制表示为0010,转换为十进制为16

4.实验1.5:ARM汇编实现冒泡算法

代码如下:

AREA Sort,CODE,READONLY

ENTRY

start

MOV R4,#0

LDR R6,=src

ADD R6,R6,#len

LDR R7,=src

微处理器系统结构与嵌入式系统设计实验报告

inner

MOV R1,R7

CMP R6,R7

BLE outer

inner1

LDR R2,[R1]

LDR R3,[R1,#4]

CMP R2,R3

BGT exchange

inner2

ADD R1,R1,#4

CMP R1,R6

BLT inner1

ADD R4,R4,#4

CMP R4,#len

BLE subtraction

exchange

STR R3,[R1]

STR R2,[R1,#4]

B inner2

subtraction

SUB R6,R6,#4

B inner

outer

LDR R1,=src

src DCD 2,4,10,8,14,1,20

AREA Array,DATA,READWRITE

len EQU 7*4

微处理器系统结构与嵌入式系统设计实验报告

END

图1.6 排序前

图1.7 排序后

可以看见地址0x0000005C保存的排序后的结果正确,程序

实现了冒泡法排序功能。

(注:命令行键入指令“map 0,4095 read write

exec”,解决实验用芯片S3C2440内存访问权限错误问

题。)

五、实验总结

1.此次实验用汇编和C语言实现了1~N的累加、字符串的拷

贝、数字求和以及冒泡法排序这几项功能,了解了汇编语

言的基础指令及其意义,同时初步入门了Keil编译器的使

用与程序编写调试。

2.知道了C程序与汇编语言相互调用的规则:

a)寄存器的使用规则:“子程序间”通过寄存器R0~R3来

传递参数。在“子程序中”,使用寄存器R4~R11来保

存局部变量。

b)寄存器R12用于子程序间scratch寄存器(用于保存

SP,在函数返回时使用该寄存器出桟),记作IP。

c)寄存器R13用于数据栈指针,记作SP。寄存器SP在进

入子程序时的值和退出子程序时的值必须相等。

d)寄存器R14称为链接寄存器,记作LR。它用于保存子程

序的返回地址。

e)寄存器R15是程序计数器,记作PC。

微处理器系统结构与嵌入式系统设计实验报告

六、实验思考题

1.Q:ADD替换成ADDS,SUB替换成SUBS有什么影响?

A:替换后,运算结果会影响标志寄存器。因为ADD、SUB

不带进位与借位,ADDS、SUBS带有进位与借位,运算完成

要置符号位。

2.Q:MOV替换成MOVNE有什么影响?

A:替换后只有在上一步比较结果为不相等的时候才会执行

该指令。

3.Q:STMIA换成STMIB,STMIA换成STMDA有什么区别?

A:换成STMIB是将每次传送后地址+4变成每次传送前地

址+4,换成STMDA是将每次传送后地址+4变成每次传送

后地址-4。

4.Q:思考用ARM汇编实现1+3+5+…+(2n+1)或者2+4+6+…

+2n。

A:实现1+3+5+….+(2n+1),将ADD R1,#1改为ADD R1,#2,

设置R1初始值为1。

实现2+4+6+…..+2n,将ADD R1,#1改为ADD R1,#2,设置R1初始值为2.

5.Q:实验3中如果去除汇编代码中的“EXPORT strcopy”会

有什么现象,为什么?

A:若去除汇编代码中的“EXPORT strcopy”,则在c语言

中无法调用该函数,因为EXPORT用于声明strcopy为全局

标号。

6.Q:实验4中如果去除汇编代码中的“IMPORT …..”会有

什么现象,为什么?

A:会无法调用C语言的main函数,因为该伪指令用于通

知编译器要使用的标号或者变量在其他的源文件定义。

电子科技大学微嵌实验最新版

电子科技大学微嵌实验最新版

电子科技大学 实验报告 修正了M00和旧版答案的错误,代码使用Keil uVision5 均已调试通过。课程名称微处理器系统结构与嵌入式系统设计_____________________ 实验名称ARM基础编程实验_____________________________________ 任课教师________ 实验教师 ________ 姓名 ______ 学号__________ 实验地点分组号时间年月日、实验目的 1.熟悉并掌握常用ARM匚编指令 2.熟悉并掌握C+汇编混合编程技术 3.熟练使用ARM软件开发调试工具Keil _、实验内容 1.学习使用Keil开发工具 2.使用ARM匚编语言,编程头现1+2+ ...... +N累加运算功冃匕 3.使用C调用汇编函数,实现字符串拷贝功能 4.使用汇编调用C函数,实现求和运算功能 5.使用ARM匚编语言,实现冒泡排序算法(选做) 三、实验步骤

1.实验1.1 :运行Keil ,建立工程文件,单步运行调试演示示例程 序,深刻理解每一条指令,观察寄存器,内存空间的变化。 2.实验1.2 :用汇编语言实现1+2+...+N的累加: a)建立新工程,加入实验1.2文件夹中的sum.s。 b)用汇编补充算法核心部分,代码参考流程图如下图 1.1所示。 c)使用单步调试,仔细观察过程中关键寄存器值的变化。 R0暂存累加和 图 3.实验1.3 : C调用汇编实现字符串拷贝功能: a)建立新工程,加入实验1.3文件夹中的ma in .c和 testfile.s(同一个工程下添加两个文件一起编 译)。 b)补充完成源代码中缺失的部分,分别实现 1.拷贝源字符串的一个字节到R2中; 2.将拷贝的字节复制到目标空间。 c)运行Debug进行调试。 4.实验1.4 :汇编调用C实现求和1+2+...+10 : a)建立新工程,加入实验1.4文件夹中的sum.c和 testfile.s(同一个工程下添加两个文件一起编 译)。 b)补充完成源代 码中缺失的部分,通过调用c函数 g()实现1+2+3+glovb1,结果存在R8中。 c)运行Debug进行调试

数据通路实验报告

非常简单CPU数据通路设计实验报告非常简单CPU数据通路设计【实验目的】 1. 掌握CPU的设计步骤 2. 学会芯片的运用及其功能 【实验环境】 Maxplus2环境下实现非常简单CPU数据通路的设计 【实验内容】 非常简单CPU的寄存器:一个8位累加器AC,一个6位的地址寄存器绘制 AR,一个6位的程序计数器PC,一个8位的数据寄存器DR,一个2位的指令寄存器IR。其数据通路详见教材P。 1、零件制作 6位寄存器 (自行设计) 6位计数器 (自行设计) 8位寄存器 (可选择74系列宏函数74273) 8位计数器 (由两个74161构成) 2位寄存器 (由D触发器构成,自行设计) 6三态缓冲器 (自行设计,可由74244内部逻辑修改而成) 8三态缓冲器 (选择74系列宏函数74244,或作修改) alu模块 (自行设计,限于时间,其内部逻辑不作要求) 2、选择器件,加入数据通路顶层图 8位累加器AC:选择8位计数器 6位地址寄存器AR:reg6 6位的程序计数器PC:cou6

8位的数据寄存器DR:选择8位寄存器 2位的指令寄存器IR:选择2位寄存器 3、为PC、DR加入三态缓冲器。 4、调整版面大小,器件位置。 5、设计地址引脚、数据引脚、8位内部总线,加入数据引脚到内部总线的 缓冲器。 6、连接各器件之间以及到内部总线的线路,设计并标注各控制信号。 7、(选做)编译之后,给出微操作 AR<-PC 的测试方法及仿真结果。 8、实验报告中应给出各元部件的实现方法、内部逻辑贴图、打包符号说 明及顶层的“非常简单CPU”数据通路图。 实验报告 一、实验步骤 基于前面非常简单CPU的讲解,我掌握了非常简单CPU的指令集结构及非常简单CPU的指令读取过程和执行过程,本次实验是在上次实验的基础之上完成非常简单CPU数据通路的设计,其步骤如下: (1)、AC累加器原理图如下:

电子科技大学 汇编 实验报告

计算机专业类课程 实 验 报 告 课程名称:汇编语言程序设计 学院:计算机科学与工程 专业:计算机科学与技术 学生姓名:郭小明 学号:2011060100010 日期:2013年12月24日

电子科技大学 实验报告 实验一 学生姓名:郭小明学号:2011060100010 一、实验室名称:主楼A2-412 二、实验项目名称:汇编源程序的上机调试操作基础训练 三、实验原理: DEBUG 的基本调试命令;汇编数据传送和算术运算指令 MASM宏汇编开发环境使用调试方法 四、实验目的: 1. 掌握DEBUG 的基本命令及其功能 2. 学习数据传送和算术运算指令的用法 3.熟悉在PC机上编辑、汇编、连接、调试和运行汇编语言程序的过程五、实验内容: 编写程序计算以下表达式: Z=(5X+2Y-7)/2 设X、Y的值放在字节变量VARX、VARY中,结果存放在字节单元VARZ中。 1.编辑源程序,建立一个以后缀为.ASM的文件. 2.汇编源程序,检查程序有否错误,有错时回到编辑状态,修改程序中错误行。无错时继续第3步。 3.连接目标程序,产生可执行程序。

4.用DEBUG程序调试可执行程序,记录数据段的内容。 六、实验器材(设备、元器件): PC机,MASM软件平台。 七、实验数据及结果分析: 程序说明: 功能:本程序完成Z=(5X+2Y-7)/2这个等式的计算结果求取。其中X 与Y 是已知量,Z是待求量。 结构:首先定义数据段,两个DB变量VARX与VARY(已经初始化),以及结果存放在VARZ,初始化为?。然后定义堆栈段,然后书写代码段,代码段使用顺序程序设计本程序,重点使用MOV和IMUL以及XOR,IDIV完成程序设计。详细内容见程序注释。 程序清单:

电子科大电子技术实验报告

电子科技大学 电子技术实验报告 学生姓名:班级学号:考核成绩:实验地点:仿真指导教师:实验时间: 实验报告内容:1、实验名称、目的、原理及方案2、经过整理的实验数据、曲线3、对实验结果的分析、讨论以及得出的结论4、对指定问题的回答 实验报告要求:书写清楚、文字简洁、图表工整,并附原始记录,按时交任课老师评阅实验名称:负反馈放大电路的设计、测试与调试

一、实验目的 1、掌握负反馈电路的设计原理,各性能指标的测试原理。 2、加深理解负反馈对电路性能指标的影响。 3、掌握用正弦测试方法对负反馈放大器性能的测量。 二、实验原理 1、负反馈放大器 所谓的反馈放大器就是将放大器的输出信号送入一个称为反馈网络的附加电路后在放大器的输入端产生反馈信号,该反馈信号与放大器原来的输入信号共同控制放大器的输入,这样就构成了反馈放大器。单环的理想反馈模型如下图所示,它是由理想基本放大器和理想反馈网络再加一个求和环节构成。 反馈信号是放大器的输入减弱成为负反馈,反馈信号使放大器的输入增强成为正反馈。四种反馈类型分别为:电压取样电压求和负反馈,电压取样电流求和负反馈,电流取样电压求和负反馈,电流取样电流求和负反馈。 2、实验电路

实验电路如下图所示,可以判断其反馈类型累电压取样电压求和负反馈。 3.电压取样电压求和负反馈对放大器性能的影响 引入负反馈会使放大器的增益降低。负反馈虽然牺牲了放大器的放大倍数,但它改善了放大器的其他性能指标,对电压串联负反馈有以下指标的改善。 可以扩展闭环增益的通频带 放大电路中存在耦合电容和旁路电容以及有源器件内部的极间电容,使得放大器存在有效放大信号的上下限频率。负反馈能降低和提高,从而扩张通频带。 电压求和负反馈使输入电阻增大 当 v一定,电压求和负反馈使净输入电压减小,从而使输入电流 s

电子秒表实验报告

电子技术设计性实训报告 学号:211002146 姓名:邱富烨 同组人:夏文彬 班级:03班 指导老师:林雪健 日期:2012.09.07

目录 一.实训目的---------------------------------------------------3二.设计功能要求---------------------------------------------3 三.电路设计---------------------------------------------------4 (一)电路框图--------------------------------------------4 (二)单元电路分析-------------------------------------4四.设计总图及其工作原理---------------------------------5 (一)工作原理--------------------------------------------5 (二)元件清单--------------------------------------------5五.电路调试--------------------------------------------------6 (一) 调试过程--------------------------------------------6 (二)故障分析与排除-----------------------------------7六.实训心得---------------------------------------------------8

电子科大TCPIP第三次实验报告材料

实用文档 电子科技大学实 验 报 告 名:学生姓号:学TCP/IP协议名课程称: 教指导师:2016 年 11 日期:月 26 日 OSPF实验项目名称:协议的多区域特性分:告报评教师签字:

实用文档 一、实验原理 OSPF 协议(RFC 2328)是一个基于链路状态路由选择的内部网关协议:路由器仅 在网络拓扑变化时使用洪泛法(flooding)将自己的链路状态更新信息扩散到整个自治系统中。为了增强 OSPF 协议的可伸缩能力(Scalability),OSPF 协议引入了区域的概念来有效并及时的处理路由选择。OSPF 区域是包含在 AS 中的一些网络、主机和路由器的集合,自治系统中所有 OSPF 区域必须连接到一个主干区域(Area 0)上。 区域内的 OSPF 路由器(内部路由器,IR)使用洪泛法(flooding)传送本区域内的链路状态信息,区域边界的 OSPF 路由器(区域边界路由器,ABR)将本区域的信息汇总发给其他区域,自治系统边界的 OSPF 路由器(自治系统边界路由器,ASBR)将自治 系统外的路由(外部路由)发布在自治系统中。主干区域中的 OSPF 路由器也称为“主干路由器”(BR)。ABR 不能向 OSPF 残桩区域(Stub Area)通告外部路由。在多址网络中,为了避免不必要的链路状态洪泛,需要选举 1 个指定路由器(DR)和 1 个备份指定路由器(BDR)。OSPF 协议有 5 种类型的报文,它们被直接封装在 IP 分组中多播发送。 - 问候(Hello)报文:用来建立并维护 OSPF 邻接关系。在建立了邻接关系后, OSPF 路由器会定期发送 Hello 报文,来测试邻站的可达性。 - 数据库描述(DBD)报文:描述 OSPF 路由器的链路状态数据库的概要信息,即数据库中每一行的标题,它在两台相邻路由器彼此建立邻接关系时发送的。 - 链路状态请求(LSR)报文:由需要若干条特定路由信息的路由器发送出的,它的回答是 LSU 报文。新接入的路由器在收到 DBD 报文后,可以使用 LSR 报文请求关于某些路由的更多信息。 - 链路状态更新(LSU)报文:OSPF 的核心。OSPF 路由器使用 LSU 报文通告链路状态更新信息(即链路状态通告,LSA)每一个 LSU 报文可包含几个 LSA。, OSPF 协议的 LSA 有 5 种常用类型:路由器链路 LSA、网络链路 LSA、汇总链路到网络 LSA、汇总链路到 ASBR LSA 和外部链路 LSA。 5 种类型的 LSA这由不同类型的 OSPF 路由器产生,在特定类型的区域范围内扩散。 - 链路状态确认(LSAck)报文:用来确认每一个收到的 LSU 报文,使得 OSPF 协议的路由选择更加可靠。 二、实验目的 1、掌握 OSPF 协议中区域的类型、特征和作用 2、掌握 OSPF 路由器的类型、特征和作用 实用文档 3、掌握 OSPF LSA 分组的类型、特征和作用 4、理解 OSPF 区域类型、路由器类型和 OSPF LSA 分组类型间的相互关系

微处理器实验报告

微处理器实验报告 实验1 熟悉并使用传送类指令 题3. 模仿test1.Asm的循环结构,编写多字节数据的传送程序,把内部RAM的30H--39H单元置为10H-19H,然后传送到外部RAM的0100H--0109H单元。 提示: (1)用寄存器作内部RAM指针,用DPTR作外部RAM指针。 (2)设置内部RAM的30H--39H单元的值为10H-19H: 解:程序如下: ORG 0000H AJMP START ORG 0100H START:MOV R1,#10H MOV DPTR,#0100H MOV R2,#0AH LOOP:MOV A,@R1 MOVX @DPTR,A INC R1 INC DPTR DJNZ R2,LOOP NOP SJMP $ END 运行结果如下图所示:在memory1中,在Address 控件填上D:0x30,可查看内部RAM 30h单元开始的值,将30h-39h 置为10h-19h。

实验2:熟悉并使用算术逻辑操作类指令 题2.编写程序,将6位压缩BCD码123456与6位BCD码567890相加,结果仍用BCD码表示。第一组BCD码放在30H开始连续的内部存储器单元内,第二组BCD 码放在40H开始连续的内部存储器单元内,相加结果放在50H开始的连续的内部存储器单元内。 解:程序如下: ORG 0000H AJMP START ORG 0100H START: MOV 30H,#56H MOV 31H,#34H

MOV 32H,#12H MOV 40H,#90H MOV 41H,#78H MOV 42H,#56H MOV R0,#30H MOV R1,#40H MOV R2,#03H MOV R3,#50H LOOP: MOV A,@R0 ADD A,@R1 DA A MOV @R1,A INC R0 INC R1 INC R3 DJNZ R2,LOOP NOP SJMP $

电子科技大学微机实验报告 实验5

实验五基于ARM的模块方式驱动程序实验 【实验目的】 1.掌握Linux 系统下设备驱动程序的作用与编写技巧 2.掌握Linux 驱动程序模块加载和卸载的方法 3.了解Linux 内核中的makefile和kconfig文件 【实验内容】 1.基于s3c2440 开发板编写led 驱动程序。 2.将编写好的led驱动加入linux内核中,修改makefile和kconfig文件,配置和编译内核。 3.编写关于led 的测试程序,交叉编译后运行,控制led 灯的亮灭。 【预备知识】 1.了解ARM9处理器结构和Linux 系统结构 2.熟练掌握C语言。 【实验设备和工具】 ?硬件:ARM嵌入式开发平台,PC机Pentium100 以上。 ?软件:PC机Linux操作系统+MINICOM+AMRLINUX 开发环境 【实验原理】 ?linux设备驱动程序 ?驱动的模块式加载和卸载 ?编译模块 ?装载和卸载模块 ?led 驱动的原理 在本开发板上有八个led指示灯,从下往上分别为LED0-LED7。这八个led灯都是接的芯片上的gpio口(通用功能输入输出口)。在本实验的开发板硬件设计中,当led 灯对应的gpio的电平为低时,led灯被点亮;当led灯对应的gpio的电平为高时,led灯灭。本驱动的作用就是通过设置对应gpio口的电平来控制led 的亮灭。 因为ARM 芯片内的GPIO口都是复用的,即它可以被配置为多种不同的功能,本实验是使用它的普通的I/O口的输出功能,故需要对每个GPIO口进行配置。在内核中已经定义了对GPIO口进行配置的函数,我们只需要调用这些函数就可以完成对GPIO口的配置。 【实验步骤】实验程 序运行效果:

cpu实验报告

简易计算机系统综合设计设计报告 班级姓名学号 一、设计目的 连贯运用《数字逻辑》所学到的知识,熟练掌握EDA工具的使用方法,为学习好后续《计算机原理》课程做铺垫。 二、设计内容 ①按给定的数据格式和指令系统,使用EDA工具设计一台用硬连线逻辑控制的简易计算机系统; ②要求灵活运用各方面知识,使得所设计的计算机系统具有较佳的性能; ③对所做设计的性能指标进行分析,整理出设计报告。 三、详细设计 3.1设计的整体架构 控制信号

3.2各模块的具体实现 1.指令计数器(zhiling_PC) 元件: 输入端口:CLK,RESET,EN; 输出端口:PC[3..0]; CLK:时钟信号; RESET:复位信号; EN:计数器控制信号,为1的时候加一; PC[3..0]:地址输出信号; 代码:

波形图: 总共有九条指令,指令计数器从0000到1000;功能: 实现指令地址的输出; 2.存储器(RAM) 元件: 输入端口:PC[3..0],CLK; 输出端口:zhiling[7..0]; CLK:时钟信号; PC[3..0]:指令地址信号; zhiling[7..0]:指令输出信号; 代码:

波形图: 功能: 根据输入的地址输出相应的指令; 3.指令译码器(zlymq) 元件: 输入端口:zhiling[7..0]; 输出端口:R1[1..0],R2[1..0],M[3..0];zhiling[7..0]:指令信号; R1:目标寄存器地址; R2:源寄存器地址; M[3..0]:指令所代表的操作编号; 代码:

波形图:

功能: 实现指令的操作译码,同时提取出目标寄存器和源寄存器的地址; 4.算术逻辑运算器(ALU) 元件: 输入端口:EN_ALU,a[7..0],b[7..0],M[3..0]; 输出端口:c[7..0],z; EN_ALU:运算器的使能端; a[7..0]:目标寄存器R1的值; b[7..0]:源寄存器R2的值; M[3..0]:指令所代表的操作编号; c[7..0]:运算结果; z:运算完成的信号; 代码:

电子科大-系统结构实验-解决数据冒险

实 验 报 告 课程名称:计算机系统结构实验学院:计算机科学与工程学院专业:计算机科学与技术 指导教师:好老师 学生姓名:爱学习的小学生 20实验成绩: 日期:2017年5月19日

电子科技大学计算机学院实验中心 电子科技大学 实验报告 一、实验项目名称:解决数据冒险 二、实验室名称:主楼A2-412 实验时间:2017年5月19日 三、实验目的 在给出的流水线代码基础上,增加内部前推数据通路、暂停流水线数据通路和关闭写使能信号的数据通路,解决普通的数据冒险和load数据冒险,通过完成本次实验,更好地理解和掌握解决数据冒险的原理,学以致用,增强编写程序的能力。 四、实验原理 (一)数据冒险的定义 由于流水线上指令重叠执行,改变了原来串行执行的读/写操作数顺序,使得后面依赖前面指令结果的指令得不到准备好的数据,这样的现象叫做数据冒险(数据相关)。 回顾数据冒险的程序例子 I1: add r1,r2,r3 I2: sub r4,r1,r5 I3: and r6,r7,r1 I4: or r8,r1,r9 I5: addi r10,r1,100

I1下面有3条指令不能从寄存器r1读出正确的数据。 (二)数据冒险的解决方案 1、暂停流水线 如上图所示,暂停流水线到最初的指令执行完毕,可以解决数据冒险,但是会涉及到两个问题,即“如何检测出数据冒险”和“如何暂停流水线”。 如何检测数据冒险 a.比较器; I1指令写目的寄存器rd,I2和I3的源操作数是寄存器rs1或rs2中的数据,I2、I3的rs1或rs2与I1的目的寄存器号rd相等时才有可能发生数据冒险。 b.操作码参与检测; 由于指令格式中源寄存器号rs2与立即数部分重叠,而立即数是不会出现冒险的,因此,指令操作码必须要参与检测(区分是寄存器操作数还是立即数)。 c.WREG信号也应参与检测(实际上,WREG也是从操作码中得出的);

微处理器实验报告

《微处理器实验》实验报告 一、实验目的与任务 1、掌握80C51单片机程序的调试与下载方法。 2、掌握80C51单片机并口的工作原理及输入输出控制方法。 3、理解和学会单片机外部中断的使用; 4、学习单片机定时器/计数器的应用。 二、实验原理介绍 80C51单片机包括P0~P3共4个并口,除可作为普通I/O口使用外,P0口还可用作8位数据总线口和低8位地址口,P2可用作高8位地址口,P3.6、P3.7可用作外部RAM或I/O接口的读、写控制引脚,P3.0~P3.5可用作串口、外部中断、计数器的功能引脚。 ZSC-1实验箱包括4个单片机,其中1#单片机(MCU1)和2#单片机(MCU2)的型号都是STC12C5A60S2,只是封装不同。STC12C5A60S2采用80C51内核,片内资源和性能较标准80C51单片机增强了许多。本课程的全部实验只用到MCU1。 图3-1为本实验对应的硬件电路。P0口用于控制发光管L101~L108,口线输出0(低电平)时,对应的发光管点亮,口线输出1(高电平)时,对应的发光管熄灭。P3口的4根口线连接独立按键KX0~KX3,由于P3口内部上拉电阻的作用,按键松开时,对应的口线表现为1状态(高电平),按键按下时,对应的口线表现为0状态(低电平)。 中断是指在突发事件到来时先中止当前正在进行的工作,转而去处理突发事件。待处理完成后,再返回到原先被中止的工作处,继续进行随后的工作。引起突发事件的来源称为中断源,中断源要求服务的请求称为中断请求,对中断请求提供的服务称为中断服务,中断管理系统处理事件的过程称为中断响应过程。51类单片机至少包括5个中断源: INT0:外部中断0,由P3.2端口线引入,低电平或下跳沿引起。(本实验用) INT1:外部中断1,由P3.3端口线引入,低电平或下跳沿引起。 T0:定时器/计数器0中断,由T0计满回零引起。(本实验用) T1:定时器/计数器l中断,由T1计满回零引起。 TI/RI:串行I/O中断,串行端口完成一帧字符发送/接收后引起。 与实验三相同,图3-1为本实验对应的硬件电路。P0口用于控制发光管L101~L108,口线输出0(低电平)时,对应的发光管点亮,口线输出1(高电平)时,对应的发光管熄灭。P3口的4根口线连接独立按键KX0~KX3,其中KX0对应外部中断0,进行KX0按键动作的时候可以触发外部中断。 三、实验内容与结果 1、设计程序,控制发光管L101~L108以一定的时间间隔轮流点亮。 ①在Keil中编写源程序。参考程序如下(请将下划线部分补充完整): ORG 0000H LJMP MAIN ORG 0100H MAIN: MOV A, #11111110B ;准备点亮第一只发光管 NEXT: MOV ,A ACALL DELAY ;软件延时1s左右 A ;准备点亮下一只发光管 SJMP NEXT

电子科大微嵌实验报告二

电子科技大学 实验报告 课程名称微处理器系统与嵌入式系统综合实验 实验名称实验二_SoC平台环境搭建 任课教师实验教师姓名学号 实验地点科B239 分组号时间年月日 一、实验目的 1、了解SoC平台环境搭建的具体操作流程 2、学习Xilinx Vivado&SDK 2017.3工具的使用 3、熟悉SoC平台环境搭建过程和工作原理 二、实验内容 以PS与PL协同设计实现GPIO为例,自行搭建SoC平台环境。 将FPGA当做一个PS处理器的外设,通过寄存器地址映射到PS的寻址空间。在处理器中使用C程序访问这些寄存器,来实现软件和逻辑结合的协同设计的效果。 具体步骤是先在VIVADO中配置ZYNQ处理器,做好FPGA的外设,互联完成之后生成BIT流文件下载到板子。在SDK环境下开发好软件之后,进行在线调试运行。 三、实验步骤 1.打开桌面VIVADO 2017.3,点击Create Project创建新工程。为新工程命名,选择工程 保存路径,点击Next。选择芯片xc7z020clg484-1,点击Next → Finish。点击Create Block Design,创建块设计,并命名 2.在右侧Diagram窗口空白处右击→ Add IP。搜索zynq,双击ZYNQ7 Processing System, 添加zynq处理器,并点击Run Block Automation,勾选处理器→点击OK,会自动进行一些配置 3.再添加两个GPIO核,在Diagram窗口空白处右击→ Add IP → 搜索gpio → 双击。操 作两次,添加两个AXI GPIO核,点击Run Connection Automation,勾选All Automation,点击OK,进行自动配置。自动连接之后在空白处右击选择Regenerate Layout,重新布

CPU设计实验报告

实验中央处理器的设计与实现 一、实验目的 1、理解中央处理器的原理图设计方法。 2、能够设计实现典型MIPS的11条指令。 二、实验要求 1、使用Logisim完成数据通路、控制器的设计与实现。 2、完成整个处理器的集成与验证。 3、撰写实验报告,并提交电路源文件。 三、实验环境 VMware Workstations Pro + Windows XP + Logisim-win-2.7.1 四、操作方法与实验步骤 1、数据通路的设计与实现 数据通路主要由NPC、指令存储器、32位寄存器文件、立即数扩展部件、ALU、数据存储器构成。其中指令存储器和数据存储器可直接调用软件库中的ROM和RAM元件直接完成,其余部件的设计如图所示: 图1.1 NPC

图1.2 32位寄存器

图1.3 立即数扩展部件 图1.4 ALU 2、控制器的设计与实现 控制器的主要设计思想如图所示 图2.1 控制器设计思想 输入 1 1 0

输出R-type ORI LW SW BEQ JUMP RegDst 1 0 0 x x x ALUSrc 0 1 1 1 0 x MemtoReg0 0 1 x x x RegWrite 1 1 1 0 0 0 MemWrite0 0 0 1 0 0 Branch 0 0 0 0 1 0 Jump 0 0 0 0 0 1 Extop x 0 1 1 1 x ALUop2 1 0 0 0 0 x ALUop1 x 1 0 0 x x ALUop0 x 0 0 0 1 x ALUop[2:0] Funct[3:0] 指令ALUctr[2:0] 111 0000 add 010 111 0010 sub 110 111 0100 and 000 111 0101 or 001 111 1010 slt 111 010 xxxx ori 001 000 xxxx Lw/sw 010 011 xxxx beq 110 表2.1 控制器设计真值表

电子科大实验报告撰写格式规范

实验报告撰写格式规范 一、一般格式和顺序 1、封面: (1)题目:应能概括整个论文最重要的内容,具体、切题、不能太笼统,但要引人注目;题名力求简短,严格控制在25字以内。 (2)导师:指导教师的署名一律以批准招生的为准,如有变动应正式提出申请并报研究生院备案,且只能填写指导教师一名。 (3)学生姓名和学号。 2、摘要:论文第一页为中文摘要,约500-800字左右。 内容应包括工作目的、研究方法、成果和结论,语言力求精炼。 3、目录:应是实验报告的提纲,也是实验报告组成部分的小标题,其内容从第一章开始。 4、主要符号表:如果实验报告中使用了大量的物理量符号、标志、缩略词、专门计量单位、自定义名词和术语等,应编写成注释说明汇集表。假如上述符号和缩略词使用数量不多,可以不设专门的汇集表,而在论文中出现时加以说明。 5、引言(第一章):在实验报告正文前,内容为:该研究工作的实用价值或理论意义;实验报告所要解决的问题。 6、正文:是实验报告的主体。按照仿真的步骤来逐一完成。 7、结论(最后一章):应明确、精炼、完整、准确,使人只要一看结论就能全面了解实验报告的意义、目的和工作内容。 8、工作分工:阐述每个成员的工作。 9、参考文献:如有,在这里列出。 二、论文的书写 1、语言表述 (1)论文应层次分明、数据可靠、文字简练、说明透彻、推理严谨,立论正确,避免使用文学性质的带感情色彩的非学术性词语。 (2)论文中如出现一个非通用性的新名词、新术语或新概念,需立即解释清楚。 2、层次和标题 (1)层次要清楚:标题要重点突出,简明扼要。 (2)层次代号的格式如下: 第一章××××(居中书写) 1.1 ×××× 1.1.1 ×××× 3、页眉和页码 页眉: (1)对摘要、目录等前置部分,页眉全用各部分内容的标题。

嵌入式微处理器实验指导(实验一、二、三、四、五)

实验一、Linux常用命令及工具 【实验目的】 熟悉Linux常用命令及工具的使用,特别是常用命令的关键选项及用法需要熟悉。 【实验内容】 1. 在老师讲解下掌握Linux常用命令和工具的用法; 2. 打开虚拟机ubuntu的Terminal,进行命令的练习和熟悉; 3. 截图保存相关界面; 【实验准备】 1. 熟悉Ubuntu虚拟机的安装和使用。 2. 熟悉Linux常用命令和工具。 【实验报告要求】 1. 分别叙述Linux常用命令、ctags+vim工具的功能和一般用法,包括常用选项。 2. 需要有实验记录。 【实验步骤】 一、常用命令用法: 1、对于不熟悉的命令请查看网页:https://www.360docs.net/doc/178999603.html,/ 2、ls的功能及常用选项,当以长格式显示目录下的内容列表时,输出的信息从 左到右依次包括文件类型、权限模式、硬连接数、所有者、组、文件大小和文件的最后修改时间、文件名等,对于文件类型和权限模式需要熟悉; 3、cd的功能及常用选项:-、/、~、.、..各表示什么意思? 4、mkdir、cp、mv、rm、pwd的功能及常用选项; 5、chmod的功能及常用选项; 6、find的功能及常用选项; 7、grep的功能及常用选项; 8、tar的功能及常用选项。 二、常用工具的安装和熟悉 1、下载ctags-5.8.tar.gz和vim-6.4.tar.bz2文件,复制到虚拟机的root目录下,用tar解压缩,然后安装。安装方法如下: 1)进入源代码根目录执行./configure, 2)然后执行make, 3)编译成功后执行make install。 2、进入/opt/WXL/wxl210/linux2.6.35wxl210exp20131202路径下,运行命令:

电子科技大学通信原理实验实验报告2

电子科技大学通信学院 最佳接收机(匹配滤波器) 实验报告 班级 学生 学号 教师任通菊

最佳接收机(匹配滤波器)实验 一、实验目的 1、运用MATLAB软件工具,仿真随机数字信号在经过高斯白噪声污染后最佳的恢复的方法。 2、熟悉匹配滤波器的工作原理。 3、研究相关解调的原理与过程。 4、理解高斯白噪声对系统的影响。 5、了解如何衡量接收机的性能及匹配滤波器参数设置方法。 二、实验原理 对于二进制数字信号,根据它们的时域表达式及波形可以直接得到相应的解调方法。在加性白高斯噪声的干扰下,这些解调方法是否是最佳的,这是我们要讨论的问题。 数字传输系统的传输对象是二进制信息。分析数字信号的接收过程可知,在接收端对波形的检测并不重要,重要的是在背景噪声下正确的判断所携带的信息是哪一种。因此,最有利于作出正确判断的接收一定是最佳接收。 从最佳接收的意义上来说,一个数字通信系统的接收设备可以看作一个判决装置,该装置由一个线性滤波器和一个判决电路构成,如图1所示。线性滤波器对接收信号进行相应的处理,输出某个物理量提供给判决电路,以便判决电路对接收信号中所包含的发送信息作出尽可能正确的判决,或者说作出错误尽可能小的判决。 图1 简化的接收设备 假设有这样一种滤波器,当不为零的信号通过它时,滤波器的输出能在某瞬间形成信号的峰值,而同时噪声受到抑制,也就是能在某瞬间得到最大的峰值信号功率与平均噪声功率之比。在相应的时刻去判决这种滤波器的输出,一定能得到最小的差错率。 匹配滤波器是一种在最大化信号的同时使噪声的影响最小的线性滤波器设计技术。注意:该滤波器并不保持输入信号波形,其目的在于使输入信号波形失 t输出信号值相对于均方根(输出)噪声值达到真并滤除噪声,使得在采样时刻 最大。

醇-可聚合表面活性剂混合胶束法合成微嵌段缔合聚合物及其流变性

[Article] https://www.360docs.net/doc/178999603.html, 物理化学学报(Wuli Huaxue Xuebao ) Acta Phys.-Chim.Sin.2012,28(7),1757-1763 July Received:February 20,2012;Revised:April 19,2012;Published on Web:April 23,2012.? Corresponding author.Email:gyfzgyj@https://www.360docs.net/doc/178999603.html,;Tel:+86-817-8249407. The project was supported by the National Science &Technology Major Projects,China (2011ZX05011).国家科技重大专项(2011ZX05011)资助项目 ?Editorial office of Acta Physico-Chimica Sinica doi:10.3866/PKU.WHXB 201204231 醇-可聚合表面活性剂混合胶束法合成微嵌段缔合聚合物及其流变性 柳建新1 郭拥军1,2,*祝仰文3杨红萍2杨雪杉2 钟金杭2 李华兵2 罗平亚1 (1西南石油大学,油气藏地质及开发工程国家重点实验室,成都610500; 2 西南石油大学化学化工学院,成都610500; 3 中国石化胜利油田分公司地质科学研究院,山东东营257015) 摘要:低碳醇与可聚合表面活性剂(surfmer)可以形成混合胶束,本文通过稳态荧光猝灭法(SSFQ)测定了该 混合胶束中可聚合表面活性剂的聚集数,并通过绝热聚合和后水解工艺合成出不同微嵌段长度的较高分子量(M w )缔合聚合物聚(丙烯酰胺-丙烯酸钠-十六烷基二甲基烯丙基氯化铵)[P(AM-NaAA-C 16DMAAC)].聚合物结构经傅里叶变换-红外(FT-IR)光谱和核磁共振碳谱(13C NMR)表征证实,并通过流变性实验研究了微嵌段长度对增粘性能、抗盐性能、粘弹性能的影响规律.实验结果表明:该方法可以有效调节缔合聚合物中微嵌段的长度,随着微嵌段长度增加,临界缔合浓度(CAC)逐渐降低,增粘性能、粘弹性能先逐步增加后逐步降低,并且发现其对聚合物的性能的影响规律中存在最佳嵌段长度.关键词: 醇;可聚合表面活性剂;缔合聚合物;微嵌段长度;混合胶束;流变性 中图分类号: O647 Polymerization of Micro-Block Associative Polymer with Alcohol-Surfmer Mixed Micellar Method and Their Rheological Properties LIU Jian-Xin 1GUO Yong-Jun 1,2,*ZHU Yang-Wen 3YANG Hong-Ping 2YANG Xue-Shan 2ZHONG Jin-Hang 2LI Hua-Bing 2LUO Ping-Ya 1 (1State Key Laboratory of Oil and Gas Reservoirs Geology and Exploration,Southwest Petroleum University,Chengdu 610500, P .R.China ;2School of Chemistry and Chemical Engineering,Southwest Petroleum University,Chengdu 610500,P .R.China ; 3 Gelogical Scientific Research Institute,Shengli Oilfield Branch Company,SINOPEC,Dongying 257015, Shandong Province,P .R.China ) Abstract:In this paper,mixed micelle composed of alcohol and polymerizable surfactant (surfmer)were constructed.The aggregated numbers of surfmer (hexadecyl trimethyl allylammonium chloride (C 16DMAAC))in the mixed micelle were measured using a steady-state fluorescence quenching (SSFQ)https://www.360docs.net/doc/178999603.html,ing a mixed micellar method with adiabatic polymerization and post-hydrolyzation techniques,the high molecular weight (M w )micro-block associative polymer of P(AM-NaAA-C 16DMAAC)was polymerized.Structures were characterized by Fourier transform-infrared (FT-IR)spectroscopy and 13C nuclear magnetic resonance (NMR)https://www.360docs.net/doc/178999603.html,ing rheological experiments,the effects of micro-block length and salt concentration of on the thickening and viscoelastic rheological properties of the polymers were studied.All experiments confirmed that the micro-block length could be adjusted using the mixed micellar method.Increases in the micro-block length were accompanied by decreases in the critical associative concentration (CAC).The viscosities and viscoelastic rheological properties increased to maximum then decreased steady with the length increasing,indicating that the length was at an optimum value. 1757

电子科技大学微处理器与嵌入式系统设计实验报告一

微处理器系统结构与嵌入式系统设计实验报告 微处理器系统结构与嵌入式系统设计实验名称 ARM基础编程实验 一、实验目的 1.熟悉并掌握常用ARM汇编指令 2.熟悉并掌握“C+汇编”混合编程技术 3.熟练使用ARM软件开发调试工具Keil 二、实验内容 1.学习使用Keil开发工具 2.使用ARM汇编语言,编程实现1+2+……+N累加运算功能 3.使用C调用汇编函数,实现字符串拷贝功能 4.使用汇编调用C函数,实现求和运算功能 5.使用ARM汇编语言,实现冒泡排序算法(选做) 三、实验步骤 1.实验1.1:运行Keil,建立工程文件,单步运行调试演示 示例程序,深刻理解每一条指令,观察寄存器,内存空间 的变化。 2.实验1.2:用汇编语言实现1+2+...+N的累加: a)建立新工程,加入实验1.2文件夹中的sum.s。 b)用汇编补充算法核心部分,代码参考流程图如下 图1.1所示。 c)使用单步调试,仔细观察过程中关键寄存器值的 变化。

微处理器系统结构与嵌入式系统设计实验报告 RO=R0+R1 R1=R1+1 SUM_END 结果溢出? R1>=N NO YES YES NO 图1.1 3. 实验1.3:C 调用汇编实现字符串拷贝功能: a) 建立新工程,加入实验1.3文件夹中的main.c 和testfile.s(同一个工程下添加两个文件一起编译)。 b) 补充完成源代码中缺失的部分,分别实现 1. 拷贝源字符串的一个字节到R2中; 2. 将拷贝的字节复制到目标空间。 c) 运行Debug 进行调试。 4. 实验1.4:汇编调用C 实现求和1+2+ (10) a) 建立新工程,加入实验1.4文件夹中的sum.c 和testfile.s(同一个工程下添加两个文件一起编译)。 b) 补充完成源代码中缺失的部分,通过调用c 函数g()实现1+2+3+glovb1,结果存在R8中。 c) 运行Debug 进行调试 5. 实验1.5:ARM 汇编实现冒泡算法: a) 建立新工程,加入实验1.5文件夹中的maopao.s 。 b) 补充完成源代码中缺失的部分,实现冒泡排序功能。 c) 运行Debug 进行调试 四、 实验结果 1. 实验1.2:用汇编语言实现1+2+...+N 的累加 R1自增1 R0暂存累加和

project实验报告材料

实验报告 一、分析思路 实验开始前,根据案例分析要求,运用Visio软件对project文档编制项目计划的思路及过程进行了编绘,思路图如下: 二、案例分析过程 (1)新建project文件,在文件选项卡,项目信息中设置项目标题为“笔记本开发”;保存文件,命名为“89+1306100114+李幸果”,打开项目选项卡下的项目信息,设置项目开始时间为“2016年1月1日”;

(2)在文件选项卡的“选项”中打开project选项窗口,按照项目信息设置日程信息,设置项目每周开始于“星期一”即周一,财政年度开始于“八月”,默认开始时间为“9:00”,默认结束时间为“18:00”如下:

点击项目选项卡下的“更改项目时间”打开相应窗口,启用并编辑日历“标准”,根据项目组规定,在“默认”的中点击“详细信息”,设置工作日工作时间为“9:00-12:00/13:00-18:00”;

在“例外日期”中添加(元旦、春节、劳动节、国庆节)休假时间,安排为法定节假日放假;

录入项目信息,分别设置项目之间的关系以及前置任务;

录入资源信息,按照资源信息表分配各个任务资源; (3)查看项目的初步计划:打开甘特图视图,初步查看项目的计划情况; (4)检查项目的进度、成本和资源情况: “工期”——形成项目初步计划后,我发现项目的工期与任务信息表不符,项目完成时间为2019年2月19日,超过了项目计划的计划时间2018年12月31日; 调整方法: A.方法一:部分任务的工作日过长,对工期进行缩减:将任务“评估生产过程的稳定性和成本效益”原来的工期30日缩减至“20日”(如下图),操作过后项目结束时间提前到了“2019年2月5日”,有效缩短工期;

相关文档
最新文档