嵌入式实验二实验报告

2024-07-26

嵌入式实验二实验报告(共9篇)

1.嵌入式实验二实验报告 篇一

目录

实验一 跑马灯实验.........................................................................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的软件仿真功能。

实验二 按键输入实验

一.实验简介

在实验一的基础上,使用按键控制流水灯速度,及使用按键控制流水灯流水方向。

二.实验目的

熟练使用库函数操作GPIO,掌握中断配置和中断服务程序编写方法,掌握通过全局变量在中断服务程序和主程序间通信的方法。

三.实验内容

实现初始化GPIO,并配置中断,在中断服务程序中通过修改全局变量,达到控制流水灯速度及方向。

使用JLINK下载代码到目标板,查看运行结果,使用JLINK在线调试。

四.实验设备

硬件部分:PC计算机(宿主机)、亮点STM32实验板、JLINK、示波器。软件部分:PC机WINDOWS系统、MDK KEIL软件、ISP软件。

五.实验步骤

1在实验1代码的基础上,编写中断初始化代码

2在主程序中声明全局变量,用于和中断服务程序通信,编写完成主程序 3编写中断服务程序

4编译代码,使用JLINK下载到实验板 5.单步调试

6记录实验过程,撰写实验报告

六.实验结果及测试

源代码:

我们将通过MiniSTM32 板上载有的3个按钮,来控制板上的2个LED,其中KEY0控制LED0,按一次亮,再按一次,就灭。KEY1 控制LED1,效果同KEY0。KEY_2(KEY_UP),同时控制LED0 和LED1,按一次,他们的状态就翻转一次。

七.实验总结

通过本次实验,我学会了如何使用STM32 的IO 口作为输入用。TM32 的IO 口做输入使用的时候,是通过读取IDR 的内容来读取IO 口的状态的。这里需要注意的是 KEY0 和KEY1 是低电平有效的,而WK_UP 是高电平有效的,而且要确认WK_UP 按钮与DS18B20 的连接是否已经断开,要先断开,否则DS18B20 会干扰WK_UP按键!并且KEY0 和KEY1 连接在与JTAG 相关的IO 口上,所以在软件编写的时候要先禁用JTAG 功能,才能把这两个IO 口当成普通IO 口使用。

实验三 串口实验

一.实验简介

编写代码实现串口发送和接收,将通过串口发送来的数据回送回去。

二.实验目的

掌握STM32基本串口编程,进一步学习中断处理。

三.实验内容

编写主程序,初始化串口1,设置波特率为9600,无校验,数据位8位,停止位1位。编写中断服务程序代码实现将发送过来的数据回送。

四.实验设备

硬件部分:PC计算机(宿主机)、亮点STM32实验板、JLINK、示波器。

软件部分:PC机WINDOWS系统、MDK KEIL软件、ISP软件、串口调试助手。

五.实验步骤

1编写串口初始化代码

2编写中断服务程序代码

3编译代码,使用JLINK或ISP下载到实验板 4记录实验过程,撰写实验报告

六.实验结果及测试

源代码:

把代码下载到 MiniSTM32 开发板,可以看到板子上的LED0 开始闪烁,说明程序已经在跑了。接着我们打开串口调试助手,看到如下信息:

证明串口数据发送没问题。接着,我们在发送区输入上面的文字,输入完后按回车键。然后单击发送,可以得到如下结果:

七.实验总结

通过本次实验,我进一步了解了串口的使用,学会了通过串口发送和接收数据,将通过串口发送来的数据回送回去。该实验的硬件配置不同于前两个实验,串口 1 与USB 串口默认是分开的,并没有在PCB上连接在一起,需要通过跳线帽来连接一下。这里我们把P4 的RXD 和TXD 用跳线帽与P3 的PA9 和PA10 连接起来。

实验四 外部中断实验

一.实验简介

STM32 的 IO 口在本章第一节有详细介绍,而外部中断在第二章也有详细的阐述。这里我们将介绍如何将这两者结合起来,实现外部中断输入。

二.实验目的

进一步掌握串口编程,进一步学习外部中断编程,提高编程能力。

三.实验内容

初始化IO口的输入,开启复用时钟,设置IO与中断的映射关系,从而开启与IO口相对应的线上中断事件,设置触发条件。配置中断分组(NVIC),并使能中断,编写中断服务函数。

四.实验设备

硬件部分:PC计算机(宿主机)、亮点STM32实验板、JLINK、示波器。

软件部分:PC机WINDOWS系统、MDK KEIL软件、ISP软件、串口调试助手。

五.实验步骤

1.2.3.4.编写中断服务程序代码 使用ISP下载到实验板 测试运行结果

记录实验过程,撰写实验报告

六.实验结果及测试

源代码:

打开串口助手。

七.实验总结

首先需要将IO设置为中断输入口: 1)初始化 IO 口为输入。

2)开启 IO 口复用时钟,设置 IO 口与中断线的映射关系。

3)开启与该 IO口相对的线上中断/事件,设置触发条件。

4)配置中断分组(NVIC),并使能中断。

5)编写中断服务函数。

这一节,使用的是中断来检测按键,通过 WK_UP 按键实现按一次 LED0 和 LED 1 同时翻转,按 KEY0 翻转 LED0,按 KEY1 翻转 LED1。

试验中外部中断函数不能进入的原因分析 : 1)GPIO或者AFIO的时钟没有开启。2)GPIO和配置的中断线路不匹配。3)中断触发方式和实际不相符合。

4)中断处理函数用库函数时,写错,经常可能出现数字和字母之间没有下划线。5)外部中断是沿触发,有可能不能检测到沿,比如 中断线是低电平(浮空输入),触发是下降沿触发,可能会出现一直是低电平,高电平的时候是一样的情况,电平持续为高电平。

6)没有用软件中断来触发外部中断,调用函数EXTI_GenerateSWInterrupt;,因为软件中断先于边沿中断处理。

实验五 独立看门狗实验

一. 实验简介

独立看门狗(IWDG)由专用的低速时钟(LSI)驱动,即使主时钟发生故障它也仍然有效。窗口看门狗由从APB1时钟分频后得到的时钟驱动,通过可配置的时间窗口来检测应用程序非正常的过迟或过早的操作。

二.实验目的

通过编程,编写一个独立看门狗驱动程序

三.实验内容

启动 STM32 的独立看门狗,从而使能看门狗,在程序里面必须间隔一定时间喂狗,否则将导致程序复位。利用这一点,我们本章将通过一个 LED 灯来指示程序是否重启,来验证 STM32 的独立看门狗。

四.实验设备

硬件部分:PC计算机(宿主机)、亮点STM32实验板、JLINK。

软件部分:PC机WINDOWS系统、MDK KEIL软件、ISP软件、串口调试助手。

五.实验步骤

1.2.3.4.参考教材独立看门狗部分,编写独立看门狗驱动程序。建立和配置工程 编写代码

使用ISP下载到实验板

记录实验过程,撰写实验报告

六.实验结果及测试

源代码:

在配置看门狗后,看到LED0 不停的闪烁,如果WK_UP 按键按下,就喂狗,只要WK_UP 不停的按,看门狗就一直不会产生复位,保持LED0 的常亮,一旦超过看门狗定溢出时间(Tout)还没按,那么将会导致程序重启,这将导致LED0 熄灭一次。

七.实验总结

通过本次实验,我掌握了启动独立看门狗的步骤: 1)向 IWDG_KR 写入 0X5555。2)向 IWDG_KR 写入 0XAAAA。3)向 IWDG_KR 写入 0XCCCC。

通过上面 3个步骤,启动 STM32 的看门狗,从而使能看门狗,在程序里面就必须间隔一定时间喂狗,否则将导致程序复位。利用这一点,本章通过一个LED 灯来指示程序是否重启,来验证 STM32 的独立看门狗。在配置看门狗后,LED0 将常亮,如果 WK_UP 按键按下,就喂狗,只要 WK_UP 不停的按,看门狗就一直不会产生复位,保持 LED 0 的常亮,一旦超过看门狗溢出时间(Tout)还没按,那么将会导致程序重启,这将导致 LED 0 熄灭一次。

实验七 定时器中断实验

一. 实验简介

STM32 的定时器是一个通过可编程预分频器(PSC)驱动的 16 位自动装载计数器(CNT)构成。STM32 的通用定时器可以被用于:测量输入信号的脉冲长度(输入捕获)或者产生输出波形(输出比较和 PWM)等。使用定时器预分频器和 RCC 时钟控制器预分频器,脉冲长度和波形周期可以在几微秒到几毫秒间调整。STM32 的每个通用定时器都是完全独立的,没有互相共享的任何资源。

二.实验目的

熟练掌握定时器中断,学会对定时器中断的编程操作。

三.实验内容

使用定时器产生中断,然后在中断服务函数里面翻转 LED1 上的电平,来指示定时器中断的产生,修改中断时间。

四.实验设备

硬件部分:PC计算机(宿主机)、亮点STM32实验板、JLINK。

