ImageVerifierCode 换一换
格式:DOCX , 页数:66 ,大小:2.11MB ,
资源ID:27496705      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/27496705.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(S3C2410A实验指导书.docx)为本站会员(b****3)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

S3C2410A实验指导书.docx

1、S3C2410A实验指导书 第1章实验要求ARM实验室是电子信息科学与技术的专业实验室。旨在培养学生对嵌入式系统设计和开发的能力,使学生加深对嵌入式系统设计思想的理解,掌握ARM实验平台进行程序设计、开发的技巧和方法,进而增强学生的实践能力和动手能力,提高其创新意识。 实验室还为大学生电子设计大赛,电子类学生的毕业设计、课程设计以及科研训练提供实验环境。利用嵌入式实验开发系统。实验要求在实验过程中,要求学生做到:(1)预习实验指导书有关部分,认真做好实验容的准备,就实验可能出现的情况提前作出思考和分析。(2)仔细观察上机编程时出现的各种现象,记录主要情况,作出必要说明和分析。(3)认真书写实验

2、报告。实验报告包括实验目的和要求,实验情况及其分析,写出程序设计说明,给出源程序框图和清单。(4)遵守机房纪律,服从辅导教师指挥,爱护实验设备。(5)实验课程不迟到,如有事不能出席,所缺实验一般不补。实验的验收将分为两个部分。第一部分是上机操作,包括检查程序运行和即时提问。第二部分是提交书面的实验报告。第2章预备知识一、ADS1.2安装1. 打开安装光盘的 ads1.2文件夹,双击 SETUP.EXE,进行安装,按默认设置,也可适当更改安装路径。 2. 安装完成后,出现一个添加 licence的界面, 3. 选中 ADS1.2目录下的 crack 文件夹中的 licence.dat文件,点下一

3、步,直至结束。至此,完成软件的安装。二、ADS1.2 下使用 Wiggler电缆调试1. 安装 Rdi.dll 将文件夹下的 Rdi.dll 、 dev.ini 、dev文件夹一同拷贝到 xx:Program FilesARMADSv1_2Bin目录下(推荐目录) ; 2安装并口驱动1)运行GiveIOInstaller.exe2)选择Install Service三、配置 ads1.2软件 打开 AXD,选择菜单”options”中的”configuer target”,如下图:点击”ADD”,再弹出的列表框中找到开始拷贝的 RDI.dll,如下图:打开后再点击 Configure 进行配置

4、,点击”OK”,如果此时连接了 Wiggler 电缆和实验箱,即可进入正确的调试模式,如下图:四、H-JTAG 驱动程序的使用1. 安装操作说明首先,将 H-JTAGv2.0.exe 应用程序双击,安装。2. 安装到你的 C 盘或 D 盘的 program files 下,安装成功后,在桌面上会出现图 1 左下方的图标 H-JTAG。连上 wiggler电缆,双击图标 H-JTAG,弹出图 1 的右面的对话框。3. 若检测,连接成功,最小化 H-JTAG。到开始/程序/ARM Developer Suite 1.2 目录下打开 ADS1.2 的调试器 AXD。将弹出图 8。点击,深色处,之后点

5、击 OK。 (注意,这步前,应该正确安装 H-JTAG V2.0.exe 程序)第3章S3C2410A实验实验一 ADS1.2开发环境创建与简要介绍一、实验目的1熟悉ADS1.2开发环境,正确使用仿真调试电缆进行编译、下载、调试。2了解ARM汇编语言的基本框架,学会使用ARM的汇编语言编程。3了解ARM C语言的基本框架,学会使用ARM的C语言编程二、实验容1学习ADS1.2开发环境2用汇编语言编写一个简单的应用程序3用C语言编写一个简单的应用程序三、实验设备1EL-ARM-830+教学实验箱, PC机,仿真调试电缆。2ADS1.2集成开发环境,仿真调试电缆驱动程序四、实验步骤1ADS1.2下

