ARM第一次实验报告.docx

上传人:李司机 文档编号:7211290 上传时间:2024-06-29 格式:DOCX 页数:24 大小:279.80KB
返回 下载 相关 举报
ARM第一次实验报告.docx_第1页
第1页 / 共24页
ARM第一次实验报告.docx_第2页
第2页 / 共24页
ARM第一次实验报告.docx_第3页
第3页 / 共24页
ARM第一次实验报告.docx_第4页
第4页 / 共24页
ARM第一次实验报告.docx_第5页
第5页 / 共24页
点击查看更多>>
资源描述

《ARM第一次实验报告.docx》由会员分享,可在线阅读,更多相关《ARM第一次实验报告.docx(24页珍藏版)》请在三一办公上搜索。

1、课程名称:试验题目:数字信息技术专业试验S3C2440的GPIO试验试验组成员:刘现陈泽陈俊龙陈若虚一、试验目的1、熟识ADS1.2+H-Jtag开发环境。2、驾驭S3C2440GPIO寄存器的配置。3、驾驭1.ED显示原理.按键触发原理。4、熟识C语言编程“5、驾驭ARM寄存器的位操作。二、试验仪器及器件硬件:EDA试验箱(包括FPGA核心板、单片机、mini2440ARM开发板)PC主机H-Jtag调减板软件:ADSl.2(ARM开发工具)ADS是全套的实时开发软件工具,包编译器生成的代码密度和执行速度优异.可快速低价地创建ARM结构应用。H-JTAG在线仿真冷。三、试验要求1、课前了解m

2、ini2440开发板的原理图。2、通过芯片手册了解mni2440关于GPlo的配置3、理解试验原理四.试验原理1、1.ED部分1.1, 管脚安排1.ed通过电源,限流电阻与ARM的I/O相连,当I/O为低电平常,电源会通过Ied限流电阻往ARM里灌电流,点亮Ied。反之I/O为高电平常.则Ied不会亮。留意亮灭之间要有肯定的延时(大于人眼辨别率也许十几亳秒以便人眼能够区分出亮灭。Mni2440Ied相关原理图如下:我们视察n1.ED,nlED_2.n1.ED_3,n1.ED_4分别接在了CPU的GPB5.GPB6.GPB7.GPB8管脚IUIOU1SIU一8X5S-WoOso0MUtVMUmo

3、u9WdOZSSDOUSwdgS8UQwdOs)uG-VdMSDDUZ-VdO-SDDUOSDoU90dD-zw0xuSadDzNovqxu8ffidMO0NaXUO-Hdozodgxaxur-=.5二生)VCJXUissSP1MOS1GPG5IllWl8Input1OEIMi3)01(rtpu111-SPtMISOIGPG4除同Input10-EINi2)01Output11-1.-PWRDNGPG3(7:600Input10日hi01-Output11nSS1GpG2IMlmpuo三wo01OutputIlMnSSoGpGlIAl三Input10-ENTP01Output11三ResCrV

4、DdGPGOIlOlOOInput10Ew801Output11Reserved五、试验内容及步骤1、H-Jtag配置PORTGCONTRO1.REGISTERS(GPGCON,GPGDAT)(Continued)GPGDATBHDescriptionGPG|15:0j160)MrtentheportisConfigUredasaninputport,therespondingbitisthepinstate.WhenIheportisconfiguredasanoutputport,thepinstateisIhesemeasthecorrespond*bit.Wwntcportisconf

