ARM微处理器实验指导书选修文档格式.docx

上传人:b****4 文档编号:6282068 上传时间:2023-05-06 格式:DOCX 页数:40 大小:1.07MB
下载 相关 举报
ARM微处理器实验指导书选修文档格式.docx_第1页
第1页 / 共40页
ARM微处理器实验指导书选修文档格式.docx_第2页
第2页 / 共40页
ARM微处理器实验指导书选修文档格式.docx_第3页
第3页 / 共40页
ARM微处理器实验指导书选修文档格式.docx_第4页
第4页 / 共40页
ARM微处理器实验指导书选修文档格式.docx_第5页
第5页 / 共40页
ARM微处理器实验指导书选修文档格式.docx_第6页
第6页 / 共40页
ARM微处理器实验指导书选修文档格式.docx_第7页
第7页 / 共40页
ARM微处理器实验指导书选修文档格式.docx_第8页
第8页 / 共40页
ARM微处理器实验指导书选修文档格式.docx_第9页
第9页 / 共40页
ARM微处理器实验指导书选修文档格式.docx_第10页
第10页 / 共40页
ARM微处理器实验指导书选修文档格式.docx_第11页
第11页 / 共40页
ARM微处理器实验指导书选修文档格式.docx_第12页
第12页 / 共40页
ARM微处理器实验指导书选修文档格式.docx_第13页
第13页 / 共40页
ARM微处理器实验指导书选修文档格式.docx_第14页
第14页 / 共40页
ARM微处理器实验指导书选修文档格式.docx_第15页
第15页 / 共40页
ARM微处理器实验指导书选修文档格式.docx_第16页
第16页 / 共40页
ARM微处理器实验指导书选修文档格式.docx_第17页
第17页 / 共40页
ARM微处理器实验指导书选修文档格式.docx_第18页
第18页 / 共40页
ARM微处理器实验指导书选修文档格式.docx_第19页
第19页 / 共40页
ARM微处理器实验指导书选修文档格式.docx_第20页
第20页 / 共40页
亲,该文档总共40页,到这儿已超出免费预览范围,如果喜欢就下载吧!
下载资源
资源描述

ARM微处理器实验指导书选修文档格式.docx

《ARM微处理器实验指导书选修文档格式.docx》由会员分享,可在线阅读,更多相关《ARM微处理器实验指导书选修文档格式.docx(40页珍藏版)》请在冰点文库上搜索。

ARM微处理器实验指导书选修文档格式.docx

图1.1创建超级终端

2)在接下来的对话框中选择ARM开发平台实际连接的PC机串口<

如COM1),按确定后出现如图1.2所示的属性对话框,设置通信的格式和协议。

这里波特率为115200,数据位8,无奇偶校验,停止位1,无数据流控制。

按确定完成设置。

图1.2设置串行口

3)完成新建超级终端的设置以后,可以选择超级终端文件菜单中的保存,将当前设置保存为一个特定超级终端到桌面上,以备后用。

用串口线将PC机串口和平台UART0正确连接后,就可以在超级终端上看到程序输出的信息。

4)启动开发板,按住开发板上键盘的任意按键,使开发板进入BIOS设置状态。

如图1.3所示。

图1.3系统的BIOS设置程序

5)该画面上提示了该BIOS的版本等信息。

ShellMenu是平台的检测菜单,每个条目的最左边字母是该功能的快捷键,按PC机键盘相应键将执行对应功能。

注意操作时保持超级终端处于激活状态,并且PC机键盘必须为小写。

6)用户可以按超级终端的提示尝试部分测试功能,其中:

l:

测试LCD的文本和图形显示。

执行该命令后LCD上会打出文本提示,然后进入图形模式并显示一幅彩色条形图案,然后在超级终端上看提示按任意键返回文本模式,并退出LCD测试返回测试菜单。

o:

格式化开发平台的16MFLASH,其中的文件将丢失,需要重新拷贝。

执行该命令后超级终端上会出现确认提示,如果按“y”键则会格式化Flash,之后返回菜单。