软件部分:PC机WINDOWS系统、MDK KEIL软件、ISP软件、串口调试助手。

五.实验步骤

1.参考教材定时器中断部分,编写定时器中断的驱动程序。2.编写主程序

3.编译代码,使用JLINK或ISP下载到实验板 4.记录实验过程,撰写实验报告

六.实验结果及测试

源代码:

七.实验总结

通过本次实验,认识到时间中断来控制LED灯的闪烁,同时也可以将时间中断应用到控制其他的程序块。

以TIME3为例产生中断的步骤为 1)TIM3 时钟使能。

2)设置 TIM3_ARR 和 TIM3_PSC 的值。

3)设置 TIM3_DIER 允许更新中断。

4)允许 TIM3 工作。

5)TIM3 中断分组设置。6)编写中断服务函数。

在中断产生后,通过状态寄存器的值来判断此次产生的中断属于什么类型。然后执行相关的操作,我们这里使用的是更新(溢出)中断,所以在状态寄存器 SR 的最低位。在处理完中断之后应该向 TIM3_SR 的最低位写 0,来清除该中断标志。

实验十三 ADC实验

一.实验简介

通过DAC将STM32系统的数字量转换为模拟量。使用ADC将模拟量转换为数字量。

二.实验目的

掌握DAC和ADC编程。

三.实验内容

编写代码实现简单的DAC单次发送

编写代码实现ADC采集DAC发送的数据,并发送到串口

四.实验设备

硬件部分:PC计算机(宿主机)、亮点STM32实验板、JLINK。

软件部分:PC机WINDOWS系统、MDK KEIL软件、ISP软件、串口调试助手。

五.实验步骤

1编写主程序

2编译代码,使用JLINK或ISP下载到实验板,使用串口调试助手观察数据 3记录实验过程,撰写实验报告

六.实验结果及测试

源代码:

七.实验总结

本节将利用 STM32的 ADC1 通道 0 来采样外部电压值,并在串口调试助手中显示出来。步骤如下:

1)开启 PA 口时钟,设置 PA0 为模拟输入。

2)使能 ADC1 时钟,并设置分频因子。

3)设置 ADC1 的工作模式。

4)设置 ADC1 规则序列的相关信息。

5)开启 AD 转换器,并校准。

6)读取 ADC 值。

在上面的校准完成之后,ADC 就算准备好了。接下来我们要做的就是设置规则序列 0 里面的通道,然后启动 ADC 转换。在转换结束后,读取 ADC1_DR 里面的值。

通过以上几个步骤的设置,可以正常的使用 STM32 的 ADC1 来执行 AD 转换操作。

通过本次实验的学习,我们了解了STM32 ADC的使用,但这仅仅是STM32强大的ADC 功能的一小点应用。STM32 的ADC 在很多地方都可以用到,其ADC 的DMA 功能是很不错的,实验十五 DMA实验

一. 实验简介

直接存储器存取(DMA)用来提供在外设和存储器之间或者存储器和存储器之间的高速数据传输。无须CPU干预,数据可以通过DMA快速地移动,这就节省了CPU的资源来做其他操作。

二.实验目的

熟练掌握DMA编程,学会对EPC02的读写操作,学习双缓冲兵乓操作,理解互斥资源。提高编程能力。

三.实验内容

利用外部按键KEY0 来控制DMA 的传送,每按一次KEY0,DMA 就传送一次数据

到USART1,然后在串口调试助手观察进度等信息。LED0 还是用来做为程序运行的指示灯。

这里我们使用到的硬件资源如下: 1)按键KEY0。2)指示灯LED0。

3)使用串口调试助手观察数据

四.实验设备

硬件部分:PC计算机(宿主机)、亮点STM32实验板、JLINK。

软件部分:PC机WINDOWS系统、MDK KEIL软件、ISP软件、网络调试助手。

五.实验步骤

1编写主程序

2编译代码,使用JLINK或ISP下载到实验板,使用串口调试助手观察数据 3记录实验过程,撰写实验报告

六.实验结果及测试

源代码:

伴随 LED0 的不停闪烁,提示程序在运行。我们打开串口调试助手,然后按KEY0,可以看到串口显示如下内容:

七.实验总结

本节利用 STM32 的 DMA 来实现串口数据传送,DMA通道的配置需要: 1)设置外设地址。

2)设置存储器地址。

3)设置传输数据量。

4)设置通道 4 的配置信息。

5)使能 DMA1 通道 4,启动传输。

通过以上 5 步设置,我们就可以启动一次 USART1 的 DMA 传输了。

DMA控制器对DMA请求判别优先级及屏蔽,向总线裁决逻辑提出总线请求。当CPU执行完当前总线周期即可释放总线控制权。此时,总线裁决逻辑输出总线应答,表示DMA已经响应,通过DMA控制器通知I/O接口开始DMA传输。

DMA控制器获得总线控制权后,CPU即刻挂起或只执行内部操作,由DMA控制器输出读写命令,直接控制RAM与I/O接口进行DMA传输。

在DMA控制器的控制下,在存储器和外部设备之间直接进行数据传送,在传送过中不需要中央处理器的参与。开始时需提供要传送的数据的起始位置和数据长度。

当完成规定的成批数据传送后,DMA控制器即释放总线控制权,并向I/O接口发出结束信号。当I/O接口收到结束信号后,一方面停 止I/O设备的工作,另一方面向CPU提出中断请求,使CPU从不介入的状态解脱,并执行一段检查本次DMA传输操作正确性的代码。最后,带着本次操作结果及状态继续执行原来的程序。

由此可见,DMA传输方式无需CPU直接控制传输,也没有中断处理方式那样保留现场和恢复现场的过程,通过硬件为RAM与I/O设备开辟一条直接传送数据的通路,使CPU的效率大为提高。

实验十六 I2C实验

一.实验简介

编程实现对使用I2C接口的EPC02芯片进行写和读操作。

二.实验目的

熟练掌握I2C编程,学会对EPC02的读写操作。

三.实验内容

编写I2C驱动程序,使用驱动程序初始化EPC02,判断设备正确性。

写256个0x5A到EPC02,读出并发送给串口,通过串口调试助手判别是否读到的都是0x5A.四.实验设备

硬件部分:PC计算机(宿主机)、亮点STM32实验板、JLINK。

软件部分:PC机WINDOWS系统、MDK KEIL软件、ISP软件、串口调试助手。

五.实验步骤

1参考教材I2C部分,编写I2C驱动程序。2编写主程序

3编译代码,使用JLINK或ISP下载到实验板 4记录实验过程,撰写实验报告

六.实验结果及测试

伴随 LED0 的不停闪烁,提示程序在运行。我们先按下KEY0,可以看到如下所示的内容,证明数据已经被写入到24C02了。

接着我们按KEY2,可以看我们刚刚写入的数据被显示出来了,如下图所示:

源代码:

七.实验总结

IIC是由数据线 SDA 和时钟 SCL 构成的串行总线,可发送和接收数据。在 CPU 与被控 IC 之间、IC 与 IC 之间进行双向传送,高速 IIC 总线一般可达 400kbps 以上。

IIC总线在传送数据过程中共有三种类型信号,它们分别是:开始信号、结束信号和应答信号。这些信号中,起始信号是必需的,结束信号和应答信号,都可以不要。程序在开机的时候会检测 24C02 是否存在,如果不存在则会在TFTLCD 模块上显示错误信息,同时LED0 慢闪。大家可以通过跳线帽把PC11 和PC12 短接就可以看到报错了。通过本次实验,我掌握了如何使用IIC写入与读出数据,学习了编写I2C驱动程序,使用驱动程序初始化EPC02,判断设备正确性,以及如何在助手上显示。

实验十七 SPI实验

一.实验简介

编程实现对SPI接口的W25Q64进行读写操作。

二.实验目的

熟练掌握SPI编程,学会对的W25Q64读写操作。

三.实验内容

1.2.3.4.5.编写SPI驱动程序 初始化SPI接口

读取SPIFLASH的ID,如果正确继续,否则报错

向SPIFALSH地址0x12AB00开始写一串字符,再读出比较判断是否与写入的一致 向SPIFALSH地址0x12AB00开始写连续256个字节的0x5A,然后读出并发送给串口,通过串口调试助手判别是否读到的都是0x5A.四.实验设备

硬件部分:PC计算机(宿主机)、亮点STM32实验板、JLINK。

软件部分:PC机WINDOWS系统、MDK KEIL软件、ISP软件、串口调试助手。

五.实验步骤

1参考SPI及SPI FLASH部分,编写SPI及SPI FLASH驱动程序(可参考书上代码)。2编写主程序

3编译代码,使用JLINK或ISP下载到实验板 4记录实验过程,撰写实验报告

六.实验结果及测试

源代码:

伴随 LED0 的不停闪烁,提示程序在运行。我们先按下KEY0,可以看到如图13.17.4.2 所示的内容,证明数据已经被写入到W25X16了。