6、建立工程2)运行ADS1.2集成开发环境(CodeWarrior for ARM Developer Suite),点击File|New,在New对话框中,选择Project栏,其中共有7项,ARM Executable Image是ARM的通用模板。选中它即可生成ARM的执行文件。同时,如图2-1-1图2-1-1还要在,Project name栏中输入项目的名称,以及在Location中输入其存放的位置。按确定保存项目。3)在新建的工程中,选择Debug版本,如图2-1-2,使用Edit|Debug Settings菜单对Debug版本进行参数设置。图2-1-24)在如图2-1-3中,点击D

7、ebug Setting 按钮,弹出2-1-4图,选中Target Setting图2-1-3图2-1-4项,在Post-linker栏中选中ARM fromELF项。按OK确定。这是为生成可执行的代码的初始开关。5)在如图2-1-5中,点击ARM Assembler ,在Architecture or Processer 图2-1-5 栏中选ARM920T。这是要编译的CPU核。6)在如图2-1-6中,点击ARM C Compliler ,在Architecture or Processer栏中选ARM920T。这是要编译的CPU核。图2-1-67)在如图2-1-7中,点击ARM linke

8、r ,在outpur栏中设定程序的代码段地址,以及数据使用的地址。图中的RO Base栏中填写程序代码存放的起始地址,RW Base栏中填写程序数据存放的起始地址。该地址是属于SDRAM的地址。图2-1-7图2-1-8在options栏中,如图2-1-8,Image entry point要填写程序代码的入口地址,其他保持不变,如果是在SDRAM中运行,则可在0x300000000x33ffffff中选值,这是64M SDRAM的地址,但是这里用的是起始地址,所以必须把你的程序空间给留出来,并且还要留出足够的程序使用的数据空间,而且还必须是4字节对齐的地址(ARM状态)。通常入口点Image

9、entry point 为0x30000000,ro_base也为0x30000000。在Layout栏中,如图2-1-9,在Place at beginning of image框,需要填写项目的入口程序的目标文件名,如,整个工程项目的入口程序是2410init.s,那么应在Object/Symbol处填写其目标文件名2410init.o,在Section处填写程序入口的起始段标号。它的作用是通知编译器,整个项目的开始运行,是从该段开始的。图2-1-98)在如图2-1-10中,即在Debug Setting对话框中点击左栏的ARM fromELF项,在Output file name栏中设置

10、输出文件名*.bin,前缀名可以自己取,在Output format 栏中选择Plain binary,这是设置要下载到flash中的二进制文件。图2-1-10中使用的是test.bin.图2-1-109)到此,在ADS1.2中的基本设置已经完成,可以将该新建的空的项目文件作为模板保存起来。首先,要将该项目工程文件改一个合适的名字,如S3C2410 ARM.mcp等,然后,在ADS1.2软件安装的目录下的Stationary 目录下新建一个合适的模板目录名,如,S3C2410 ARM Executable Image,再将刚刚设置完的S3c2410 ARM.mcp项目文件存放到该目录下即可。这

11、样,就能在图2-1-10中看到该模板。10)新建项目工程后,就可以执行菜单Project|Add Files把和工程所有相关的文件加入,ADS1.2不能自动进行文件分类,用户必须通过Project|Create Group来创建文件夹,然后把加入的文件选中,移入文件夹。或者鼠标放在文件填加区,右键点击,即出!如图2-1-11 图2-1-11先选Add Files,加入文件,再选Create Group,创建文件夹,然后把文件移入文件夹。读者可根据自己习惯,更改Edit|Preference窗口关于文本编辑的颜色、字体大小,形状,变量、函数的颜色等等设置。如图2-1-12。图2-1-122. A

