嵌入式系统及应用实验内容资料.docx
- 文档编号:5473340
- 上传时间:2022-12-16
- 格式:DOCX
- 页数:105
- 大小:1.31MB
嵌入式系统及应用实验内容资料.docx
《嵌入式系统及应用实验内容资料.docx》由会员分享,可在线阅读,更多相关《嵌入式系统及应用实验内容资料.docx(105页珍藏版)》请在冰豆网上搜索。
嵌入式系统及应用实验内容资料
嵌入式系统及应用实验
嵌入式系统及应用实验以SmartARM2300工控开发平台及PC机为主要硬件设备。
SmartARM2300工控开发平台采用NXP公司生产的芯片LPC2378(ARM7TDMI-S核),具有JTAG调试等功能,除了本身的GPIO、TIMER、PWM、SPI、A/D、D/A功能外,还提供4个UART串口、IrDA接口、USBDevice接口、CAN总线、SD/MMC卡、MODEM接口、以太网接口等功能。
1.相关的硬件电路
⑴系统电源电路
图3.1系统电源电路
⑵键盘、蜂鸣器及LED电路
图3.27个独立按键电路
图3.3直流蜂鸣器电路
图3.4SPI驱动8个LED指示灯
⑶串行口接口电路
图3.5UART0&UART2&UART3串行口接口电路
⑷IrDA(红外)通讯接口电路
图3.6IrDA(红外)通讯接口电路
⑸JTAG调试接口、RST复位键及ISP选择电路
图3.7JTAG调试接口电路
图3.8RST复位键及ISP选择电路
2.跳线器说明
SmartARM2300工控开发平台跳线器说明如表3.1所列。
JP1跳线布局如图3-9所示。
图3.9JP1跳线布局
表3.1SmartARM2300跳线器一览表
跳线器
标号
I/O
功能说明
I/O复用情况
JP1
JP1-1
RXD3
P4.29
UART3接口,至SP3232E输入端,短接时有效
JP1-5的IR_R,做UART3实验时,必须将JP1-5的IR_R跳线断开
TXD3
P4.28
JP1-5的IR_T,做UART3实验时,必须将JP1-5的IR_T跳线断开
JP1-2
RXD0
P0.3
UART0接口,至SP3232E输入端,短接时有效
TXD0
P0.2
JP1-3
RXD2
P0.11
UART2接口,至SP3232E输入端,短接时有效
TXD2
P0.10
JP1-4
MDCD
P2.3
UART1接口,至SP3232E输入端,具有MODEM接口功能,短接时有效
MDSR
P2.4
MRXD
P2.1
JP24接口
MCTS
P2.2
MRI
P2.6
MDTR
P2.5
MTXD
P2.0
JP24接口
MRTS
P2.7
JP1-5
IR_EN
P3.26
模式选择,短接时有效
IR_R
P4.29
IrDA收发器数据输出,短接时有效
JP1-1的RXD3,做IrDA实验时,必须将JP1-1的RXD3跳线断开
IR_T
P4.28
IrDA收发器数据输入,短接时有效
JP1-1的TXD3,做IrDA实验时,必须将JP1-1的TXD3跳线断开
JP1-6
4线,CAN控制器发送/接收线
JP1-7
9线,SD/MMC卡控制及数据线
JP1-8
KEY1
P0.6
独立按键1,短接时有效
KEY2
P0.7
独立按键2,短接时有效
KEY3
P0.8
独立按键3,短接时有效
KEY4
P0.9
独立按键4,短接时有效
KEY5
P0.10
独立按键5,短接时有效
KEY6
P0.11
独立按键6,短接时有效
KEY7
P0.25
独立按键7,短接时有效
JP1-9
BEEP
P1.27
蜂鸣器驱动输入,短接时有效
JP1-10
MOSI
P1.24
74HC595与SPI接口连接的跳线,短接时有效
/CS
P1.21
SCLK
P1.20
MISO
P1.23
JP4
V-TEST
P1.31
LPC2378片内A/D的AD0.5通道电压输入,短接时有效
JP5
ISP
P2.10
ISP功能使能,短接时有效
实验一ADS集成开发环境使用与仿真调试
一.实验目的
熟悉ADS集成开发环境与仿真调试的使用方法。
二.实验设备及器件
PC机一台
SmartARM2300工控开发平台一台
三.实验内容与实验步骤
ADS集成开发环境是ARM公司推出的ARM核微控制器集成开发工具式,ADS(ARMDeveloperSuite)成熟版本为ADS1.2。
ADS1.2支持ARM10之前的所有ARM系列微控制器,支持软件调试及JTAG硬件仿真调试,支持汇编、C、C++源程序。
ADS1.2由代码生成工具、CodeWarriorIDE集成开发环境、AXD调试器、指令模拟器、ARM开发包和ARM应用库6个部分组成,用户一般直接操作的是CodeWarriorIDE集成开发环境和AXD调试器。
ADS1.2使用了CodeWarriorIDE集成开发环境,并集成了ARM汇编器、ARM的C/C++编译器、Thumb的C/C++编译器、ARM连接器,包含工程管理器、代码生成接口中、语法敏感编辑器、源文件和类浏览器等等。
AXD调试器为ARM扩展调试器(即ARMExtendedDebugger),包括ADW/ADU的所有特性,支持硬件仿真和软件仿真(ARMulator),AXD能够装载映像文件到目标内存,具有单步、全速和断点等调试功能,可以观察变量,寄存器和内存的数据等等。
1.工程的编辑
⑴建立工程
点击windows操作系统【开始】->【程序】->【ARMDeveloperSuitev1.2】->【CodeWarriorforARMDeveloperSuite】启动MetrowerksCodeWarrior,或者双击“CodeWarriorforARMDeveloperSuite”快捷方式启动。
启动ADS1.2IDE,如图3.10所示。
图3.10ADS1.2IDE界面
点击【File】菜单,选择【New...】即弹出New对话框,如图3.11所示。
图3.11New对话框
选择工程模块为ARM可执行映像(ARMExecutableImage),在其它场合也可能选ARMExecutaleImageforLPC2300,或Thumb可执行印象(ThumbExecutableImage),或Thumb,ARM交至映像(ThumbARMInterworkingImage)等,然后在【location】项选择工程存放路径(请建立自己的文件夹),并在【projectname】项输入工程名称(后缀名自动设置,为mcp),点击【确认】按钮即可建立相应工程(下文有时也把工程称为项目)。
在集成环境中会弹出工程窗口如图3.12所示,此时工程中还没有任何源文件。
图3.12集成环境中的工程窗口
系统自动为每个工程建立三个目标(默认的名称为DebugRel,Release,Debug),主要是方便同一个工程在调试应用不同场合对应不同目标(可在后续的设置中为每个目标建立不同的参数);对简单应用可不考虑目标之间的区别,只对其中的一个默认目标(DebugRel)进行操作即可。
⑵建立文件
建立一个文本,以便输入用户程序,点击“NewTextFile”图标按钮,如图3.13所示。
图3.13“NewTextFile”图标按钮
然后在新建文件(untiled)中,根据需要完成的任务,编写合适的程序,程序编写结束后,点击“save”图标按钮将文件存盘(或从【File】菜单选择【save】,要求输入文件全名(汇编程序后缀名为.S;C语言程序后缀名为.C),如TEST1.S(汇编程序),TEST1.C(C语言程序)。
注意,请将文件保存到步骤⑴中建立的工程目录下,以便于管理和查找。
当然,也可以New对话框选着【File】页来建立源文件,如图3.11所示,或使用其他文本编辑器建立或编辑源文件。
⑶添加文件到工程
在工程窗口中【File】页空白处点击鼠标右键,弹出浮动菜单,如图3.14所示。
选着“addFlie...”即可弹出“Sslectfiletoadd...”对话框,如图3.15所示,选择相应工程需要的源文件(可按着Ctrl键一次选择多个文件),点击【打开】按钮;弹出“AddFiles”对话框,如图3.16所示,点击【OK】按钮,为工程中的三个目标均添加文件即可。
C语言中的头文件(.h)及汇编语言中的包含文件(.INC)编译系统会自动添加,但这些文件必须在相应的目录下,编译系统才能找到并确定。
另外,用户也可以在【Project】菜单中选择【AddFile...】来添加源文件,或使用New对话框选择【File】页来建立源文件时选择加入工程(即选中“AddtoProject”项)。
图3.14在工程窗口中添加源程序
图3.15Selectfilestoadd...对话框
图3.16Addfilestotargets窗口
⑷编辑连接工程
工程窗口中的图标按钮如图3.17所示,通过这些图标按钮,可以快速地可对目标DebugRel进行工程设置,编译连接,启动调试等等(在不同的菜单项上可以分别找到相应的菜单命令)。
6个图标按钮,它们从左至右分别为:
DebugRelSettings...工程设置,如地址设置,输出文件设置,编译选项灯,其中DebugRel为当前的生成目标(targetsystem);
SynchronizeModificationDates同步修改日期,检查工程中每个文件的修改日期,若发现有更新(如使用其它编辑器编辑源文件),则在Touch栏标记“√”;
Make编译连接(快捷键为F7);
Debug启动AXD进行调试(快捷键为F5);
Run启动AXD进行调试,并直接运行程序;
ProjectInspector工程检查,查看和配置工程中源文件的信息。
图3.17工程窗口中的图标按钮
点击“DebugRelSettings...”图标按钮,即可对目标DebugRel进行工程的地址设置、输出文件设置、编辑选项等。
在“TargetSettings”对话框,将Post-linker选择为ARMformELF(ARM可执行格式),如图3.18所示。
图3.18DebugRelSettings窗口
在“ARMLinker”对话框设置连接地址,由汇编语言编写的软件,在Linktype单选项选择Simple,设置连接地址为0x40000000(LPC2300SRAM的地扯),如图3.19所示。
若由C语言编写的软件,在Linktype单选项选择Scattered,由分散加载文件设置连接地址,如实验三及实验三以后的程序。
图3.19连接地址设置窗口
其余DebugRelSettings采用默认设置即可,设置结束后直接点击工程窗口的“Make”图标按钮,即可完成编译连接。
若编译出错,会有相应的出错提示,双击出错提示行信息,编辑窗即会使用光标指出当前出错的源代码,编辑连接输出窗口如3.20图所示。
同样可在【Project】菜单中找到相应的命令。
图3.20编译连接输出窗口
Touch栏用于标记文件是否已编译,若打上“√”则表明对应文件需要重新编译,如图3.21所示,。
可以通过单击该栏位置来设置/取消符号“√”。
图3.21工程窗口中Make操作
重新编译之前,建议将原来生成的目标文件都删除,方法如下,点选“project”下拉菜单的“RemoveObjectcode”->“AllTargets”,如图3.22所示,删除了旧目标文件后,所有文件都被“touch”上了,此时可对整个工程进行重新编译。
图3.22删除旧的目标文件
⑸打开旧工程
点击【Flie】菜单,选择【Open】即弹出“打开”对话框,找到相应的工程文件(*.mcp),
单击【打开】即可。
在工程窗口的【files】页中,双击源程序的文件名即可打开该文件进行编辑。
2.工程的调试
⑴选择调试的方式
当工程编译连接通过后,在工程窗口中点击“Debug”图标按钮(或者使用快捷F5),
即可启动AXD(也可以通过【开始】菜单启动AXD)。
点击菜单【options】选择【ConfigureTarget...】,即弹出ChooseTarget窗口,如图3.23所示。
Target项中的前两项,分别为ADP(JTAG硬件仿真)和ARMUL(软件仿真),为ADS1.2自带;Target项中的第三项H-JTAG为EasyJTAG-H仿真器驱动,参见稍后的描述。
图3.23ChooseTarget窗口
选择仿真驱动程序后,点击【File】选择【LoadImage...】加载ELF格式的可执行文件,即*.axf文件。
(说明:
当工程编译连接通过后,在“工程名\工程名_Data\当前的生成目标”目录下就会生成一个*.axf调试文件。
比如工程TEST,当前的生成目标Debug,编译连接通过后,则在...\TEST\TEST_Data\Debug目录下生成TEST.axf文件。
)
⑵调试工具条
AXD运行调试工具条如图3.24所示,调试观察窗口工具条如图3.25所示,文件操作工具条如图3.26所示。
具有单步、全速和断点等调试功能,可以观察变量,寄存器和内存的数据等等。
图3.24运行调试工具条
图3.25调试观察窗口工具条
图3.26文件操作工具条
3.LPC2300系列ARM工具模板
在建立工程时,们已经接触了ADS1.2提供的几个标准工程模板。
使用各个模板建立的工程,它们的各项设置均有不同之处,方便生成不同的结构的代码,如ARM可执行映像(生成ARM指令的代码)或Thumb可执行映像(生成Thumb指令的代码),或Thumb、ARM交织映像(生成Tumb、ARM指令交织的代码)。
针对LPC2300系列ARM7微控制器,定义了2个工程模板,这些模板一般包含的设置信息有FLASH起始地址0x00000000、片内RAM起始地址0x40000000、编译连接选项及编译优化级别等等。
模板中包含了LPC2300系列ARM7微控制器的启动文件,包括Startup.S、target.c,模板还包含了LPC2300系列ARM7控制器的头文件(如:
LPC23xx.h),分散加载描述文件(如:
mem_a.scf、mem_b.scf、mem_c.scf)等等。
⑴为AD1.2增加LPC2300专用工程模板
将“lpc2300projectmodule”目录下的所有文件和目录拷贝到“ADS1.2安装目录>\Stationery\”即可,这个步骤只需1次,以后就可以直接使用该工程模板。
⑵使用LPC2300专用工程模板建立工程
启动ADS1.2集成开发环境,点击【file】菜单,选择【New】即弹出New对话框,如图3.27所示。
由于事先增加了LPC2300专用模板和其他模板。
所以在工程模板栏中多出几项工程模板选项。
图3.27增加工程模板
LPC2300专用工程模板说明如下:
ARMExecutaleImageforLPC2300:
无操作系统,所有代码均编译成ARM指令的工程模板。
用户选择相应的工程模板建立一个工程,如图3.28所示为使用ARMExecutaleImageforLPC2300工程模板建立一个工程。
工程有3个生成目标:
DebuginRAM、DebugInFlash、RelInFLASH.工程模板已经将相应的编译参数设置好了,直接使用即可。
注意:
●工程模板的分散加载文件mem_a.scf、mem_b.scf、mem_c.scf、的堆栈和内存大小需要根据不同的芯片进行设置,LPC2366/68/78和LPC2364的大小不一样,用户可以打开这3个文件根据芯片型号进行相应修改;
●选用RellnFlash目标时,将会对LPC2300芯片进行加密,加密的芯片只能使用ISP进行芯片整片擦除后,才能恢复JTAG调试及ISP读/写操作。
图3.28使用LPC2300系列ARM专用工程模板建立的工程
4.EasyJTAG-H仿真的安装与应用
⑴EasyJTAG-H简介
EasyJTAG-H仿真器是一款新型的仿真器,目前,可以支持LPC2300系列ARM7微控制器和部分ARM9芯片,支持ADS1.2集成开发环境,支持单步、全速及断点等调试功能,支持下载程序到片内FLASH和特定型号的片外FLASH,采用ARM公司提出的标准20脚JTAG仿真调试接口。
这款仿真器需要H-JATAG软件(调试代理)的支持。
⑵H-JTAG软件安装
在PC上运行安装文件H-JTAG.EXE,根据安装提示完成安装即可。
安装好的H-JTAG软件包含有H-JTAGServer(下文简称为H-JTAG)和H-Flasher,在桌面上有它们的快捷图标。
运行程序H-JTAG和H-Flasher后,用户任务栏中将出现3.29所示图标。
图3.29H-JTAG提示图标
将计算机并口与EasyJTAG-H仿真器相连,然后在将EasyJTAG-H仿真器的JTAG接口连接到开发板上左上方的CON5,注意不要连接到右下方的JPI3,否则会造成短路,然后给开发板上电。
⑶H-JTAG配置
H-JTAG设置较简单,只要进行以下两步操作,其他采用默认即可。
●单击任务栏的H提示图标,将看见H-JTAG的主窗口,如图3.30所示。
单击“放大器”图标按钮后,能看见调试代理搜索到ARM内核信息。
图3.30H-JTAG主窗口
●选择【Flasher】->【AotoDownload】选择自动下载,如图3.31所示(正常情况下,H-JTAG能检测并显示ARM内核信息)。
注意,在Flash中调试时必须选择“AutoDownload”,而在RAM中调试可以不选择。
图3.31打开自动下载功能
⑷H-Flasher配置
H-Flasher的配置,只需要选择正确的CPU型号,然后验证(Check)通过即可。
●单击任务栏的H-Flasher提示图标,确认目标板的CPU型号后,打开H-Flasher的FlashSelection选项,选择正确的CPU型号即可。
如:
开发板上的CPU型号为NXP公司的LPC2378,操作如图3.32所示。
图3.32选择Flash类型
●验证调试代理配置是否正确,打开H-Flasher的Programming选项单击Check按钮,如图3.33所示。
如果正常,可以看到所使用的Flash芯片的型号,单击Check按钮时,H-Flasher就会启用当前新的配置值。
到此配置完成。
图3.33Flash编程选项
⑸EasyJTAG-H仿真器的使用
●将计算机并口与EasyJTAG-H仿真器相连,再将EasyJTAG-H仿真器的JTAG接口连接到开发板上左上方的CON5,并给开发板上电。
然后打开H-JTAG软件,单击放大镜图标按钮,如果正常就能检测到芯片内核信息。
然后可以最小化或关闭H-JTAG和H-FLASH窗口(注意:
不能使用exit菜单关闭)。
●选择windoes系统的【开始】->【程序】->【ARMdevelopersuitev1.2】->【AXDdebugger】启动AXD软件。
再AXD软件中,打开【Options】->【ConfigureTarget...】,弹出choosetarget对话框,单击ADD添加仿真器的驱动程序,在添加文件窗口选择如D:
\ProgarmFiles\H-JTAG.dll,如图3.34所示,接着单击“打开”即可(若已经安装,此步省略)。
图3.34为AXD添加H-JTAG驱动
●添加完H-JTAG驱动后选择该驱动程序,如图3.35所示,然后单击OK。
图3.35ChooseTarget窗口
●关闭AXD窗口,以后调试就直接在ADS中打开一个工程,编译链接通过后,单击Debug或按下“F5”即可启动AXD调试软件,进行JTAG仿真调试,AXD典型界面如图3.36所示。
图3.36AXD调试界面
注意:
如果工程文件的路径中存在中文,进行AXD调试环境可能会出现错误。
因此,建议工程路径中不要包含中文(包含标点符号)。
⑹EasyJTAG-H常见问题
●在进行AXD仿真调试前,需要打开H-JTAG检测芯片内核。
同时要正确配置H-Flasher,否则无法进入AXD正常调试。
●如果目标板没有上电,或者JTAG仿真器没有连接好,H-JTAG会出现错误,如图3.37所示,调试时将SmartARM2300工控开发平台的ISP(JP5)跳线短接上,这样可避免片内程序自动脱机运行。
图3.37H-JTAG连接错误
●如在ADS启动AXD仿真器调试时出现如图3.38所示的错误,单击“确定”按钮,然后会弹出LoadSession对话框,如图3.39所示。
图3.38启动仿真时出错
图3.39LoadSession窗口
●此时不必选择Session文件,直接单击“取消”,然后进入到AXD调试界面。
点选“Option”->“ConfigureInterface”,如图3.40所示。
图3.40点选配置窗口
●在“Actiononclose/restart”项,将“Saveandloaddefaultsessi”前面的“√”去掉,如图3.41所示。
图3.41去掉保存sessi
●点击“确定”,关闭AXD,在ADS工程窗口中点击“Debug”进入AXD调试环境,会弹出如图3.42所示对话框,选择“H-JTAG”并点击确定。
成功连接目标板后,就进入了AXD进行仿真调试。
图3.42选择“H-JTAG”
四.实验要求
熟练掌握ADS1.2集成开发环境的工程建立、编辑与调试功能。
了解相关的SmartARM2300工控开发平台硬件结构。
五.实验参考程序
参考实验二相关程序(使用ARMExecutableImage模板建立工程,“ARMLinker”设置连接地址为0x40000000);
或参考实验三中的GPIO输出实验程序(使用ARMExecutaleImageforLPC2300模板建立工程,“ARMLinker”连接地址由分散加载文件自动设置)。
实验二LPC2300开发过程及程序下载实验
一.实验目的
熟悉LPC2300开发过程及程序下载。
二.实验设备及器件
PC机一台
SmartARM2300工控开发平台一台
三.实验内容及步骤
⑴将计算机并口与EasyJTAG-H仿真器相连,EasyJTAG-H仿真器的JTAG接口连接到SmartARM2300工控开发平台上左上方的CON5,启动H-JTAG和H-FLASH软件,选择NXPLPC2378器件,并最小化窗口。
⑵启动ADS1.2,使用ARMExecutableImage工程模板建立一个工程,如图3.43所示。
图3.43工程模板窗口
⑶编写一个汇编语言文件,控制蜂鸣器每隔一定时间鸣叫一次,并将文件添加到工程。
⑷将SmartARM2300工控开发平台的JP1上的P1.27和BEEP连接,参见图3.3直流蜂鸣器电路。
⑸在工程窗口进行工程设置,在“TargetSettings”对话框,将Post-linker选
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 嵌入式 系统 应用 实验 内容 资料
![提示](https://static.bdocx.com/images/bang_tan.gif)