n:

设置开发平台网卡的IP地址,子网掩码等,下有子菜单。

执行该命令后出现子菜单:

p:

设置MAC地址,执行该命令后按提示操作

i:

设置IP地址,执行该命令后按提示操作,请与所在局域网在同一网段

m:

设置子网掩码,执行该命令后按提示操作

g:

设置网关的IP地址,执行该命令后按提示操作

s:

保存所设地址,设置完IP地址等后必须执行该命令保存设置,否则设置无效

d:

设置默认地址

q:

退出子菜单,返回到主菜单。

u:

激活开发平台的USB连接,开发平台的Flash可以作为U盘使用,从而可以方便的将字库和应用程序等文件从PC机拷贝到平台的FLASH中。

使用此功能时,必须保证USB电缆正确连接。

e:

测试由ZLG7289驱动的LED显示,共分3步,请看超级终端提示按任意键继续,同时观察LED的变化,最后返回主菜单。

k:

测试由ZLG7289控制的键盘扫描,执行该命令后按开发平台的键盘,看超级终端的键名显示,而在超级终端上按PC键盘任意键则退出测试返回菜单。

测试开发平台触摸屏,触摸屏有动作时在超级终端上会显示动作类型和坐标。

按PC键盘任意键后,再点一下触摸屏即可退出测试并返回主菜单。

h:

设置触摸屏的坐标基准点,也就是校屏功能。

需要按提示点击触摸屏的3个位置并保存结果。

a:

测试开发平台的AD电路,执行该命令后调节平台的4个电位器,在超级终端上显示AD0-AD3的数值。

按PC键盘任意键退出测试并返回。

测试开发平台的DA电路,在超级终端显示电压值,需要用电压表测量平台DA输出端子。

t:

设置开发平台的RTC时间参数,该时间由开发平台上的钮扣电池保证持续计时。

请按提示确认修改时间并分别输入时间。

设置完成合需要保存,否则设置参数无效。

测试平台的音频电路,执行该命令后可以听到一段从平台扬声器发出的音乐。

请适当调节音量电位器。

测试平台的两个电机,需要打开电机附近的电机电源开关,按提示分别测试直流电机和步进电机。

c:

测试平台的CAN控制器。

执行该命令在超级终端显示CAN控制器ID,正常应该显示1234或0000。

b:

引导FLASH中的应用程序system.bin。

执行该功能将退出BIOS状态,把控制交给应用程序。

7)按PC键盘的u键<

要使超级终端处于活动状态),这时超级终端上会显示如图1.4所示的信息。

图1.4进入U盘状态

这时,在“我的电脑”中可以发现多了一个“可移动磁盘”,这就是开发板的海量存储器16M非线性Flash。

开发平台的Flash芯片就像一个U盘,可以通过“我的电脑”进行操作。

可以把编译后生成的system.bin文件通过USB下载到嵌入式开发板中,复位系统,运行并检查输出结果。

提示>

system.bin文件是系统通过BIOS引导以后,装入内存中运行的默认文件名。

2.配置ADS集成开发环境

1>

运行ADS1.2集成开发环境<

CodeWarriorforARMDeveloperSuite)。

选择“File|New…”菜单,在对话框中选择Project,如图1.5所示,新建一个项目文件。

图中示例的项目名为Exp6.mcp。

图1.5新建项目

点“set…”按钮可为该项目选择路径如图1.6所示,选中CreatFolder选项后将以图1.5中的ProjectName为名创建目录,这样可以将所有与该项目相关的文件放到该项目目录下,便于管理项目。

图1.6保存项目

在图1.5中项目模板列表中我们选择ARMExecutableImage通用模板。

我们随后将一步一步的把它配置成针对我们ARM3000开发板的模板44B0ARMExecutableImaage,并把它拷贝到ADS1.2安装目录下的Stationery目录中<

所有的项目模板都在此目录下)。

以后我们新建项目时,在项目模板列表中直接选中44B0ARMExecutableImaage模板选项,就不必每次重新配置模板了。