12、DS1.2下仿真、调试在ADS1.2下进行仿真调试,首先需要一根仿真调试电缆。其驱动程序的安装和使用在光盘中的实验软件ARM9_RDI中,里面有相关的文档。在连上调试电缆后,给实验箱上电,打开调试软件AXD Debugger。点击File|load image 加载文件ADS.axf(实验程序HARDWAREADS实验三ADSADS_data目录下)。打开超级终端,设置其参数为:波特率为115200,数据位数8,奇偶校验无,停止位无1,数据流控无。点击全速运行,出现图2-1-13的界面:图2-1-13在最后介绍调试按钮,上图,左起第一个是全速运行,第二个是停止运行,第三个跳入函数部,第四个单步

13、执行,第五个跳出函数。到此,开发环境就全部介绍完了,这是 ARM的开发基础。1ARM使用C语言编程是大势所趋在应用系统的程序设计中,若所有的编程任务均由汇编语言来完成,其工作量巨大,并且不易移植。由于ARM的程序执行速度较高,存储器的存储速度和存储量也很高,因此,C语言的特点充分发挥,使得应用程序的开发时间大为缩短,代码的移植十分方便,程序的重复使用率提高,程序架构清晰易懂,管理较为容易等等。因此,C语言的在ARM编程中具有重要地位。2 ARM C语言程序的基本规则在ARM程序的开发中,需要大量读写硬件寄存器,并且尽量缩短程序的执行时间的代码一般使用汇编语言来编写,比如ARM的启动代码,ARM

14、的操作系统的移植代码等,除此之外,绝大多数代码可以使用C语言来完成。C语言使用的是标准的C语言,ARM的开发环境实际上就是嵌入了一个C语言的集成开发环境,只不过这个开发环境和ARM的硬件紧密相关。在使用C语言时,要用到和汇编语言的混合编程。当汇编代码较为简洁,则可使用直接嵌汇编的方法,否则,使用将汇编文件以文件的形式加入项目当中,通过ATPCS的规定与C程序相互调用与访问。ATPCS,就是ARM、Thumb的过程调用标准(ARM/Thumb Procedure Call Standard),它规定了一些子程序间调用的基本规则。如寄存器的使用规则,堆栈的使用规则,参数的传递规则等。在C程序和AR

15、M的汇编程序之间相互调用必须遵守ATPCS。而使用ADS的C语言编译器编译的C语言子程序满足用户指定的ATPCS的规则。但是,对于汇编语言来说,完全要依赖用户保证各个子程序遵循ATPCS的规则。具体来说,汇编语言的子程序应满足下面3个条件: 在子程序编写时,必须遵守相应的ATPCS规则; 堆栈的使用要遵守相应的ATPCS规则; 在汇编编译器中使用-atpcs选项。基本的ATPCS规定,请详见提供的相关PDF文档。汇编程序调用C程序汇编程序的设置要遵循ATPCS规则,保证程序调用时参数正确传递。在汇编程序中使用IMPORT伪指令声明将要调用的C程序函数。在调用C程序时,要正确设置入口参数,然后使

16、用BL调用。3C程序调用汇编程序汇编程序的设置要遵循ATPCS规则,保证程序调用时参数正确传递。在汇编程序中使用EXPORT伪指令声明本子程序,使其他程序可以调用此子程序。在C语言中使用extern关键字声明外部函数(声明要调用的汇编子程序)。在C语言的环境开发应用程序,一般需要一个汇编的启动程序,从汇编的启动程序,跳到C语言下的主程序,然后,执行C程序,在C环境下读写硬件的寄存器,一般是通过宏调用,在每个项目文件的Startup2410/INC目录下都有一个2410addr.h的头文件,那里面定义了所有关于2410的硬件寄存器的宏,对宏的读写,就能操作2410的硬件。具体的编程规则同标准C语

17、言。4简单的小例子下面是一个简单的小例子IMPORT MainAREA a ,CODE, READONLY;ENTRY LDR R0, =0x01d00000LDR R1, =0x245STR R1 , R0 ;把0x245放到地址0X01D00000 BL Main ;跳转到Main()函数处的C/C+程序END ;标识汇编程序结束 以上是一个简单的程序,先寄存器初始化,然后跳转到Main()函数标识的C/C+代码处,执行主要任务,此处的 Main是声明的C语言中的Main()函数。五、实验步骤1本实验仅使用实验教学系统的CPU板,串口。在进行本实验时,LCD电源开关、音频的左右声道开关、A

