061316 叶尔多斯 嵌入式系统实验报告.docx

上传人:b****1 文档编号:13773842 上传时间:2023-06-17 格式:DOCX 页数:34 大小:302.46KB
下载 相关 举报
061316 叶尔多斯 嵌入式系统实验报告.docx_第1页
第1页 / 共34页
061316 叶尔多斯 嵌入式系统实验报告.docx_第2页
第2页 / 共34页
061316 叶尔多斯 嵌入式系统实验报告.docx_第3页
第3页 / 共34页
061316 叶尔多斯 嵌入式系统实验报告.docx_第4页
第4页 / 共34页
061316 叶尔多斯 嵌入式系统实验报告.docx_第5页
第5页 / 共34页
061316 叶尔多斯 嵌入式系统实验报告.docx_第6页
第6页 / 共34页
061316 叶尔多斯 嵌入式系统实验报告.docx_第7页
第7页 / 共34页
061316 叶尔多斯 嵌入式系统实验报告.docx_第8页
第8页 / 共34页
061316 叶尔多斯 嵌入式系统实验报告.docx_第9页
第9页 / 共34页
061316 叶尔多斯 嵌入式系统实验报告.docx_第10页
第10页 / 共34页
061316 叶尔多斯 嵌入式系统实验报告.docx_第11页
第11页 / 共34页
061316 叶尔多斯 嵌入式系统实验报告.docx_第12页
第12页 / 共34页
061316 叶尔多斯 嵌入式系统实验报告.docx_第13页
第13页 / 共34页
061316 叶尔多斯 嵌入式系统实验报告.docx_第14页
第14页 / 共34页
061316 叶尔多斯 嵌入式系统实验报告.docx_第15页
第15页 / 共34页
061316 叶尔多斯 嵌入式系统实验报告.docx_第16页
第16页 / 共34页
061316 叶尔多斯 嵌入式系统实验报告.docx_第17页
第17页 / 共34页
061316 叶尔多斯 嵌入式系统实验报告.docx_第18页
第18页 / 共34页
061316 叶尔多斯 嵌入式系统实验报告.docx_第19页
第19页 / 共34页
061316 叶尔多斯 嵌入式系统实验报告.docx_第20页
第20页 / 共34页
亲,该文档总共34页,到这儿已超出免费预览范围,如果喜欢就下载吧!
下载资源
资源描述

061316 叶尔多斯 嵌入式系统实验报告.docx

《061316 叶尔多斯 嵌入式系统实验报告.docx》由会员分享,可在线阅读,更多相关《061316 叶尔多斯 嵌入式系统实验报告.docx(34页珍藏版)》请在冰点文库上搜索。

061316 叶尔多斯 嵌入式系统实验报告.docx

061316叶尔多斯嵌入式系统实验报告

嵌入式系统设计实验报告

 

班级:

090616

学号:

2009061316

姓名:

叶尔多斯·海拉提

成绩:

指导教师:

孟昭林赵国冬

 

1.实验一

1.1实验名称

博创UP-3000实验台基本结构及使用方法

1.2实验目的

要求通过本次课程对各个外设的了解,为今后各个接口实验打下基础。

1.3实验环境

博创UP-3000实验台

1.4实验内容及要求

熟悉UP-net3000实验平台的核心硬件电路和外设

ARMJTAG的安装与使用

通过操作系统自带的通讯软件超级终端,检验各个外设的工作状态。

1.5实验设计与实验步骤

熟悉UP-net3000实验平台的核心硬件电路和外设。

1.6实验过程与分析

1.7实验结果总结

通过本次试验,熟悉了UP-net3000实验平台的核心硬件电路和外设。

1.8心得体会

良好的实验感觉以及对实验台的熟悉是做好后续试验的基础。

 

2.实验二

2.1实验名称

ADS1.2软件开发环境使用方法

2.2实验目的

熟悉ADS1.2开发环境,学会ARM仿真器的使用。

使用ADS编译、下载、调试并跟踪

一段已有的程序,了解嵌入式开发的基本思想和过程。

2.3实验环境

硬件:

ARM嵌入式开发平台、用于ARM7TDMI的JTAG仿真器、PC机Pentium100以

上、串口线。

软件:

PC机操作系统win98、Win2000或WinXP、ARMSDT2.51或ADS1.2集成开发

环境、仿真器驱动程序、超级终端通讯程序。

2.4实验内容及要求

本次实验使用ADS集成开发环境。