2)在新建的项目中,如图1.7所示,选择Debug版本,使用Edit|DebugSettings菜单对Debug版本进行参数设置。

图1.7选择版本

在DebugSettings对话框中选择TargetSettings项,如图1.8所示。

在Post-linker一栏中选择ARMfromELF,点击右下角的Apply使其有效。

图1.8TargetSettings

在DebugSettings对话框中选择ARMLinker项,如图1.9。

在Output下的Linktype中有三种类型的连接方式,我们常用的是Simple和Scattered两种。

如果程序需要用到标准C库函数的话需要按Scattered进行连接地址的设置。

如果用不到标准C库函数的话,请选择Simple选项。

下面以Simple方式设置为例:

在ARMLinker项的Output选项卡中,我们选择Simple选项,如图1.9所示。

在Simpleimage框中设置连接的Read-Only<

只读)和Read-Write<

读写)地址。

地址0x0c080000是开发板上SDRAM的真实地址,是由系统的硬件决定的;

0x0c200000指的是系统可读写的内存地址。

也就是说0x0c080000~0xC1fffff之间是只读区域,存放程序的代码段,在0xC200000开始是程序的数据段。

图1.9设置连接地址范围

点击Layout选项卡,在Layout选项卡的Placeatbeginningofimage框中设置程序的入口模块。

如图1.10所示,指定在生成的代码中,程序从44binit.s开始运行的。

Object设为44binit.o,section设为init。

图1.10设置入口模块

3)在DebugSettings对话框中选择ARMfromELF项,如图1.11。

在Outputfilename框中设置输出文件名为system.bin,这就是要下载到开发板的嵌入式应用程序文件。

图1.11设置输出文件名

4)回到如图1.7所示的项目窗口中,选择Release版本,使用Edit|ReleaseSettings菜单对Release版本进行参数设置。

参照前文设置Release版本的Post-linker、连接地址范围、入口模块和输出文件。

5)回到项目窗口中,选择Targets选项卡,如图1.12所示。

选中DebugRel版本,按Del键将其删除。

图1.12删除DebugRel版本

6)设置完成后,可以将该新建的空项目文件作为模板保存以便以后使用。

在ADS1.2软件安装目录下的Stationery目录下新建名为ARM44B0XSimpleImage的模板目录,再将刚设置完的mcp项目模板文件存放到该目录下。

这样以后新建项目的时候,就能看到图1.13所示以“ARM44B0XSimpleImage”为名字的模板了。

图1.13显示44B0ARM模板

提示>

建议同学们将老师提供的“ARM44B0XScatteredImage”子目录直接拷贝到ADS1.2安装目录下的Stationery目录中,这样也能在新建项目对话框中看到这个模板。

此模板为Scattered版本,其中已经设置好针对本开发板的参数。

3.建立项目文件

配置好针对UP-ARM3000的开发环境后,可以执行菜单Project|AddFiles把和项目相关的所有文件加入到项目中。

ADS1.2不能自动按文件类别对这些文件进行分类,需要的话用户可以执行菜单Project|CreateGroup创建文件组,然后分别将不同类的文件加入到不同的组,以方便管理。

如图1.14所示。

更为简单的办法是,在新建项目时ADS创建了和项目同名的目录,在该目录下按类别创建子目录并存放项目文件。

然后用鼠标选中项目子目录,将其拖动到项目文件窗口,松开鼠标。

这样ADS将以子目录名建立同名文件组并以此对文件分类。

这里我们把init和STARTUP两个目录拷贝到新建的项目目录下,然后选中这两个目录,拖动到项目文件窗口,松开鼠标。

这样ADS将以init和STARTUP目录名建立同名文件组并以此对文件分类。

图1.14加入项目文件