18、D通道选择开关、触摸屏中断选择开关等均应处在关闭状态。2在PC机并口和实验箱的CPU板上的JTAG接口之间,连接仿真调试电缆,以及串口间连接公/母接头串口线。3检查连接是否可靠,可靠后,接入电源线,系统上电。4打开ADS1.2开发环境,从里面打开C.mcp项目文件,进行编译。5编译通过后,进入ADS1.2调试界面,加载C_DataDebug中的映象文件程序映像C.axf。6打开/实验软件/tools/目录下的串口调试助手工具,配置为波特率为115200,校验位无,数据位为8,停止位为1。不要选十六进制显示。之后,在ADS调试环境下全速运行映象文件,应出现图2-3-1 界面。本程序连续发送55。

19、图2-3-1下边分析一下主程序的源码。在C程序前的部分为系统的初始化,这在后边BOOTLOADER的章节里,要详细介绍。#include .incconfig.h /嵌入包括硬件的头文件unsigned char data; /定义全局变量void Main(void) Target_Init(); /目标板初始化,定义串口的硬件初始化在/target.c中定义 Delay(10); /延时 data = 0x55; /给全局变量赋值 while(1) Uart_Printf(%x ,data); /串口0输出 Delay(10); 把data = 0x55;语句中的0x55,换成其他8位数,

20、重新编译,下载,看看串口工具上输出是什么容。实验二 ARM的I/O接口实验一、实验目的1了解S3C2410的通用I/O接口2掌握I/0功能的复用并熟练的配置,进行编程实验二、实验容1利用ADS1.2编译,在实验箱的CPU板上点亮LED灯LED1、LED2,并轮流闪烁!2keil( mdk 4.12) 点亮LED灯LED1、LED2,并轮流闪烁!三、实验设备1EL-ARM-830+教学实验箱,仿真调试电缆。2ADS1.2集成开发环境,仿真调试驱动程序。3kiel +Proteus软件。四、实验原理S3C2410 CPU 共有117个多功能复用输入输出口,分为8组端口:4个16位的I/O端口 (P

21、ORT C、PORT D、PORT E、PORT G)2个11位的I/O端口 (PORT B 和PORT H)1个8位的I/O端口(PORT F)1个23位的I/O端口(PORT A)这些通用的GPI/O接口,是可配置的, PORTA除功能口外,它们仅用作输出使用,剩下的PORTB、PORTC、PORTD、PORTE、PORTF、PORTG均可作为输入输出口使用。配置这些端口,是通过一些寄存器来实现的,这些寄存器均有各自的地址,位长32位。往该地址中写入相应的数据,即可实现功能及数据配置。现用G口举例说明。对于G口如表2-1、表2-2、表2-3,表2-1RegisterAddressR/WDe

22、scriptionReset ValueGPGCON0x56000060R/WConfigure the pins of port G0x0GPGDAT0x56000064R/WThe data register for port GUndefinedGPGUP0x56000068R/WPull-up disable register for port G0xF800Reserved0x5600006CReserved表2-2Port GSelectable Pin FunctionsGPG15Input/outputEINT23nYPONGPG14Input/outputEINT22YMON

23、GPG13Input/outputEINT21nXPONGPG12Input/outputEINT20XMONGPG11Input/outputEINT19TCLK1GPG10Input/outputEINT18GPG9Input/outputEINT17GPG8Input/outputEINT16GPG7Input/outputEINT15SPICLK1GPG6Input/outputEINT14SPIMOSI1GPG5Input/outputEINT13SPIMISO1GPG4Input/outputEINT12LCD_PWRENGPG3Input/outputEINT11nSS1GPG2

