嵌入式系统概论 实验三

合集下载

嵌入式系统实验报告

嵌入式系统实验报告

嵌入式系统实验报告在本学期的嵌入式系统课程中,我与我的实验伙伴进行了多次实验。

在这篇报告中,我将分享我们实验的过程和结果。

实验一:GPIO控制LED灯在这个实验中,我们使用了Raspberry Pi 3B+开发板和一根杜邦线。

我们在电路板上将一盏LED灯与GPIO引脚连接起来,并编写了一个程序来控制这个引脚的电平状态。

在这个实验中,我们学习了GPIO的基本概念以及如何使用Python编程语言编写GPIO控制程序。

我们成功地让LED灯在不同的时间间隔内闪烁,并且了解了如何使用GPIO.setup()和GPIO.output()函数来控制GPIO引脚的输入和输出。

实验二:串口通信在第二个实验中,我们使用了两个Raspberry Pi 3B+开发板和两根串口线。

我们连接了两个板子的GPIO引脚,使得它们可以通过串口进行通信。

我们使用Python编写了两个程序来进行通信。

一个程序将发送一条消息,另一个程序将接收这个消息并将其打印出来。

通过使用串口通信,我们学会了如何使用Python编写程序来完成数据交换,并掌握了串口通信的基本概念。

实验三:Pi camera模块在第三个实验中,我们使用了Pi camera模块和一个Raspberry Pi 3B+开发板。

我们将摄像头连接到开发板上,并编写了一个程序来捕捉摄像头图像。

我们学习了如何使用Python编程语言来控制Pi camera模块,包括如何设置摄像头参数并如何捕捉静态图像。

我们还尝试了使用OpenCV库来处理图像。

实验四:蓝牙控制在最后一个实验中,我们使用了一个蓝牙透传模块、Raspberry Pi 3B+开发板和一些电路元件。

我们将蓝牙透传模块连接到GPIO引脚,并编写了一个程序来通过蓝牙信号控制电机。

在这个实验中,我们学习了如何使用蓝牙模块进行无线控制。

我们通过使用Python编写控制程序,成功地将蓝牙信号转换成GPIO引脚的电平信号来控制电机。

总结在这个嵌入式系统的实验中,我们学习了许多关于嵌入式系统的知识和技能。

嵌入式实验报告总结

嵌入式实验报告总结

嵌入式实验报告总结嵌入式实验报告总结近年来,嵌入式系统在各个领域中得到了广泛的应用。

嵌入式系统是指将计算机系统嵌入到其他设备或系统中,以实现特定功能的一种计算机系统。

在本次嵌入式实验中,我深入学习了嵌入式系统的原理和应用,并通过实际操作,加深了对嵌入式系统的理解。

实验一:嵌入式系统的基本概念和发展历程在本实验中,我们首先了解了嵌入式系统的基本概念和发展历程。

嵌入式系统的特点是紧凑、高效、实时性强,并且适用于各种各样的应用场景。

通过学习嵌入式系统的发展历程,我们了解到嵌入式系统在不同领域的应用,如智能家居、医疗设备、汽车电子等。

这些应用领域的嵌入式系统都有着各自的特点和需求,因此在设计嵌入式系统时需要根据具体应用场景进行优化。

实验二:嵌入式系统的硬件平台与软件开发环境在本实验中,我们学习了嵌入式系统的硬件平台和软件开发环境。

硬件平台是嵌入式系统的基础,包括处理器、内存、外设等。

而软件开发环境则提供了开发嵌入式系统所需的工具和库函数。

我们通过实际操作,搭建了嵌入式系统的硬件平台,并使用软件开发环境进行程序的编写和调试。

通过这个实验,我深刻理解了硬件平台和软件开发环境对嵌入式系统的影响,以及它们之间的协同工作。

实验三:嵌入式系统的实时操作系统在本实验中,我们学习了嵌入式系统的实时操作系统。

实时操作系统是嵌入式系统中非常重要的一部分,它能够保证系统对外界事件的响应速度和可靠性。

我们通过实际操作,学习了实时任务的创建和调度,以及实时操作系统的中断处理机制。

实时操作系统的学习让我更加深入地了解了嵌入式系统的实时性要求和相关的调度算法。

实验四:嵌入式系统的通信与网络在本实验中,我们学习了嵌入式系统的通信与网络。

嵌入式系统通常需要与其他设备或系统进行通信,以实现数据的传输和共享。

我们学习了嵌入式系统的通信协议和网络协议,如UART、SPI、I2C、TCP/IP等。

通过实际操作,我掌握了这些通信和网络协议的使用方法,以及在嵌入式系统中如何进行数据的传输和处理。

嵌入式系统原理实验三跑马灯

嵌入式系统原理实验三跑马灯

嵌入式系统原理实验三跑马灯(共4页)--本页仅作为文档封面,使用时请直接删除即可----内页可以根据需求调整合适字体及大小--实验三跑马灯实验实验目的:通过一个经典的跑马灯程序,了解 STM32F1 的 IO 口作为输出使用的方法。

通过代码控制 ALIENTEK 战舰 STM32 开发板上的两个 LED: DS0 和DS1 交替闪烁,实现类似跑马灯的效果内容要点:1.硬件设计本章用到的硬件只有LED(DS0 和DS1)。

其电路在ALIENTEK 战舰STM32F103 开发板上默认是已经连接好了的。

DS0 接PB5,DS1 接PE5。

所以在硬件上不需要动任何东西。

