文档视界 最新最全的文档下载
当前位置:文档视界 › 实验三 ARM工作模式切换实验

实验三 ARM工作模式切换实验

实验三  ARM工作模式切换实验
实验三  ARM工作模式切换实验

实验三ARM工作模式切换实验

一、实验目的

1. 掌握ARM的各种工作模式

2.熟悉ARM各种工作模式下的寄存器

3. 学会使用软件编程实现ARM工作模式间的切换

二.实验内容和步骤

任务:使用MSR/MRS指令切换工作模式(ARM9)

(1)创建项目,并添加shiyan3.s源文件,文件内容如下:

程序解读:本程序使用MSR/MRS指令完成系统初始化过程从管理模式到用户模式的切换,采用Softsim方式调试,选用ARM9TDMI作为目标处理器。

.text

.global _start

_start:

/* 安装中断向量表*/

/*只定义了Reset_Handler 入口,其它中断跳转到自身 */

B Reset_Handler

Undefined_Handler: B Undefined_Handler

B SWI_Handler

Prefetch_Handler: B Prefetch_Handler

Abort_Handler: B Abort_Handler

NOP

IRQ_Handler: B IRQ_Handler

FIQ_Handler: B FIQ_Handler

SWI_Handler:

MOV PC,LR

Reset_Handler:

/* into System mode */

MRS r0,CPSR

BIC r0 , r0 , #0x1F

ORR r0 , r0 , #0x1F

MSR CPSR ,r0

/* into FIQ mode */

MRS r0,CPSR

BIC r0 , r0 , #0x1F

ORR r0 , r0 , #0x11

MSR CPSR ,r0

/*注意在调试器中观察该模式下的寄存器r8-r14有无发生变化*/

/* into SVC mode */

MRS r0,CPSR

BIC r0 , r0 , #0x1F

ORR r0 , r0 , #0x13

MSR CPSR ,r0

/*注意在调试器中观察该模式下的寄存器r13-r14有无发生变化*/ /* into Abort mode */

MRS r0,CPSR

BIC r0 , r0 , #0x1F

ORR r0 , r0 , #0x17

MSR CPSR ,r0

/*注意在调试器中观察该模式下的寄存器r13-r14有无发生变化*/ /* into IRQ mode */

MRS r0,CPSR

BIC r0 , r0 , #0x1F

ORR r0 , r0 , #0x12

MSR CPSR ,r0

/*注意在调试器中观察该模式下的寄存器r13-r14有无发生变化*/ /* into UNDEF mode */

MRS r0,CPSR

BIC r0 , r0 , #0x1F

ORR r0 , r0 , #0x1b

MSR CPSR ,r0

/*注意在调试器中观察该模式下的寄存器r13-r14有无发生变化*/ (2)通过单步运行程序,观察相关寄存器和存储器相应地址上的值

的变化情况,记录在表1中,并读懂程序,然后阅读代码手工计算每一步的执行结果,核对和之前你在表上填的值是否一致。

表1 shiyan3.s 单步运行结果

序号执行指

指令执行后的变化情况(用十六进制表示)

寄存器

R0 R1 R13 R14 R15 CPSR 其他

工作

模式

0 ----

0X0000

00D3

0X0000

0000

0X0000

0000

0X0000

0000

SVC

1 0X0000

00D3

0X0000

0800

0X0000

0BA4

0X0000

8024

SVC

2 0X0000

00C0

0X0000

0800

0X0000

0BA4

0X0000

8028

SVC

3 0X0000

00DF

0X0000

0800

0X0000

0BA4

0X0000

802C

SVC

4 0X0000

00DF

0X0000

0800

0X0000

0BA4

0X0000

8030

SVC

5 0X0000

00DF

0X0000

0000

0X0000

0000

0X0000

8034

0X0000

00DF

SVC

6 0X0000

00DF

0X0000

0000

0X0000

0000

0X0000

8038

0X0000

00DF

SVC

7 0X00000X00000X00000X00000X0000USER

00C0 0000 0000 803C 00DF

8 0X0000

00D1

0X0000

0000

0X0000

0000

0X0000

803C

0X0000

00DF

USER

9 0X0000

00D1

0X0000

0000

0X0000

0000

0X0000

8044

0X0000

00D1

FIQ

10 0X0000

00D1

0X0000

0000

0X0000

0000

0X0000

8048

0X0000

00D1

FIQ

11 0X0000

00C0

0X0000

0000

0X0000

0000

0X0000

804C

0X0000

00D1

FIQ

12 0X0000

00D3

0X0000

0000

0X0000

0000

0X0000

8050

0X0000

00D1

FIQ

13

0X0000

00D3

0X0000

0000

0X0000

0BA4

0X0000

8054

0X0000

00D3

SVC 3、用不同代码实现同样处理器模式切换的功能(如直接修改

CPSR某个域的值)

4. 增加进入用户模式的程序

5.增加禁止IRQ中断的程序

6.思考如果进入了用户模式后,能否进入其他处理器模式,原因是

什么?

嵌入式系统综合实验一

嵌入式系统综合实验一

学号: 装 订 线 实验报告 课程名称: 嵌入式系统设计 指导老师:马永昌 成绩:________________ 实验名称:综合实验一dht11和人体感应传感器 实验类型:验证型 同组学生姓名:孙凡原 三、主要仪器设备(必填) 四、操作方法和实验步骤 五、实验数据记录和处理 六、实验结果与分析(必填) 七、讨论、心得 一、实验目的和要求 1.掌握字符设备驱动程序的基本结构和开发方法 2.掌握用户空间调用设备驱动的方法 3.掌握用户和内核的交互 二、实验内容和原理 专业:测控技术与仪器 姓名:颜睿