新建一个简单的工程文件,并编译这个工程文件。

学习ARM仿真器的使用和开发环境的设置。

下载已经编译好的文件到嵌入式控制器中运行。

学会在程序中设置断点,观察系统内存和变量,为调试应用程序打下基础。

2.5实验设计与实验步骤

1)建立工程

(1)运行ADS1.2集成开发环境(CodeWarriorforARMDeveloperSuite)。

选择File|

New…菜单,在对话框中选择Project,如图1B-1所示,新建一个工程文件。

图中示例的工

程名为Exp6.mcp。

点set…按钮可为该工程选择路径如图1B-2所示,选中CreatFolder选项

后将以图1B-1中的ProjectName或图1B-2中的文件名为名创建目录,这样可以将所有与该

工程相关的文件放到该工程目录下,便于管理工程。

在图1B-1中工程模板列表中的44B0ARMExecutableImage是专为本嵌入式开发板设置

的工程模板,后文有具体说明。

在此也可选择ARMExecutableImage通用模板。

图1B-1新建工程

图1B-2保存工程

(2)在新建的工程中,如图1B-3所示,选择Debug版本,使用Edit|DebugSettings

菜单对Debug版本进行参数设置。

(3)在DebugSettings对话框中选择TargetSettings项,如图1B-4所示。

在Post-linker

一栏中选择ARMfromELF。

(4)在DebugSettings对话框中选择ARMLinker项,如图1B-5。

在Output选项卡的

Simpleimage框中设置连接的Read-Only(只读)和Read-Write(读写)地址。

地址0x0c080000

是开发板上SDRAM的真实地址,是由系统的硬件决定的;0x0c200000指的是系统可读写的

内存地址。

也就是说,在0x0c080000∼0xC1fffff之间是只读区域,存放程序的代码段,在

0xC200000开始是程序的数据段。

图1B-5所示的设置只是一种简单设置,如果程序需要用到标准C库函数的话需要按图

1B-6进行连接地址的设置。

标准C中如果使用malloc及其相关的函数,需要使用系统的堆(Heap)空间,可以通

过scatter文件来描述系统HEAP段的位置。

针对44B0开发板,把程序的入口定位在

0xc080000,并定义scatter文件为scat_ram.scf。

在图1B-6中选择LinkType为Scattered,输

入scatter文件名scat_ram.scf;然后切换到Options选项卡在ImageEntryPoint框中输入

0xc080000。

也可以在图1B-6的CommandLine框中直接输入-entry0xc080000-scatter

scat_ram.scf进行上述设置。

(6)在第四步中如果选择简单的地址连接设置,在DebugSettings对话框中选择ARM

Linker项,如图1B-9。

在Layout选项卡的Placeatbeginningofimage框中设置程序的入口模

块。

指定在生成的代码中,程序是从44binit.s开始运行的。

Object设为44binit.o,section设

为init。

(7)在DebugSettings对话框中选择ARMfromELF项,如图1B-10。

在Outputfilename

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

(8)回到如图1B-3所示的工程窗口中,选择Release版本,使用Edit|ReleaseSettings

菜单对Release版本进行参数设置。

(9)参照第(3)、(4)、(5)、(6)、(7)步在ReleaseSettings对话框中设置Release

版本的Post-linker、连接地址范围、入口模块和输出文件。

(10)回到如图1B-3所示的工程窗口中,选择Targets选项卡,如图1B-11所示。

选中

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

DebugRel子树是一个折衷版本,通常用不到,所以在

这里删除。

(11)设置完成后,可以将该新建的空工程文件作为模板保存以便以后使用。

将工程文

件名改为44B0ARMExecutable.mcp。

然后在ADS1.2软件安装目录下的Stationery目录下新

建名为44B0ARMExecutableImage的模板目录,再将刚设置完的44B0ARMExecutable.mcp工程模板文件存放到该目录下即可。

这样以后新建工程的时候如图1B-1所示就能看到以

44B0ARMExecutableImage为名字的模板了。

(12)新建工程后,可以执行菜单Project|AddFiles把和工程相关的所有文件包括init

和startup子目录加入到工程中。

ADS1.2不能自动按文件类别对这些文件进行分类,需要的

话用户可以执行菜单Project|CreateGroup创建文件组,然后分别将不同类的文件加入到不

同的组,以方便管理。

如图1B-12所示。

更为简单的办法是,在新建工程时ADS创建了和