接着我们按KEY2,可以看我们刚刚写入的数据被显示出来了,如下图所示:

七.实验总结

SPI 接口主要应用在EEPROM,FLASH,实时时钟,AD 转换器,还有数字信号处理器和数字信号解码器之间。SPI,是一种高速的,全双工,同步的通信总线,并且在芯片的管脚上只占用四根线,节约了芯片的管脚,同时为 PCB 的布局上节省空间,提供方便,正是出于这种简单易用的特性,现在越来越多的芯片集成了这种通信协议,STM32 也有 SPI 接口。

SPI 的设置步骤:

1)配置相关引脚的复用功能,使能 SPI时钟。

2)设置 SPI 工作模式。

3)使能 SPI。

程序在开机的时候会检测 W25X16 是否存在,如果不存在则会在TFTLCD 模块上显示错误信息,同时LED0 慢闪。大家可以通过跳线帽把PA5 和PA6 短接就可以看到报错了。通过本实验,我掌握了编写SPI程序写入和读取FLASH的方法,掌握了对学会对的W25Q64读写操作。对STM32开发板有了进一步的了解。

实验二十一 红外遥控实验

一. 实验简介

编程实现通过在 ALIENTEK MiniSTM32 开发板上实现红外遥控器的控制。

二.实验目的

掌握编程实现红外遥控控制开发板的方法。

三.实验内容

1.编写红外遥控驱动程序 2.编写红外遥控程序代码 3.使用红外遥控控制开发板

四.实验设备

硬件部分:PC计算机(宿主机)、亮点STM32实验板、JLINK。软件部分:PC机WINDOWS系统、MDK KEIL软件、ISP软件。

五.实验步骤

4.编写红外遥控驱动程序 5.编写红外遥控程序代码

6.编译代码,使用JLINK或ISP下载到实验板 7.记录实验过程,撰写实验报告

六.实验结果及测试

源代码:

使用串口调试助手观察数据

七.实验总结

红外遥控是一种无线、非接触控制技术,具有抗干扰能力强,信息传输可靠,功耗低,成本低,易实现等显著优点,被诸多电子设备特别是家用电器广泛采用,并越来越多的应用到计算机系统中。

通过本节实验,我学习到了如何编程使用红外遥控控制,在本程序中只是简单地输出一个数值,在以后的应用中可以实现更强大的功能,比如用红外远程输入控制开发板进行一些操作。对STM32有了进一步的认识。

实验二十二 DS18B20实验

一. 实验简介

一. 在ALIENTEK MiniSTM32 开发板上,通过 DS18B20 来读取环境温度值。

二.实验目的

巩固SPI编程。掌握使用感应器获取环境温度的方法。

三.实验内容

1.复位脉冲和应答脉冲

2.写时序

3.读时序

四.实验设备

硬件部分:PC计算机(宿主机)、亮点STM32实验板、JLINK。软件部分:PC机WINDOWS系统、MDK KEIL软件、ISP软件。

五.实验步骤

1.2.3.4.参考教材DS18B20编程部分,编写DS18B20驱动程序 编写主程序

编译代码,使用JLINK或ISP下载到实验板 记录实验过程,撰写实验报告

六.实验结果及测试

源代码:

使用串口调试助手观察数据:

七.实验总结

DS18B20 是由 DALLAS 半导体公司推出的一种的“一线总线”接口的温度传感器。与传统的热敏电阻等测温元件相比,它是一种新型的体积小、适用电压宽、与微处理器接口简单的数字化温度传感器。

通过本次实验,我认识到STM32的强大,在开发板上可以添加其他感应器从而实现更强大的功能。添加了DS18B20后的开发板可以感应外界的温度,通过公式计算显示出来。

2.嵌入式实验二实验报告 篇二

Game Boy Advance游戏以其独特的魅力吸引了大量的游戏爱好者。相对Game Boy游戏的早期版本,如Game Boy、Game Boy Color游戏,Game Boy Advance游戏需要耗费庞大的系统资源,随着嵌入式处理器处理能力的迅猛发展,GBA游戏模拟器在嵌入式处理器的移植、运行成为了可能。模拟器的移植工作是本论文中最大的内容之一,移植工作显得非常重要,它决定着这个论文是否能顺利进行下去。但是移植过程中会出现许多不确定因素,因素是多样的,有被移植代码的因素,也有来自SDL本身接口函数处理的因素,因此被移植代码是否最终能够在系统中正常运行将遇到许多障碍。由于windows下的开发工具非常方便,因此我们的思路是先抛开SDL的移植,在去掉windows的API接口后先能够确保代码在windows上编译通过, 然后再将代码进行SDL移植,虽然看似多走了一段路,但这样将移植风险降到了最低。

Game Boy Advance模拟器能够正常在嵌入式系统下运行, 其移植过程是一个充满挑战的旅程,我们选择VC++6.0,通过VC++6.0 windows开发工具的调试修改,使得GBA游戏能够在windows下运行,最终能够移植到嵌入式系统下运行。

2 Game Boy Advance在SDL上的移植

由于Game Boy Advance模拟器是开源代码,所以在网上可以找到Game Boy Advance模拟器的部分代码,但这些代码都只能在系统上编译以及对GBA文件进行解码,但是调用windows的AIP函数会出错,所以没有游戏运行窗口、按键响应、音频播放等基本功能,也就是说,一般用网上的开源源代码编译出来的可执行程序不能直接运行GBA游戏。

SDL是一个用C语言编写的免费跨平台多媒体开发库,使用LGPL许可证,可用于游戏、游戏开发工具、模拟器、样本演示、多媒体应用等。[1]为了添加人机交互界面,我们直接将工程中的windows的API函数抛弃,与跨平台的SDL相结合起来, 调用SDL中的一些库函数,从而实现对Game Boy Advance模拟器的移植。

2.1 SDL库函数的添加

先将开源源代码工程中的main.cpp文件更名new Main.cpp,把Game Boy Advance整个工程文件和new Main.cpp文件添加到VC++6.0的工程中,当执行编译时会产生许多错误,部分错误如下:

可以看出,编译出错主要是因为源工程是直接调用win-dows下API函数,但我们在移植初将这些API函数的头文件删除了,部分删除内容如下:

所以,如果要进行SDL移植,就要加上SDL库和模拟器源代码的头文件,添加内容如下:

至此,Game Boy Advance模拟器开源源代码成功用SDL移植成无人机交互界面的模拟器。

3为Game Boy Advance模拟器增加人机交互界面

当Game Boy Advance在Windows上利用SDL实现了无人机交互界面移植成功后,模拟器还只是“又聋又哑”,还需要添加人机交互界面才是一个完整的模拟器。这个过程包括了3大部分的内容:游戏画面、键盘响应、声音播放。

3.1窗体设计

通过SDL建立窗口界面,在new Main.cpp的main函数里添加创建窗口语句,就可以建立在windows下的窗口,部分程序如下:

3.2加入键盘响应

为了能响应到按键事件,我们在new Main.cpp文件中利用SDL对按键事件响应的判断,自行编写按键事件响应函数,从而可以达到对按键进行响应,程序如下:

3.3加入声音播放引擎

到目前为止,我们还剩最后的声音处理了,怎样处理声音这一块呢?借助SDL库,将解码声音播放出来,我们最终解决了这个问题。在原本new Main.cpp中被注销掉的代码位置中填入SDL声音引擎。

首先在ZSC_system Sound Init填入内容下,其中是SDL库对声音驱动的初始化代码如下:

在结构中,定义了声音播放的回调函数ZSC_sound Callback,该函数将游戏中解码的音频数据sdl⁃Buffer不断拷贝到播放数据流中。部分程序如下:

经过分析,所播放的音频数据是通过Write Sample函数来实现解码程序和播放程序相互连接的,由Write Sample函数代码和Write Sample在sound.c中被调用可以看出来Write Sample函数是声音处理的关键函数,部分程序如下:

Write Sample中,当音频数据采集到AUDIOBUFFER的长度后,音频数据通过play_sample播放出去。我们将play_sample填入代码,将采集到的音频数据存储在final_wave中,由回调函数waveout播放出去。部分程序如下所示:void play_sample(signed char*data L,signed char*data R)

因为原代码中的close_audio用来关闭声音设备,而SDL的SDL_Close Audio()函数可以用来实现对声音设备的关闭,因此在close_audio中填入代码:

至此模拟器能够显示游戏画面、播放游戏音乐、响应用户指令,已经能够运行在凌动平台下了,有了上述基础下一步只需要做一些小小改动即可运行在嵌入式系统,如linux系统、 Win CE等等。移植Game Boy Advance模拟器运行游戏如图1所示:

4结束语

论文成功的将Game Boy Advance游戏模拟器成功移植到凌动平台上。通过测试,支持大部分网络下载的GBA文件格式的游戏。游戏画面清晰流畅,声音,按键操作可靠。论文虽然达到了预期目的,但仍有许多可以改善的地方,如在游戏运行中存在声音有轻微不流畅,画面有轻微卡、顿的现象,将在后续的研究过程中进行改进。