装订 线1.编写温湿度传感器DHT11驱动,传输打印温湿度信息 2.编写人体感应传感器驱动,控制LED灯亮灭 原理: 温湿度传感器DHT11: 1.引脚图 实际使用传感器没有NC引脚 2.数据采集 a.数据总时序 用户主机发送一次开始信号后,DHT11 从低功耗模式转换到高速模式,待主机开始信号结束后,DHT11 发送响应信号,送出40bit 的数据,幵触发一次信采集。

b.主机发送起始信号 连接DHT11的DATA引脚的I/O口输出低电平,且低 电平保持时间不能小于18ms,然后等待DHT11 作出 应答信号。 装 线 订 c.检测从机应答信号 DHT11 的DATA 引脚检测到外部信号有低电平时, 等待外部信号低电平结束,延迟后DHT11 的DATA 引脚处于输出状态,输出80 微秒的低电平作为应答信 号,紧接着输出80 微秒的高电平通知外设准备接收数 据。

装 订线 d.接收数据 (1)数据判定规则 位数据“0”的格式为:50 微秒的低电平和26-28 微秒的高电平,位数据“1”的格式为:50 微秒的低电平加70微秒的高电平。 接收数据时可以先等待低电平过去,即等待数据线拉高,再延时60us,因为60us大于28us且小于70us,再检测此时数据线是否为高,如果为高,则数据判定为1,否则为0。 (2)数据格式 一次传送40 位数据,高位先出 8bit 湿度整数数据+ 8bit 湿度小数数据+8bit 温度整

嵌入式系统实验报告

实验报告 课程名称:嵌入式系统 学院:信息工程 专业:电子信息工程 班级: 学生姓名: 学号: 指导教师: 开课时间:学年第一学期

实验名称:IO接口(跑马灯) 实验时间:11.16 实验成绩: 一、实验目的 1.掌握 STM32F4 基本IO口的使用。 2.使用STM32F4 IO口的推挽输出功能,利用GPIO_Set函数来设置完成对 IO 口的配置。 3.控制STM32F4的IO口输出,实现控制ALIENTEK 探索者STM32F4开发板上的两个LED实现一个类似跑马灯的效果。 二、实验原理 本次实验的关键在于如何控制STM32F4的IO口输出。IO主要由:MODER、OTYPER、OSPEEDR、PUPDR、ODR、IDR、AFRH和AFRL等8个寄存器的控制,并且本次实验主要用到IO口的推挽输出功能,利用GPIO_Set函数来设置,即可完成对IO口的配置。所以可以通过了开发板上的两个LED灯来实现一个类似跑马灯的效果。 三、实验资源 实验器材: 探索者STM32F4开发板 硬件资源: 1.DS0(连接在PF9) 2.DS1(连接在PF10) 四、实验内容及步骤 1.硬件设计 2.软件设计 (1)新建TEST工程,在该工程文件夹下面新建一个 HARDWARE文件夹,用来存储以后与硬件相关的代码。然后在 HARDWARE 文件夹下新建一个LED文件夹,用来存放与LED相关的代码。 (2)打开USER文件夹下的test.uvproj工程,新建一个文件,然后保存在 LED 文件夹下面,保存为 led.c,在led.c中输入相应的代码。

(3)采用 GPIO_Set 函数实现IO配置。LED_Init 调用 GPIO_Set 函数完成对 PF9 和 PF10 ALIENTEK 探索者 STM32F407 开发板教程 119 STM32F4 开发指南(寄存器版) 的模式配置,控制 LED0 和 LED1 输出 1(LED 灭),使两个 LED 的初始化。 (4)新建一个led.h文件,保存在 LED 文件夹下,在led.h中输入相应的代码。 3.下载验证 使用 flymcu 下载(也可以通过JLINK等仿真器下载),如图 1.2所示: 图1.2 运行结果如图1.3所示:

嵌入式实验报告

课题:按键控制流水灯 专业:物联网工程 班级:01 学号:14154951 姓名:李政 指导教师:何建军 设计日期:2016.12.21—2016.12.30 成绩: 重庆大学城市科技学院电气学院

嵌入式设计报告 一、设计目的作用 通过编程实现对LED灯项目的改变,加深对stm32芯片的理解,对keil软件的熟悉掌握,工程的搭建以及头文件的使用。掌握外部设备的接入以及外部中断的实现。 二、设计要求 用四个按键控制8个流水灯的流水显示 (1).按键A按下时候流水灯按从左往右的流水显示。 (2).按键B按下时候流水灯按从右往左的流水显示。 (3).按键C按下时候流水灯按中心开花的方式流水显示:从中间向两边流水显示 (4).按键D按下时候流水灯按从两边到中心移动的方式流水显示。(5).(选做)引入时针中断: 默认的流水方式: (1)对时钟中断的次数进行计数 (2)当时钟中断的次数除以4的余数为0时:按从左到右的顺序流水显示(3)当时钟中断的次数除以4的余数为1时:按从右到左的顺序流水显示(4)当时钟中断的次数除以4的余数为2时:按中心开花的方式流水显示(5)当时钟中断的次数除以4的余数为3时:从两边到中心移动的方式流水显示。 系统启动时按默认的流水方式显示,当按下A、B、C、D四个按键时,按指定的方式流水显示,当按下按键E时恢复按默认的流水方式。 三、设计的具体实现 1、设计原理 这次使用的是stm32f103系列芯片,芯片引脚如下图

Stm32内部资源

GPIO原理及应用: 有7个16位并行I/O口:PA、PB、PC、PD、 PE、PF、PG 都是复用的,最少有2种 功能,最多有6种功能

嵌入式Linux实验三