其连接原理图如图:2.软件设计跑马灯实验我们主要用到的固件库文件是:/stm32f10x_usart /其中头文件在每个实验中都要引入,因为系统时钟配置函数以及相关的外设时钟使能函数都在这个其源文件中。

和头文件在我们SYSTEM 文件夹中都需要使用到,所以每个实验都会引用。

首先,找到之前新建的Template 工程,在该文件夹下面新建一个HARDWARE 的文件夹,用来存储以后与硬件相关的代码,然后在HARDWARE 文件夹下新建一个LED 文件夹,用来存放与LED 相关的代码。

新建和文件,一个外设对应一个.h和.c文件。

在Manage Components 管理里面新建一个HARDWARE 的组,并把加入到这个组里面,将头文件的路径加入到工程里面一般的头文件有固定的格式,多个地方调用头文件会重复引用,为了避免头文件内容重复引用,一般通过预编译的方式来写头文件。

一般的格式如下:#ifndef __LED_H#define __LED_H……#endif第一次调用时会将#define下面这一节全部定义,重复调用时,下面的东西就不会被引用。

头文件里一般用来写函数声明或者宏定义,在源文件中再去定义具体的函数。

#ifndef __LED_H#define __LED_Hvoid LED_Init(void);#endif然后我们打开USER 文件夹下的工程(如果是使用的上面新建的工程模板,那么就是Template. uvprojx,大家可以将其重命名为LED. uvprojx),按新建按钮新建一个文件,然后保存在HARDWARE->LED 文件夹下面,保存为。

嵌入式实验三 键盘检测控制实验

嵌入式实验三  键盘检测控制实验

2
ቤተ መጻሕፍቲ ባይዱ
嵌入式技术及应用 实验三
实验三 键盘实验
一、 实验目的 掌握单片机系统中矩阵键盘的编程控制方法,学会实时程序的调试技巧。
二、 实验原理 键盘是单片机应用中常用的输入设备,在应用系统中,操作人员可通过键盘
向系统输入指令、地址和数据,实现简单的人机通信。 键盘实际上是一组按键开关的集合,平时总是处于断开状态,当按下键时它
才闭合。按键在闭合和断开时,触点会存在抖动现象,抖动时间一般为 5-10ms, 如下图示:
键盘的处理主要涉及以下 3 个方面的内容: 按键的识别
所接 I/O 口线是高还是低电平(根据连接情况) 抖动的消除
硬件消抖 软件消抖(延时) 判断键值 独立式键盘 矩阵式键盘 实验板电路原理图如下:
1
嵌入式技术及应用 实验三
三、 实验内容 按下 16 个矩阵键盘依次在数码管上显示 1-16 的平方。如按下第一个显示 1,
第二个显示 4...
四、
实验步骤 1、 按实验内容要求在 µ Vision 中创建项目,编辑、调试、编译程序。 2、 将编译生成的目标码文件(后缀为.Hex)下载到实验板上。 3、 观察实验运行结果并记录。

嵌入式系统实验内容(全)

嵌入式系统实验内容(全)

实验一熟悉Linux开发环境一、实验目的1.熟悉Linux开发环境,学习Linux开发环境的配置和使用,掌握Minicom串口终端的使用。

2.学习使用Vi编辑器设计C程序,学习Makefile文件的编写和armv4l-unkonown-linux-gcc编译器的使用,以及NFS方式的下载调试方法。

3.了解UP-NETARM2410-S嵌入式实验平台的资源布局与使用方法。

4.初步掌握嵌入式Linux开发的基本过程。

二、实验内容本次实验使用Redhat Linux 9.0操作系统环境,安装ARM-Linux的开发库及编译器。

创建一个新目录,并在其中编写hello.c和Makefile文件。

学习在Linux 下的编程和编译过程,以及ARM开发板的使用和开发环境的设置。

下载已经编译好的文件到目标开发板上运行。

三、预备知识C语言的基础知识、程序调试的基础知识和方法,Linux的基本操作。

四、实验设备及工具(包括软件调试工具)硬件:UP-NETARM2410-S嵌入式实验平台、PC机Pentium 500以上, 硬盘10G以上。

软件:PC机操作系统REDHAT LINUX 9.0+MINICOM+ARM-LINUX开发环境五、实验步骤1、建立工作目录[root@zxt smile]# mkdir hello[root@zxt smile]# cd hello2、编写程序源代码在Linux下的文本编辑器有许多,常用的是vim和Xwindow界面下的gedit等,我们在开发过程中推荐使用vim,用户需要学习vim的操作方法,请参考相关书籍中的关于vim的操作指南。

Kdevelope、anjuta软件的界面与vc6.0 类似,使用它们对于熟悉windows环境下开发的用户更容易上手。

实际的hello.c源代码较简单,如下:#include <stdio.h>main(){printf(“hello world \n”);}我们可以是用下面的命令来编写hello.c的源代码,进入hello目录使用vi命令来编辑代码:[root@zxt hello]# vi hello.c按“i”或者“a”进入编辑模式,将上面的代码录入进去,完成后按Esc键进入命令状态,再用命令“:wq”保存并退出。

《嵌入式系统导论》实验指导书

《嵌入式系统导论》实验指导书

