嵌入式系统设计实验一
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汇编语言的最简程序结构,然后在代码段中实现两个寄存器值的加法运算,给出运算部分相应指令的注释。
《嵌入式电子系统设计》课程实验指导书实验1:最小系统实验,(2014.7.11)
实验一最小系统实验一、实验目的熟悉最小系统的硬件构成,掌握复位电路、晶振电路、电源电路(尤其是滤波电容的应用),编写一个例程,并在最小系统上运行;了解嵌入式开发的基本思想和过程。
掌握最小系统的构成,在将来的项目运用中能根据不同的场合选择相应的复位电路。
二、实验原理本实验通过一个简短的 Boot 引导程序介绍 ARM 开发平台的启动过程,同时该引导程序也可其他章节程序引导的示例程序。
本程序主要为了让读者能够清晰理解启动程序的基本架构组成部分以及掌握ARM 引导程序的编写方法。
三、主要实验设备1.硬件:宿主机、ARM教学试验箱;2.软件:Windows操作系统、ADS1.2集成开发环境。
四、实验内容构建最小系统,用示波器观察一下晶振电路的波形,测一下晶振正常工作时的电压。
编写一个例程,编译并运行。
设置ARM仿真器的开发环境。
程序架构如下:1.程序头IMPORT MDCNFG ;声明 MDCNFG(读写寄存器)物理地址0x48000000IMPORT MDREFR ;声明 MDREFR(刷新寄存器)0x48000004IMPORT MDMRS ;声明 MDMRS(模式/设置寄存器 0x48000040IMPORT init_MDCNFG ; 声明 init_MDCNFG 0x02000ac9IMPORT init_MDREFR ; 声明 init_MDREFR 0x0011e018IMPORT init_MDMRS ; 声明 init_MDMRS 0x320032IMPORT StackSvc ; 声明 StackSvc 0xa0600000IMPORT StackIrq ; 声明 StackIrq 0xa0605000IMPORT StackFiq ; 声明 StackFiq 0xa060a000IMPORT StackAbt ; 声明 StackAbt 0xa060e000IMPORT StackUnd ; 声明 StackUnd 0xa0714000IMPORT StackUsr ; 声明 StackUsr 0xa0720000IMPORT mainIMPORT宏通知编译器本源码文件需要引用在其他文件中定义的变量或函数。
嵌入式系统 实验报告
使能 IRQ 中断。
4 装载并使能外中断;
5 选用 DebugInExram 生成目标,然后编译连接工程。
6 选择【Project】->【Debug】,启动 AXD 进行 JTAG 仿真调试。
7 全速运行程序,LED 闪烁;
8 每一次按键 Key,蜂鸣器就会转换静音或鸣响状态。
四.测试数据及运行结果
1
五.总结
1.实验过程中遇到的问题及解决办法;
由于本次实验较简单,且我们之前学习的微机原理课程也进行了流水灯的设
计实验,所以对于本次实验,我完成地很顺利,在实验中没有遇到问题。
2.对设计及调试过程的心得体会。
本次实验是本学期该课程我们进行的第一次实验,总的来说,实验不是很难,
设计过程也相对简单,其主要目的是让我们熟悉一下实验环境,并且能在实验环
6
五.总结 1.实验过程中遇到的问题及解决办法;
实验第一次运行时,蜂鸣器一直处于鸣响状态,及时按了按键,蜂鸣器还是 一直鸣叫,不产生外中断。后来仔细检查了程序,发现原来是忘记使能 EINT0 中 断了,加上 VICIntEnable = 1<<0x0e 代码,程序就能正常运行了。 2. 对设计及调试过程的心得体会。
境下进行简单的实验操作,为之后的实验打下坚实的基础。
六.附录:源代码(电子版)
#include "config.h"
const uint32 LEDS8 = 0xFF << 18;//P1[25:18]控制 LED1~LED8,低电平点亮
const uint32 KEY = 1 << 16;
//P0.16 连接 KEY1
三.方案设计
① 启动 ADS1.2IDE 集成开发环境,选择 ARM Executable Image for lpc2131
嵌入式Linux系统开发教程实验报告
嵌入式实验报告:学号:学院:日期:实验一熟悉嵌入式系统开发环境一、实验目的熟悉Linux 开发环境,学会基于S3C2410 的Linux 开发环境的配置和使用。
使用Linux的armv4l-unknown-linux-gcc 编译,使用基于NFS 方式的下载调试,了解嵌入式开发的基本过程。
二、实验容本次实验使用Redhat Linux 9.0 操作系统环境,安装ARM-Linux 的开发库及编译器。
创建一个新目录,并在其中编写hello.c 和Makefile 文件。
学习在Linux 下的编程和编译过程,以及ARM 开发板的使用和开发环境的设置。
下载已经编译好的文件到目标开发板上运行。
三、实验设备及工具硬件::UP-TECH S2410/P270 DVP 嵌入式实验平台、PC 机Pentium 500 以上, 硬盘10G 以上。
软件:PC 机操作系统REDHAT LINUX 9.0+超级终端(或X-shell)+AMR-LINUX 开发环境。
四、实验步骤1、建立工作目录[rootlocalhost root]# mkdir hello[rootlocalhost root]# cd hello2、编写程序源代码我们可以是用下面的命令来编写hello.c的源代码,进入hello目录使用vi命令来编辑代码:[rootlocalhost hello]# vi hello.c按“i”或者“a”进入编辑模式,将上面的代码录入进去,完成后按Esc 键进入命令状态,再用命令“:wq!”保存并退出。
这样我们便在当前目录下建立了一个名为hello.c的文件。
hello.c源程序:#include <stdio.h>int main() {char name[20];scanf(“%s”,name);printf(“hello %s”,name);return 0;}3、编写Makefile要使上面的hello.c程序能够运行,我们必须要编写一个Makefile文件,Makefile文件定义了一系列的规则,它指明了哪些文件需要编译,哪些文件需要先编译,哪些文件需要重新编译等等更为复杂的命令。
西北农林科技大学嵌入式实验一
信息工程学院嵌入式系统实验报告实验一2410经典Linux系统烧写班级:计算机XXX班学号:XXXXXXXX姓名:XXXXXX指导老师:李长悦一、实验目的windows xp下进行Linux系统烧写即恢复到出厂状态时,需要的文件在光盘中的Linux\img 目录和flashvivi目录下提供。
烧写2410-CL linux操作系统包vivi,kernel,root三个步骤,除此我们还要烧写应用程序,这四个文件分别为:vivi ----linux操作系统启动的bootloader;zImage ----linux操作系统内核;root.cramfs ----根文件系统;yaffs.tar.bz2 ----应用程序压缩包。
二、实验内容1.烧写vivi1.1把并口线插到pc机的并口,并把并口的另一端与实验箱上端的UP-LINK相连,打开2410-CL电源(12V)。
1.2把整个GIVEIO目录(在光盘的img/flashvivi目录下)拷贝到c:/windows下,并把该目录下的giveio.sys文件拷贝到c:/windows/system32/drivers下。
1.3在我的电脑里打开控制面板,选添加硬件,点击“下一步”,如下图所示:选择“是,我已经连接了此硬件”然后点击“下一步”,如下图所示:选中“添加新的硬件设备”然后点击“下一步”,如下图所示:选中“安装我手动从列表选择的硬件”后点击“下一步”,如下图所示:选择“显示所有设备”然后点击“下一步”,如下图所示:选择“从磁盘安装”然后点击“下一步”,如下图所示:选择“浏览”,指定驱动为C:\WINDOWS\GIVEIO\giveio.inf文件,如下图所示:选择giveio.inf文件,然后点击“打开”,如下图所示:然后选择“确定”,如下图所示:点击“下一步”至“完成”即安装好驱动。
如下图所示:1.4在d盘新建一目录bootloader,把sjf2410-s.exe(在flashvivi目录下)和要烧写的vivi,linux 操作系统内核,根文件系统和应用程序压缩包拷贝到该目录下。
电子科技大学微处理器系统结构与嵌入式系统设计实验一
电子科技大学实验报告课程名称微处理器系统结构与嵌入式系统设计实验名称ARM汇编基础实验任课教师 XXX 实验教师 XXX姓名黑XX学号2012XXXXXXXXX 实验地点 XXXXXXX 分组号 X组时间 XXXX年 X月X日XX:XX~XX:XX一、实验目的1.掌握ARM汇编指令。
2.学习掌握C与汇编混合编程基础。
3.熟练使用ARM调试工具RVDS进行调试操作。
二、实验内容1.熟悉ARM汇编。
2.用ARM汇编实现1+2+...+N。
3.C调用汇编实验(实现字符串拷贝功能)。
4.汇编调用C实验。
5.ARM汇编实现冒泡算法(选做)三、实验步骤1)用ARM汇编实现1+2+….n的运算。
在sum.s文件中,添加如下代码:SUN_L1ADD R0,R1BVS SUM_ENDCMP R1,R2BHS SUM_ENDADD R1,#1B SUN_L12)理解C和汇编,并用汇编程序实现字符串拷贝,并在C程序中调用该汇编程序。
在汇编文件testfile1. s中添加两行汇编代码,实现:拷贝源字符串的一个字节到R2中,将拷贝的字节复制到目标空间。
关键代码如下:strcopy;------------------------------------------;用汇编实现字符串拷贝LDRB R2,[R1],#1 ;R1对应源字符串首地址,利用寄存器间接寻址读取字符到R2STRB R2,[R0],#1 ;R0对应目的字符串首地址,利用寄存器间接寻址保存字符CMP R2,#0BNE strcopyMOV PC,LR;------------------------------------------END ;文件结束3)在汇编中调用C函数。
在汇编文件testfile2.s中相应位置添加汇编代码,通过调用c函数g()实现1+2+3+glovb1,结果存在R8中。
关键代码如下:STR LR,[SP,#-4]!MOVS R0,#1MOVS R1,#2MOVS R2,#3LDR R4,=glovb1LDR R3,[R4] ;传递参数BL gMOV R8,R0ADD sp,sp,#4LDR pc,[sp],#4中,通过伪指令EQU,定义N的值。
嵌入式系统设计(实验一)
工业控制
嵌入式系统被广泛应用于工业 自动化领域,如生产线控制、 机器人控制等。
医疗设备
嵌入式系统可以实现医疗设备 的自动化控制和数据采集,如 医疗监护仪、输液泵等。
其他领域
嵌入式系统还可以应用于通信、 能源、环保等领域,发挥着越 来越重要的作用。
03
硬件平台搭建与配置
硬件平台选择
ARM开发板
传感器与执行器
汇编语言
针对特定硬件平台,使用汇编语言可 以实现更高效的代码执行和更精确的 硬件控制。
软件架构设计
分层架构
将系统划分为多个层次,每个层次负责特定的功能,降低系统复 杂性并提高可维护性。
事件驱动架构
通过事件触发相应的处理函数,实现模块间的解耦和异步通信。
微内核架构
将核心功能集中在微内核中,通过插件或模块扩展系统功能,提高 灵活性和可扩展性。
嵌入式系统设计(实验一)
• 实验目的与要求 • 嵌入式系统概述 • 硬件平台搭建与配置 • 软件设计与实现 • 系统测试与验证 • 实验总结与展望
01
实验目的与要求
实验目的
掌握嵌入式系统基本概念
01
通过实验了解嵌入式系统的定义、特点、应用领域等基本概念。
熟悉嵌入式开发环境
02
学习搭建嵌入式开发环境,包括硬件平台、操作系统、开发工
THANKS
感谢观看
提交实验报告
按时提交完整的实验报告,展示实验成果和 收获。
02
嵌入式系统概述
嵌入式系统定义
01
嵌入式系统是一种专用的计算机 系统,它被设计为控制、监视或 者辅助操作机器和设备的运行。
02
与通用计算机系统不同,嵌入式 系统通常被嵌入到特定的设备中 ,执行特定的任务,并且不需要 人工干预。
西工大嵌入式实验指导书-VxWorks
《嵌入式计算机系统》VxWorks实验指导书编写:魏晓敏西北工业大学2013年11月实验一基于VxWorks的多任务设计第一部搭建VxWorks开发环境VxWorks 是专门为实时嵌入式系统设计开发的操作系统软件,为程序员提供了高效的实时任务调度、中断管理、实时的系统资源以及实时的任务间通信。
VxWorks是种功能强大而且复杂的操作系统,仅仅依靠人上编程调试,很难发挥它的功能并设计出可靠、高效的嵌入式系统,必须有与之相适应的开发工具。
Tornado就是为开发基于VxWorks 的应用系统而提供的集成开发环境,Tornado中包含的工具管理软件,可以将用户自己的代码与VxWorks 的核心系统有效地组合起束,从而轻松、可靠地完成嵌入式应用厅发。
Tornado是Windriver 公司开发的嵌入式软件开发环境。
Tornado开发环境的最新版本是2.2 ,它在延续了Tornado2.0 开发环境的基础上,增加了更多易于使用、性能优异的工具,因此在商业上取得了较大成功,获得了用户的好评。
Tornado开发环境是嵌入式实时领域里最新的开发调试环境,是编写嵌入式实时应用程序的完整的软件开发平台。
它给嵌入式系统开发人员提供了一个不受目标机资源限制的超级开发和调试环境a。
它包含3 个高度集成的部分:●运行在宿主机和目标机上的强有力的交叉开发工具和实用程序●运行在目标机上的高性能、可裁剪的实时操作系统VxWorks●连接宿主机和目标机的多种通讯方式,如以太网、串u线、ICE 或ROM 仿真器VxWorks的开发环境为Tornado,我们实验室用的是Tornado2.2。
包括Wind_River_tornado2.2.1_vxworks5.5.1 和Wind_River_vxworks5.5.1_BSP_drivers 两部分,需要分别安装,安装的顺序是先安装VxWorks5.5.1,再安装BSP包。
1.1Tornado安装步骤1.1.1 获取Tornado安装文件Tornado安装文件,包括 TORNADO2.2 和BSP的文件,可以从网上下载(/ShowFile.asp?FileID=62525)。
嵌入式实验报告
实验一 ARM汇编语言程序设计一、实验目的1.了解IAR Embedded Workbench 集成开发环境2.掌握ARM汇编指令程序的设计及调试二、实验设备1.PC操作系统WIN98或WIN2000或WINXP,ADSI.2集成开发环境,仿真驱动程序三、实验内容1.熟悉IAR Embedded Workbench 集成开发环境2.理解下列程序,新建工程,加入下面的程序,并观察实验结果,解释程序实现的功能分析:该程序实现的功能是程序功能:Y = A*B+C*D+E*F程序代码:AREA Examl, CODE,READONLY ;定义一个代码段ENTRY ;程序入口MOV R0,#0;设置R0寄存器的值为0MOV R8,#0;设置R8寄存器的值为0ADR R2,N;将R2寄存器的值设为数据域N的地址LDR R1,[R2];将以R2的值为地址的数据读入R1MOV R2,#0;设置R2的值为0ADR R3,C; 将R3寄存器的值设为数据域C的地址ADR R5,X; 将R5寄存器的值设为数据域X的地址LOOPLDR R4,[R3,R8];将R3+R8的数据读入R4LDR R6,[R5,R8];将R5+R8的数据读入R6MUL R9,R4,R6;R9 = R4*R6ADD R2,R2,R9;R2 = R2+R9ADD R8,R8,#4;R8 = R8+4ADD R0,R0,#1;R0 = R0+1CMP R0,R1;比较R0和R1的值BLT LOOP;R0<R1的话执行循环N DCD 0X03;C DCD 0X01,0X02,0X03,0X04,0X05,0X06;X DCD 0X01,0X02,0X03,0X04,0X05,0X06;END程序结果:各个寄存器的结果执行结果如下:3.实现1+2+3+4+····+100,求的值,并保存在地址0x90018的地址里面程序代码:MOV R0,#100;设置R0寄存器的值为100LDR R2,=0X90018;设置R2寄存器指向地址0x90018MOV R1,#0;设置R1的值为0MOV R3,#0;设置R3的值为0LOOPADD R3,R3,R0;R3 = R3+R0SUB R0,R0,#1;R0 = R0-1CMP R0,R1;将R0和R1的值比较BNE LOOP;不相等的话继续执行循环STR R3,[R2];将R3的值装入到R2指向的地址块中。
嵌入式系统原理与应用实验指导书(合稿+习题)
嵌入式系统原理与应用实验指导书南航金城学院2013.2目录目录 (1)第一部分试验箱硬件结构 (2)第二部分实验 (11)实验一ADS1.2集成开发环境练习 (11)实验二汇编指令实验1 (17)实验三汇编指令实验2 (20)实验四汇编指令实验3 (23)实验五ARM微控制器工作模式实验 (28)实验六 C语言程序实验 (33)实验七 C语言调用汇编程序实验 (36)实验八GPIO输出控制实验 (39)实验九GPIO输入实验 (46)实验十外部中断实验 (50)实验十一UART通讯实验 (56)实验十二I2C接口实验 (64)实验十三定时器实验 (75)实验十四PWM DAC实验 (81)实验十五ADC实验 (87)实验十六RTC实验 (94)实验十七步进电机控制实验 (101)实验十八直流电机控制实验 (105)附录1 DeviceARM2410 专用工程模板 ..................................................... 错误!未定义书签。
第一部分试验箱硬件结构MagicARM2410教学实验开发平台是一款可使用μC/OS-II、Linux和WinCE操作系统、支持QT、MiniGUI图形系统、集众多功能于一身的ARM9教学实验开发平台。
采用Samsung公司的ARM920T内核的S3C2410A微处理器,扩展有充足的存储资源和众多典型的嵌入式系统接口。
MagicARM2410实验箱参考如图1.1所示。
图1.1 MagicARM2410实验箱外观图MagicARM2410实验箱功能框图如图1.2所示。
图1.2 MagicARM2410实验箱功能框图1.1 S3C2410A芯片简介S3C2410A是Samsung公司推出的16/32位RISC处理器(ARM920T内核),适用于手持设备、POS机、数字多媒体播放设备等等,具有低价格、低功耗、高性能等特点。
北邮嵌入式系统设计实验-实验报告
北邮嵌入式系统设计实验-实验报告嵌入式试验报告学院:xxx班级:xxx学号:xxx姓名:xxx成员:xxx一、基础学问部分1.多线程试验本章主要讲解线程的概念和线程间的同步方式。
试验一主要介绍线程的概念和线程的创建,试验二、试验三、试验四分离介绍了信号量、互斥锁、条件变量的作用和使用。
1.1 线程的介绍线程,有时被称为轻量级进程(Lightweight Process,LWP),是程序执行流的最小单元。
线程是程序中一个单一的挨次控制流程。
进程内一个相对自立的、可调度的执行单元,是系统自立调度和分派CPU 的基本单位指运行中的程序的调度单位。
在单个程序中同时运行多个线程完成不同的工作,称为多线程。
线程是允许应用程序并发执行多个任务的一种机制,是程序运行后的任务处理单元,也是SylixOS操作系统任务调度的最小单元。
在多核CPU中,同时可以有多个线程在执行,实现真正意义上的并行处理。
线程入口函数是一个能够完成特定任务的函数,因此线程入口函数的编写上与一般函数没有太多区分。
线程的创建函数如下:●创建线程失败,函数返回非0的错误代码,胜利返回0;●*thread pthread_t类型的缓冲区,保存一个线程的线程ID;●*attr 设置线程属性,设置为NULL标识创建的新线程使用默认属性;●*(*start_routine) 线程入口函数函数名●*arg 向所创建线程传入的参数1.2 信号量的概念信号量(Semaphore),有时被称为信号灯,是在多线程环境下使用的一种设施,是可以用来保证两个或多个关键代码段不被并发调用。
在进入一个关键代码段之前,线程必需猎取一个信号量;一旦该关键代码段完成了,那么该线程必需释放信号量。
其它想进入该关键代码段的线程必需等待直到第一个线程释放信号量。
信号量是一个在进程和线程中都可以使用的同步机制。
信号量类似于一个通知,某个线程发出一个通知,等待此通知的线程收到通知后,会执行预先设置的工作。
嵌入式系统实验报告
嵌入式系统设计实验报告班级: 20110612学号: ***********名:***成绩:指导教师:武俊鹏、刘书勇1. 实验一1.1 实验名称博创UP-3000实验台基本结构使用方法1.2 实验目的1.熟悉嵌入式系统开发式流程概述。
2.熟悉UP-net3000实验平台的核心硬件电路和外设。
3.熟悉ARM JTAG的安装与使用。
1.3 实验环境硬件:ARM 嵌入式开发平台、用于ARM7TDMI的JTAG仿真器、PC 机Pentium100以上、串口线。
软件:PC机操作系统win98、Win2000或WinXP、ARM SDT 2.51或ADS1.2集成开发环境、仿真器驱动程序、超级终端通讯程序。
1.4 实验内容及要求1.熟悉嵌入式系统开发式流程概述。
2.熟悉UP-net3000实验平台的核心硬件电路和外设。
3.熟悉ARM JTAG的安装与使用。
1.5 实验设计与实验步骤1.新建超级终端2.选择ARM 开发实验台串口。
完成新建超级终端的设置以后,可以选择超级终端文件菜单中的保存,将当前设置3.保存为一个特定超级终端到桌面上,以备后用。
用串口线将PC机串口和平台UART0 正确连接后,就可以在超级终端上看到程序输出的信息了。
4.启动开发板,按住任意键,使开发板进入BIOS设置状态。
5.在超级终端的界面上,显示BIOS版本信息,以及相应的测试指令。
操作时,要在PC机上输入小写的字母快捷键,进入到相应的功能中去。
6.按照超级终端上的提示信息,进行功能的测试。
1.6 实验过程与分析本次实验操作起来并不困难,因为此次实验属于验证型实验,按照实验资料所给的提示信息,以上面的步骤,即可得到实验的结果。
进入到BIOS界面后,按照超级终端上的提示信息来进行功能1.7 实验结果总结在实验过程中,我们进行的很顺利,没有遇到什么问题,在超级终端界面,按提示的快捷键来测试对应的功能。
如e:测试由ZLG7289 驱动的LED 显示,共分3 步,请看超级终端提示按任意键继续,同时观察LED 的变化,最后返回主菜单。
嵌入式系统实验报告-1-外部中断
《嵌入式系统技术》实训报告1、实验目的z了解S3C2440A 外部中断的工作原理。
z掌握S3C2440A 外部中断的使用方法。
2、实验设备z PC 机、Multi-ICE 仿真器、2440A 实验箱。
3、实验内容z通过外部K1、K2、K3、K4、K5、K7 按键触发外部中断E INT1、EINT2、EINT3、EINT4、EINT5、EINT74、实验原理4.1 ARM 的异常中断类型在嵌入式系统中外部设备的功能实现主要是靠中断机制来实现的。
中断功能可以解决CPU 内部运行速度远远快于外部总线速度而产生的等待延时问题。
ARM 提供的FIQ 和IRQ 异常中断用于外部设备向C PU 请求中断服务,一般情况下都是采用I RQ 中断。
七种异常中断中断过程框图4.2 异常中断响应过程和返回过程异常中断的响应过程:1).保存处理器当前状态寄存器C PSR 的值到备份程序状态寄存器S PSR 中。
2).设置但前程序状态寄存器CPSR 的值,其中包括:设置CPSR 响应位的值,使处理器进入特定的处理器模式;按要求屏蔽中断,通常应该屏蔽I RQ 中断。
在F IQ 中断时屏蔽F IQ 中断。
3).设置L r 寄存器。
将相应中断模式的L r 寄存器的值设为异常中断的返回地址。
4).处理程序计数器PC,将PC 值设为相应的中断向量的地址,从而实现跳转以执行中断服务程序。
异常中断的返回当处理器执行完以上流程之后,处理器已经从中断向量进入异常处理的状态。
异常中断处理完毕之后,在异常中断程序的末端,处理器进入异常中断的返回状态,其流程如下:1).恢复状态寄存器。
将保存的备份程序状态寄存器SPSR 值赋给当前程序状态寄存器CPSR。
2).将返回地址赋值到程序计数器(PC)。
这样程序将返回到异常中断产生的下一条指令或出现问题的指令处执行。
需要注意的是:对于不同的异常中断,其返回地址的计算方法也是不同的,IRQ 和F IQ 异常中断产生时,程序计数器PC 已经更新,而SWI 中断和未定义指令中断时由当前指令自身产生的,程序计数器P C 尚未更新,所以要计算出下一条指令的地址来执行返回操作;指令预取指中指异常中断和数据访问中断要求,返回到出现异常的执行现场,重新执行操作。
嵌入式系统开发实验报告
4. 操作Android模拟器
5. 使用运行(Run)模式运行
三、实验设备:
1. PC计算机
2. JDK安装包
3. Eclipse安装包
4. Android SDK安装包
5. ADT插件
四、实验内容
初步了解android project建立过程以及如何运行模拟器,对android的运行原理进行简单了解;
实验时间:2015.10.8指导教师:时振涛
实验二:Activity生命周期程序设计
一、实验目的和要求
使学生深入了解Android组件的生命周期中各状态的变化关系。通过程序设计,掌握Activity的三种生命周期:全生命周期、可视生命周期和活动生命周期;每种生命周期中包含的不同的事件回调函数,以及它们的作用和调用顺序,深入理解Activity的生命周期过程。
}
@Override
protected void onRestart() {
super.onRestart();
Log.d("TAG", "Main-onRestart");
}
}
2.SecondActivity.java
package com.sunwei.study;
public class SecondActivity extends AppCompatActivity {
android:theme="@style/AppTheme">
<activity
android:name="com.example.activity_demo.MainActivity"
android:label="@string/app_name">
嵌入式系统实验报告
嵌入式系统实验报告一、实验目的本次嵌入式系统实验的主要目的是深入了解嵌入式系统的基本原理和开发流程,通过实际操作和项目实践,提高对嵌入式系统的设计、编程和调试能力。
二、实验设备与环境1、硬件设备嵌入式开发板:_____计算机:_____调试工具:_____2、软件环境操作系统:_____开发工具:_____编译环境:_____三、实验内容1、基础实验熟悉开发板的硬件结构和接口,包括处理器、存储器、输入输出端口等。
学习使用开发工具进行程序编写、编译和下载。
2、中断实验了解中断的概念和工作原理。
编写中断处理程序,实现对外部中断的响应和处理。
3、定时器实验掌握定时器的配置和使用方法。
利用定时器实现定时功能,如周期性闪烁 LED 灯。
4、串口通信实验学习串口通信的协议和编程方法。
实现开发板与计算机之间的串口数据传输。
5、 ADC 转换实验了解 ADC 转换的原理和过程。
编写程序读取 ADC 转换结果,并进行数据处理和显示。
四、实验步骤1、基础实验连接开发板与计算机,打开开发工具。
创建新的项目,选择合适的芯片型号和编译选项。
编写简单的程序,如控制 LED 灯的亮灭,编译并下载到开发板上进行运行和调试。
2、中断实验配置中断相关的寄存器,设置中断触发方式和优先级。
编写中断服务函数,在函数中实现相应的处理逻辑。
连接外部中断源,观察中断的触发和响应情况。
3、定时器实验初始化定时器相关的寄存器,设置定时器的工作模式和定时周期。
在主程序中启动定时器,并通过中断或查询方式获取定时时间到达的标志。
根据定时标志控制 LED 灯的闪烁频率。
4、串口通信实验配置串口相关的寄存器,设置波特率、数据位、停止位等参数。
编写发送和接收数据的程序,实现开发板与计算机之间的双向通信。
使用串口调试助手在计算机上进行数据收发测试。
5、 ADC 转换实验配置 ADC 模块的相关寄存器,选择输入通道和转换精度。
启动 ADC 转换,并通过查询或中断方式获取转换结果。
嵌入式系统实验报告
嵌入式系统实验报告学院:计算机科学与工程姓名:学号:______________专业:指导老师:完成日期:实验一:流水灯案例、8位数码管动态扫描案例一、实验目的1.1进一步熟悉Keil C51集成开发环境调试功能的使用;1.2学会自己编写程序,进行编译和仿真测试;1.3利用开发板下载hex文件后验证功能。
二、实验原理2.1:实验原理图2.2:工作原理2.2.1:流水灯电路中有LO,1,L2,L3,4,L5,L6,L7 共八个发光二极管,当引脚LED_ SEL输入为1,对于A、B、C、D、E、F、G、H引脚,只要输入为1,则点亮相连接的发光二极管。
A~H引脚连接STM32F108VB芯片的PE8~PE15,程序初始化时,对其进行初始设置。
引脚LED_ SEL 为1时,发光二极管才工作,否则右边的数码管工作。
注意,LED SEL 连接于PB3,该引脚具有复用功能,在默认状态下,该引脚的I0不可用,需对AFIO_ MAPR寄存器进行设置,设置其为10可用。
2.2.2:8位数码管数码管中的A~G、DP段分别连接到电路图中的A~G、H线上,当某段上有一-定的电压差值时,便会点亮该段。
当E3输入为1,也就是LED_ SEL输入为0时,根据SELO~SEL2的值确定选中的数码管,即位选,再根据A~H引脚的高低电平,点亮对应段,即段选。
三、实验结果3.1:流水灯对于给出的流水灯案例,下载HEX文件后,在开发板上可观察到L0-L7从左至右依次点亮,间隔300ms。
当全部点亮八个发光二极管后,八个发光二极管同时熄灭,间隔300ms后,发光二极管再次从左至右依次点亮。
如此反复循坏。
3.2:8位数码管对于给出的8位数码管动态扫描案例,下载后,在开发板上可观察到8个数码管从左至右依次显示对应的数字,且每一个数码显示的数字在1-9之间循环。
可以通过加快扫描频率,使得八位数码管在人眼看上去是同时显示。
在后续的案例中可以看到该现象。
基于STM32的嵌入式系统设计实验_实验指导书
实验指导书(实验)课程名称:基于STM32的嵌入式系统设计实验电子科技大学教务处制表实验一 电路板焊接与调试一.实验简介完成实验板上部分元件的焊接,焊接完成后进行基本测试。
二.实验目的及原理掌握STM32F103实验板的基本原理,掌握焊接电路板的基本技能,掌握下载测试程序的基本方法。
原理:详细内容参考教材《基于STM32的嵌入式系统原理与设计》 MCU 和周边电路如图为MCU 及其周边电路。
图1 MCU 及其周边电路3.启动配置2.复位电路1.唤醒电路4.高速晶振电路7.AD 输入8.低速晶振电路5.AD 参考 电路6.后备电池1.唤醒电路,高有效,不按时接220K电阻下拉。
2.复位电路,低有效。
带RC启动复位。
3.配置启动,用跳线选择BOOT1和BOOT0接高电平或低电平。
4.高速晶振电路,采用8M晶振,在STM32内部倍频为72M。
5.AD参考电路,采用LC滤波,可跳线选择直接接VCC或通过TL431稳压电路产生的参考电压。
6.后备电池。
可通过跳线选择直接接VCC或电池。
7.AD输入,可选择使用RC滤波,共8路。
8.低速晶振电路,选用32.768kHz晶振,为产生准确的串口波特率。
USB转串口电路USB转串口电路可以方便没有串口的笔记本电脑用户通过USB接口下载代码到FLASH 中,及进行RS232串行通信。
图2 USB转串口接口电路USB转串口芯片是CP2102,该芯片稳定性较好。
当其正常工作的时候,灯LED6亮。
该芯片DP/D+引脚连MINI USB接口的脚3,DM/D-引脚连MINI USB接口的脚2,为一对USB 输入输出线。
TXD与RXD引脚接MCU的PA10(USART1_RX)和PA9(USART1_TX)。
I2C接口电路本书选择的EEPROM是AT24C02是256字节的电可擦出PROM,通过I2C协议与STM32进行通信,连接十分简单。
EEPROM虽然容量只有256字节,但是读写比较方便,与MCU 连线少,被广泛的使用在智能仪器、汽车电子、工业控制、家用电器等场合。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
“嵌入式系统”实验教案
实验一 LED跑马灯实验
一、实验目的
1.熟悉RealView MDK集成环境的使用方法;
2.学习ARM9实验平台的使用方法;
3.学习使用嵌入式系统开发的方法;
4.掌握ARM 的基本I/O口的使用。
二、实验设备
1.PC 微机一台;
2.Super ARM 实验箱一台;
3.U-Link2仿真器一只。
三、实验原理
1. RealView MDK介绍
连接好Ulink仿真器后的界面(详细操作见实验步骤):
2. S3C2410的通用I/O口(GPIO)原理
S3C2410共有117只多功能输入/输出管脚,它们分别为:–GPA口:23只输出口
–GPB口:11只输入/输出口
–GPC口:16只输入/输出口
–GPD口:16只输入/输出口
–GPE口:16只输入/输出口
–GPF口:8只输入/输出口
–GPG口:16只输入/输出口
–GPH口:11只输入/输出口
S3C2410的LED连接图(GPF4~7):
–
端口控制寄存器(GPFCON)
–
–GPF[4:7]为输出,则GPFCON=0101 0101 xxxx xxxx
设置GPF[7:4] (LED[4:1])输出功能的代码:rGPFCON = (rGPFCON & 0x00ff) | 0x5500;
端口数据寄存器(GPFDAT):(每位对于一个引脚,1高电平,0低电平)
–
–LED输出走马灯的代码:rGPFDAT = (rGPFDAT & 0x0f) | ((~nLED & 0xf)<<4);
四、实验步骤
1、RealView MDK的安装
下载评估版本的RealView MDK 软件,它的安装和其它软件的安装没有太大的区别,按照提示一步步安装即可。
如果是完整版软件还需要利用光盘中的PSN 号到KEIL 网上申请LIC 后才能使用。
实验室计算机已安装Keil RealView MDK(程序->Keil uVision4):
2、建立工程文件夹、启动RealView MDK、工程创建和启动代码配置
z在E:盘目录下建立工程文件夹(如:exp1)。
并将“嵌入式系统实验一”文件夹内的“2410addr.h”;“option.h”;“SDRAM.ini”三个文件拷贝至工
程文件夹(e:\exp1)内。
z启动RealView MDK,选择菜单Project->New uVision Project,指定工程的保存路径(e:\exp1),并给新工程命名为LED.uvproj,单击“保存”按钮。
注:工程名与生成 调试文件关联,故最好不要改变,或改变工程名后再修改SDRAM.ini 内容至一致。
z在自动弹出的器件选择窗口(Select Device for Target ‘Target 1’)中选择该工程所对应的处理器型号(本例为Samsung 公司的S3C2410A),并单击“确定”按钮,
如图6.17 所示。
在弹出6.18 所示的启动代码生成对话框时,选择 “是”按钮,此时将在LED 工程中自动生成S3C2410A 的启动代码。
(1)选择器件(Samsung S3C2410A)
(2)添加启动代码
(2)对启动代码进行配置,全部除去勾选项(否则可能导致调试时不稳定)
(3)编辑代码,另存为led.c 文件,并添加到工程中
选择菜单File->New…创建新文件(缺省为text1*),
编辑代码:
#include "2410addr.h"
int main(void){
unsigned int i, nLED;
rGPFCON = (rGPFCON & 0x00ff) | 0x5500; //设置GPF[7:4] (LED[4:1])为输出功能 while (1){
for (nLED = 1; nLED < 16; nLED <<= 1){ //nLED 左移位
rGPFDAT = (rGPFDAT & 0x0f) | ((~nLED & 0xf)<<4); //输出
for (i = 0; i < 200000; i++); //延时
}
}
}
将代码另存为LED.c 文件:
将LED.c添加到工程中
(4)对工程属性进行设置
选择菜单Project->Options for target ‘target 1’或单击工程属性快捷键,打 开工程属性设置窗口,
z 设置
Target 项:
SDRAM 起始地址为0x3000 0000,大小64MByte(0x400 0000)
设置ROM1: Start=0x3000000;Size=0x1000000; 并选中Startup
设置仿真调试等控制和指定装载调试脚本文件。
Use:ULink ARM Debugger (注:
Initialization File 项的SDRAM.ini 文件为调试脚本,需位于该工程目录下)。
工程属性的其它选项为默认设置。
并查看SDRAM.ini内容:...
FUNC void Setup (void) {....
}
g, main // Run to main function
点击进行配置
选择菜单Project->Build all target file 或快捷键,对整个工程进行编译链接
点击进行编译
选择菜单Debug->Start/Stop Debug Session,或者点击快捷键,如果顺利将进入如下图所示的调试窗口。
切换到混合模式查看时,将出现如图所示的汇编模式窗口,此时应特别关注PC 指向的地址(0x30000158)在SDRAM 内存区域
选择菜单Debug->Start/Stop Debug Session,或者点击快捷键,如果顺利将进入如下图所示的调试窗口。
切换到混合模式查看时,将出现如图所示的汇编模式窗口,此时应特别关注PC 指
向的地址(0x30000158)在SDRAM 内存区域
(7)观察运行结果
单步step 、运行run和停止stop观察LED灯的亮灭情况(先亮红灯,后亮绿灯)。
(8)修改LED.c代码为LED_rev.c,在工程中以LED_rev.c替换LED.c,重新编译调试观察运行结果:
(a)使走马灯反向转动(先亮绿灯,后亮红灯)LED_rev.c:。
#include "2410addr.h"
int main(void){
unsigned int i, nLED;
rGPFCON = (rGPFCON & 0x00ff) | 0x5500; //设置GPF[7:4] (LED[4:1])为输出功能
while (1){
for (nLED = 8; nLED >=1; nLED >>= 1){ //nLED 左移位 0B0000,1000 >>=1
rGPFDAT = (rGPFDAT & 0x0f) | ((~nLED & 0xf)<<4); //输出
for (i = 0; i < 200000; i++); //延时
}
}
}
(b)使LED灯快速双闪LED_db.c
#include "2410addr.h"
int main(void){
unsigned int i, nLED;
rGPFCON = (rGPFCON & 0x00ff) | 0x5500; //设置GPF[7:4] (LED[4:1])为输出功能
while (1){
rGPFDAT = rGPFDAT & 0x0f; // GPF[7:4]=0x0;LED灯亮
for (i = 0; i < 200000; i++); //延时
rGPFDAT = rGPFDAT| 0xf0; // GPF[7:4]=0xf;LED灯灭
for (i = 0; i < 200000; i++); //延时
}
}
(c)自行设计LED灯亮灭方式,如变速闪亮、方向轮换等
** 不能顺利进入调试状态的问题
当进入Debug 时,可能便没有这么顺利,不能正常的将PC 指针指向main 函数的起始代码,有时一直会处在全速运行状态,当点击Stop 时PC 已指向未知地址,这个LED 例子也将出现这种问题。
退出Debug 调试状态,重新配置启动代码,将时钟管理、中断向量表、看门狗、内存控制和I/O 等可选项都暂时去掉以简化启动代码,具体原因可以分析生成的启动代码S3C2410A.s 文件。
图中的5 个可选项分别对应代码中的CLK_SETUP、IntVT_SETUP、WT_SETUP、MC_SETUP、
PIO_SETUP 常量定义值。