实验三:文件、目录及其操作命令 1实验目的 通过实验掌握如Linux操作系统的基本操作 2实验设备 硬件:PC机一台 软件:Windows98/XP/2000系统,VMware Workstation6.0,Red Hat Linux 3实验内容 (1)文件的复制、删除和移动命令:cp, rm, mv (2)Linux文件与目录 (3)目录命令:mkdir, rmdir, cd, pwd, ls (4)链接文件与ln (5)文件与目录的权限 4实验预习要求 仔细阅读参考书: 【1】鸟哥的Linux私房菜基础学习篇第三版,人民邮电出版社,鸟哥 【2】嵌入式Linux系统开发标准教程,人民邮电出版社,华清远见嵌入式培训中心 【3】嵌入式Linux应用程序开发标准教程,人民邮电出版社,华清远见嵌入式培训中心关于Linux文件与目录的部分。 5实验步骤 (1)熟悉Red Hat Enterprise Linux系统。 (2)根据实验重点内容测试。 6实验重点: (1)文件的复制、删除与移动:cp, rm, mv 要复制文件,请使用cp (copy) 这个命令即可。不过,cp 这个命令的用途不仅仅于此。除了单纯的复制之外,还可以建立连结文件(就是快捷方式),比对两文件的新旧而予以更新,以及复制整个目录等等的功能。至于移动目录与文件,则使用mv (move),这个命令也可以直接拿来作重命名(rename) 的操作!至于(移除)删除文件,使用rm (remove) 这个命令。

cp (复制文件或目录) [root@localhost ~]# cp [-adfilprsu] 源文件(source) 目标文件(destination) [root@localhost ~]# cp [options] source1 source2 source3 .... directory 选项与参数: -a:相当于-pdr 的意思,至于pdr 请参考下列说明;(常用) -d:若源文件为链接文件的属性(link file),则复制链接文件属性而非文件本身; -f :为强制(force)的意思,若目标文件已经存在则无法开启,则移除后再尝试一次; -i :若目标文件(destination)已经存在时,在覆盖时会先询问操作的进行(常用) -l :进行硬式连结(hard link)的连结文件建立,而非复制文件本身; -p:连同文件的属性一起复制过去,而非使用默认属性(备份常用); -r :递归持续复制,用于目录的复制行为;(常用) -s :复制成为符号链接文件(symbolic link),亦即快捷方式文件; -u :若destination 比source 旧,才更新destination ! 最后需要注意的,如果源文件有两个以上,则最后一个目标文件一定要是目录才行! 范例一:用root身份,将主目录下的.bashrc 复制到/temp 下,并更名为bashrc (~代表目前用户身份所在的主文件夹) [root@localhost ~]# cp ~/.bashrc /temp/bashrc [root@localhost ~]# cp -i ~/.bashrc /temp/bashrc cp: overwrite `/temp/bashrc'? n <==n不覆盖,y为覆盖 说明:重复作两次操作,由于/temp 下已经存在bashrc 了,加上-i 选项后,则在覆盖前会询问使用者是否确定!可以按下n 或者y 来二次确认。 范例二:将主目录下的.bashrc和.bash_history 复制到/temp下。 [root@localhost ~]cp ~/.bashrc ~/.bash_history /temp 可以将多个数据一次复制到同一目录中去,最后面一定是目录。 范例三:复制/etc/ 这个目录下的所有内容到/tmp 下 [root@www tmp]# cp /etc/ /tmp cp: omitting directory `/etc' <== 如果是目录则不能直接复制,要加上-r 的选项 [root@www tmp]# cp -r /etc/ /tmp -r 是可以复制目录,但是,文件与目录的权限可能会被改变。所以,也可以利用cp –a /etc /tmp 来下执行!尤其是在备份的情况下! rm (移除文件或目录) [root@localhost ~]# rm [-fir] 文件或目录 选项与参数:

嵌入式实验报告

嵌入式技术 实验报告 系别:计算机与科学技术系 班级:计12-1班 姓名:刘杰 学号:12101020128 总成绩: 评语: 日期:

2.在弹出的对话框中依次选择“cedevice emulator emulator kdstub”。 3.选择“Build OS”菜单的“sysgen”开始构建平台。 1.1.4连接,下载和运行平台 1.选择“Target”菜单下的“Connection option”菜单项。 2.在新的对话框中,配置连接关系 3.选择“Target”菜单下的“attach”菜单项,开始下载。 ?实验结果 操作系统定制成功,能正常运行。 ?结果截图 ?问题总结 由于对实验平台了解不够,致使操作过程中添加和删除组件时不知道该如何下手,影响整个实验进度。 实验1.2: 1.打开Platform Builder,并且打开实验1的工程,在实验1的工程基础上做本实验。

进程显示 IE信息查看

报文监测 实验1.3使用Platform Builder开发应用程序 简单实验步骤 1.打开Platform Builder。 2.选择“File”菜单下的“Open Workspace…”,然后打开实验1中创建的平台,本实验要基于 上面的实验的基础上做。 3.选择“File”菜单下的“New Project or File…”,打开“New Project or File”对话框。 4.在“Projects”选项页中选择“WCE Application”;在“Project Name”中输入项目的名字,例 如“MyApp”。 5.在“New Project Wizard – step 1 of 1”中选择“A typical Hello World Application”,点击“Finish” 按钮。 6.选择“Build”菜单中的“Build MyApp.exe”来编译应用程序。

arm实验8