5、iguredasfunctionalpin.theundefinedvaluewMIbereadGPGUPBitDscripnGPG(150j115O0:TbepullupfunctionattachedtothecorrespondingportpinisenatMed.1:ThpullupfunctionisOsaMed1.1,将试验箱打开,将H-Kag小板的一端接入arm开发板的Jtag口,另一端插入电脑的并口。IArm开发板的H-Jtag接口1.2,将arm的S2拨到norflash启动JTAG调试版动”Arm开发板的启动模式选择开关,可选中na11jflash启动和norflash启

6、动,这里我们选中norflash启1.3,连接电源,拨动arm开发板Sl开关,上电。1.4,安装H-jtag代理软件H11A6VlORekmEXE1.5.打开安装好的H-jtag代理软件做如下设置.USwIPlSe1.PTJtaaSetting做如下设置1.7,设置InitSCriPtInitScript-FriedlyARM2440.hisIdXCmdIWidthAddressVal12STwm3S*nem4Selmem5Semem6Semem7Setnem8Semem9SetnemWSetnem11Setnem12Setnem13Setn14BBB.BBBBBBBB8BB32-32-32-

7、32-32-32-32-3232-32323232-32-QxS3000000Qx4AOOOOOS(MAOooOIC0x530000000x56000050Qc4COO14Q4COOOO0x4CoOaXMOx4COOOOO0x430000004300(XXM0x430000080x460000OC0430000100x00000000OxFFFFFFQx000007FFQxOOOOOOQx000065AA0x00000007QxOOFFFF.0x000610120x00040042Q2211112O000002F500x000007000x000007000x00000700EnabtoAue

8、oIMNew1.oad这样我们的H-Jtag设置就全部完成啦!1.8,配置完成后,检测CpU点主后单。PerationS(control)-DetectTarget这样我们的H-jtag就识别出了我们的ARM920T留意,假如没有出现这个画面.可便有如下错误简洁被忽视:1),没有上电;2),S2没有拨到norflash启动。3),不运用并口扩展线再试一次。2运用ADS1.2仿真工具3,运用H-JTAG进行代码调试试验要求记录试验现象.以同样的方式,执行1.e2,并视察现象I)提示每次关闭COdeWarnOr或新建工程都须要点Edil菜单,选择DebugReISetting-进行重新配置,为节约

9、时间,可以干脆在前一个工程的mcp界面,选择之前的全部文件,然后删除并将新工程的相关文件添加进去,此时只需承新Eake和debug就行了”(其实由于功能简洁.其实只须要替换maimc函数就行,其他函数都一样)1.ed1:1.EDl-4先依次点亮,然后烟灭.接著全亮.熄灭,此后重复比过程。1.ed_2:Kl-K4按下,分别只点亮1.EDI-4其他熄灭。4.源码分析源码1(led_l):流水灯试验。该试验主要须要驾驭GPIO寄存器的配置.以及1.ED等显示原理system和Uart源文件主要是对s3c2440的一系列初始化,包括管看门狗,初始化内存.初始化时钟,以及初始化串口。这里短暂不去深究。我

10、主要分析mai.c/定义两个寄存器的地址”/参考芯片手册P284#defineGPBCON(*(volatileunsignedlong*)0x56000010)/defineGPBDAT(volatileunsignedlong*)0x56000014)留意驾驭C语言对指定地址进行读写的方法/*初始化ledvoidIed_init(void)/*设置GPB5.6,7,8为输出,参考芯片手册P284*/GPBCON&=-(0x3ffVV10);GPBCON=(110)(112)(114)(116);/这个函数可以点亮1.ED灯,参数n是用来选择点亮那盏灯.取值范围为1到4voidled_on(

11、intn)/先推断参数是否正珊*/if(n=0&n=5)return:)n+=4;/向GPBDAT的5(678)位写入0,这样CPU的GPB5(GPB6,GPB7,GPB8)就可以输出低电平,从而点亮对应的1.ED灯GPBDAT&=-(Oxln);)卜这个函数可以关闭1.ED,结构和原理同Iedon一样voidIedqff(Intn)if(n0;i-)for(j=100Oij0;j-);),主函数人口*/intMain()intn:edjnit();while(l)/*关闭全部的1.ED*/al1.leds_off():/*依次点亮1.ED*/for(n=1;n=5;n+)led-on(n);

12、/*延时delays(1000);)alljeds_off();delays(1000);/点亮全部1.ED*/allJeds-onQ:delays(1000);)return0;)源码2(led_2):按键限制1.EDo分析led_2的mianc发觉中间多了对按键的初始化./*定义寄存器地址defineGPBCON(volatileunsignedlong*)0x56000010)#defmeGPBDAT(volatileunsignedlong*)056000014)defineGPGCON(volatileunsignedlong*)0x56000060)SdefmeGPGDAT*(vo

13、atleunsignedlong*)0x56000064)A初始化按键Voidbuttonsjnit()/“设置GPG035.6为输入*/GPGCON&=-(030)|(0x36)|(0x310)|(0x312);/*查询法检测按键是否被按下/返回值0:按下,1:未按下-1:参数错误intis_button_pressed(intn)switch(n)case 1:return(10)&(GPGDAT);break;case 2:return(13)&(GPGDAT);break;case 3:return(15)&(GPGDAT);break;case 4:return(16)&(GPGDA

14、T);break;default:return-1;intMai()(int;all.leds.off();初始化ed*/ledsjnit();/初始化buttons*/buttons_initQ:while(l)for(n=1;n5;n+)f(!is_button_pressed(n)*有按键按下a1.eds.offQ;*点亮相应的灯led_on(n);)returnO;)源码3(led_3):本节课要求基本要求:在Iedl的基础上,修改程序使1.ED灯以二进制递增的方式点亮;拓展要求:在基本要求的基础上,增加一个按键可以限制Ied亮灭的哲停及老接着,已经拓展了功能(添加按键限制1.ED亮灭

15、的暂停与接者)的代码如下:include2440addrh#include2440lib.hSincludeoption.hincludedef.h#includeuart.hSdefmeGPBCON(volatileunsignedlong*)056000010)defineGPBDAT(volatileunsignedlong*)0x56000014)/defineGPGCON(*(volatileunsignedlong*)0x56000060)defineGPGDAT(volatileunsignedlong*)0x56000064)voidbuttonsjnit()*设置GPG0,3