《嵌入式系统导论》实验指导书安阳工学院计算机科学与信息工程系飞思卡尔MCU实验中心编写目录前言 (2)一认识DG128开发开发环境 (3)1.HCS12实验系统概述 (3)1.1HCS12系列微控制器与DP256/DG128 (3)1.2实验系统组成 (5)1.3HCS12实验系统使用方法与步骤概述 (5)2.HCS12实验系统硬件说明 (7)2.1开发子板 (7)2.2BDM调试器与BDM电缆 (7)2.3I/O母板 (8)2.4其它 (9)3.编译工具说明 (10)3.1概述 (10)3.2CODEWARRIOR使用方法 (10)4.BDM调试器使用方法 (15)4.1BDM调试器基本工作原理 (15)4.2BDM调试命令及使用方法 (15)二实验项目 (19)实验1 熟悉实验用软件开发平台——CODEWARRIOR (19)实验2 用超级终端和监控程序通讯调试程序 (19)实验3 键盘编程实验 (26)实验4 SCI串行口实验 (29)实验5 C程序的建造与调试 (33)实验6 用TIMER实现精密定时 (34)实验7 A/D转换实验 (39)实验8 动态LED数码管显示 (44)前言该实验指导书是为安阳工学院计算机科学与信息工程系《计算机科学与技术》本科专业嵌入式专业方向开设的《嵌入式系统导论》课程而撰写的配套实验指导书。

《嵌入式系统导论》是一门专业方向必修课,该课程的主要教学目的是教会学生设计嵌入式小系统的能力。

其中包括汇编语言程序的设计能力以及简单的嵌入式系统硬件设计能力。

设计能力属于工程技术能力,它要求学生在拥有扎实的基础理论和专业知识基础上,进一步形成设计能力,要求学生会分析问题,能解决问题。

这种能力的培养除了要求上理论课以外,还要要求学生参加一定量的工程实践训练。

工科学生的实验课,尤其是设计性的实验课,它是标准化的和模块化的工程实践训练环节。

本门课程的实验在整个课程中的地位十分重要,它一方面可以使学生深入理解和把握专业理论知识,另一方面使学生学会运用理论来解决实际中遇到的问题。

嵌入式系统原理实验三跑马灯

嵌入式系统原理实验三跑马灯

实验三跑马灯实验实验目的:通过一个经典的跑马灯程序,了解STM32F1 的IO 口作为输出使用的方法。

通过代码控制ALIENTEK 战舰STM32 开发板上的两个LED:DS0 和DS1 交替闪烁,实现类似跑马灯的效果内容要点:1.硬件设计本章用到的硬件只有LED(DS0 和DS1)。

其电路在ALIENTEK 战舰STM32F103开发板上默认是已经连接好了的。

DS0 接PB5,DS1 接PE5。

所以在硬件上不需要动任何东西。

其连接原理图如图:2.软件设计跑马灯实验我们主要用到的固件库文件是:stm32f10x_gpio.c /stm32f10x_gpio.hstm32f10x_rcc.c/stm32f10x_rcc.hmisc.c/ misc.hstm32f10x_usart /stm32f10x_usart.h其中stm32f10x_rcc.h 头文件在每个实验中都要引入,因为系统时钟配置函数以及相关的外设时钟使能函数都在这个其源文件stm32f10x_rcc.c 中。

stm32f10x_usart.h 和misc.h 头文件在我们SYSTEM 文件夹中都需要使用到,所以每个实验都会引用。

首先,找到之前新建的Template 工程,在该文件夹下面新建一个HARDWARE的文件夹,用来存储以后与硬件相关的代码,然后在HARDWARE 文件夹下新建一个LED 文件夹,用来存放与LED 相关的代码。

新建led.h和led.c文件,一个外设对应一个.h和.c文件。

在Manage Components 管理里面新建一个HARDWARE 的组,并把led.c 加入到这个组里面,将led.h 头文件的路径加入到工程里面一般的头文件有固定的格式,多个地方调用头文件会重复引用,为了避免头文件内容重复引用,一般通过预编译的方式来写头文件。

一般的格式如下:#ifndef __LED_H#define __LED_H……#endif第一次调用时会将#define下面这一节全部定义,重复调用时,下面的东西就不会被引用。

嵌入式系统实验三-按键中断实验

嵌入式系统实验三-按键中断实验

《嵌入式系统》课程实验报告学生姓名:所在班级:指导教师:记分及评价:一、实验名称按键中断实验二、实验目的通过实验掌握S3C2410X的中断控制寄存器的使用;通过实验掌握S3C2410X处理器的中断响应过程;通过实验掌握ARM处理器的中断方式和中断处理过程;通过实验掌握ARM处理器中断处理的软件编程方法。

三、实验内容编写程序,当用户在实验箱按下KEY1键或KEY2键时在中断服务子程序中将相关信息打印到串口中,显示在超级终端上。

四、实验原理在本实验平台的主板上设计了两个外部按键,电路原理图如下:EXINT0和EXINT1信号作为CPLD芯片的输入信号。

CPLD内部逻辑图:五、实验结果超级终端上显示以下信息:按下KEY1键或KEY2键,超级终端上显示以下信息。

六、练习题编写程序实现:按下KEY1或KEY2后点亮实验系统的LEDs一段时间后熄灭。

任务:按下KEY1键后LED1点亮一段时间后熄灭;按下KEY2键后点亮LED2一段时间后熄灭。