实验八 IIC 接口实验 1.实验目的 (1)熟悉S3C2410A 处理器的硬件I2C 接口的使用。 (2)了解CAT1025 EEPROM 的操作方法及注意事项。 2.实验设备 PC 机一台;MagicARM2410 教学实验开发平台一套 ADS 1.2 集成开发环境 3.实验内容 使用I2C 接口主模式向CAT1025 写入10 字节数据,然后读出校验,若校验通过则蜂鸣器 响一声,否则不断地蜂鸣报警。I2C 接口操作采用查询方式。 4.实验原理 S3C2410A 具有1 个硬件I2C 接口,可以配置为主发送、主接收、从发送和从接收等4种 操作模式。I2C 接口共包含4 个寄存器,控制寄存器IICCON 用于设置I2C 总线时钟和中断(标志)使能,还有1 位中断标志位;状态寄存器IICSTAT 除了指示当前I2C 总线状态外,还有2 位I2C 操作模式控制位和总线启动/结束控制位;数据寄存器IICDS 用来发送数据或接收数据;从机地址寄存器IICADD 用来保存S3C2410A 作I2C 从机时的器件地址。对I2C 接口进行初始化时,首先要设置相应I/O 为IICSDA、IICSCL 功能引脚,然后通过IICCON 寄存器来设置I2C 总线时钟,并使能I2C 中断(标志),通过IICSTAT 寄存器来设置I2C 接口为主发送模式。 在进行每一次数据传送之前,都需要产生IIC 总线启动信号。先把要访问的IIC 器件的 地址写入IICDS 寄存器当中,然后将IICSTAT 寄存器的d5 位置位,即可产生结束总线信号,并且将从机地址发送出去。通过读取IICCON 寄存器的值来等待总线启动和发送从机地址,通过读取IICSTAT 寄存器的值判断是否有从机应答,如果没有从机应答,则只能进行结束总线操作。 启动总线后,就可以进行多个数据的发送或接收操作。进行I2C 数据发送时,将待发送 数据写入IICDS 寄存器,然后还要写IICCON 寄存器清除I2C 中断标志,总线才开始发送数据。通过读取IICCON、IICSTAT 寄存器的值判断数据是否发送完成。 进行IIC 数据接收时,通过读取IICCON、IICSTAT 寄存器的值判断是否接收到数据,如 果接收到数据,则可以从IICDS 寄存器中读出数据。接收完一字节数据后,需要写IICCON 寄存器清除I2C 中断标志(同时,可以控制输出应答或非应答信号),总线才允许接收下一字节数据。

嵌入式系统综合实验一

实验名称: 姓名: 学号: 装 订 线 P.1 实验报告 课程名称: 嵌入式系统设计 指导老师:马永昌 成绩:________________ 实验名称:综合实验一dht11和人体感应传感器 实验类型:验证型 同组学生姓名:孙凡原 一、实验目的和要求(必填) 二、实验内容和原理(必填) 三、主要仪器设备(必填) 四、操作方法和实验步骤 五、实验数据记录和处理 六、实验结果与分析(必填) 七、讨论、心得 一、实验目的和要求 1.掌握字符设备驱动程序的基本结构和开发方法 2.掌握用户空间调用设备驱动的方法 3.掌握用户和内核的交互 二、实验内容和原理 1.编写温湿度传感器DHT11驱动,传输打印温湿度信息 2.编写人体感应传感器驱动,控制LED 灯亮灭 原理: 温湿度传感器DHT11: 1.引脚图 实际使用传感器没有NC 引脚 2.数据采集 a.数据总时序 用户主机发送一次开始信号后,DHT11 从低功耗模式转换到高速模式,待主机开始信号结束后,DHT11 发 专业:测控技术与仪器 姓名:颜睿 学号:3130103850 日期:2018.4.28 地点:创客空间

装订线送响应信号,送出40bit 的数据,幵触发一次信采集。 b.主机发送起始信号 连接DHT11的DATA引脚的I/O口输出低电平,且低电平保持时间不能小于18ms,然后等待DHT11 作出应答信号。 c.检测从机应答信号 DHT11 的DATA 引脚检测到外部信号有低电平时,等待外部信号低电平结束,延迟后DHT11 的DATA引脚处于输出状态,输出80 微秒的低电平作为应答信号,紧接着输出80 微秒的高电平通知外设准备接收数据。 d.接收数据 (1)数据判定规则 位数据“0”的格式为:50 微秒的低电平和26-28 微秒的高电平,位数据“1”的格式为:50 微秒的低电平加70微秒的高电平。 接收数据时可以先等待低电平过去,即等待数据线拉高,再延时60us,因为60us大于28us且小于70us,再检测此时数据线是否为高,如果为高,则数据判定为1,否则为0。

ARM实验指导

ADS 集成开发环境及EasyJTAG 仿真器应用 ADS 集成开发环境是ARM 公司推出的ARM 核微控制器集成开发工具,英文全称为ARM Developer Suite,成熟版本为ADS1.2。ADS1.2 支持ARM10 之前的所有ARM 系列微控制器,支持软件调试及JTAG 硬件仿真调试,支持汇编、C、C++源程序,具有编译效率高、系统库功能强等特点,可以在Windows98、Windows XP、Windows2000 以及RedHat Linux上运行。 这里将简单介绍使用ADS1.2 建立工程,编译连接设置,调试操作等等。最后还介绍了基于LPC2100 系列ARM7 微控制器的工程模板的使用,EasyJTAG 仿真器的安装与使用。 一、ADS 1.2 集成开发环境的组成 ADS 1.2 由6 个部分组成,如表1 所示。 表1 ADS 1.2 的组成部分 由于用户一般直接操作的是CodeWarrior IDE 集成开发环境和AXD 调试器,所以这一章我们只介绍这两部分软件的使用,其它部分的详细说明参考ADS 1.2 的在线帮助文档或相关资料。 1. CodeWarrior IDE 简介

ADS 1.2 使用了CodeWarrior IDE 集成开发环境,并集成了ARM 汇编器、ARM 的C/C++编译器、Thumb 的C/C++编译器、ARM 连接器,包含工程管理器、代码生成接口、语法敏感(对关键字以不同颜色显示)编辑器、源文件和类浏览器等等。CodeWarrior IDE 主窗口如图1所示。 2. AXD 调试器简介 AXD 调试器为ARM 扩展调试器(即ARM eXtended Debugger),包括ADW/ADU 的所有特性,支持硬件仿真和软件仿真(ARMulator)。AXD 能够装载映像文件到目标内存,具有单步、全速和断点等调试功能,可以观察变量、寄存器和内存的数据等等。AXD 调试器主窗口如图2 所示。

