嵌入式实验报告_第1页
嵌入式实验报告_第2页
嵌入式实验报告_第3页
嵌入式实验报告_第4页
嵌入式实验报告_第5页
已阅读5页,还剩11页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、实验项目名称嵌入式实验实验成绩实 验 者马行亮专业班级通信0803组 别同 组 者实验日期 年 月 日一、实验目的1. 掌握 S3C44B0 GPIO 口的使用;2. 检测 S3C44B0 外部中断管脚 EXTINT4,5,6,7 输入,然后控制 LED 灯3. 测试 S3C44B0 内部集成的 RTC 实时时钟功能4. 测试 S3C44B0X 的 PWM 输出。二、实验内容1. LED 跑马灯实验2. 键盘控制 LED 实验3. RTC 实时时钟实验4. Beep 音乐程序三、实验原理(1)S3C44B0 一共包含 PORTA, PORTB, PORTC, PORTD, PORTE(2)S3

2、C44B0通过集成全面、通用的片内外设,大大减少了系统电路中除处理器外的器件需求,从而最小化系统成本。下列是其集成的边内外设:1. 外部存储器控制器(FP/EDO/SDRAM控制器,片选逻辑)2. LCD 控制器(最大支持256色STN,LCD具有一个专用的DMA通道)3. 2个通用DMA通道,2 个外设DMA通道并有片外请求管脚4. 2个UART,带有握手协议(支持irDA1.0,具有16字节FIFO)1 通道SIO5. IIC多主总线接口6. IIS总线控制器7. 5个PWM 定制器和1通道内部定时器8. 看门狗定时器9. 71个通用I/O口,作多支持8各片外中断源10. 功耗管理:普通,

3、慢速,空闲和停止模式11. 8通道10 位ADC 12. 具有日立功能的RTC13. 带PLL的片内时钟发生器 (3)S3C44B0 支持 8 个外部中断源,分别是 ExINT0ExINT7,其中 ExINT4,5,6,7 中断线在中断控制器内部是共享一个中断的,当这几个中断发生时,我们需要查询 EXTINTPND(外部中断标志寄存器)积存器来判断到底是哪个或者是哪几个产生了中断,再执行相应的操作。电路上面,4 个 14 键盘分别接在外部中断 4,5,6,7 上。在处理中断的时候我们需要惯性以下几个寄存器:1 INTMOD (中断模式寄存器)指定每个中断源的模式,是 IRQ 还是 FIQ。2

4、INTCON (中断控制寄存器)主要控制当前的中断模式使能,包括使能 IRQ 中断,FIQ 中断和 Vector 中断。3 INTPND (中断标志寄存器)标志当前产生中断的中断源。4 EXTINT (外部中断控制寄存器)控制外部中断的触发模式,是电平触发(高低电平)还是边沿触发(正跳变,负跳变或是正负跳变)5 EXTINTPND (外部中断标志寄存器)标志当前产生中断的 ExINT4,5,6,7。S3C44B0 内部集成了 RTC 实时时钟管理,片外只要接一个 32.768K 的晶体和一个电池就能够完成实时时钟功能。并且内部提供了一组相关的寄存器,使用起来相当方便(4)IIS(Inter-I

5、C Sound bus)又称 I2S,是菲利浦公司提出的串行数字音频总线协议。目前很多音频芯片和 MCU 都提供了对 IIS 的支持。 S3C44B0 学习板上有一个无源蜂鸣器,其由 S3C44B0 的 PWM 输出控制。无源蜂鸣器与有源蜂鸣器的区别是在于其内部不带有信号发生电路,必须由外保护输入一定频率的信号来驱动。本程序就是利用了这一点,通过间断地改变 PWM 的输出频率以使得无源蜂鸣器发出不同频率的声音。四、S3C44B0 试验说明S3C44B0 学习板附带了以下的例程,这样大家可以快速的掌握 S3C44B0 这款 ARM 芯片以及如何开发基于 ARM 的嵌入式程序。本光盘中自带的例程都

6、是在 ADS1.2 集成开发环境下完成的。ADS1.2 是 Code Warriar 公司开发的一款ARM 嵌入式程序集成开发环境。 在使用光盘中的试验例程之前我们需要做以下的准备工作安装 ADS1.2 安装调试代理将程序从光盘拷贝到硬盘中,并去掉文件的只读属性。一、安装 ADS1.2将安装包其解压后,双击 setup.exe 开始安装,在拷贝文件结束后将出现 ARM License Wizard界面,如下图,在这里需要安装 license 文件。点击下一步,选择 Install License,点击下一步。在这里选择安装目录下的 Crack 下的 license.dat 文件然后点击下一步完

