嵌入式实验指导书4个实验

整理文档很辛苦,赏杯茶钱您下走!

免费阅读已结束,点击下载阅读编辑剩下 ...

阅读已结束,您可以下载文档离线阅读编辑

资源描述

《嵌入式系统》实验指导书编写:周立功、刘伟春邵阳学院信息工程系MagicARM2410教学实验开发平台系统概述一、简介MagicARM2410教学实验开发平台是一款可使用μC/OS-II、Linux和WinCE操作系统、支持QT、MiniGUI图形系统、集众多功能于一身的ARM9教学实验开发平台。采用Samsung公司的ARM920T内核的S3C2410A微处理器,扩展有充足的存储资源和众多典型的嵌入式系统接口,是高校嵌入式系统创新实验室首选平台。二、实验箱的组成MagicARM2410实验箱硬件主要由以下6个部份组成:DeviceARM2410核心板(6层板工艺)、MagicARM2410实验箱主板(4层板工艺)、实验箱电源板(在实验箱内部)、简易JTAG仿真器、GPRS模块(选件)、VGAPACK板(选件)、CS8900PACK板(选件)。MagicARM2410实验箱—功能框图三、软件资源Linux(v2.4.18)嵌入式操作系统MiniGUI图形用户界面学习版软件包(Linux/uCLinux)Qt/Embedded和Qtopia支持LED、蜂鸣器驱动(forLinux)按键驱动(forLinux)I2C驱动程序(forLinux)USBDevice驱动程序(forLinux)USBHUB驱动(forLinux)USBHID驱动(鼠标、键盘,forLinux)USB大容量驱动(forLinux)基于OV511芯片的USB摄像头驱动(forLinux)基于OV511芯片的USB摄像头驱动(forLinux)video4linux视频软件(forLinux)PCMCIA驱动(forLinux)IDE驱动(forLinux)SD/MMC卡驱动程序(forLinux)Framebuffer驱动--TFT640×480液晶屏(forLinux)触摸屏驱动(forLinux)10M/100M以太网卡DM9000驱动(forLinux)Madplay、boa移植(forLinux)uC/OS-II(v2.52)移植代码ZLG/FS文件管理系统软件包ZLG/FFS支持写平衡的NANDFlash驱动软件包(foruC/OS-II)ZLG/FTP-S嵌入式FTP服务器软件包(foruC/OS-II)支持RS485/422MODBUSRTU协议软件包(foruC/OS-II)ZLG/GPS软件包(foruC/OS-II)ZLG/GPRS软件包(foruC/OS-II)串口软件包I2C软件包四、硬件配置表实验一GPIO输出控制实验1.实验目的(1)掌握DeviceARM2410专用工程模板和EasyJTAG-H仿真器的安装和使用;(2)能够在MagicARM2410实验箱上运行第一个程序(无操作系统);(3)熟悉S3C2410A处理器的I/O配置方法及GPIO输出控制。2.实验设备硬件:PC机1台;MagicARM2410教学实验开发平台1台软件:Windows98/2000/XP操作系统;ADS1.2集成开发环境3.实验内容控制MagicARM2410实验箱上的LED1~LED4显示及蜂鸣器报警。先使用片外SDRAM进行调试,调试通过后将程序固化到片外NORFLASH中,脱机运行程序。4.实验原理S3C2410A具有117个通用I/O口,分为A~H等8个端口,由于每个I/O都有第2功能,甚至第3功能,所以需要通过设置GPxCON寄存器来选择GPx口I/O的功能,其中x可以为A、B、C、D、E、F、G、H,表示相应的I/O端口;当I/O设置为GPIO输出模式(Output模式)时,可以通过写GPxDAT控制相应I/O口输出高电平或低电平。GPxDAT为1的位对应I/O输出高电平,为0的位对应I/O输出低电平;实验电路图:GPE11S3C2410ALED4LED3LED2LED1VDD33R139470R140470R142470R143470R1011KQ98050R1021KQ118050R1031KQ108050R1041KQ128050B1BUZZERQ138550VDD33R1411KR18318JP9BEEPGPH10GPH4GPE12GPH65.实验步骤调试程序(1)为ADS1.2增加DeviceARM2410专用工程模板(若已增加过,此步省略)。(2)连接EasyJTAG-H仿真器和MagicARM2410实验箱,然后安装EasyJTAG-H仿真器(若已经安装过,此步省略)。(3)启动ADS1.2,使用ARMExecutableImageforDeviceARM2410工程模板建立一个工程LEDCON。(4)在工程src组中的main.c中编写实验代码。(5)选用DebugRel生成目标,然后编译链接工程。(6)将MagicARM2410实验箱上的蜂鸣器跳线JP9短接,将启动方式选择跳线JP8短接,然后按RST键复位系统。(7)选择【Project】-【Debug】,启动AXD进行JTAG仿真调试(需要正确设置仿真器,参考…实验指导第2章的内容)。(8)全速运行程序,程序将会在main.c的主函数中停止(因为main函数起始处默认设置有断点)。(9)单步运行程序,或者全速运行程序,判断蜂鸣器及LED1~LED4的控制是否正确。固化程序(10)仿真调试通过后,关闭AXD。在ADS1.2集成开发环境中选用Release生成目标,并设置生成LEDCON.hex文件(或者LEDCON.bin文件),然后编译链接工程。(11)将启动方式选择跳线JP8断开,然后按RST键复位系统。(12)使用FlashProgrammer软件将LEDCON.hex烧写到片外NORFLASH,或者使用WR_NORFlash工程将LEDCON.bin烧写到片外NORFLASH。(13)将EasyJTAG-H仿真器拔出,断开与MagicARM2410实验箱的连接,然后给MagicARM2410实验箱下电,然后再重新上电,观察程序是否能脱机运行。6.思考题(1)为什么这个实验的工程不需要设置链接地址?(2)在S3C2410A处理器中,有哪些I/O只能设置为GPIO输出模式(Output模式)?7.实验参考程序**--------------FileInfo-------------------------------------------------------------------------------**FileName:main.c**Description:MagicARM2410实验箱的基础实验---GPIO输出控制实验。**使用GPIO控制LED1~LED4及蜂鸣器,先蜂鸣器响一声,全部闪烁5次,然后指示0~F的16进制数值。****------------------------------------------------------------------------------------------------------#includeconfig.h//定义LED控制口(输出高电平时点亮LED)#defineLED1_CON(111)/*GPE11口*/#defineLED2_CON(112)/*GPE12口*/#defineLED3_CON(14)/*GPH4口*/#defineLED4_CON(16)/*GPH6口*///定义蜂鸣器控制口#defineBEEP(110)/*GPH10口*/#defineBEEP_MASK(~BEEP)/***********************************************************************************************************Functionname:DelayNS**Descriptions:长软件延时。**延时时间与系统时钟有关。**Input:dly延时参数,值越大,延时越久**Output:无********************************************************************************************************/voidDelayNS(uint32dly){uint32i;for(;dly0;dly--)for(i=0;i50000;i++);}/***********************************************************************************************************Functionname:RunBeep**Descriptions:控制蜂鸣器Be一声音。**Input:无**Output:无********************************************************************************************************/voidRunBeep(void){rGPHDAT=rGPHDAT&BEEP_MASK;//BEEP=0DelayNS(5);rGPHDAT=rGPHDAT|BEEP;//BEEP=1DelayNS(5);}/***********************************************************************************************************Functionname:LED_DispAllOn**Descriptions:控制LED1~LED4全部点亮。**Input:无**Output:无********************************************************************************************************/voidLED_DispAllOn(void){rGPEDAT=rGPEDAT|(0x0311);rGPHDAT=rGPHDAT|(0x054);}/***********************************************************************************************************Functionname:LED_DispAllOff**Descriptions:控制LED1~LED4全部熄灭。**Input:无**Output:无********************************************************************************************************/voidLED_DispAllOff(void){rGPEDAT=rGPEDAT&(~(0x0311));rGPHDAT=rGPHDAT&(~(0x054));}/***********************************************************************************************************Functionname:LED_DispNum**Descriptions:控制LED1~LED4显示指定16进制数值。LED4为最高位,LED1为最低为,点亮表示该位为1。**Input:dat显示数值(低4位有效)**Output:无********************************************************************************************************/voidLED_DispNum(uint32dat){dat

1 / 25
下载文档,编辑使用

©2015-2020 m.777doc.com 三七文档.

备案号:鲁ICP备2024069028号-1 客服联系 QQ:2149211541

×
保存成功