嵌入式系统实验实验报告

嵌入式系统实验实验报告 一、实验目的 1.基本实验

. Word 资料搭建PXA270嵌入式LINUX开发软硬件环境;安装LINUX操 作系统;安装与配置建立宿主机端交叉编译调试开发环境;配置宿主机 PC 机端的minicom(或超级终端)、TFTP服务、NFS服务,使宿主PC机与PXA270开发板可以通过串口通讯,并开通TFTP 和NFS服务。 2.人机接口 键盘驱动;LCD控制;触摸屏数据采集与控制实验; 3.应用实验 完成VGA显示;Web服务器实验;网络文件传输实验;多线程应用实验。 4.扩展应用实验 完成USB摄像头驱动与视频采集;GPS实验;GSM/GPRS通讯;视频播放移植;USB蓝牙设备无线通讯;NFS文件服务器;蓝牙视频文件服务器。 5.QT实验 完成基本嵌入式图形开发环境搭建;“Hello world!”QT初探;创建一个窗口并添加按钮;对象通信:Signal和Slot;菜单和快捷键;工具条和状态栏;鼠标和键盘事件;对话框;QT的绘图;俄罗斯方块;基于QT的GSM手机在嵌入式LINUX下的设计与实现。 二、实验内容 1.人机接口实验 实验十九键盘驱动实验 ?实验目的:矩阵键盘驱动的编写

?实验内容:矩阵键盘驱动的编写 ?作业要求:完成键盘加减乘除运算 ?实验作业源码及注释: #INCLUDE #INCLUDE #INCLUDE #INCLUDE #INCLUDE #INCLUDE #DEFINE DEVICE_NAME “/DEV/KEYBOARD” INT MAIN(VOID){ INT FD; INT RET; UNSIGNED CHAR BUF[1]; INT I,F,J; DOUBLE X; INT A[2]={0}; CHAR PRE_SCANCODE=0XFF; FD=OPEN(DEVICE_NAME,O_RDWR); IF(FD==-1)PRINTF(“OPEN DEVICE %S ERROR\N”,DEVICE_NAME); ELSE{ BUF[0]=0XFF; I=0;F=0; WHILE(1){ READ(FD,BUF,1);

嵌入式实验3按键实验(中断方式)

河南机电高等专科学校《嵌入式系统开发》课程实验报告 系部:电子通信工程系 班级:电信1## 姓名: ###### 学号: 120######

实验三按键实验(中断方式) 一.实验简介 在实验一的基础上,使用按键控制流水灯。 二.实验目的 熟练使用库函数操作GPIO,掌握中断配置和中断服务程序编写方法,掌握通过全局变量在中断服务程序和主程序间通信的方法。 三.实验内容 实现初始化GPIO,并配置中断,在中断服务程序中通过修改全局变量,达到控制流水灯速度及方向。 下载代码到目标板,查看运行结果。 四.实验设备 硬件部分:PC计算机(宿主机)、STM32实验板。 软件部分:PC机WINDOWS系统、MDK KEIL软件、ISP软件。 五.实验步骤 1在实验一代码的基础上,编写中断初始化代码 2在主程序中声明全局变量,用于和中断服务程序通信,编写完成主程序 3编写中断服务程序 4编译代码,下载到实验板 5.单步调试 6记录实验过程,撰写实验报告 六.实验结果及测试 中断方式的按键式实验,是通过配置外部中断寄存器和中断嵌套(NVIC)控制器来实现按键按下控制LED灯亮灭。通过按键中断打断主函数,执行LED1取反一次。 主函数初始化中断配置和LED配置,点亮LED1后一直等待中断,每中断一次,LED1取反一次。

int main(void) { LED_GPIO_Config(); LED1_ON; CLI(); SEI(); EXTI_PA0_Config(); while(1) { } } 中断嵌套控制寄存器的配置为中断嵌套分组1;抢占优先级0;响应优先级0 代码如下: void NVIC_Configuration(void) { NVIC_InitTypeDef NVIC_InitStructure; NVIC_PriorityGroupConfig(NVIC_PriorityGroup_1); NVIC_InitStructure.NVIC_IRQChannel = EXTI0_IRQn; NVIC_InitStructure.NVIC_IRQChannelPreemptionPriority = 0; NVIC_InitStructure.NVIC_IRQChannelSubPriority = 0; NVIC_InitStructure.NVIC_IRQChannelCmd = ENABLE; NVIC_Init(&NVIC_InitStructure); } 外部中断按键的配置源码如下:配置PA0位中断线,并使能AFIO时钟void EXTI_PA0_Config(void) { GPIO_InitTypeDef GPIO_InitStructure; EXTI_InitTypeDef EXTI_InitStructure; RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA | RCC_APB2Periph_AFIO,ENABLE); NVIC_Configuration(); GPIO_InitStructure.GPIO_Pin = GPIO_Pin_0; GPIO_InitStructure.GPIO_Mode = GPIO_Mode_IPD; GPIO_Init(GPIOA, &GPIO_InitStructure); GPIO_EXTILineConfig(GPIO_PortSourceGPIOA, GPIO_PinSource0); EXTI_InitStructure.EXTI_Line = EXTI_Line0; EXTI_InitStructure.EXTI_Mode = EXTI_Mode_Interrupt; EXTI_InitStructure.EXTI_Trigger = EXTI_Trigger_Rising; EXTI_InitStructure.EXTI_LineCmd = ENABLE; EXTI_Init(&EXTI_InitStructure); }

嵌入式实验报告