16、.5.6为输入*/GPGCON&=-(0x30)(0x36)(0x310)(0x312);)按键初始化/*初始化edvoidIedjnit(VOid)/,设置GPB5,6,7,8为输出*/GPBCON&=(0x3ff10);GPBCON=(110)(112)|(114)|(116);/*返回值0:按下,1:未按下-1:参数错误intis_button_pressed(intn)switch(n)case 1:return(10:i-)for(j=1000;j0;j-);intMain()(intn;ledjnit();buttonsjnit();whle(l)*关闭全部的1.EDall_led

17、s_off();delays(1000);for(n=1;n=14;+)GPBDAT-=(0xl5);/延时*/delays(1000);if(!is_button_pressed(l)while(l)if(!is_bUIton_PreSSed)break;)*点亮全部1.ED*/alleds_onO:delays(1000);)returnO;)六、试验结果分析实现现第:试验一:这些灯起先时都是烟灭的,首先1.EDl被点亮,然后1.ED2与1.EDl均被点亮,紧接着1.ED3,1.ED2,1.EDl均为点亮,随后1.ED4,1.ED3,1.ED2,1.EDb这四盏灯均被点亮。立刻,这四盏灯又

18、全部熄灭了,最终这四盏灯又全部点亮,然后熄灭。又是1.EDI被点亮.这样周而更始的过程。试验二:当按卜相应的按键时,对应的1.ED灯会被点亮,如按卜FEYl,1.EDl就会被点亮。按下KEY2.1.ED2就会被点亮.试验三:流水灯依据:进制递增的依次改变,在功能扩展后,只要按下KEY1,流水灯皆停,按下KEY2后淹水灯接着改变.我们是通过GPBDAT-=(0x15);这一条谙句使得GPBDAT通过一种类似于自减1(我们这里移了位,这与从曲的硬件配置有关)的悚作来实现流水灯的二进制改变.按下KEYl后,主函数会进入一个什么操作都不做的死循环,而按下KEY2后,主函数会跳出这个死循环,从而实现了按

19、键限制流水灯的改变.七、思索题八、试验体会这是我们第一次做ARM试验,与之前的单片机和FPGA试验不同.ARM试验更偏向软件的运用.在助教老师的精助下,我们了解了ARM内部的一些构造.许多东西都要我们自己去赋值(比如说1.ED和KEY的管脚安排,因此这就须要我们去了解芯片手册,学会这一类芯片的正确用法.如这里是我们在本次试脸中运用的B端口的一些配置信息.4个1.ED是作为输出接口,4个按次足作为检入接口.配置端I的时候须要留;ga端口B(GPBCON,GPBDAT,GPBUP)皿r.R/WBrQ,一,J鳗位值GPBCON0x560010FWV配端口B的引睁0x0GP8DAT0x56000014

20、R/W*口加GPBUP0x5680018FVW*口B的上拉使帧寄存器0x0保脓0x5600001C-S-GPBCON位GPBW21:20joo三mAoim10三XOREQ0Il=保留:GPB919:1800A01%出10=nDACK011-保留GPBS(1M6A01-帔出WnXDREQI11保留0GPB715:Iqoo三mAOix10nXDACK111三保留0GP8613:12OO=IftA01,Ift出10三nXBREQ11=保Be0GP85(11:10OOa购入Olalft出10nXBACK11保0GP84(98)00工A01m10TC1.K(0|11保留0GP83(7:可00A01-怆出IoNTOUT311保留0GPe2(54)00怆人01-10TOUT211-保留0Gpel3:200三MOl=烧出10TOUT111=保留0GPBO1000三mA0110三TOUTOIlM保保0还有本次试验涉及到的软件比较多软件的启动以及媚译比较麻烦,运用软件的不当.也耗费了我们大量的时间

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 生活休闲 > 在线阅读


备案号:宁ICP备20000045号-2

经营许可证:宁B2-20210002

宁公网安备 64010402000987号