工程同名的目录,在该目录下按类别创建子目录并存放工程文件。

选中所有目录拖动到任务

栏上的ADS任务条上,不要松开鼠标当ADS窗口恢复后再拖动到工程文件窗口,松开鼠标。

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

(13)双击图1B-12中的Main.c打开该文件,可以看到Main()函数的内容:

{ARMTargetInit();//开发版初始化

LCD_Init();

LCD_ChangeMode(DspTxtMode);//转换LCD显示模式为文本显示模式

LCD_Cls();//文本模式下清屏命令

LCD_printf("Helloworld!

\n");//向液晶屏输出

Uart_Printf("\nHelloworld!

\n");//向串口输出

while

(1);

}

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

可以发现ADS的文本编辑器

已经有了很大的改善,文本按语法分颜色显示,读者可以根据喜好在Edit菜单下的Preferences

(14)窗口中进行设置。

并可以很好的支持中文注释。

2)进行程序的在线仿真、调试

(1)回到图1B-12所示的工程窗口选中Debug版本,执行菜单Project|Make对工程进

行编译连接。

在出现的错误/警告窗口中选择某错误/警告信息,ADS会自动打开相应源文件

并用箭头指向出错的文本行。

如果某个源文件被修改,重新编译时ADS会自动同步各文件

的日期信息。

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

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

如图1B-13所示。

(15)选择ADP即远程调试,点Configure按钮进一步设置具体参数,如图1B-14所示。

(16)

(4)在图1B-14中点Select按钮选择远程连接为ARMethernetdriver,点Configure按

(17)钮输入仿真器的IP地址。

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

(5)等待程序装载完毕以后,通过Execute|Go菜单以及Execute|Stop(或者工具栏中

的相应按钮)运行或暂停程序。

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

(6)通过Execute|Step菜单(或者工具栏中的相应按钮)可以单步运行程序。

也可以

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

RunToCursor命令运行到光标位

置。

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

按F9设置端点。

(8)使用在ProcessorView菜单下的Registers、Variables和Memory命令可以查看工作

(18)寄存器或者内存变量。

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

2.6实验过程与分析

1)程序移植到ADS后,程序最开始首先执行用汇编写的初始化代码——包括中断

向量和内存空间的初始化。

在该段代码中使用

IMPORT__main;注意main前面是两个下划线

B__main

进行系统内部的标准C函数初始化,然后调用用户在C中定义的main()函数(注意:

两个main都是小写),并且在嵌入式应用中用户C的main函数中不能有参数(int

main(void))。

2)不能有系统定义的软中断,在汇编中可以使用

IMPORT__use_no_semihosting_swi

来检测,在C中使用

#pragmaimport(__use_no_semihosting_swi)//ensurenofunctionsthatuse

semihosting

3)scatter文件内容如下,创建了一个RAM_LOAD的程序和数据的装载区域,起

始地址0xc080000。

RAM_LOAD0xc080000

{RAM_EXEC0xc080000

{

44binit.o(init,+First)

*(+RO)

}

RAM0x0c200000

{

*(+RW,+ZI)

}

HEAP+0UNINIT

{

heap.o(+ZI)

}

STACKS0xc7ff000UNINIT

{

stack.o(+ZI)

}

ISR_STARTADDRESS0xc7fff00;SDRAMbottom

{

isr_address.o(+ZI)

}

}

在图1B-7中说明了这个装载区域的划分。

4)定义retarget.c函数,重新定位标准C库中stdio的一些相关函数。

主要有:

struct__FILE{inthandle;/*Addwhateveryouneedhere*/};

FILE__stdout;//文件的定义

intfputc(intch,FILE*f)//fputc函数

intferror(FILE*f)//ferror函数

void_sys_exit(intreturn_code)//系统退出函数

void_ttywrch(intch)

__value_in_regsstruct__initial_stackheap__user_initial_stackheap(unsignedR0,

unsignedSP,unsignedR2,unsignedSL)//用户的堆空间和栈空间函数

具体定义,可以参考init/retarget.c

(5)在第(4)步中如果不选择简单的连接地址设置,则需按图1B-8所示设置C编译

器。

在DebugSettings对话框中选择ARMCCompiler项,在ATPCS选项卡中选择ARM/Thump

interwork,或者在命令行中添加-apcs/interwork。

2.7实验结果总结

熟悉了ADS1.2开发环境,学会了ARM仿真器的使用。

使用了ADS编译、下载、调试并跟踪