目录 实验一跑马灯实验 (1) 实验二按键输入实验 (3) 实验三串口实验 (5) 实验四外部中断实验 (8) 实验五独立看门狗实验 (11) 实验七定时器中断实验 (13) 实验十三ADC实验 (15) 实验十五DMA实验 (17) 实验十六I2C实验 (21) 实验十七SPI实验 (24) 实验二十一红外遥控实验 (27) 实验二十二DS18B20实验 (30)

实验一跑马灯实验 一.实验简介 我的第一个实验,跑马灯实验。 二.实验目的 掌握STM32开发环境,掌握从无到有的构建工程。 三.实验内容 熟悉MDK KEIL开发环境,构建基于固件库的工程,编写代码实现跑马灯工程。通过ISP 下载代码到实验板,查看运行结果。使用JLINK下载代码到目标板,查看运行结果,使用JLINK在线调试。 四.实验设备 硬件部分:PC计算机(宿主机)、亮点STM32实验板、JLINK。 软件部分:PC机WINDOWS系统、MDK KEIL软件、ISP软件。 五.实验步骤 1.熟悉MDK KEIL开发环境 2.熟悉串口编程软件ISP 3.查看固件库结构和文件 4.建立工程目录,复制库文件 5.建立和配置工程

6.编写代码 7.编译代码 8.使用ISP下载到实验板 9.测试运行结果 10.使用JLINK下载到实验板 11.单步调试 12.记录实验过程,撰写实验报告 六.实验结果及测试 源代码: 两个灯LED0与LED1实现交替闪烁的类跑马灯效果,每300ms闪烁一次。七.实验总结 通过本次次实验我了解了STM32开发板的基本使用,初次接触这个开发板和MDK KEILC 软件,对软件操作不太了解,通过这次实验了解并熟练地使用MDK KEIL软件,用这个软件来编程和完成一些功能的实现。作为STM32 的入门第一个例子,详细介绍了STM32 的IO口操作,同时巩固了前面的学习,并进一步介绍了MDK的软件仿真功能。

armhelloworld实验.

实验一HelloWorld 一、实验目标: 1.了解实验箱的使用; 2.了解ADS的使用(建立新的工程并正确设置和编译); 3.调试HelloWorld程序,体会整个过程; 4.了解三个警告,如何消除?(选做); 二、任务: 1、给出建立新工程的步骤; 1、首先了解ADS软件使用 ADS非常易于初学者上手,该软件的操作尤为简单,对于一般ARM程序的开发,可以分为以下几个过程:编写ARM代码->译、链接产生可执行二进制代码->利用实验箱上ARM系统自带的Bootloader,通过串口大师把可执行代码通过计算机串口下载到硬件板->实验系统在接受完下载的代码后即自动执行->查看实验结果。 下面详细的讲述如何利用该软件开发适合本实验系统的ARM程序。 1.首先在开始菜单中,点击“程序->ARM Developer Suite V1.2->CodeWarrior for ARM Developer Suite”,即可弹出如图2.1.13所示界面。

图2.1.13 ADS软件界面 2.点击“File->New”,会弹出如图2.1.14所示的建立新工程界面。 3.在Project中选择“ARM Executable Image”选择好路径,并在工程名中输入HelloWorld,后点击【确定】,即出现如图2.1.15所示的空的工程界面。 4.此时的工程是一个空的,必须加入相应的代码才行。首先将实验1文件夹下面的inc文件夹和src文件夹拷贝到刚刚建立的HelloWorld文件夹下面;然后在ADS软件中的HelloWorld工程窗口的空白处点击鼠标右键,选择“Add Files…”,选择刚刚拷贝的src文件夹下面的所有文件,如图2.1.16所示。 5.点击【打开】后,会出现如图2.1.17所示的编译类型对话框。

嵌入式应用开发实验指导书 (1)

实验一基本接口实验(一) [实验设备] 1.JXARM9-2410教学实验箱 2.ADT1000仿真器和ADT IDE集成开发环境 3.串口、并口连接线 [实验目的] 1.掌握ARM的串行口工作原理,编程实现ARM的UART通讯; 2.掌握嵌入式系统中断的处理流程和ARM中断编程; 3.在ADT环境下如何建立工程,对工程进行正确的设置。添加相应文件(汇编、脚本、.c 源文件等) [实验内容一] 实现查询方式串口的收发功能。接收来自串口(通过超级终端)的字符并将接收到的字符发送到超级终端。 [预备知识] 1.了解ADT集成开发环境的基本功能 2.学习串口通讯的基本知识 3. 熟悉S3C2410串口有关的寄存器 [基础知识] 串行通信接口电路组成 1.可编程的串行接口芯片 2.波特率发生器 3.EIA与TTL电平转换器 4.地址译码电路 通信协议: 1.异步协议 2.同步协议 异步串行通讯 异步串行方式是将传输数据的每个字符一位接一位(例如先低位、后高位)地传送。 数据的各不同位可以分时使用同一传输通道,因此串行I/O 可以减少信号连线,最少用一对线即可进行。 接收方对于同一根线上一连串的数字信号,首先要分割成位,再按位组成字符。为了恢复发送的信息,双方必须协调工作。 在微型计算机中大量使用异步串行I/O 方式,双方使用各自的时钟信号,而且允许时钟频率有一定误差,因此实现较容易。但是由于每个字符都要独立确定起始和结束(即每个字符都要重新同步),字符和字符间还可能有长度不定的空闲时间,因此效率较低。 异步串行通信中的字符传送格式