#define rCPLDIntControl (*(volatile unsigned char*)0x22600000)#define rCPLDIntStatus (*(volatile unsigned char*)0x22200000)#define rCPLDLEDADDR (*(volatile unsigned char*)0x21180000)void __irq int_int(void){unsigned char Status;int i;Status = rCPLDIntStatus;Status = ~(Status & 0x6);if(Status & 0x2){uart_printf(" Eint0 interrupt occurred.\n");rCPLDLEDADDR = (rCPLDLEDADDR | 0xFF )& 0xFE;for(i = 0; i < 100000; i++);rCPLDLEDADDR = rCPLDLEDADDR | 0xFF ;}else if(Status & 0x4){uart_printf(" EINT1 interrupt occurred.\n");rCPLDLEDADDR =(rCPLDLEDADDR | 0xFF) & 0xFD;for(i = 0; i < 100000; i++);rCPLDLEDADDR = rCPLDLEDADDR | 0xFF ;}rEINTPEND=(1<<9);ClearPending(BIT_EINT8_23);}。

嵌入式系统概论实验报告

嵌入式系统概论实验报告

实验报告2013至2014学年第1学期课程名称:嵌入式系统概论院别:数学与计算机学院班级:学号:姓名:指导教师:海深实验一ADS1.2 开发环境一、实验目的熟悉ADS1.2 开发环境,学会ARM 仿真器的使用。

使用ADS 编译、下载、调试并跟踪一段已有的程序,了解嵌入式开发的基本思想和过程。

二、实验内容本次实验使用ADS 集成开发环境。

新建一个简单的工程文件,并编译这个工程文件。

学习ARM 仿真器的使用和开发环境的设置。

下载已经编译好的文件到嵌入式控制器中运行。

学会在程序中设置断点,观察系统内存和变量,为调试应用程序打下基础。

三、预备知识C 语言的基础知识、程序调试的基础知识和方法。

四、实验设备及工具(包括软件调试工具)硬件:ARM 嵌入式开发平台、PC 机Pentium100 以上、用于ARM920T 的JTAG 仿真器、串口线。

软件:PC 机操作系统Win2000 或WinXP、ARM ADS1.2 集成开发环境、仿真器驱动程序、超级终端通讯程序。

五、实验步骤1、建立工程(1)运行ADS1.2 集成开发环境(CodeWarrior for ARM Developer Suite)。

选择File|New…菜单,在对话框中选择Project,如图1B-1 所示,新建一个工程文件。

图中示例的工程名为Exp6.mcp。

点set…按钮可为该工程选择路径如图2-1 所示,选中CreatFolder 选项后将以图2-1 中的ProjectName 或图2-2 中的文件名为名创建目录,这样可以将所有与该工程相关的文件放到该工程目录下,便于管理工程。

在图2-1 中工程模板列表中的2410 ARM Executable Image 是专为本嵌入式开发板设置的工程模板,后文有具体说明。

在此也可选择ARM Executable Image 通用模板。

图2-1 新建工程图2-2 保存工程(2)在新建的工程中,如图2-3 所示,选择Debug 版本,使用Edit | Debug Settings菜单对Debug 版本进行参数设置。

北航ARM9嵌入式系统实验实验三uCOS-II实验

北航ARM9嵌入式系统实验实验三uCOS-II实验

北航ARM9嵌⼊式系统实验实验三uCOS-II实验实验三 uCOS-II实验⼀、实验⽬的在内核移植了uCOS-II 的处理器上创建任务。

⼆、实验内容1)运⾏实验⼗,在超级终端上观察四个任务的切换。

2)任务1~3,每个控制“红”、“绿”、“蓝”⼀种颜⾊的显⽰,适当增加OSTimeDly()的时间,且优先级⾼的任务延时时间加长,以便看清三种颜⾊。

3)引⼊⼀个全局变量BOOLEAN ac_key,解决完整刷屏问题。

4)任务4管理键盘和超级终端,当键盘有输⼊时在超级终端上显⽰相应的字符。

三、预备知识1)掌握在EWARM 集成开发环境中编写和调试程序的基本过程。

2)了解ARM920T 处理器的结构。

3)了解uCOS-II 系统结构。

四、实验设备及⼯具1)2410s教学实验箱2)ARM ADS1.2集成开发环境3)⽤于ARM920T的JTAG仿真器4)串⼝连接线五、实验原理及说明所谓移植,指的是⼀个操作系统可以在某个微处理器或者微控制器上运⾏。

虽然uCOS-II的⼤部分源代码是⽤C语⾔写成的,仍需要⽤C语⾔和汇编语⾔完成⼀些与处理器相关的代码。

⽐如:uCOS-II在读写处理器、寄存器时只能通过汇编语⾔来实现。

因为uCOS-II 在设计的时候就已经充分考虑了可移植性,所以,uCOS-II的移植还是⽐较容易的。

要使uCOS-II可以正常⼯作,处理器必须满⾜以下要求:(1)处理器的C编译器能产⽣可重⼊代码可重⼊的代码指的是⼀段代码(如⼀个函数)可以被多个任务同时调⽤,⽽不必担⼼会破坏数据。

也就是说,可重⼊型函数在任何时候都可以被中断执⾏,过⼀段时间以后⼜可以继续运⾏,⽽不会因为在函数中断的时候被其他的任务重新调⽤,影响函数中的数据。

(2)在程序中可以打开或者关闭中断在uCOS-II中,可以通过OS_ENTER_CRITICAL()或者OS_EXIT_CRITICAL()宏来控制系统关闭或者打开中断。

这需要处理器的⽀持,在ARM920T的处理器上,可以设置相应的寄存器来关闭或者打开系统的所有中断。

嵌入式系统基础实验报告

嵌入式系统基础实验报告