摘要:论文将GameBoyAdvance游戏模拟器移植到嵌入式系统中。借助开放源代码的跨平台多媒体开发库SDL,实现对现有基于PC的GameBoyAdvance模拟器源代码进行移植,包括对窗口的设计、按键事件的判断和音频播放等人机交互界面设计,最终实现了GameBoyAdvance游戏在凌动平台上的运行。

关键词:GameBoyAdvance游戏,SDL库,嵌入式系统

参考文献

[1]王园园,高明煜,曾毓.基于SDL库的嵌入式平台中文显示技术研究[J].计算机系统应用,2009(4).

[2]顾叶锋,付宇卓,鲁欣.基于ARM Linux的Game Boy模拟器移植和优化研究[J].计算机仿真,2005(9).

[3]赵成.嵌入式系统应用基础:基于S3C2410A的SKYEYE的仿真与实践[M].北京:国防工业出版社,2012.

3.嵌入式实验二实验报告 篇三

关键词:嵌入式系统;实验教学;教学改革;教学模式

中图分类号:G642 文献标识码:A 文章编号:1009-3044(2015)20-0134-01

伴随着计算机技术的飞速发展,嵌入式技术在通信、自动化控制、计算机硬件系统设计、仪器仪表开发等领域的应用越来越广泛[1]。面对嵌入式人才稀缺,就业形势看好的现状[2,3],高校在人才培养方面确远远跟不上嵌入式技术的发展水平,难以满足企业对实践型嵌入式人才的需求。嵌入式系统是高校以电子信息、计算机、自动化等专业本科高年级学生为授课对象,开设的以实践应用为核心的专业技能课程[4],涉及到电工电子技术、微机原理、接口技术、汇编语言等综合内容[5]。高校在嵌入式系统课程教学过程中面临如下困难:嵌入式系统基础知识多,涉及面广,内容更新快;教学中易产生过分偏软或偏硬的现象,软硬件结合不到位,且理论和实践结合较少;高校实验经费短缺导致嵌入式实验设备投入少等。这些原因直接导致高校在培养嵌入式人才时面临课程孤立、内容不全、实践创新能力有待加强、与实际应用脱节等问题[6]。本文以东北农业大学电气与信息学院计算机专业的嵌入式系统课程实验教学改革为背景,通过对传统嵌入式系统实验教学中存在的问题进行分析,提出了嵌入式系统课程实验教学内容改革的新思路,并基于亚科尔多媒体教学软件和BBS在线学习交流资源共享教学平台构建了课堂实验教学与网上课外教学相结合的教学新模式。

1 实验教学内容改革

基于企业对嵌入式复合型人才的需求,以计算机专业低年级开设的软硬件课程为基础,以嵌入式系统课程的硬件和软件单独实验为抓手,以培养学生软硬件交叉综合实验设计和开发能力为目标,确立嵌入式系统课程实验教学内容为基本接口实验、操作系统应用实验和综合设计实验三大类[7]。其中基本接口实验、操作系统应用实验为基础篇,偏重于大三学生学习,主要基于已有实验教学资料开展;而综合设计实验为提高篇,面向大四及研究生低年级学生开设,以创新项目和电子设计大赛为手段,提升学生的综合实践能力和创新能力。

2 实验教学模式改革

在嵌入式系统课程实验教学内容改革的基础上,利用计算机系服务器搭建BBS在线学习交流资源共享教学平台,结合亚科尔多媒体教学软件,形成网上课外教学与课堂实验教学相结合的教学模式,实现课上重点问题和共性问题集中解答、课下个别问题BBS在线辅导的新型实验教学模式。

2.1课堂实验教学

实验教学以实践训练为主,辅以适当的讲解,重点是对学生实验过程中遇到的共性问题进行集中讲解。基于东北农业大学电气与信息学院实验室购进的亚科尔多媒体教学软件的网络教室功能,实验教师能够高效地进行课堂实验教学,对学生进行课上教学内容的讲解、管理和共性问题的辅导。该多媒体教学软件具有易用性好、兼容性强、稳定性高等优点,通过教师端和学生端软件的安装快速地构建多媒体网络教室,实现教师和学生桌面的录制和快速切换演示、文件的分发和收集、快速关机和重启等。

2.2网上课外教学

通过BBS在线学习交流资源共享教学平台为学生进行网上课外教学辅导,实现相关学习资料的发布、学习内容的在线交流,个别问题的在线辅导,提高学生学习的主动性,增强实验教学效果。为了使学生尽早的了解实验内容,把握实验课的重点、难点及实验安排等信息,做好实验内容预习和实验结束后相关资料的整理,实验教师可通过BBS教学平台进行实验课程介绍、实验教学大纲、实验日历、实验规划、实验指导、实验教学视频等内容的发布[8];通过使用该BBS教学平台,教师还可以为学生布置综合实验作业,通过学生上传的作业了解学生的完成情况,把握学生对知识的掌握程度,为课堂实验教学提供指导;通过使用该BBS教学平台,教室还可以实时与学生交流实验中遇到的问题,并为学生提供有针对性的网上在线辅导,进一步提高学生对知识的掌握程度。

3 教学成效

为评测该实验教学内容和模式改革的效果,以计算机专业 的学生为对象,以嵌入式系统课程的实验教学为媒介,进行实验教学模式的探讨和实验教学内容的实施。通过问卷调查和课后访谈,学生普遍反映如下:通过实验教学内容的改革,学生在完成基础实验内容后,通过综合性实验项目的开展,综合实践能力得到了一定的提升;通过教学模式的改革,将教师课上实验原理讲授、实验演示与学生课下预习实验、设计实验、教师网上指导等相结合,调动了学生学习的主观能动性,有效提高了学习效果。通过教学实践对比发现,应用该实验教学内容和模式的班级与未应用班级相比,在课上实验完成情况、综合实验设计能力方面都有了一定的提高。

4 结束语

在深入了解嵌入式系统课程特点、现状和不足的基础上,笔者结合自身的实际实验教学经验和体会,对嵌入式系统课程开展了实验教学内容和模式方面的改革探索。在实验教学内容改革的基础上,将基于亚科尔多媒体教学软件的课堂实验教学与基于BBS教学平台的网上课外教学相结合,调动了学生的学习积极性,对学生理论知识和实践能力的提高起到了很好的作用。结合BBS教学平台和亚科尔多媒体教学软件进行网上课外教学与课堂实验教学相结合的教学模式对其他计算机类课程的理论和实验教学也具有一定的可借鉴性。

参考文献:

[1] 张益嘉,宋嘉琳,丁男. 多层次嵌入式课程实践教学体系的建设与探索[J].实验科学与技术, 2014, 12(4): 148-150.

[2] 胡威,郭宏,蒋旻等. 面向嵌入式系统的本科/研究生连续式课程建设研究[J].现代企业教育, 2014 (22): 461-462.

[3] 蒋书波,王晓荣.嵌入式系统平台课程体系教学方法探析[J].中国电力教育, 2013(2): 116-117.

[4] 张晓东,孙丽君,鲁可.高校嵌入式系统课程教学改革探索[J].中国电力教育, 2013(8): 35-36, 38.

[5] 叶玮琳,包能胜,张兴伟.嵌入式系统教学中学生能力提升探索[J].教育教学论坛, 2014 (15): 221-222.

[6] 劉泽平,羊四清.计算机专业嵌入式方向课程体系建设[J].计算机教育, 2013(6): 103-106.

[7] 沈承舒,杨波.嵌入式课程教学方法的改革与探索[J].计算机教育, 2015(13): 76-78.

4.嵌入式系统实验报告 篇四

实 验 报 告

课程名称: 嵌入式系统

指导教师: 刘瑞琪 班 级: 自动化101 姓 名: 杨杰 学 号: 20102787 成绩评定: 指导教师签字:

2013年5月25日

实验一

简单的程序

一 实验目的:、动手实践一个简单的字符型设备驱动程序。、学习Linux 驱动程序构架。、学习在应用程序中调用驱动。

二 实验内容:

编写简单的字符型设备驱动程序。编写相应的应用程序。

三 实验设备:、一套S3C2410RP 嵌入式实验箱。、安装Redhat9的宿主PC机,并且配置好 ARM Linux 的开发环境。

四 实验步骤

实验二 CPU GPIO 驱动程序及测试程序

一、实验目的:

编写第一个针对实际硬件的驱动程序,进一步了解驱动程序构架。

二、实验内容:、编写S3C2410 GPIO驱动程序。、编写S3C2410 GPIO应用程序。、在 LINUX系统中插入自己的驱动程序,调用它。实现用 CPU GPIO 控制外部LED,利用S3C2410 核心板上的 LED 验证我们的工作。

三、实验设备、一套S3C2410RP 嵌入式实验箱。、安装Redhat9的宿主PC机,并且配置好 ARM Linux 的开发环境。