开始前,线路处于空闲状态,送出连续“1”。传送开始时首先发一个“0” 作为起始位,然后出现在通信线上的是字符的二进制编码数据。 每个字符的数据位长可以约定为5位、6位、7位或8位,一般采用ASCII编码。后面是奇偶校验位,根据约定,用奇偶校验位将所传字符中为“1”的位数凑成奇数个或偶数个。也可以约定不要奇偶校验,这样就取消奇偶校验位。 最后是表示停止位的“1”信号,这个停止位可以约定持续1 位、1.5 位或2 位的时间宽度。 至此一个字符传送完毕,线路又进入空闲,持续为“1”。经过一段随机的时间后,下一个字符开始传送才又发出起始位。 每一个数据位的宽度等于传送波特率的倒数。微机异步串行通信中,常用的波特率为110,150,300,600,1200,2400,4800,9600 等。 DB-25 DB-9引脚定义 DB-25 DB-9引脚说明

嵌入式系统实验报告

嵌入式系统实验报告文件排版存档编号:[UYTR-OUPT28-KBNTL98-UYNN208]

大连理工大学 本科实验报告 课程名称:嵌入式系统实验 学院(系):电子信息与电气工程学部 专业:自动化 班级: 0804 学号: 学生姓名:何韬 2011年 11月 18日 大连理工大学实验报告 学院(系):电信专业:自动化班级: 0804 姓名:何韬学号:组: ___ 实验时间: 2011-11-12 实验室: d108 实验台: 指导教师签字:成绩: 实验二ARM的串行口实验 一、实验目的和要求 见预习报告 二、实验原理和内容 见预习报告 三、主要仪器设备

硬件:ARM嵌入式开发平台、用于ARM7TDMI 的JTAG 仿真器、PC机Pentium100 以上、串口线。 软件:PC 机操作系统win98、Win2000 或WinXP 、ARM SDT 或集成开发环境、仿真器驱动程序、超级终端通讯程序。 四、实验步骤 见预习报告 五、核心代码 在主函数中实现将从串口0接收到的数据发送到串口0() int main(void) { char c1[1]; char err; ARMTargetInit(); 通过调用OSTaskCreate()或OSTaskCreateExt()创建至少一个任务; . OSStart(); /ucos-ii/" /* uC/OS interface */ #include "../ucos-ii/add/" #include "../inc/" #include "../inc/sys/" #include "../src/gui/" #include <> #include <>

嵌入式综合实验报告

《嵌入式系统综合实验》报告 学号: 姓名: Shanghai University of Engineering Science School of Electronic and Electrical Engineering

基于STM32的GPS信息显示系统 ——嵌入式系统综合实验报告 班级:0211112 姓名:褚建勤学号:021111228 班级:0211112 姓名:于心忆学号:021111216 班级:0211112 姓名:乐浩奎学号:021111232 一、产品设计要求(产品规格描述) 1 、嵌入式产品名称 GPS信息显示系统 2 、嵌入式产品目的 在学校的生活中,你经常可能需要联系不是同一间宿舍的同学,但是你不能确定他现在在什么地方,这时候全球定位系统(GPS)就可以发挥作用了,但是传统的GPS系统只能提供经纬度信息,不能直观的显示你想要找到人在何处,我们的系统就在传统的GPS的基础上添加了对应位置显示的功能,方便你更方便更快捷的找到你想找的同学 3 、嵌入式产品功能 使用GPS输入用户位置信息 GPS将相关经纬度信息反馈给主处理器 主处理器处理相关位置信息并将信息转换为对应位置在LCD上显示出来 在LCD上输出用户状态信息 4 、嵌入式产品的输入和输出 输入设备:GPS系统 输出设备:LCD 二、产品方案设计(产品设计方案) 1 2 1 )处理器选择 本系统选用基于ARMCortex-M3内核的STM32F103RB嵌入式微控制器作为处理器。 ①选用原因 A 技术因素 工作频率: 最高72MHz。 内部和外部存储器: 128K字节的闪存程序存储器,用于存放程序及数据;多达20K字节的内置SRAM,CPU能以0等待周期访问(读/写)。

arm实验报告最终版

ARM与嵌入式技术 实验报告 专业班级:10通信工程1班 姓名:万洁 学号:100103011125 实验日期:2013年5月28日 指导老师:郑汉麟

1、 通过实验掌握ARM 指令的特点和寻址方式; 2、 掌握简单的ARM 汇编语言的程序设计; 3、 了解集成开发环境 Embest IDE 及其开发软件的应用; 、实验环境 Embest IDE 应用于嵌入式软件开发的新一代图形化的集成开发环境,它包括一套完备 的面向嵌入 式系统的开发和调试工具。其开发软件 Embest IDE for ARM 是集编辑器、编译 器、调试器、工程管理器( projectma nager )于一体的高度集成的窗口环境,用户可以在 Embest IDE 集成开发环境中创建工程、编辑文件、编译、链接、运行,以及调试嵌入式应 用程序。 三、实验步骤 1)新建工程: 运行Embest IDE 集成开发环境,选择菜单项 File 宀New Workspace ,如图一,系统弹 出一个对话框,键入文件名“ wj ”,如图二,点击 0K 按钮。将创建一个新工程,并同时创 建一个与工程名相同的工作区。此时在工作区窗口将打开该工作区和工程 .。 (老师提醒:不要放入Bin 文件夹中) ■ Emb?t QE Pre 亠 Educat 「販]£dii_Vww Buid frtbug D if** Qri+W 诊 Open-" Qrl*O 2)建立源文件: 点击菜单项 File T New ,如图三,系统弹出一个新的文本编辑窗,输入源文件代码。 编辑完后,保存文件“ wj.s ”后缀,如图三,四。 Hr* Open Workspace.? 图一 ■■ rflJO IUU rl jil rd f rfl,rl Clop : h Ho. .end 图 tut vUrl:

嵌入式实验

Part1------安装arm-2007q3-51-arm-none-linux-gnueabi-i686.tar.bz 1、通过Vmware的共享文件加载压缩文件 arm-2007q3-51-arm-none-linux-gnueabi-i686.tar.bz ①首先配置Vmware加载文件所在位置。 ②点击下方的Add按钮,添加文件所在文件夹,一路点击,直至完成,如图所示 2.