本科实验报告课程名称:嵌入式系统基础实验项目:实验一双字节加法实验二数据排序程序实验三定时/计数器实验四外部中断实验地点:跨越机房专业班级:通信0903 学号:2009001385 学生姓名:指导教师:武娟萍2012年 5 月18 日实验一双字节加法一实验目的(1)熟悉MCS-51指令系统,掌握程序设计方法。

(2)掌握双字节加法的程序算法。

二实验设备计算机一台。

操作系统:Windows 98/2000/XP应用软件:WAVE 6000或其他。

三实验内容编写并调试一个双字节加法程序,设9930H存在R1R0中,6083H存在R2R3中,计算R1R0+R3R2,结果存在R5R4中。

四实验原理两数的低位相加后保留进位位,高位数相加时,将低位的进位加上。

五WAVE6000操作过程一、新建文件:选择菜单【文件/新建文件】功能,出现一个文件名为NONAME1的源程序窗口,在此窗口中输入编好的程序。

二、保存文件:输完程序后,选择菜单【文件/保存文件】或【文件/另存为】功能,给出文件要保存的位置保存文件,保存文件为MY.ASM。

三、新建项目选择菜单【文件/新建项目】功能,1)加入模块文件,选择刚才保存的文件,按打开键,可以打开多个文件2) 加入包含文件,选择所要加入的包含文件,如果没有包含文件,按取消键3)保存项目为MY,无需后缀。

将用户项目存盘,用户在编译项目时,自动存盘。

注意:当用项目仿真时,系统要求,项目文件,模块文件包含文件在同一个目录(文件夹)下五、项目复制复制项目,用户可以将项目中的所有模块(用户程序)备份到另一个地方。

在多模块项目中,用复制项目功能,可以避免用户因少复制某些模块,而造成编译不能通过,方便用户对程序进行管理六、项目设置选择菜单【设置/仿真器设置】,在仿真器设置栏中1)点击语言栏选择伟福汇编器。

2)仿真器选择栏选择80313)通信设置选择使用伟福软件模拟器七、编译程序:选择菜单【项目/编译】功能编译项目。

嵌入式系统实验报告_2

嵌入式系统实验报告_2

嵌入式系统设计实验报告班级:学号:姓名:成绩:指导教师:1. 实验一1.1 实验名称博创UP-3000实验台基本结构及使用方法1.2 实验目的1.学习嵌入式系统开发流程。

2.熟悉UP-net3000实验平台的核心硬件电路和外设。

3.增加对各个外设的了解,为今后各个接口实验打下基础。

1.3 实验环境博创UP-NETARM3000 嵌入式开发平台1.4 实验内容及要求(1)嵌入式系统开发流程概述(2)熟悉UP-net3000实验平台的核心硬件电路和外设(3)ARM JTAG的安装与使用(4)通过操作系统自带的通讯软件超级终端,检验各个外设的工作状态(5)通过本次课程对各个外设的了解,为今后各个接口实验打下基础1.5 实验设计与实验步骤1.硬件安装2.软件安装(1)超级终端:运行Windows 系统下的超级终端(HyperTerminal)应用程序,新建一个通信终端;在接下来的对话框中选择 ARM开发平台实际连接的PC机串口;完成新建超级终端的设置以后,可以选择超级终端文件菜单中的保存,将当前设置保存为一个特定超级终端到桌面上,以备后用。

(2)JTAG 驱动程序的安装:执行armJtag目录下armJtagSetup.exe程序,选择安装目录,安装 JTAG 软件。

1.6 实验过程与分析(1)了解嵌入式系统开发流程(2)对硬件的安装(3)对软件的安装1.7 实验结果总结通过本次实验对嵌入式系统开发流程进行了了解,并且对硬件环境和软件环境进行了安装配置,通过本次实验对以后的接口实验打了基础。

1.8 心得体会通过本次实验对嵌入式实验有了初步的了解,对基本开发流程也有了初步的了解。

2. 实验二2.1 实验名称ADS1.2软件开发环境使用方法2.2 实验目的熟悉ADS1.2开发环境,学会 ARM仿真器的使用。

使用 ADS 编译、下载、调试并跟踪一段已有的程序,了解嵌入式开发的基本思想和过程。

2.3 实验环境(1)ADS1.2开发环境(2)博创UP-NETARM3000 嵌入式开发平台(3)PC(4)串口线2.4 实验内容及要求本次实验使用ADS 集成开发环境,新建一个简单的工程文件,并编译这个工程文件。

浙江工业大学 嵌入式系统原理实验(1-8)

浙江工业大学 嵌入式系统原理实验(1-8)

嵌入式实验(1-8)第一次实验1. 用汇编语言编程实现:若R0=0,则转移到标号L0处;若R0=1,则转移到标号L1处;若R0=2,则转移到标号L2处。

否则不转移。

2. 用汇编语言编程实现128位整数减法。

3. 用汇编语言编程实现:有4个数分别存放在R0~R3中,编程实现:4数相乘,其积存放在R4中。

4. 用汇编语言编程实现:R0中的高24位[31:8]保持不变,低8位[7:0]设置为0xB。

5. 用汇编语言编程实现:快速中断的使能和禁止。

第二次实验1. 用汇编语言编程实现:将存储器中起始地址M1处的4个字数据复制到地址M2处。

2. 用汇编语言编程实现:100+101+102+…+200,其和存于R0。

3. 用汇编语言编程实现:从存储器中起始地址M1处的20个字节数据中,找出一个最小数存放在R0中。