四、实验步骤

1、复制Experiment_KeyHello_driverapl_test文件下的simple_test_driver.c文件到Experiment_KeyGPIO文件夹下,将文件名更改为test.c。

2、打开test.c,在else语句后更改函数语句如下:

3、复制Experiment_KeyADapl_test文件夹下的Makefile到Experiment_KeyGPIO文件夹下,打开并将中的ADC删除。

4、打开Experiment_KeyGPIOdriver文件下的gpio_led.c文件。

5、在ssize_t SIMPLE_GPIO_LED_ioctl函数下添加如下语句:

if(cmd==0)GPBDAT &= ~(0xf<<5);

if(cmd==1)GPBDAT |=(0xf<<5);如下图所示:

6、在int __init HW_GPIO_LED_CTL_init函数下屏蔽for循环,如下图所示:

保存并关闭。

7、打开终端,并编译test.c文件和gpio_led.c文件。

8、重新打开一个终端,并按步骤输入如下语句:

9、依次输入如下语句:

1、cd..2、ls

3、mknod /dev/hello_ctl c 97 1

4、./test

实验三 中断实验及LED显示

一、实验目的:

学习Linux 系统是如何处理中断。

二、实验内容:

编写获取和处理外中断的驱动程序。

三、实验设备:、一套S3C2410RP 嵌入式实验箱。、安装Redhat9的宿主PC机,并且配置好 ARM Linux 的开发环境。

四、实验步骤

1、打开Experiment_KeyGPIOdriver文件下的gpio_led.c文件。

2、在ssize_t SIMPLE_GPIO_LED_ioctl函数下添加如下语句:

if(cmd==0)GPBDAT &= ~(0xf<<5);

if(cmd==1)GPBDAT |=(0xf<<5);如下图所示:

3、在int __init HW_GPIO_LED_CTL_init函数下屏蔽for循环,如下图所示:

保存并关闭。

4、打开Experiment_KeyInterruptdriver下的Interrupt.c文件,并在其interrupt函数下添加for语句,如下图所示:

5、打开终端,并编译Interrupt.c文件和gpio_led.c文件。

6、重新打开一个终端,并按步骤输入如下语句:

7、依次输入如下语句:

1、cd /mnt/2410RP_linux/Experiment_Key/Interrupt/driver

2、ls

3、insmod Interrupt.o

实验四 数码管显示实验

一、实验目的:

学习串并转换的相关知识,并编写驱动程序。

二、实验内容:

编写针对zlg7289A 的驱动程序。

三、实验设备:、一套S3C2410RP 嵌入式实验箱。、安装Redhat9的宿主PC机,并且配置好 ARM Linux 的开发环境。

四、实验步骤

1、打开Experiment_KeySpi_leddriver文件夹下的spi_led.c

2、并在spi_ledInit函数下添加如下语句:

保存并关闭。

3、打开终端,并编译spi_led文件。

4、重新打开一个终端,并输入如下语句:

实验五

AD 驱动实验

一 实验目的:、了解模数转换的基本原理;、掌握模数转换的编程方法。

二 实验内容:、编程对模拟量输入进行采集和转换,并将结果显示在超级终端上。、通过改变模拟量输入,观察显示结果。

三 实验设备:、一套S3C2410RP 嵌入式实验箱。、安装Redhat9的宿主PC机,并且配置好 ARM Linux 的开发环境。

四 实验步骤

1、在spi_led..c中的simpled ioctl中加入以下程序

2、在testADC中复制以下程序并修改如下

3、挂载程序

cd /mnt/2410RP_linux/Experiment_Key/spi_led/driver

ls insmod spi_led.o

cd /mnt/2410RP_linux/Experiment_Key/ad/driver

insmod adc.o cd /mnt/2410RP_linux/Experiment_Key/ad/apl_test

ls

mknod /dev/spi c 104 1

ls

5.中北大学嵌入式系统实验报告 篇五

《嵌入式系统实验报告》

专 业 电气工程与智能控制 班 级 14070541 学 号 1407054103 姓 名 贾晨凌

实验一 ARM 处理器指令系统实验

一、实验目的

熟悉ARM指令系统,熟悉ARM SDT编辑编译连接,ARM Project Manager和ARM Debugger的设置和使用

二、实验条件

Windows平台的ARM SDT 2.51软件:ARM Project Manager和ARM Debugger。

三、实验内容

学习使用ARM Project Manager建立项目文件,编辑汇编文件,并加入项目。学习ARM编译器和汇编器的设置。通过编程熟悉ARM指令,包括跳转指令,数据处理指令,状态寄存器传送指令,load/store指令,中断异常产生指令。学习ARM调试起的使用方法,包括程序的导入,单步执行,断点设置等。

四、实验要点

工程文件的建立,在ARM Project Manager中点击File->New,选择Project,点击确定。

链接器的设定,需要设置代码和数据段的起始地址。点击图标,选择不进行远程调试,即可打开调试器。

五、实验结果

熟悉ARM指令系统

实验二p1口实验

一、实验目的

熟悉 ARM SDT 软件开发方法和技能; 学习和巩固 ARM 指令集; 学习和巩固汇编语言程序设计

二、实验条件

Windows平台的 ARM SDT 2.51 软件:ARM Project Manager 和 ARM Debugger; DebugServer.exe;EFLAG-ARM-S3C44B0 实验箱

三、实验内容

目录 ARM251EXAMPLESASM 下的汇编程序,学习和调试代码,分析所得结果。在调试器上仿真软件的执行。

在实验箱上,调试软件,并观察软件的执行结果

四、实验要点

在调试软件目录中启动 DebugServer.exe 调试器服务程序。启动 SDT 调试软件 ARM Debugger。

五、实验结果

实验三中断口实验

一、实验目的

熟悉 S3C44B0 中断控制器的结构。

学习使用 S3C44B0 中断控制器的编程方法。

二、实验条件

Windows平台的 ARM SDT 2.51 软件:ARM Project Manager 和 ARM Debugger;DebugServer.exe;EFLAG-ARM-S3C44.B0 实验箱。

三、实验内容

学习S3C44B0 中断控制器的结构。

理解 S3C44B0 的中断服务程序的工作原理,中断程序的调试。

四、实验要点

S3C44B0X的中断控制器有30个中断源。S3C44B0X支持新的中断处理模式称为(vectored interrupt mode),在多个中段请求发生时,由硬件优先级逻辑确定应该有哪个中断得到服务,同时硬件逻辑使中断相量表的跳转指令加载到(0X18或0X1C)位置,在该位置执行跳转指令使程序跳到相应的中断服务线程,因此相对与传统的ARM的软件方法能够大大减少中断进入延时。

分支指令机器代码= 0xea000000 +((--0x8)>>2)destination address为中断服务线程ISR 的开始地址,vector address 为中断源在中断相量表中的地址,即分支指令所在地址。分支指令机器代码有硬件自动产生。

中断优先级产生模块: 对于IRQ中断请求有一个中断优先级产生模块,如果中断向量模式使用和一个中断源被配置为ISQ中断,中断将被中断优先级产生模块处理。中断优先级产生模块处理包括五个单元:1个master单元,4个slave单元,每个slave单元管理6个中断源,包括4个可编程的优先级源(sGn)和2个固定优先级源(sGKn,其优先级在6个优先级源中最低,其中sGKA的优先级高于sGKB的优先级).。一个master单元管理4个slave单元mGn和2个中断源mGKn,用来确定4个38slave单元,和2个中断源的优先级mGKn,其中4个slave单元的优先级次序可编程,其中的2个中断源INT_RTC 和 INT_ADC中断源在26个中断源中优先级最低,并且INT_RTC的优先级高于INT_ADC的优先级。

五、实验结果

实验四定时器实验

一、实验目的

熟悉 S3C44B0 定时器的结构。

学习使用 S3C44B0 定时器的编程方法。

二、实验条件

Windows平台的 ARM SDT 2.51 软件:ARM Project Manager 和 ARM Debugger;DebugServer.exe;EFLAG-ARM-S3C44.B0 实验箱。

三、实验内容

学习S3C44B0定时器的结构。

理解 S3C44B0 定时器的工作原理,中断程序的调试。

四、实验要点

理解 S3C44B0 定时器的工作原理

五、实验结果

实验五A/D转化实验

一、实验目的

学习使用 S3C44B0 模数转换器的控制的方法。

二、实验条件

Windows平台的 ARM SDT 2.51 软件:ARM Project Manager 和 ARM Debugger;DebugServer.exe;EFLAG-ARM-S3C44.B0 实验箱。

三、实验内容

使用 S3C44B0 内建的 A/D 转换器,对实验箱提供的正弦,方波,直流信号进行采集并通过穿行口,将采集到的数据显示在 pc 机上,程度较好的同学可将数据直接显示到系统的 LCD 屏幕上。

四、实验要点