7、成认证。认证过程也可以在软件安装完毕后选择 License Installation Wizard 来重新认证。二、安装 H-JTAG 调试代理将 光盘:工具JTAG 工具H-JTAG+V0.7.0.rar 目录拷贝到硬盘,然后解压缩,安装解压目录下的可执行文件。从开始菜单选择AXD Debugger,如图进入调试环境后,选择如下选项进入代理选择对话框,如下:选择Add按钮,找到H-JTAG的安装目录,添加调试代理的DLL库,如下选择确定后,选择Configure,出现如下界面,表示H-JTAG代理安装正确并作为缺省选择。确定后,按OK键,如果JTAG调试器和开发板连接正确,会出现如下界面到这

8、一部H-JTAG配置正确,可以直接从编译环境直接进入调试环境调试,如下图:三、试验 在做以下试验的时候请注意,如果你的 Memory 控制部分没有正常的初始化,在 AXD 调入编译好的 images 后,我们执行 run 指令,程序会跑飞。其原因就是因为 Memory 控制没有正常的初始化,这是后我们有两种方法解决。1.将 U-Boot 先烧入到 Flash 当中,这样每次上电 U-Boot 程序都将初始化好我们的硬件,当然也包括了 Memory 控制器。这样我们的测试程序就能够正常的运行。2.使用命令行来执行 Memory 控制器的初始化,将 光盘:测试程序44b0.INI 文件拷贝到硬盘中

9、,在这里我们拷贝到 C:盘更目录下。然后打开 AXD 的命令行窗口,执行 obey c:44b0.ini指令。这样就初始化好了 Memory 控制器,然后我们再重新调入 image,再执行就好了。参看下图。五、实验步骤试验一 LED 跑马灯实验:先将工程目录拷贝到本地硬盘,去掉所有文件的只读属性。将 JTAG 板子跳线到 Wiggler 接口,连接到学习板上,点击 AM7.exe 运行调试代理软件,JTAG 连接正常后应该显示如下画面。(当然也可以选择 Sdt 的接口方式,但一定要和 JTAG 小板上的 Wiggler 和 STD 的跳线选择一致,我们在这里选择 Wiggler 接口方式来完成

10、我们的实验。)1.打开工程2.运行 ADS1.2点击菜单 File-Open 选择工程目录下的 led.mcp 工程文件(.mcp 文件是ADS 的工程文件),打开工程,界面如下:上图是 LED 跑马灯程序源码树,SRC 目录中存放了汇编和 C 的源码,INC 目录存放了汇编与 C 头文件。led_Data 目录是项目输出目录,其中一共包含 Debug, DebugRel 与 Release 三个目录,刚好对应于项目工程的三种配置,我们当前使用的是 DebugRel 配置。 对于 DebugRel 的配置我们主要关心以下几个参数的设置,参看下图在下拉菜单中选中 DebugRel为当前配置,点击

11、旁边的配置设置按钮弹出设置框。在项目配置对话框中选择ARM Linker-Output选项卡,确认RO Base(只读数据段的起始地址,也就是代码段其实地址)填入SDRAM的地址(这里我们填入了 0x0C000000, 学习板的SDRAM一共 8M字节,地址范围为 0x0C0000000x。RO Base地址是我们程序代码放置地址,由于是通过JTAG下载到SDRAM中调试,所以这个地址一定要填写SDRAM中的地址)。接下来我们选择Options选项卡,如下图:在 ARM Linker - Options 选项卡中,我们需要填入的是Image entry point(程序的入口地址)。这里我们填

12、写的地址与 RO Base相同,也就是说程序是从代码段基地址开始执行的。然后我们再打开ARM Linker-Layout选项卡进行设置,如下图:这样设置好后,我们相当如设置了程序的代码段其实地址,程序入口地址以及哪个目标文件中的哪个段放在代码段的起始的地方,如下图,起始地址是 0x0C000000,代码段起始地址 0x0C000000, 将vector.o 目标文件的 SelfBoot 段放在代码段的起始地方。我们可以打开 vector.s 文件看到如下这一段代码,其中就有名为 SelfBoot 的代码段。编译 :接下来编译跑马灯工程,点击编译快捷按钮,如下图。编译后将会有输出信息,包括错误,

13、警告等。如果编译成功,可以看到各个段的大小等信息。调试:点击 Debug 快捷按钮,将打开 AXD Debug 环境。如果出现以下这样的提示,是因为 AXD 对于一个工程的调试将会有一个 session 文件来保存当前的调试环境配置,如果出现这个表示当前的调试环境配置找不到,点击确定后在选择.ses 文件对话框选择直接选择取消就好了。在AXD调试界面下选择菜单Options-Configure Target,如下图,打开Target配置窗口硬件仿真选择 ADD,软件仿真选择第二项 ARMUL。在这里我们选择 ADD,如果是第一次使用 AXD 作硬件仿真,选择 ADD 项后点击 Configur