4. 利用跳转表的思想编写一个汇编子程序,根据键入的值(存放在R0中)不同来完成不同的子程序跳转(假设有四个子程序SUB0、SUB1、SUB2、SUB3)。

第三次实验1 用C语言和汇编语言混合编程实现:在C语言程序中调用汇编语言代码,完成字符串STR1与STR2内容的互换(假设STR1和STR2长度一致)。

2. 用C语言和汇编语言混合编程实现:在C语言程序中调用汇编语言代码,将输入的20个字节数据,从大到小加以排序,大数在前,小数在后。

3. 用C语言和汇编语言混合编程实现:用汇编语言完成对C语言全局变量的访问。

假设CV AR1和CV AR2是C语言中定义的全局变量,请用一段汇编语言访问它们,完成两者的相加运算,结果存放在CV AR1中。

第四次实验1. 用C语言和汇编语言混合编程实现:在C语言程序中调用汇编语言代码,完成两个字符串的比较,并返回比较结果。

如果比较字符串相同,返回1,否则返回0。

2. 用C语言和汇编语言混合编程实现:请完成一段字符串“Hello Zhejiang University of Technology!”的拷贝,要求主程序用C语言编写,字符串拷贝子程序用汇编语言编写。

嵌入式系统实验报告

嵌入式系统实验报告

嵌入式系统实验报告学号:姓名:班级:13电子信息工程指导老师:苏州大学电子信息学院2016年12月实验一:一个灯的闪烁1、实验要求实现PF6-10端口所连接的任意一个LED灯点亮2、电路原理图图1 LED灯硬件连接图3、软件分析RCC_Configuration(); /* 配置系统时钟*/GPIO_Configuration(); /* 配置GPIO IO口初始化*/for(;;){GPIOF->ODR = 0xfcff; /* PF8=0 --> 点亮D3 */Delay(1000000);GPIOF->ODR = 0xffff; /* PF8=1 --> 熄灭D3 */Delay(1000000);4、实验现象通过对GPIOF8的操作,可以使LED3闪烁5、实验总结这是第一次使用STM32开发板,主要内容是对IO端口进行配置,点亮与IO端口相连接的LED灯,闪烁周期为2S。

通过本实验对STM32开发板的硬件原理有了初步了解。

实验二:流水灯1、实验要求实现PF6-10端口所连接的5个LED灯顺次亮灭2、电路原理图图1 流水灯硬件连接图3、软件分析int main(void){RCC_Configuration();/* 配置系统时钟*/GPIO_Configuration();/* 配置GPIO IO 口初始化*/for(;;){GPIOF->ODR = 0xffbf;/* PF6=0 --> 点亮LED1 */Delay(5000000);GPIOF->ODR = 0xff7f;/* PF7=0 --> 点亮LED2 */Delay(5000000);GPIOF->ODR = 0xfeff;/* PF8=0 --> 点亮LED3 */Delay(5000000);GPIOF->ODR = 0xfdff;/* PF9=0 --> 点亮LED4 */Delay(5000000);GPIOF->ODR = 0xfbff;/* PF10=0 --> 点亮LED5 */ }}4、实验现象LED1~LED5依次点亮,亮灭的时间间隔都为1S。

嵌入式系统技术实验报告

嵌入式系统技术实验报告

南京理工大学嵌入式系统技术实验报告作者: 学号:学院(系):班级:指导老师:孙瑜实验日期: 2014年11月实验一:熟悉Linux 开发环境一、实验目的熟悉Linux开发环境,学会基于S3C2410的Linux开发环境的配置和使用。

使用Linux的armv4l-unknown-linux-gcc编译,使用基于NFS方式的下载调试,了解嵌入式开发的基本过程。

二、实验仪器硬件:UP-NETARM2410-S嵌入式实验平台、PC机。

软件:PC机操作系统REDHAT LINUX 9.0+MINICOM+ARM-LINUX开发环境三、实验内容本次实验使用Redhat Linux 9.0操作系统环境,安装ARM-Linux的开发库及编译器。

创建一个新目录,并在其中编写hello文件。

学习在Linux下的编程和编译过程,以及ARM开发板的使用和开发环境的设置。

下载已经编译好的文件到目标开发板上运行。

四、实验步骤1、建立工作目录[root@zxt smile]# mkdir hello[root@zxt smile]# cd hello2、编写程序源代码实际的hello.c源代码较简单,如下:#include <stdio.h>void main(void){printf(“hello world \n”);}用下面的命令来编写“hello.c”的源代码,进入hello目录使用vi命令来编辑代码:[root@zxt hello]# vi hello.c按“i”或者“a”进入编辑模式,录入上面的代码,完成后按Esc键进入命令状态,再用命令“:wq ”,保存并退出。

这样在当前目录下建立了一个名为“hello.c”的文件。

3、编译链接要使上面的“hello.c”程序能够运行,将其经过编译和连接,生成可执行文件。

输入 gcc hello.c -o hello 进行编译,再输入 ./hello 运行程序,观察结果1。

嵌入式系统实验

嵌入式系统实验

嵌入式系统实验指导书计算机科学与技术学院实验教学中心2007-9-1目录实验一JediView调试环境及软件编程 (3)实验二系统初始化和存储器实验 (8)实验三键盘和中断实验 (12)实验四S3C44B0X定时器实验 (19)实验五LCD显示实验 (22)实验六、uclinux文件系统实验 (26)实验一JediView调试环境及软件编程一、实验目的1. 了解调试软件JediView,掌握在JediView环境中新建工程,及其编译,调试工程的方法。

2. 掌握在JediView环境下arm系统中C语言编程及调试方法3. 掌握arm汇编语言编程及调试方法。

二、实验内容1.学习使用JediView集成开发环境:新建一个工程arm1_1,设置并编译该工程,通过JEDI仿真器下载已经编译好的文件到实验仪中运行。

观察实验仪上的执行结果。

掌握调试程序方法,为下面调试应用程序打下基础。

2. 建立工程arm1_2,编写C语言程序arm1_2.c实现1+2+3+…+N(arm1_2.c写在预习报告上)。

3. 建立工程arm1_3,用arm汇编语言编写程序arm1_3.s,实现带参数的子程序调用(用程序跳转表实现),调用参数r0=0,做r1+r2=>r0;r0=1,做r1-r2=>r0(arm1_3.s写在预习报告上)。

三、预备知识1.关于JediView调试环境基本使用方法。

JediView具备一个标准调试软件的绝大部分功能,主要由以下模块组成:源程序编辑器(Editor):用来完成源程序的编辑、修改等任务。

编译器(Build System):把源程序(包括C,C++,汇编)编译生成机器码和可调试代码。

调试器(Debugger):对编译成功的源程序进行调试,如走单步,设断点,全速运行等。

项目管理器(Project Manager):管理项目设置,包括运程序路径,编译选项等。

2.ARM指令系统,汇编语言编程知识。

嵌入式系统概论实验指导书(冯德旺)

嵌入式系统概论实验指导书(冯德旺)

嵌入式系统概论实验指导书计算机与信息学院《嵌入式系统概论》课程组编印2013年11月目录实验一搭建CodeWarrior开发环境实验二控制小灯闪烁实验实验三串行通信实验实验四 RTC实验实验五 Flash实验实验一搭建CodeWarrior开发环境1、实验目的和要求实验目的:熟悉 CodeWarrior开发环境,掌握KL25工程结构,通过一个样例工程了解开发环境配置方法,并完成编译、下载到开发板的过程。

实验要求: 1)安装CodeWarrior10.3软件,完成相关参数设置;2)安装USBDM4.10.4写入器驱动程序,打好补丁;3)导入样例工程,完成编译、下载、运行全过程。