S3C44B0X的1位A/D 转换器包含一个8路模拟输入混合器,自动归0比较器,时钟发生器,10位连续近似寄存器和一个输出寄存器.特征如下: 最大转换速率:100KSPS 输入电压范围:0-2.5V 输入带宽: 0-100 Hz(无采样和保持电路)

五、实验结果

实验六LCD显示实验

一、实验目的

了解LCD 基本概念与原理。理解LCD 的驱动控制。

熟悉用 ARM 内置的 LCD 控制器

二、实验条件

Windows平台的 ARM SDT 2.51 软件:ARM Project Manager 和 ARM Debugger;DebugServer.exe;EFLAG-ARM-S3C44.B0 实验箱。

三、实验内容

学习LCD 显示器的基本原理,理解其驱动控制方法。掌握 LCD 驱动方式的基本原理和方法。并用编程实现。

S3C44B0X 中具有内置的 LCD 控制器,它具有将显示缓存(在系统存储器中)中的 LCD 图象数据传输到外部 LCD 驱动电路的逻辑功能。S3C44B0X 中内置的 LCD 控制器可支持灰度 LCD 和彩色 LCD。在灰度LCD 上,使用基于时间的抖动算法(time-based dithering algorithm)和 FRC(Frame Rate Control)方法,可以支持单色、4 级灰度和 16 级灰度模式的灰度 LCD,在彩色 LCD 上,可以支持 256 级彩色。对于不同尺寸的 LCD,其具有不同数量的垂直和水平象素、数据接口的数据宽度、接口时间及刷新率,而 LCD 控制器可以进行编程控制相应的寄存器值,以适应不同的 LCD 显示板。内置的 LCD 控制器提供了下列外部接口信号:VFRAME: LCD 控制器和 LCD 驱动器之间的帧同步信号。

四、实验要点

掌握 LCD 驱动方式的基本原理和方法

6.嵌入式实验二实验报告 篇六

(1)通过实验掌握中断式键盘控制与设计方法;(2)熟练编写S3C2410中断服务程序。实验设备

(1)S3C2410嵌入式开发板,JTAG仿真器。

(2)软件:PC机操作系统Windows XP,ADS1.2集成开发环境,仿真器驱动程序,超级终端通讯程序。实验内容

编写中断处理程序,处理一个键盘中断,并在串口打印中断及按键显示信息。实验步骤

(1)参照模板工程,新建一个工程keypad,添加相应的文件,并修改keypad的工程设置;

(2)创建keypad.c并加入到工程keypad中;(3)编写键盘中断程序; 参考代码如下: ①串口初始化程序

void uart_init()/* UART串口初始化 */ {

} GPHCON |= 0xa0;GPHUP = 0x0;ULCON0

//GPH2,GPH3 used as TXD0,RXD0

//GPH2,GPH3内部上拉

//8N1

= 0x03;UCON0 = 0x05;UFCON0 = 0x00;

//查询方式为轮询或中断;时钟选择为PCLK

//不使用FIFO //不使用流控 UMCON0 = 0x00;UBRDIV0 = 26;

//波特率为57600,PCLK=12Mhz ②发送数据

while(!(UTRSTAT0 & TXD0READY));UTXH0 = c;③接收数据

while(!(UTRSTAT0 & RXD0READY));return URXH0;④打印数据

int i = 0;

while(str[i]){ } return i;putc((unsigned char)str[i++]);⑤按键初始化

int key_init()/* 按键初始化 */ {

} ⑥中断初始化

void irq_init()/* 中断初始化 */ {

}(5)编译keypad;

(6)运行超级终端,选择正确的串口号,并将串口设置位:波特率(115200)、奇偶校验(None)、数据位数(8)和停止位数(1),无流控,打开串口; INTMSK &= ~(3<<2);printk(“中断初始化OKrn”);GPFCON = 0x55aa;GPFUP = 0xff;

printk(“按键初始化OKrn”);return 0;(7)运行程序,在超级终端中输入的数据将回显到超级终端上,结果如图5.4所示:

图6.1 初始化运行结果

图6.2 main运行结果 实验总结

通过这次实验我巩固了上次实验的串口的使用方法,串口初始化、发送数据和接收数据,同时也熟悉了中断的处理过程,即保护现场、中断处理、恢复现场并返回。

7.嵌入式实验二实验报告 篇七

1 实验项目设计

设计的平台提供串口、USB接口、带电气隔离的CAN-bus接口、I2S音频接口、以太网接口等, 满足各种应用要求, 让学生全面深入学习μC/OS-II、WinCE和Linux操作系统, 同时根据装置所提供的大量源代码及详细的教学文档, 能加快学习进度。具体的实验项目包括μC/OS-II、WinCE和Linux嵌入式实时操作系统的移植, Linux开发环境建立及内核编译运行实验, Linux文件系统实验, Linux内核驱动程序开发实验, uC/OS-II任务管理和任务间通讯实验, Nand Flash读写实验, 行列扫描方式的矩阵键盘实验, L C D控制器实验, D M A读写实验, ADC实验;I2C串行EEPROM读写实验, I2S相关实验, LED跑马灯实验, 定时器中断实验, IDE硬盘读写实验, UART异步串行口通讯实验, W A T C H D O G实验, C A N总线通讯实验, 录音和放音实验, 以太网 ( (UDP、TCP/IP和WebServer) ) 相关实验, USB DEVICE通讯实验, LCD显示实验, USB图像采集传输实验等。

2 装置硬件设计

系统的硬件平台主要是由嵌入式处理器、USB摄像头模块、存储器、以太网接口、LCD接口、串行接口电路等组成。系统硬件结构框图如图1所示。

(1) CPU:Samsung的S3C2440A-40处理器, 其是一款由Samsung半导体公司为手持设备和各种多用途应用设计的, 低功耗、高集成度的微处理器, 采用289脚FBGA封装, 包含ARM920T内核, 工作频率达406MHz。

(2) 存储器设计。Nand Flash存储器:采用1片Nandflash同时作为启动ROM和系统程序保存R O M。S D R A M:用于设置程序堆栈和存放各种数据变量等。

(3) 以太网接口设计。10Mbps低功耗嵌入式专用以太网网络芯片CS8900A-CQ3, 接口为标准RJ45插座, 集成网络变压器, 安全可靠

(4) U S B接口。采用C y p r e s s公司的SL811HS芯片作为USB接口芯片, 它是一种USB主机控制器, 它能与全速或低速USB外围设备通信, SL811HS采用3.3V供电, 其端口驱动能力但是可以兼容5V的电平逻辑。

(5) 串口R S 2 3 2是应用最为广泛的UART接口, RS232接口采用的是最简单的三线连接 (TXD, RXD, GND) , 通讯波特率为9600b/s。

(6) 音频接口:采用IIS接口芯片UDA1341。

(7) 摄像头:采用OmniVision公司的O V 5 1 1。

(8) LCD接口:本文选用LTS350Q1-PD1LCD显示屏, 为3.5寸的TFT, 分辨率为320×240, 16位色彩。

3 装置软件设计

本实验装置的嵌入式操作系统有μC/OS-II、WinCE和Linux操作系统, 综合考虑后, 本文选用嵌入式Linux系统, 本文主要介绍嵌入式Linux操作系统的移植, 摄像头模块软件和LCD显示模块软件。

3.1 嵌入式Linux操作系统的移植

3.1.1 嵌入式Linux交叉环境建立

交叉编译环境是一个由编译器、链接器和解释器组成的综合开发环境, 交叉编译工具主要由binutils、gcc和glibe几个部分组成。建立针对ARM的交叉编译环境主要过程如下:

(1) 下载源文件、补丁和建立编译的目录; (2) 建立内核头文件; (3) 建立二进制工具; (4) 建立初始编译器; (5) 建立链接库; (6) 建立全套编译器。

3.1.2 嵌入式Linux内核移植

在Linux系统内核代码中有arch目录, 其中包括了不同平台的代码, 与体系结构相

关的代码都存放在arch下面相应的目录下面。本系统采用arm开发平台, 所以依赖ARM硬件平台的代码都在arch/arm下面。根目录下面只需要修改Makefile文件, 该文件主要任务是产生vmlinux文件和内核模块。

配置命令可以选用make config, make oldconfig, make menuconfig或make xconfig

其中一个。

编译内核需要创建内核依赖关系、创建内核镜像文件和创建内核模块。首先执行make dep命令, 读取配置过程生成的配置文件, 来创建对应于配置的依赖关系树;接着执行make clean命令删除前面步骤留下的文件, 以避免出现一些错误;然后便可以生成所需要的内核文件了, 用m a k e zlmage来实现得到可移植的内核, 内核文件传至开发板便可以通过BootLoader加载运行。

3.2 摄像头模块软件

3.2.1 OV511摄像头驱动程序加载

采用Linux系统采用模块化的设计, 在进行OV511摄像头的驱动研究时, 必须要在嵌入式Linux内核中加载Video4Linux模块和OV511设备的支持。本系统采用动态加载方式, 加载过程如下:

(1) 在嵌入式Linux的内核源码目录中, 执行命令make menuconfig;

(2) 选择Multimedia device-->下的video for linux, 加载video4linux模块。

(4) 保存刚才的配置, 退出;

(5) 执行“make dep”, “make zImage”, “make modules”, 然后就在/driver/usb目录下生成ov511.o, 同时生成的zImage自动放在/tftpboot目录下;

(6) 执行“insmod ov511.o”, 把USB摄像头的驱动加载进系统。

3.2.2 视频采集软件

在Linux内核中, 提供了视频类部分的标准是V4L, 这个标准可用于USB摄像头编程。

(1) 初始化视频设备。

在Linux系统中, 摄像头被当作一种特殊的文件, 即设备文件来处理, 在本文中是/dev/v4l/video0, 让摄像头工作首先要做的是调用系统函数open打开设备;打开设备以后, 还要获得视频图片的属性, 这里调用I/O通道控制函数ioctl () 来实现;

(2) 设定norm信息。

norm参数的定义在videodev.h头文件中有定义, 分别是:VIDEO_MODE_PAL、VIDEO_MODE_NTSC、VIDEO_MODE_SECAM、VIDEO_MODE_AUTO。

(3) 设定mmap信息。

视频采集有两种方式:内存映射和直接从设备文件读取。这里采用mmap方式。首先, 调用系统函数ioctl () 获得内存映射的buffer信息;然后用vd->map指针指向这部分内存;

(4) 采集视频帧。

主要通过三个函数来实现获取视频帧信息, 分别是:

device_next_frame () ;//等待直到获取下一幅

device_grab_sync () ;//得到一幅图片

image=device_get_address () ;//获得图片的指针

(5) 输出视频数据。

当利用device_get_address () 函数获得frame的存放位置以后, 就可以输出视频数据了。视频数据可以直接输出到framebuffer, 或者可以利用LCD显示, 本文是把数据写进文件。

3.3 LCD驱动程序开发

3.3.1 编写初始化函数

初始化的功能主要有初始化LCD控制器, 写相关寄存器设置显示模式和颜色数, 为LCD分配显示缓冲区, 用kmalloc () 函数分配一段连续的空间, 缓冲区分配在SDRAM中。

3.3.2 编写各成员函数

对显示设备/dev/fb主要有读/写操作、映射 (map) 操作和I/O控制操作。

(1) 读/写 (read/write) /dev/fb操作:相当于读/写屏幕缓冲区。

(2) 映射操作:在Linux中工作与保护模式, 每个应用程序都有自己的虚拟地址空间, 应用程序不能直接访问物理地址, 而是由file_operations结构中提供了mmap函数, 将文件的内容映射到用户空间。

(3) I/O控制:对于帧缓冲设备, 通过对文件ioctl的操作读取和设置显示设备的分辨率、显示颜色数和屏幕大小等屏幕参数。Ioctl的操作也是有底层的驱动程序来完成。

4 结语

本装置采用全部免跳线设计, 免去烦琐而且容易出错的硬件跳接, 简单易用, 不会出现硬件调试设定的故障, 降低了学生的使用难度, 非常方便学生实验使用, 同时, 提供丰富的外围模块和上机实验指导, 可以满足大部高分职嵌入式A R M教学实验的要求。

参考文献

[1]宋宝华.Linux设备驱动开发详解[M].人民邮电出版社, 2008, 2.

[2]周立功.ARM嵌入式系统基础教程[M].北京航空航天大学出版社, 2008, 9.

8.中考化学实验考什么(二) 篇八

实验设计与评价是实验考查的最高层次,解答该类题需具有扎实的基础知识、灵活的思维能力、熟练的动手操作能力和良好的探究能力,还需要具备敏捷地接受、分析和评价信息的能力以及良好的文字表述能力等。考查形式主要表现为用已掌握的化学知识和实验技能设计恰当的方案、评价方案的优劣。

对于此类问题,应遵循以下基本思路:原理要正确、条件要求低、装置要简单、操作上可行、安全性好、不对或少对环境产生污染、原料要易得、价格要低廉、药品消耗要少、要联系实际分析等。

例4现有2瓶失去标签的溶液,一瓶是稀H2SO4,另一瓶是Na2SO4。请你根据所学知识设计鉴别方案(最少四个方案)。要求简述操作步骤、实验现象和由现象得出的结论。(所用试剂根据情况自定)

分析:本题要求设计实验鉴别稀H2O4和Na2SO4,解题时只要抓住稀H2SO4和Na2SO4的性质,根据它们的不同性质便可设计出多种方法来鉴别:(1)用两支试管各取少量样品,分别滴加2~3滴紫色石蕊试液,能使石蕊试液变红色的是稀H2SO4,无变化的是Na2SO4。(2)用两支试管各取少量样品,分别加入少量锌,有气体生成的是稀H2SO4,无现象的是Na2SO4。(3)用两支试管各取少量样品,分别加入Na2CO3溶液,有气体产生的是稀H2SO4,无现象的是Na2SO4。(4)用两根玻璃棒,各蘸少量样品分别涂在PH试纸上,呈酸性的是稀H2SO4,无变化的是Na2SO4。等等。

五、考察将仪器连接与组合成一套完整的实验装置的能力

初中化学中的组合实验一般以O2、H2和CO2三种气体的制取与发生实验或迁移应用其原理和性质的实验为主,将许多仪器有序组合成完整装置,再依据要求进行有关实验。制取比较纯净、干燥的其他气体的装置连接顺序一般为:制取→除杂质→干燥→验证→尾气处理等。制取气体时要根据所用药品的状态、反应条件等来选择装置。固体加热,用制O2的装置;固体不加热,用制H2或CO2装置。难溶于水的气体,可用排水法收集;不跟空气反应,密度比空气大的气体,用向上排空气法;密度比空气小的气体,用向下排空气法收集。制取气体的操作顺序一般为:仪器连接→检查装置气密性→加固体药品→加液体药品→进行实验→仪器拆洗等。除杂质与干燥的装置一般选用洗气瓶或干燥管,在洗气瓶中导管一般是长进短出,在干燥管中导管一般是大进小出。除杂质与干燥的装置连接顺序一般是先除杂质后干燥。

六、考查实验报告的书写能力

例5设计一个实验,以验证铜、汞、铁三种金属活动性顺序,并写出实验报告,实验报告包含实验目的、实验用品、实验步骤、实验现象及结论等。

分析:平时做实验时常常是使用现成的实验报告册,“照方抓药”。实验过程中只填写实验现象及结论,往往忽视了实验报告的书写格式。因此,面对一道开放性实验设计题,虽难度不大,但要完成一份没有纰漏的实验报告,没有扎实的基本功、规范的训练是很难做到的。本题答案如下:

实验报告

实验目的:验证铜、汞、铁三种金属的活动性顺序。

实验用品:FeSO4溶液、Hg(NO3)2溶液、铜丝、试管、砂纸。

实验步骤:实验现象、结论、反应的化学方程式。

1.取1支试管,倒入2mlFeSO4溶液,将用砂纸打光的铜丝插入溶液中,片刻后取出,无明显现象。金属活动性Fe>Cu。

2.另取1支试管,倒入2mlHg(NO3)2溶液,把上述实验所用铜丝冲净擦干后放人溶液,片刻后取出。

实验现象及结论:铜丝上附着银白色物质,溶液由五色逐渐变为浅蓝色。金属活动性Cu>Hg,Cu+Hg(NO3)2=Hg+Cu(NO3)2。三种金属活动性顺序为:Fe>Cu>Hg。

9.嵌入式实验二实验报告 篇九

实验序号:实验二 实验项目名称:

实验二 Windows7 基本操作(二)

号 号

名 名

专业、班 计算机科学与技术班 班 实验地点

指 导 教师 师

时间 2013.10.09 一、实验目的及要求 1、掌握设置桌面的方法。

2、掌握创建文档的多种方法及多种创建文档的方法。

3、熟练掌握文档的各种操作,如:打开,复制,粘贴,删除,查找等。

4、学会如何创建文件夹,从而能够合理有效的管理个人计算机。

二、实验设备(环境)及要求 1、环境要求:

硬件:PC(PⅣ以上,1G 以上内存); 软件:Windows 7 操作系统 三、实验内容与步骤(一)、实验内容 1、文件的概念的理解。

2、文件及文件夹的操作。

3、回收站的操作。

(二)、实验指导 1 桌面的简单操作 桌面是登录到 Windows 后看到的屏幕,它是计算机上最重要的特性之一。桌面可以包含你经常使用的程序、文档、文件夹甚至打印机的快捷方式。用户也可根据需要调整桌面颜色和背景等设置等。

查看和更改显示属性:

在桌面空白处,单击鼠标右键,在出现的快捷菜单中,选择“属性”命令

(1)设置桌面背景为图片“Zapotec”,方式为“平铺”。