双击图1.14中的Main.c打开该文件,可以看到Main(>

函数的内容:

intmain(void>

{

ARMTargetInit(>

//开发版初始化

LCD_Init(>

LCD_ChangeMode(DspTxtMode>

//转换LCD显示模式为文本显示模式

LCD_Cls(>

//文本模式下清屏命令

LCD_printf("

Helloworld!

\n"

>

//向液晶屏输出

Uart_Printf("

\nHelloworld!

//向串口输出

while(1>

}

读者可以查看其他源文件的内容以对系统运行有所了解。

可以发现ADS的文本编辑器可以按语法分颜色显示,读者可以根据喜好在Edit菜单下的Preferences窗口中进行设置。

4.进行程序的在线仿真、调试

回到项目窗口选中Debug版本,执行菜单Project|Make对项目进行编译连接。

在出现的错误/警告窗口中选择某错误/警告信息,ADS会自动打开相应源文件并用箭头指向出错的文本行。

如果某个源文件被修改,重新编译时ADS会自动同步各文件的日期信息。

2>

在ADS中执行菜单Project|Debug启动ADS1.2的调试工具AXD。

3>

在AXD中执行菜单Options|ConfigureTarget对AXD进行设置。

如图1.15所示。

选择ADP即远程调试,点Configure按钮进一步设置具体参数,如图1.16所示。

图1.15设置AXD参数

4)在图1.16中点Select按钮选择远程连接为ARMethernetdriver,点Configure按钮输入仿真器的IP地址。

如果用户使用的是并行口仿真器,请输入127.0.0.1即可。

图1.16设置远程连接

5)等待程序装载完毕以后,通过Execute|Go菜单以及Execute|Stop<

或者工具栏中的相应按钮)运行或暂停程序。

程序暂停后在窗口中将显示出程序暂停的位置。

6)通过Execute|Step菜单<

或者工具栏中的相应按钮)可以单步运行程序。

也可以使用StepIn、StepOut菜单命令进入或者跳出函数的调用。

RunToCursor命令运行到光标位置。

7)程序停止后可以通过ProcessorViews|Sources菜单查看源文件,并可在适当位置按F9设置端点。

8)使用在ProcessorView菜单下的Registers、Variables和Memory命令可以查看工作寄存器或者内存变量。

读者可以逐一地尝试,为以后调试程序打下基础。

在进行调试时在ADS中必须选择当前项目的Debug版本,如果选择Release版本则无法正常调试程序。

实验二ARM汇编程序实验

一、实验目的

1.掌握ARM汇编指令的含义和使用方法。

2.了解ARM指令灵活的第二操作数。

3.学习简单汇编程序的编写。

1.使用ARM的数据传送指令,能够访问寄存器和存储器。

2.使用相关指令完成数据加/减运算及逻辑运算。

四、实验原理

实验参考程序:

五、实验步骤

1.启动ADS1.2,建立一个项目文件。

然后建立汇编源文件,添加到项目中,编写实验程序。

2.编写好实验程序后,编译连接项目,选择Project—>

Debug,启动AXD进行软件仿真调试。

或者点击Debug图标。

3.调试并观察程序执行过程

1)AXD调试模式,选择Options->

ConfigureTarget,如图:

2)选择软件仿真,点击ARMUL,并点击OK。

3)点击LoadImage,装载我们的.axf文件

4)打开寄存器窗口<

ProcessorRegisters),选择Current项监视各寄存器的值。

说明:

使用鼠标左键选择一个寄存器,然后右击,在Format项中选择显示格式Hex、Decimal等,如图所示。

单步运行程序,观察寄存器值的变化。

有变化的寄存器会以红色显示,如图。

4.编写、调试、观察以下程序

通过课本P61页【例3.5】【例3.6】,掌握无符号数和有符号数的相关运算。

六、思考题

1.指令“MOVR0,#0x12345678”是否正确?

为什么?

2.将参考程序中应用CMP指令的代码,功能改为“若<

5*Y/2)>