2、实验原理参照KL25技术手册和CodeWarrior10.3软件使用手册,熟悉芯片性能和开发环境,验证开发板和开发环境的可靠性。

3、主要仪器设备(实验用的软硬件环境)PC机一台,SD-FSL-KL25-EVB开发板一套4、操作方法与实验步骤1)按照CodeWarrior10.3使用手册安装软件;2)通过写入器的Mini_USB口将SD-FSL-KL25-EVB开发板连接到PC机; 3)导入样例工程,完成编译;4)将可执行的ELF烧入Flash,给开发板重新上电,观察实验现象。

5、实验内容及实验数据记录实验电路连线:用USB连接线将SD-FSL-KL25-EVB开发板接入PC机。

实验参考程序:.include "include.s"declaration:#start 参数定义区域.section .data @读写,即定义变量runpin: .word 100.section .rodata @只读,即定义常数RUN_COUNTER_MAX: .word 0x0016e360.section .data @定义可读写的字符串string: .asciz "123456789"#end 参数定义区域#start 主函数定义开始.section .text.main.global main @定义全局变量,使其在芯片初始化之后可以调用 .align 2.type main function @定义主函数类.align 2#end 主函数定义结束main:cpsid i @关闭总中断#小灯相应引脚的gpio初始化(设置引脚的各参数) r0-r3保存需要传递的参数mov r0,#light_port @r0存储PORT端口号#ldr r5,=runpin#mov r6,#18#str r6,[r5]#ldr r1,[r5] @将引脚号18存入r1mov r1,#light_G_pin @r1存储引脚号mov r2,#light_dirout @r2指明引脚的输出方向mov r3,#light_L @r3指明引脚的初始状态bl light_init @调用小灯初始化函数cpsie i @开总中断#主循环,通过RUN_COUNTER_MAX递减来延迟,设定小灯的闪烁间隔repeat:ldr r4,=RUN_COUNTER_MAX @取延时计数值到r4ldr r4,[r4]loop:sub r4,#1cmp r4,#1bne loopbl light_change @调用小灯亮暗转变函数bl repeat.align 4.end实验二控制小灯闪烁实验1、实验目的和要求实验目的: 1)熟悉ARM Cortex-M0+寄存器配置方法;2)学习KL25的GPIO编程方法;3)通过三色灯观察程序运行情况;实验要求:编写程序,以KL25 B口的9、18和19引脚作为输出口,控制三色灯灯(可发红,绿,蓝光)交替闪亮。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