(2)设置屏幕保护程序为“字幕显示”,文字为“计算机信息技术基础”,设置其背景色、速度、位置和文字格式。

(3)设置外观方案为“淡绿色”;设置视觉效果为“使用大图标”。

(4)设置颜色为“256 色”,屏幕区域为“1024*768 像素”。

2、创建文档 在进行这个实验之前,我们先回顾一下文件的概念。文件是指记录在存储介质上的一组相关信息的集合,它可以是程序、数据或其它信息。

在这个实验中我们将以如下一段小短文为例制作一个写字板应用文档,并对它进行一系列操作,最后以自己的名字为名保存起来:

为了加强大学计算机基础课实践环节的教学,提高大学生的计算机操作能力,加深对课本基本知识和基本概念的理解,将上机实验指导从课本分离出来,加以扩展,供学生上机前阅读,为上机实验做准备,也可供学生上机时参考。

操作步骤如下:

(1)启动写字板应用程序并为文件命名 启动写字板应用程序并为文件命名共有如下几种方法:

①从开始菜单启动写字板程序并给文档起名 ②从快捷方式启动写字板程序并为文档起名(2)输入内容 在写字板应用程序的主窗口中输入上述中文或英文内容。

(3)保存输入的内容 方法一:选择文件菜单中的保存即可保存输入的内容。

方法二:在窗口上部的快捷工具栏中点选第三个图标(即保存的快捷图标)也可以保存文档。

(4)关闭应用程序 关闭应用程序有以下几种方法:

①在写字板应用程序的菜单栏中选择“文件”菜单,从其下拉菜单中选择“退出”即可。

②在写字板应用程序的标题栏的最右端用鼠标左键单击带有“╳”的图标以退出程序。

③在键盘上按下“Alt”键的同时,按下F4 键可以迅速关闭程序窗口。

2、对文件夹进行操作 (1)创建文件夹 在中文 Windows 中我们以文件夹来管理文件,有了文件夹的概念,用户可以在自己的PC 机上分门别类的创建文件夹和管理文件,而且一个文件夹之下还可以再创建文件夹,一层一层的嵌套。

创建文件夹有如下两种方法:(以在 D:盘创建文件夹为例,也可以按老师指定盘进行)

①在 Windows 桌面上双击“我的电脑”图标,弹出我的电脑窗口,在该窗口中双击“(D:)”图标,进入 D 盘窗口,在其菜单栏中选择“文件”菜单,在弹出的菜单中选择“新建”,在其子菜单中选择“文件夹”,此时在窗体中就会出现一个新的文件夹,其默认名称为“新建文件夹”,此时可直接修改该文件夹的名称,若输入你所在的班级名,一个以你的班级名命名的新的文件夹就创建好了。

②在 Windows 桌面上双击“我的电脑”图标,弹出我的电脑窗口,在该窗口中双击“(D:)”图标,进入 D 盘窗口,在该窗口的窗体空白处单击鼠标右键,在弹出的快捷菜单中选择“新建”,从其子菜单中选择“文件夹”,这样也可建立一个新的文件夹。

(2)文件夹的打开 用鼠标左键双击某文件夹之后即打开了该文件夹。每个文件夹的打开都是一个窗口。

(3)文件夹的选定、复制/移动、粘贴、删除、重命名 对文件夹的选定、复制/移动、粘贴、删除、重命名操作同文件的对应操作相同,只是选择的对象不同而已,这一部分操作可参看后面的文件操作。

3、对文件进行操作 (1)文件的打开(以刚才建立的文件为例)

打开文件有如下几种方法:

①从开始菜单的文档直接打开文件 ②从文件所依赖的应用程序中打开它 ③从我的电脑打开文件 ④使用资源管理器打开文件。

值得注意的是,使用资源管理器可以打开任何类型的文件,方法同上。

(2)文件(夹)的选定 ①选定单个文件(夹)

②选定多个文件(夹)

(3)文件(夹)的复制和粘贴(将你刚才所建的文件复制到 D:盘所创建的文件夹中)

先选定要复制的文件,然后使用下列方法之一:

①先“复制”(Ctrl+C),确定目标文件夹后进行“粘贴”(Ctrl+V)操作。

②同盘(不同文件夹),则按住键并用左键拖动鼠标到目标文件夹。

③不同盘,则直接用左键拖动鼠标到目标文件夹。

④用右键拖动鼠标到目标文件夹,从快捷菜单中选择:复制到当前位置(C)。

(4)文件(夹)的移动和粘贴 先选定要移动的文件,然后使用下列方法之一:

①先“剪切”(Ctrl+X),确定目标文件夹后进行“粘贴”(Ctrl+V)操作。

②同盘(不同文件夹),则直接用左键拖动鼠标到目标文件夹。

③不同盘,则按住键同时用左键拖动鼠标到目标文件夹。

④用右键拖动鼠标到目标文件夹,从快捷菜单中选择:复制到当前位置(X)。

(5)文件(夹)的删除 选中以你自己的名字创建的文件图标,单击右键,从打开的快捷菜单中选择“删除”(或者在窗口的快捷工具栏中选择删除图标),在弹出的“确认文件删除”对话框中选择“是”,即把文件删除,被删除的文件就放在回收站中。

(6)文件(夹)重命名(改名)

先选定要重命名的文件(夹),然后使用下列方法之一:

方法一:使用“文件”菜单中的“重命名”命令。

方法二:右击要重命名的文件(夹),在快捷菜单中选择:重命名(M)。

方法三:再单击要重命名的文件(夹)的名称。

方法四:按功能键。

4、对回收站的操作 在 Windows 桌面上双击“回收站”图标,打开回收站对话框,如果要把删除的文件还原(即撤消所做的删除操作,使得文件回到删除前的位置),可以先选中文件,然后选择文件菜单中的还原(或者直接选择窗口中的还原),则该文件就回到被删除以前所在的位置,我们仍然可以使用它;如果要把删除的文件彻底从硬盘中删除,可以先选中文件,当鼠标停在该文件上时,单击鼠标右键,从弹出的快捷菜单中选择删除即可。

(三)、实验思考题 1、为什么关闭写字板程序的时候有时会出现“是否保存对文档所作的修改”提示框,“是”、“否”、“取消”三个选项的不同选择有什么不同? 2、为什么有时候从“我的电脑”中打开某个文件的时候会出现“打开方式”对话框?(如:C 盘 Windows 文件夹中的 brndlog.bak 文件)

四、实验结果与数据处理 1.文件是指记录在存储介质上的一组相关信息的集合,它可以是程序、数据或其它信息。

2..文件夹的操作:

((1)创建文件夹:在桌面上用鼠标左键双击“我的电脑”,然后用鼠标左键双击 D 盘进入 D盘窗口,在该窗口的窗体空白处单击鼠 标右键,在弹出的快捷菜单中选择“新建”,从其子菜单中选择“文件夹”。

((2)文件及文件夹的打开:用鼠标双击文件夹即可打开,也可以用鼠标右键单击文件夹然后用鼠标左键单击“打开”。

((3)文件及文件夹的选定、复制/ 移动、粘贴、删除、重命名:用鼠标单击文件夹即可选定单个文件。长按鼠标左键或右键可对多个文件夹进行选定。用鼠标左键长按住文件夹可对文件夹进行移动。用鼠标右键单击文件夹选择“复制”可对文件夹进行复制,进入指定窗口,在窗口的空白区域单击鼠标右键选择“粘贴”可粘贴已经复制的文件夹。用鼠标右键单击文件夹选择“删 除”可删除文件夹,选择“重命名”然后在文件夹图标下面的蓝色区域对文件夹进行重命名。

3.对回收站的操作:用鼠标左键双击桌面的“回收站”打开回收站,此时回收站中会出现已经删除过的文件。用鼠标右键单击其中的一个文件然后选择“还原”可以将已经删除的文件还原,选择“删除”则能永久删除该文件。在桌面用鼠标右键单击回收站选择“清空回

收站”可以将回收站中所有的文件永久删除。

五、分析与讨论 1.这样可以避免我们对文档修改后忘记保存文档。这可以提醒我们将有用的文字信息保存下来。点击“是”,文档保存下来,再次打开该文档则 可以看到已输入的文字信息,点击“否”,再次打开该文档时和第一次打开的文字信息相同。并未保存修改的文字信息。点击“取消”则保留在当前的文档界面,但此时依然未将输入的文字信息保存。

2.因为有的文件只能用指定的软件打开。有时一个文件能有多种打开方式,这样可供使用者选择自己所需要的打开方式。也有的文件系统无法找到能打开该文件的方式,此时就需要使用者自行选择打开方式。

六、教师评语 1.按时完成实验; 2.实验内容和实验过程记录完整; 3.回答问题完整、正确; 4.有关于实验的比较深刻的心得或讨论; 5.实验报告的撰写认真、报告格式符合要求。

签名:

日期:

****年**月**日

上一篇:房产管理下一篇:高二作文平凡也美丽800字

本站热搜

    相关推荐