一段已有的程序,了解嵌入式开发的基本思想和过程。

2.8心得体会

这也是一次基础性试验,为以后的实验打下基础,虽然过程繁琐复杂,但要仔细认真。

3.实验三

3.1实验名称

键盘及LED驱动实验

3.2实验环境

硬件:

ARM嵌入式开发平台、用于ARM7TDMI的JTAG仿真器、PC机Pentium100以

上。

软件:

PC机操作系统win98、Win2000或WinXP、ARMSDT2.51或ADS1.2集成开发

环境、仿真器驱动程序、超级终端通讯程序。

3.3实验内容及要求

通过ZLG7289芯片驱动17键的键盘和8个共阴极LED,将按键值在LED上显示出来。

3.4实验设计与实验步骤

1.新建工程,将“Exp3键盘及LED驱动实验”中的文件添加到工程。

2.定义ZLG7289寄存器(ZLG7289.h)

3.编写ZLG7289驱动函数(ZLG7289.c)

4.定义键盘映射表:

(Keyboard16.c)

5.定义键值读取函数。

6.编写主函数,将按键值在数码管上显示。

3.5实验过程与分析

#defineZLG7289_CS(0x20)//GPB5

#defineZLG7289_KEY(0x10)//GPG4

#defineZLG7289_ENABLE()do{ZLG7289SIOBand=rSBRDR;ZLG7289SIOCtrl=rSIOCON;

rSIOCON=0x31;rSBRDR=0xff;rPDATB&=(~ZLG7289_CS);}while(0)

#defineZLG7289_DISABLE()do{rPDATB|=ZLG7289_CS;rSBRDR=ZLG7289SIOBand;

rSIOCON=ZLG7289SIOCtrl;}while(0)

关闭zlg7289

ZLG7289_DISABLE()

3.6实验结果总结

ZLG7289A是一片具有串行接口的,可同时驱动8位共阴式数码管(或64只独立LED)

的智能显示驱动芯片,该芯片同时还可连接多达64键的键盘矩阵,单片即可完成LED显

示﹑键盘接口的全部功能。

ZLG7289A内部含有译码器,可直接接受BCD码或16进制码,并同时具有2种译码方

式。

此外,还具有多种控制指令,如消隐﹑闪烁﹑左移﹑右移﹑段寻址等。

ZLG7289A具有片选信号可方便地实现多于8位的显示或多于64键的键盘接口。

3.7心得体会

1.掌握在ARMSDT2.5或ADS1.2集成开发环境中编写和调试程序的基本过程。

2.了解ARM应用程序的框架结构。

3.了解UC/OS-II多任务的原理。

4.实验四

4.1实验名称

D/A接口试验

4.2实验环境

硬件:

ARM嵌入式开发平台、用于ARM7TDMI的JTAG仿真器、PC机Pentium100以

上。

软件:

PC机操作系统win98、Win2000或WinXP、ARMSDT2.51或ADS1.2集成开发

环境、仿真器驱动程序、超级终端通讯程序。

4.3实验内容及要求

学习D/A接口原理,了解实现D/A系统对于系统的软件和硬件要求。

阅MAX504芯片

文档,掌握其使用方法,编程实现正弦波信号的输出,利用示波器实验输出。

4.4实验设计与实验步骤

1.新建工程,将“Exp4D/A实验”中的文件添加到工程。

2.定义宏(Max504.c)

3.编写D/A输出函数(Max504.c)

4.编写主函数(main.c),输出方波信号。

4.5实验过程与分析

#defineMAX504_CS0x2//EXIO1

#defineMAX504_CLR0x1//EXIO0

#defineSIOLSB0x40

#defineMAX504_ENABLE()do{CLREXIOBIT(MAX504_CS);}while(0)

#defineMAX504_DISABLE()do{SETEXIOBIT(MAX504_CS);}while(0)

#defineMAX504_CLEAR()do{CLREXIOBIT(MAX504_CLR);Delay

(1);

SETEXIOBIT(MAX504_CLR);}while(0)

#defineMax504_FULL4.096f

将数据左移两位关闭MAX504

MAX504_DISABLE()将DAC寄存器设为0

MAX504_CLEAR()发送低8位

SendSIOData()延时

开启MAX504发送高8位

MAX504_ENABLE()SendSIOData()

将数据左移两位关闭MAX504

MAX504_DISABLE()

将DAC寄存器设为0

MAX504_CLEAR()发送低8位

SendSIOData()延时