实验三:文件、目录及其操作命令1实验目的通过实验掌握如Linux操作系统的基本操作2实验设备硬件:PC机一台软件:Windows98/XP/2000系统,VMware Workstation6.0,Red Hat Linux3实验内容(1)文件的复制、删除和移动命令:cp, rm, mv(2)Linux文件与目录(3)目录命令:mkdir, rmdir, cd, pwd, ls(4)文件与目录的权限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/bashrccp: 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/ /tmpcp: omitting directory `/etc' <== 如果是目录则不能直接复制,要加上-r 的选项[root@www tmp]# cp -r /etc/ /tmp-r 是可以复制目录,但是,文件与目录的权限可能会被改变。

所以,也可以利用cp –a /etc /tmp 来下执行!尤其是在备份的情况下!rm (移除文件或目录)[root@localhost ~]# rm [-fir] 文件或目录选项与参数:-f :就是force 的意思,忽略不存在的文件,不会出现警告信息;-i :互动模式,在删除前会询问使用者是否操作-r :递归删除!最常用在目录的删除了!这是非常危险的选项!!!范例一:将刚刚在cp 的范例中建立的bashrc 删除掉![root@localhost ~]# cd /temp[root@localhost tmp]# rm -i bashrcrm: remove regular file `bashrc'? y如果加上-i 的选项就会主动询问,避免删除到错误的文件!范例二:通过通配符*的帮助,将/temp下开头为bashrc的文件名通通删除:[root@localhost tmp]# rm -i bashrc*注意星号,代表的是0 到无穷多个任意字符!范例三:将cp 范例中所建立的/temp/etc/ 这个目录删除掉![root@localhost tmp]# rmdir /temp/etcrmdir: etc: Directory not empty <== 删不掉!因为这不是空的目录![root@localhost tmp]# rm -r /temp/etcrm: descend into directory `/temp/etc'? y ....(中间省略)....因为身份是root ,预先已经加入了-i 的选项,所以要一直按y 才会删除!如果不想要继续按y ,可以按下[ctrl]-c 来结束rm 的工作。

这是一种保护的操作,如果确定要删除掉此目录而不要询问,可以这样做:[root@localhost tmp]# \rm -r /temp/etc在命令前加上反斜杠,可以忽略掉alias 的指定的参数!对于删除命令(remove),要注意的是,通常在Linux系统下,为了怕文件被误删除,所以很多distributions 都已经默认加入-i 这个选项!而如果要连目录下的东西都一起删掉的话,例如子目录里面还有子目录时,那就要使用-r 这个选项了!不过,使用rm -r 这个命令之前,请千万注意,因为该目录或文件肯定会被root 删掉!因为系统不会再次询问你是否要删掉!所以那是个超级严重的命令!mv (移动文件与目录,或更名)[root@localhost ~]# mv [-fiu] source destination[root@localhost ~]# mv [options] source1 source2 source3 .... directory选项与参数:-f :force 强制的意思,如果目标文件已经存在,不会询问而直接覆盖;-i :若目标文件(destination) 已经存在时,就会询问是否覆盖!-u :若目标文件已经存在,且source 比较新,才会更新(update)范例一:复制一文件,建立一目录,将文件移动到目录中[root@localhost ~]# cd /temp[root@localhost tmp]# cp ~/.bashrc bashrc[root@localhost tmp]# mkdir mvtest[root@localhost tmp]# mv bashrc mvtest将某个文件移动到某个目录去,就是这样做!范例二:将刚刚的目录名称更名为mvtest2[root@localhost tmp]# mv mvtest mvtest2 <== 这样就更名了!范例三:再建立两个文件,再全部移动到/temp/mvtest2 当中[root@localhost tmp]# cp ~/.bashrc bashrc1[root@localhost tmp]# cp ~/.bashrc bashrc2[root@localhost tmp]# mv bashrc1 bashrc2 mvtest2注意,如果有多个来源文件或目录,则最后一个目标文件一定是目录!这里将所有的数据移动到该目录!(2)Linux文件与目录在Linux系统中,所有的系统账号的相关信息,都是记录在/etc/passwd这个文件内。

个人的密码则是记录在/etc/shadow这个文件下。

此外,Linux所有的群组名称都纪录在/etc/group 内!这三个文件是Linux系统里面账号、密码、群组信息的集中地不能随便删除这三个文件。

Linux 文件权限概念文件的权限针对“使用者”与“群组”来设定。

尤其是当屏幕前面出现了“Permission deny”的时候,肯定是权限设定错误。

Linux文件的属性在以root的身份登入Linux之后,执行ls -al第一栏代表这个文件的类型与权限(permission):这一栏其实共有十个字符:第一个字符代表这个文件是“目录、文件或连结文件”:当为[ d ]则是目录,例如上表文件名为”.gconf”的那一行;当为[ - ]则是普通文件,例如上表文件名为”install.log”那一行;若是[ l ]则表示为连结文件(link file);若是[ b ]则表示为设备文件里面的可供储存的接口设备(可随机存取装置);若是[ c ]则表示为设备文件里面的串行端口设备,例如键盘、鼠标(一次性读取装置)。

接下来的字符中,以三个为一组,且均为“rwx”的三个参数的组合。

其中,[ r ]代表可读(read)、[ w ]代表可写(write)、[ x ]代表可执行(execute)。

要注意的是,这三个权限的位置不会改变,如果没有权限,就会出现减号[ - ]。

第一组为“文件拥有者的权限”,第二组为“同群组的权限”;第三组为“其它非本群组的权限”。

例题:若有一个文件的类型与权限数据为”-rwxr-xr--”,请说明其意义为何?答:先将整个类型与权限数据分开查阅,并将十个字符整理成为如下所示:[-] [rwx] [r-x] [r--]1 234 567 8901 为:代表这个文件名为目录或文件,本例中为文件(-);234为:拥有者的权限,本例中为可读、可写、可执行(rwx);567为:同群组使用者权限,本例中为可读可执行(rx);890为:其它使用者权限,本例中为可读(r)第二栏表示有多少文件名连结到此节点(i-node):每个文件都会将他的权限与属性记录到文件系统的i-node中,目录树是使用文件名来记录,因此每个文件名就会连结到一个i-node。

相关文档
最新文档