24、Input/outputEINT10nSS0GPG1Input/outputEINT9GPG0Input/outputEINT8表2-3GPGDATBitDescriptionGPG15:015:0When the port is configured as input port, data from external sources can be read to the corresponding pin. When the port is configured as output port, data written in this register can be sent to the

25、corresponding pin. When the port is configured as functional pin, undefined value will be read.表2-4GPGUPBitDescriptionGPG15:015:00: The pull-up function attached to to the corresponding port pin is enabled.1: The pull-up function is disabled.(GPG15:11 are pull-up disabled state at the initial condit

26、ion.)也就是说,在地址0x56000060中,给32位的每一位赋值,那么,在CPU的管脚上就定义了管脚的功能值。当G口某管脚配置成输出端口,则在GPDAT对应的地址中的对应位上,写入1,则该管脚输出为高电平,写入0,则该管脚输出为低电平。若配置为功能管脚,则该管脚变成具体的功能脚。其他端口配置请参见PDF文挡。在程序中对GPI/O各寄存器的读写实现,是通过给宏赋值实现的。这些宏在2410addr.h中定义;具体如:。#define rGPGCON (*(volatile unsigned *)0x56000060)/G control#define rGPGDAT (*(volatile

27、unsigned *)0x56000064)/ G data#define rGPGUP (*(volatile unsigned *)0x56000068)/Pull-up control G因此,配置端口G,在程序中也就是用如下语句即可:rGPGCON = rGPGCON & 0xFFFF0FFF | 0x00050000;/配置第8、第9位为输出管脚rGPGDAT = rGPGDAT & 0xFCFF|0x0100;/配置第8位输出为高电平,第9位输出低电平。rGPGDAT = rGPGDAT & 0xFCFF|0x0200;/配置第8位输出为低电平,第9位输出高电平。#define r

28、GPGCON (*(volatile unsigned *)0x56000060) /Port G control#define rGPGDAT (*(volatile unsigned *)0x56000064) /Port G data#define rGPGUP (*(volatile unsigned *)0x56000068) /Pull-up control Gint i;int main(void)rGPGCON = rGPGCON & 0xfff0ffff | 0x00050000;for(;) rGPGDAT = rGPGDAT & 0xfcff | 0x200; for(i

29、=0;i10000;i+); /延时 rGPGDAT = rGPGDAT & 0xfcff | 0x100; for(i=0;i10000;i+); /延时 其他的各功能寄存器在2410addr.h中也都有相应的定义,参照该做法,即可把GPI/O管脚配置成输入输出端口,也可把管脚配置成所需的功能管脚。五、实验步骤1. 本实验使用实验教学系统的CPU板,在进行本实验时,LCD电源开关、音频的左右声道开关、AD通道选择开关、触摸屏中断选择开关等均应处在关闭状态。2. 在PC机并口和实验箱的CPU板上的JTAG接口之间,连接仿真调试电缆。3. 检查连接是否可靠,可靠后,接入电源线,系统上电。4. 打

30、开ADS1.2开发环境,从里面打开IO.mcp项目文件,进行编译。5. 编译通过后,进入ADS1.2调试界面,加载实验程序IO_DataDebug中的映象文件程序映像IO.axf。6. 在ADS调试环境下全速运行映象文件。观察CPU板左下角的LED1、LED2灯轮流的的闪烁!这是对GPGIO口操作的结果。具体实现见程序。六、参考程序void Main(void) int i; Target_Init();rGPGCON = rGPGCON & 0xfff0ffff | 0x00050000; while(1) for(i=0;i2000000;i+); /延时 rGPGDAT = rGPGDAT & 0xfcff | 0x0200; for(i=0;i2000000;i+); /延时 rGPGDAT = rGPGDAT & 0xfcff | 0x100; 实验三 ARM 的中断实验一、实验目的 1. 掌握 ARM9 的中断原理,能够对 S3C2410 的中断资

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1