开启MAX504发送高8位

MAX504_ENABLE()SendSIOData()

4.6实验结果总结

DA转换器的内部电路构成无太大差异,一般按输出是电流还是电压、能否作乘法运算

等进行分类。

大多数DA转换器由电阻阵列和n个电流开关(或电压开关)构成。

按数字输入

值切换开关,产生比例于输入的电流(或电压)。

1)电压输出型(如TLC5620)

电压输出型DA转换器虽有直接从电阻阵列输出电压的,但一般采用内置输出放大器以

低阻抗输出。

直接输出电压的器件仅用于高阻抗负载,由于无输出放大器部分的延迟,故常

作为高速DA转换器使用。

2)电流输出型(如THS5661A)

电流输出型DA转换器很少直接利用电流输出,大多外接电流—电压转换电路得到电压

输出,转换有两种方法:

一是只在输出引脚上接负载电阻而进行电流—电压转换,二是外接

运算放大器。

用负载电阻进行电流—电压转换的方法,虽可在电流输出引脚上出现电压,但必须在规定的输出电压范围内使用,而且由于输出阻抗高,所以一般外接运算放大器使用。

此外,大部分CMOSDA转换器当输出电压不为零时不能正确动作,所以必须外接运算放大

器。

当外接运算放大器进行电流电压转换时,则电路构成基本上与内置放大器的电压输出型

相同,这时由于在DA转换器的电流建立时间上加入了运算放入器的延迟,使响应变慢。

外,这种电路中运算放大器因输出引脚的内部电容而容易起振,有时必须作相位补偿。

4.7心得体会

1.学习了D/A转换原理

2.掌握了MAX504D/A转换芯片的使用方法

3.掌握了不带有D/A/的CPU扩展D/A功能的主要方法。

5.实验五

5.1实验名称

ARM的A/D接口实验

5.2实验环境

硬件:

ARM嵌入式开发平台、用于ARM7TDMI的JTAG仿真器、PC机Pentium100以

上。

软件:

PC机操作系统win98、Win2000或WinXP、ARMSDT2.51或ADS1.2集成开发

环境、仿真器驱动程序、超级终端通讯程序。

5.3实验内容及要求

学习A/D接口原理,了解实现A/D系统对于系统的软件和硬件要求。

阅读ARM芯片文

档,掌握ARM的A/D相关寄存器的功能,熟悉ARM系统硬件的A/D相关接口。

利用外部

模拟信号编程实现ARM循环采集全部前4路通道,并且在超级终端上显示。

5.4实验设计与实验步骤

1.新建工程,将“Exp5ARMA/D接口实验”种的文件添加到工程。

2.编写获取转换结果函数(main.c)

3.主函数(main.c)

5.5实验过程与分析

ARMS3C440BX芯片自带一个8路10位A/D转换器,该转换器可以通过软件设置

Sleep摸式,可以节电减少功率损失,最大转换率为500K,非线性度为正负1位,其转换时间可以通过下式计算:

如果系统时钟为66MHz,比例值为9,则为66MHz/2(9+1)/16(完成转换至少需要16个时钟周期)=205.25KHz(相当于4.85us)ARM芯片与A/D功能有关的引脚为以下几个,其中AIN[7:

0]为8路模拟采集通道,

AREFT为参考正电压,AREFB为参考负电压,AVCOM为模拟共电压。

5.6实验结果总结

A/D转换器是模拟信号源和CPU之间联系的接口,它的任务是将连续变化的模拟信号

转换为数字信号,以便计算机和数字系统进行处理、存储、控制和显示。

在工业控制和数据

采集及许多其他领域中,A/D转换是不可缺少的。

A/D转换器有以下类型:

逐位比较型、积分型、计数型、并行比较型、电压-频率型,

主要应根据使用场合的具体要求,按照转换速度、精度、价格、功能以及接口条件等因素来

决定选择何种类型。

5.7心得体会

1.熟悉了ARM本身自带的八路十位A/D控制器及相应寄存器。

2.编程实现了ARM系统的A/D功能。

3.掌握了带有A/D的CPU编程实现A/D功能的主要方法

6.实验六

6.1实验名称

电机转动控制实验

6.2实验环境

硬件:

ARM嵌入式开发平台、用于ARM7TDMI的JTAG仿真器、PC机Pentium100以

上。

软件:

PC机操作系统win98、Win2000

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

当前位置:首页 > 自然科学 > 物理

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

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