(2*X>

则R5=R5|0x000000FF,否则R5=R5&

0XFFFF0000”,程序应如何修改?

3.更改参考程序X的值为200,Y的值为163,单步运行程序,每执行一步程序的结果是多少?

实验三GPIO输出控制实验

1.熟悉S3C44B0ARM芯片的GPIO输入输出配置方法。

2.通过实验掌握ARM芯片I/O控制LED显示的方法。

3.进一步熟悉ARM汇编语言程序设计步骤。

1.熟悉ARM芯片I/O口的编程配置方法。

2.熟悉S3C44B0芯片I/O口配置寄存器。

3.通过编程实现GPIO的E口输入,A口输出来控制实验平台上的LED。

UP-NETARM3000实验箱、JTAG仿真器、PC机。

S3C44B0芯片上共有71个多功能I/O引脚,它们分为7组I/O端口:

●2个9位I/O端口<

端口E和F)。

●2个8位I/O端口<

端口D和G)。

●1个16位I/O端口<

端口C)。

●1个10位I/O端口<

端口A)。

●1个11位I/O端口<

端口B)。

每组端口都可以通过软件配置寄存器来满足不同系统和设计的需要。

1)流程示意图

延时

部分参考程序

电路原理图

VCC3.3

2.编写程序,实现用E口输出控制LED灯亮、灭的汇编程序。

3.单步运行程序,查看工作寄存器;

并观察LED灯的亮、灭情况。

1.用C语言如何实现上述程序的编写。

实验四GPIO输入控制实验

1)流程图

判断E口输入情况

GPE7

输入

2.编写实现E口输入的汇编程序,使用JTAG进行仿真调试。

3.编写程序,实现用A口输出控制LED灯亮、灭的汇编程序。

4.编写程序,通过E口输入来控制A口的LED灯亮、灭,A口、E口的配置采用调用子程序的方式。

5.单步运行程序,查看工作寄存器;

实验五PWM信号实验

1.了解PWM信号的特点。

2.掌握S3C44B0X产生PWM信号的方法。

3.练习如何优化代码。

1.定时器工作方式设置。

2.配置GPIO为PWM信号输出引脚。

1.实验电路示意图如下:

PWM信号输出

2.实验主程序框图如下:

停机等待

3.实验参考程序:

PCONEEQU0X01D20028

PDATEEQU0X01D2002C

PUPEEQU0X01D20030

TCFG0EQU0X01D50000

TCFG1EQU0X01D50004

TCONEQU0X01D50008

TCNTB3EQU0X01D50030

TCMPB3EQU0X01D50034

TCNTO3EQU0X01D50014

CMD1EQU0X00A0000

CMD2EQU0X0090000

AREAtime,CODE,READONLY

ENTRY。

程序入口

CODE32。

指定为32位的ARM程序代码

START

LDRR1,=PCONE

LDRR0,=0X02000

STRR0,[R1]

LDRR1,=PUPE。

不配置E口的上拉电阻

LDRR0,=0X1FF

LDRR1,=TCFG0

LDRR2,=0X0000FF00

STRR2,[R1]

LDRR1,=TCFG1

LDRR2,=0X02000

LDRR1,=TCNTB3

LDRR2,=0XFFFFFFFF

STRR2,[R1]

LDRR1,=TCMPB3

LDRR2,=0X88888888

LDRR1,=TCON

LDRR2,=CMD1

LDRR2,=CMD2

WAITBWAIT

END

2.编写程序实现PWM输出控制LED灯亮度,使用JTAG进行仿真调试。

3.单步运行程序,查看工作寄存器;

并观察LED灯的情况。

4.修改、完善源程序,实现程序的模块化。

1.在进行汇编模块化编程的时候如何建立堆栈,实现对现场的保护。

2.用C语言如何实现上述程序的编写。

实验六定时中断实验

1.了解S3C44B0X处理器的定时器应用方法。

2.掌握S3C44B0X处理器上中断的程序编写。

3.进一步熟悉平台硬件及其驱动程序的编写。

1.设置并启动定时器。

2.设置中断,编写定时器中断服务程序,对中断次数进行计数并用LED显示结果。

2.

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

当前位置:首页 > 解决方案 > 学习计划

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2