①进入linux系统,进入到挂载目录下 ●cd /mnt ②查看挂载目录mnt文件夹下所有目录,看是否有hgfs目录 ●ls ③进入到hgfs下查看,看是否有共享的的D盘 ●cd hgfs ④查看hgfs下文件夹的下的目录 ●Ls /*******************************************************************/ 进入到hgfs下查看,若能查看到对应目录则表示成功,如查看不到请运行下面命令 输入命令 ●cd /usr/bin ●./vmware-config-tools.pl 先后输入Y和N安装虚拟机工具即可 /****************************************************************************/ ⑤进入到挂载目录下的目标文件位置 (即一直进入到arm-2007q3-51-arm-none-linux-gnueabi-i686.tar.bz所在的目录) ●cd D/omap3530Linux/tools ⑥查看:ls ⑦然后输入命令:安装 /*********************************************************

(完整版)2014完整ARM嵌入式系统实验报告

郑州航空工业管理学院 嵌入式系统实验报告 (修订版) 20 – 20第学期 赵成,张克新编著

院系: 姓名: 专业: 学号: 电子通信工程系 2014年3月制

实验一ARM体系结构与编程方法 一、实验目的 了解ARM9 S3C2410A嵌入式微处理器芯片的体系结构,熟悉ARM微处理器的工作模式、指令状态、寄存器组及异常中断的概念,掌握ARM指令系统,能在ADS1.2 IDE中进行ARM汇编语言程序设计。 二、实验内容 1.ADS1.2 IDE的安装、环境配置及工程项目的建立; 2.ARM汇编语言程序设计(参考附录A): (1)两个寄存器值相加; (2)LDR、STR指令操作; (3)使用多寄存器传送指令进行数据复制; (4)使用查表法实现程序跳转; (5)使用BX指令切换处理器状态; (6)微处理器工作模式切换; 三、预备知识 了解ARM嵌入式微处理器芯片的体系结构及指令体系;熟悉汇编语言及可编程微处理器的程序设计方法。 四、实验设备 1. 硬件环境配置 计算机:Intel(R) Pentium(R) 及以上; 内存:1GB及以上; 实验设备:UP-NETARM2410-S嵌入式开发平台,J-Link V8仿真器; 2. 软件环境配置

操作系统:Microsoft Windows XP Professional Service Pack 2; 集成开发环境:ARM Developer Suite (ADS) 1.2。 五、实验分析 1.安装的ADS1.2 IDE中包括和两个软件组件。在ADS1.2中建立类型的工程,工程目标配置为;接着,还需要对工程进行、及链接器设置;最后,配置仿真环境为仿真方式。 2.写出ARM汇编语言的最简程序结构,然后在代码段中实现两个寄存器值的加法运算,给出运算部分相应指令的注释。 ; 文件名:

arm嵌入式实验报告完整版

arm嵌入式实验报告完整版 篇一:ARM嵌入式系统实验报告1 郑州航空工业管理学院 嵌入式系统实验报告 第 赵成,张克新 院姓专学 系:名:业:号:电子通信工程系周振宇物联网工程 121309140 电子通信工程系 XX年3月制 实验一 ARM体系结构与编程方法 一、实验目的 了解ARM9 S3C2410A嵌入式微处理器芯片的体系结构,熟悉ARM微处理器的工作模式、指令状态、寄存器组及异常中断的概念,掌握ARM指令系统,能在ADS1.2 IDE中进行ARM汇编语言程序设计。 二、实验内容

1.ADS1.2 IDE的安装、环境配置及工程项目的建立;2.ARM汇编语言程序设计(参考附录A): (1)两个寄存器值相加;(2)LDR、STR指令操作; (3)使用多寄存器传送指令进行数据复制;(4)使用查表法实现程序跳转;(5)使用BX指令切换处理器状态;(6)微处理器工作模式切换; 三、预备知识 了解ARM嵌入式微处理器芯片的体系结构及指令体系;熟悉汇编语言及可编程微处理器的程序设计方法。 四、实验设备 1. 硬件环境配置 计算机:Intel(R) Pentium(R) 及以上;内存:1GB及以上; 实验设备:UP-NETARM2410-S嵌入式开发平台,J-Link V8仿真器; 2. 软件环境配置 操作系统:Microsoft Windows XP Professional Service Pack 2;集成开发环境:ARM Developer Suite (ADS) 1.2。 五、实验分析 1.安装的ADS1.2 IDE中包括两个软件组件。在ADS1.2

中建立 ARM Executable Image(ARM可执行映像)类型的工程,工程目标配置为 Debug;接着,还需要对工程进行目标设置、语言设置及链接器设置;最后,配置仿真环境为ARMUL仿真方式。 2.写出ARM汇编语言的最简程序结构,然后在代码段中实现两个寄存器值的加法运算,给出运算部分相应指令的注释。 ; 文件名: AREA XTF,CODE,READONLY 声明32位ARM指令 R0arm嵌入式实验报告完整版) ADD R0,R1,R2 3.列写出使用LDR、STR指令的汇编程序,并在关键语句后面给出相应的注释。 AREA XTF,CODE,READONLY ;声明代码段XTFENTRY ;标示程序入口CODE32 ;声明32位ARM 指令START LDR R0,=1 ;加载数据LDR R1,=2LDR R3,=ADDR_1;载符号地址 ADD R2,R0,R1;R2[R3] ;数据空间定义 AREA Data_1,DATA,ALIGN=2 ADDR_1 DCD 0 END ;结束 4.“使用多寄存器传送指令进行数据复制”汇编程序分析。 LDR R0,=SrcData ;

相关文档
相关文档 最新文档