14、e 进一步配置。配置完成后选择AXD 的菜单 File-Load Image,装载待调试的程序。此例子中我们工程的目录结构如下:DebugRel 目录就是当前工程配置对应的输出目录,led.axf(ELF 格式的)文件是编译后程序 Image,ObjectCode 是存放编译过程中产生的目标文件的存放目录。(注 DebugRel, OjbectCode 目录都是建立工程的时候自动生成的,不需要用户手动创建。)显然,led.axf 就是我们要选择的 Image 文件。选择led.axf 文件,程序被调入到 AXD 调试环境当中,如下图:程序指针执行第一条语句,在 AXD 环境中调试程序和大多数的

15、调试环境一样,我们可以设置断点,单步执行,查看变量的值等等。本试验程序的效果是 LED1, LED2, LED3 轮流闪烁,我们可以通过修改延时的参数开控制闪烁的频率。打开 main.c 文件修改下列宏#define LEDTEST_DELAY 500000 我们可以方便的控制闪烁频率。试验二 键盘控制 LED 实验:1.试验目的:检测 S3C44B0 外部中断管脚 EXTINT4,5,6,7 输入,然后控制 LED 灯。本程序采用轮训终端的方式检测中断。2.硬件原理:S3C44B0 支持 8 个外部中断源,分别是 ExINT0ExINT7,其中 ExINT4,5,6,7 中断线在中断控制器内

16、部是共享一个中断的,当这几个中断发生时,我们需要查询 EXTINTPND(外部中断标志寄存器)积存器来判断到底是哪个或者是哪几个产生了中断,再执行相应的操作。电路上面,4 个 14 键盘分别接在外部中断 4,5,6,7 上。在处理中断的时候我们需要惯性以下几个寄存器:1 INTMOD (中断模式寄存器)指定每个中断源的模式,是 IRQ 还是 FIQ。2 INTCON (中断控制寄存器)主要控制当前的中断模式使能,包括使能 IRQ 中断,FIQ 中断和 Vector 中断。3 INTPND (中断标志寄存器)标志当前产生中断的中断源。4 EXTINT (外部中断控制寄存器)控制外部中断的触发模式

17、,是电平触发(高低电平)还是边沿触发(正跳变,负跳变或是正负跳变)5 EXTINTPND (外部中断标志寄存器)标志当前产生中断的 ExINT4,5,6,7。 我们这个试验是通过轮训的方法来检测是哪个外部中断(ExINT4,5,6,7)产生了,并做相应的操作。具体操作如下:中断源相应操作ExINT4点亮 LED1ExINT5点亮 LED2ExINT6点亮 LED3ExINT7熄灭 LED1,LED2,LED3试验三 RTC 实时时钟实验试验目的:测试 S3C44B0 内部集成的 RTC 实时时钟功能。硬件原理:S3C44B0 内部集成了 RTC 实时时钟管理,片外只要接一个 32.768K 的

18、晶体和一个电池就能够完成实时时钟功能。并且内部提供了一组相关的寄存器,使用起来相当方便。本试验我们使用了以下的寄存器:寄存器地址功能RTCCON0x1d70040RTC控制寄存器,其中 RTCEN 位控制RTC寄存器读写,在操作RTC寄存器前需要使能,操作完后可以禁止掉BCDSEC0x01D70070保存当前的秒钟值BCDMIN0x01D70074保存当前的分钟值BCDHOUR0x01D70078保存当前的时钟值BCDDAY0x01D7007C保存当前的日期值BCDMON0x01D70084保存当前的月份值BCDYEAR0x01D70088 保存当前的秒钟值此测试程序需要连接串口超级终端,程序执行后会先打印出当前的系统时间,包括年、月、日、时、分、秒。然后提示用户是否需要设置新的系统时间,如果需要,键入“y”,然后根据提示输入年、月、日、时、分、秒。程序最后提示系统断电,然后过一段时间后重新上电。最后运行测试程序看打印输出的当前时间是否正确。试验七 Beep 音乐程序:S3C44B0 学习板上有一个无源蜂鸣器,其由 S3C44B0 的 PWM 输出控制。无源蜂鸣器与有源蜂鸣器的区别是在于其内部不带有信号发生电路,必须由外保护输入一定频率的信号来驱动。本程序就是利用了这一点,通过间断地改变 PWM 的输出频率以

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论