收藏 分享(赏)

ARM实验讲义.doc

上传人:hyngb9260 文档编号:7471095 上传时间:2019-05-19 格式:DOC 页数:74 大小:2.83MB
下载 相关 举报
ARM实验讲义.doc_第1页
第1页 / 共74页
ARM实验讲义.doc_第2页
第2页 / 共74页
ARM实验讲义.doc_第3页
第3页 / 共74页
ARM实验讲义.doc_第4页
第4页 / 共74页
ARM实验讲义.doc_第5页
第5页 / 共74页
点击查看更多>>
资源描述

1、1目 录第一章 嵌入式开发系统资源概况 3第二章 嵌入式系统开发环境简介 .72.1 UP-ARM JTAG 使用指南 72.2 ADS1.2 开发环境 .202.3 超级终端设置及映象文件下载方法 .35第三章 嵌入式系统硬件驱动基础开发案例 .423.1 ARM的串行口实验 423.2 ARM的 A/D接口实验 533.3 ARM的 D/A接口实验 612第一章 嵌入式开发系统资源概况一、开发板硬件资源1. Core 小板:S3C2410 ARM CPU 、64M SDRAM 、64M NAND FLASH,通过256Pin 精密插座与主板连接。核心板上可以配置2M 或4M 容量的Nor

2、Flash AM29LV160/320 ,从而可以从NorFlash 启动并可增加 NandFlash 容量。2410 经典平台的核心板设计在一定程度上和博创PXA270 核心板兼容,在软件支持下,PXA270 核心板插到经典开发平台主板上可以使用其多数硬件功能。2. 双 100M EtherNet 网卡:由两片 DM9000AE 构成的双网卡,一般可只用其一。3. HOST / 1 DEVICE USB 接口:从 2410 的主 USB 口扩展为 4 个,由 AT43301 构成 USB HUB。 USB 从口保持处理器本身的 1 个。4. UART/IrDA: 2 个RS232 串口。另有

3、1 个RS485 串口,1 个IrDA 收发器,均从处理器的UART2 引出。5. 168Pin EXPORT :提供一个168Pin 扩展卡插槽,引出所有总线信号和未占用资源。6. LCD和VGA 接口:标配8 寸16bit 真彩屏,同时预留一个 24bit 接口。扩展了VGA 接口和AV 接口,可以连接VGA 显示器。7. LCD:兼容多种 LCD,可采用 5 寸 256 色屏或 8 寸 16bit 真彩屏,同时预留一个 24bit接口。可以支持板外 8bit 或 24bit 屏。8. TouchScr:采用 ADS7843,预备了直接用 2410 内部 ADC 构成的转换电路接口。9.

4、采用 UDA1341,具有放音、录音和线路输入等功能。功放电路由LM386 构成,板载扬声器可播放音频。10. PS2 KEYPAD:使用 ATMEGA8 单片机控制 2 个 PS2 接口和板载 17 键小键盘。两个PS2 可接 PC 键盘和鼠标。11LED :扩展 2 个数码管和1 个8x8 点阵发光管显示器。12SUPPLY 、RESET 、RTC 等必须资源。经典平台主板集成了UP-LINK 调试电路,可以直接用并口电缆连接计算机进行仿真、下载等13ADC:板载 3 个电位器和选择跳线,同时在板上设模拟电压输入专用接口。14IDE/CF 卡插座:支持 2.5 英尺的笔记本硬盘读写和 ID

5、E 模式下的 CF 卡读写。15SD 卡插座:从 2410 扩展 SD 接口。16IC 卡插座:由 ATMEGA8 单片机控制。17DC 电机:扩展直流电机驱动电路,由 PWM 控制。带有红外线测速电路。18CAN BUS:设置 1 个 CAN 口,采用 MCP2510 和 TJA1050 芯片构成。19DA:采用 MAX504 ,SPI 总线操作,输出模拟电压。20. 设置了 PWM DA 、IIC 存储器、IO 控制 LED 和可产生硬中断的按键等简单调试资源21可以提供配套的 GPRS/GPS、FPGA 、WLAN、USB2.0 等扩展板。二、跳线设置参考说明:PCB 上所有“EXPOR

6、T”丝印字符表示 168Pin扩展槽JP1401 RESET-SEL :设置复位电路,位置 JTAG20 插座下方。 12:ICE 的 ICE-TRST 复位信号可以控制系统复位信号 RESET。 23:ICE 的 ICE-TRST 复位信号不可以控制系统复位信号 RESET。JP1402 JTAGSEL :选择 JTAG 电路,位置 JTAG20 插座下方。 312: 使能板载的 UP-LINK JTAG 电路。 23:使用外部的 JTAG 电缆或者 ARM ICE 仿真器。JP1103 TXD1-SELJP1104 RXD1-SEL:UART1 选择扩展槽或者 RS232 的 DB9 插座

7、。12:UART1 连接 RS232-1 ,从 DB9 串口插座输出。23:UART1 连接到扩展槽。JP1101 TXD2-SELJP1102 RXD2-SEL:UART2 选择跳线,分别为 RS485、IrDA、扩展槽12:UART2 连接到 RS485 总线上。23:UART2 连接到扩展槽上。34:UART2 连接到扩展槽上。45:UART2 连接到 IrDA 红外线电路上。三、资源占用情况资源 构成 BANK INT IO 其他 核心板 CPU S3C2410A SDRAM HY57V561620 6 局部总线 NorFlash AM29LV160 0 局部总线 NandFlash

8、K9F1 208/更大 局部总线 总线仲裁 74HC21 总线驱动 74LVHC16245 LED GPG1 主板 电源 5V 输入/LDO复位 IMP811T 复位逻辑 JTAG UP-LINK 电路网卡1 DM9000AE 2 2 INDEX 0x10000000 DATA 0x10000002 网卡2 DM9000AE 2 3 INDEX 0x10000004 DATA 0x10000006 IDE 硬盘 1 6 地址0x08000000-0x080000FF CF CARD CPLD 逻辑 5 7 PCCARD 模式 CAN 总线 MCP2510 4 GPH0 SPI 总线 MMC/S

9、D 卡 2410 MMC 18 MMC 总线 RS232-0 MAX3232 UART0 4RS232-1 MAX3232 UART1 RS485 MAX485 GPH1 UART2 IrDA TFDU4100 UART2 音频 UDA1341 GP G8、9、0 IIS 总线 触摸屏 2410 ADC GPG12/13/14/15 AIN5/7 LCD 2410 LCD LCD 总线 VGAAV LCD 总线驱动 IIC 总线配置AD 分压电位器 AIN0/1/2 DA MAX504 GPG3 SPI 总线 USB 4 HOST AT43301 USB DEVICE 2410 DUSB 10

10、 插入检测 PS2 接口 ATMAGE8 IIC 小键盘 ATMAGE8 IIC IC 卡接口 ATMAGE8 IIC 中断按钮 2410 中断 5 LED GPIO 驱动 GPC5/6/7 IIC 存储器 AT24C01 IIC 总线 PWM DA PWM PW M2、3 数码管 74HC273 1 地址0x08000100 点阵发光管 74HC273 1 地址0x08000102 直流电机 驱动和光检测 PWM0/1 输出和计数器输入TCLK1 扩展插座 3 、4 0、1 扩展总线 13/14/15 GPG5/6/7 SPI1 9 GPG1 GPH9/10 GPB5/6 TOUT0/1/2

11、/3 TCLK0/1 nRSTOUT IIC UART1 、2SPI0 IIS AIN3/4/6 5四、嵌入式系统开发流程下图 1-1给出了嵌入式系统开发的总体流程,在第二部分的实验案例中给出了建立工程,设置编译环境和工程模板参数,编译,调试,下载等过程的详细说明。图 1-1 嵌入式系统开发流程框图6第二章 嵌入式系统开发环境简介2.1 UP-ARM JTAG使用指南支持 ARM7处理器支持 ARM9处理器支持 RDI 1.5.1调试协议,可以和 ARM公司的 SDT、ADS 调试器配合使用并口模拟 JTAG时序,优化的并口驱动程序和针对 ARM优化的数据下载算法,使数据的下载速度可达 10K

12、Bytes/s(和上位机的速度有关)支持 FLASH芯片的在线编程,可以自由扩充。支持自动配置目标板处理器,实现目标板没有 Boot loader也可以方便的调试程序。兼容 2.0V5.0V多种 JTAG电压标准附带的并口 JTAG原理图支持 14芯 ARM JTAG标准,通过硬件的转换可以支持 20芯 JTAG软件兼容于 2000、XP一、 安装 ARM flash下载程序1. 安装 JTAG(符合 IEEE 1149.1标准)下载线。电缆一端装在 PC的并行打印口上,另一端接在目标板的 JTAG插座上,如图 1-1所示。图 1-1 安装 JTAG下载线提示:与并口相连的下载线原理图,可以参

13、考应用程序安装目录下 ArmJTag sch.pdf 文件。2. 运行 armJtagSetup安装程序,根据 ARM Jtag仿真器安装向导的提示逐步完成程序的安装,如图 1-2所示。7图 1-2 安装 ARM flash下载程序3. 安装 JTAG下载线驱动程序选择控制面板|系统|硬件标签|添加硬件向导按钮启动添加硬件向导,根据向导提示单击“下一步” ,如图 1-3所示。8图 1-3 启动添加硬件向导在“硬件是否连接?”对话框中请选择“是,硬件已连接好”选项,根据向导提示单击“下一步” ,如图 1-4所示。图 1-4 添加新的硬件设备在“已安装的硬件”列表框中选择“添加新的硬件设备项”选项

14、,根据向导提示单击“下一步” ,如图 1-5所示。9图 1-5 安装我手动从列表选择的硬件在“您期望向导做什么?”对话框中选择“安装我手动从列表选择的硬件(高级) ”选项,根据向导提示单击“下一步” ,如图 1-6所示。10图 1-6 选择硬件类型在“常见硬件类型”列表框中选择”“显示所有设备” (如果以前添加过仿真器的驱动程序则会有“LPT Device”选项)选项,根据向导提示单击“下一步” ,如图 1-7 所示。图 1-7 选择要为此硬件安装的设备驱动程序最后指定驱动程序(LPTJtag.inf)的存放路径(此文件在安装目录 UarmJtagdriver中),单击“完成”按钮即完成 JT

15、AG 下载线驱动程序的安装。二、ARM 的 JTAG调试ARM SDT(或者 ADS)调试器通过 Angel 协议转换器控制下位机,协议转换器解释上位机传送过来的命令,通过 JTAG 控制 ARM 处理器的执行。软件启动的时候,自动缩小成为 windows 的托盘图标,Angle 默认处于开启状态。用户也可以通过 Angle 按钮,在用 ARM SDT(或者 ADS)调试器之前,先切换 Angel控制,使 Angel控制处于开启状态,如图 3-1所示。11图 3-1 Angel控制提示:本软件支持 RDI(Remote Debug Interface 1.5.1)。在 SDT 2.51 和 A

16、DS 1.2 上测试通过。如果软件不能识别目标板类型,在启动时会给出提示。请先在初始化配置中选择类型再进行调试。配置 ARM Debugger1、SDT 2.51 的设置启动 UArmJTAG 程序(保证 Angle 处于开启状态) 。在 windows 下,启动 SDT 2.51 的ARM Debuger。选择 Options|Configure Debugger菜单,在 Debugger Configuration 对话框中选择 Target 标签,在 Target Environment 下拉列表框中选择“Remote_A”选项,然后选择“Configure ”按钮,如图 3-2 所示。

17、12图 3-2 调试器配置在 Angel Remote Configuration 对话框中选择 Ethernet 选项,并配置 IP 地址为127.0.0.1(这是回环 IP 地址,用来表示自身的计算机) ,单击 OK 即完成对 ARM Debugger的配置,如图 3-3 所示。图 3-3 配置 IP地址注意:在启动 SDT 之前,UArmJtag 程序一定要处于打开状态,并且保证 Angle 模式开启。在SDT 运行的整个过程中都不能关闭 UArmJtag 程序或者断开 Angle 模式,否则,ARM Debuger 程序会出错,或者,失去相应。132、ADS 1.2 的设置启动 UAr

18、mJTAG 程序(保证 Angle 处于开启状态) 。在 windows 下,启动 ADS 1.2 的AXD。选择 Options|Configure Target菜单。如图 3-4 所示。图 3-4 选择 Configure Target菜单在 Choose Target 对话框中选择如图 3-5 所示的 Remote_All.dll。图 3-5 Choose Target对话框选择 Configure 按钮,按照图 3-6 配置。14图 3-6 配置 target单击 OK。AXD 就可以和 UArmJTAG 正常的通讯了。152.2 ADS1.2 开发环境一、实验目的熟悉 ADS1.2开

19、发环境,学会 ARM仿真器的使用。使用 ADS编译、下载、调试并跟踪一段已有的程序,了解嵌入式开发的基本思想和过程。二、实验内容本次实验使用 ADS集成开发环境。新建一个简单的工程文件,并编译这个工程文件。学习 ARM仿真器的使用和开发环境的设置。下载已经编译好的文件到嵌入式控制器中运行。学会在程序中设置断点,观察系统内存和变量,为调试应用程序打下基础。三、预备知识C语言的基础知识、程序调试的基础知识和方法。四、实验设备及工具(包括软件调试工具)硬件:ARM 嵌入式开发平台、PC 机 Pentium100以上、用于 ARM920T 的 JTAG 仿真器、串口线。软件:PC 机操作系统 Win2

20、000或 WinXP、ARM ADS1.2 集成开发环境、仿真器驱动程序、超级终端通讯程序。五、实验步骤1、建立工程(1)运行 ADS1.2集成开发环境(CodeWarrior for ARM Developer Suite) 。选择FileNew菜单,在对话框中选择 Project,如图 1B-1所示,新建一个工程文件。图中示例的工程名为 Exp6.mcp。点 set按钮可为该工程选择路径如图 2-1所示,选中CreatFolder选项后将以图 2-1中的 ProjectName或图 2-2中的文件名为名创建目录,这样可以将所有与该工程相关的文件放到该工程目录下,便于管理工程。在图 2-1中

21、工程模板列表中的 2410 ARM Executable Image是专为本嵌入式开发板设置的工程模板,后文有具体说明。在此也可选择 ARM Executable Image通用模板。16图 2-1 新建工程图 2-2 保存工程(2)在新建的工程中,如图 2-3所示,选择 Debug版本,使用 Edit | Debug Settings菜单对 Debug版本进行参数设置。17图 2-3 选择版本(3)在 Debug Settings对话框中选择 Target Settings项,如图 2-4所示。在 Post-linker一栏中选择 ARM fromELF。图 2-4 Target Setti

22、ngs(4)在 Debug Settings对话框中选择 ARM Linker项,如图 2-5。在 Output选项卡的Simple image框中设置连接的 Read-Only(只读)和 Read-Write(读写)地址。地址0x30008000是开发板上 SDRAM的真实地址,是由系统的硬件决定的;0x30200000 指的是系统可读写的内存地址。也就是说,在 0x300080000x30200000 之 间 是 只 读 区 域 , 存 放 程 序 的18代 码 段 , 在 0x30200000开 始 是 程 序 的 数 据 段 。图 2-5 设置连接地址范围图 2-5所示的设置只是一种简

23、单设置,如果程序需要用到标准 C库函数的话需要按图2-6进行连接地址的设置。标准 C中如果使用 malloc及其相关的函数,需要使用系统的堆(Heap)空间,可以通过 scatter文件来描述系统 HEAP段的位置。针对 2410-S开发板,把程序的入口定位在0x30008000,并定义 scatter文件为 scat_ram.scf。在图 2-6中选择 LinkType为Scattered, 输入 scatter文件名 scat_ram.scf;然后切换到 Options选项卡在 Image Entry Point 框中输入 0x30008000。也可以在图 2-6的 Command Lin

24、e框中直接输入-entry 0x30008000 -scatter scat_ram.scf进行上述设置。19图 2-6 通过 scatter文件设置连接地址提示:1)程序移植到 ADS后,程序最开始首先执行用汇编写的初始化代码包括中断向量和堆栈的初始化。在该段代码中使用IMPORT _main ;注意 main前面是两个下划线B _main进行系统内部的标准 C函数初始化,然后调用用户在 C中定义的 main()函数(注意:两个 main都是小写) ,并且在嵌入式应用中用户 C的 main函数中不能有参数(int main(void)) 。2)不能有系统定义的软中断,在汇编中可以使用IMPO

25、RT _use_no_semihosting_swi来检测,在 C中使用#pragma import(_use_no_semihosting_swi) / ensure no functions that use semihosting3)scatter 文件内容如下,创建了一个 RAM_LOAD的程序和数据的装载区域,起始地址 0x30008000。RAM_LOAD 0x30008000 RAM_EXEC 0startup.o (init, +First)* (+RO)20L0PAGETABLE 0x30200000 UNINIT ;about 2MByte offset SDRAMpage

26、table.o (+ZI)STACKS +0x100000 UNINIT ;64KByte under L0 pagetablestack.o (+ZI)RAM +0* (+RW,+ZI)HEAP +0 UNINITheap.o (+ZI)EXCEPTION_EXEC 0 OVERLAY ;exception regionexception.o (+RO)4)定义 retarget.c函数,重新定位标准 C库中 stdio的一些相关函数。主要有:struct _FILE int handle; /* Add whatever you need here */;FILE _stdout; /文件

27、的定义int fputc(int ch, FILE *f) /fputc函数int ferror(FILE *f) /ferror函数void _sys_exit(int return_code) /系统退出函数int _raise(int signal, int argument)_value_in_regs struct _initial_stackheap _user_initial_stackheap(unsigned R0, unsigned SP, unsigned R2, unsigned SL)/用户的堆空间和栈空间函数具体定义,可以参考 init/retarget.c(5)在

28、第(4)步中如果不选择简单的连接地址设置,则需按图 2-7所示设置 C编译器。在 Debug Settings对话框中选择 ARM C Compiler项,在 ATPCS选项卡中选择21ARM/Thump interwork,或者在命令行中添加-apcs /interwork。图 2-7 设置 ARM C Compiler(6)在第四步中如果选择简单的地址连接设置,在 Debug Settings对话框中选择 ARM Linker项,如图 2-8。在 Layout选项卡的 Place at beginning of image框中设置程序的入口模块。指定在生成的代码中,程序是从 startup

29、.s开始运行的。Object 设为startup.o,section 设为 init。22图 2-8 设置入口模块(7)在 Debug Settings对话框中选择 ARM fromELF项,如图 2-9。在 Output file name框中设置输出文件名为 system.bin,这就是要下载到开发板的嵌入式应用程序文件。图 2-9 设置输出文件名(8)回到如图 2-10所示的工程窗口中,选择 Release版本,使用 Edit | Release Settings菜单对 Release版本进行参数设置。23(9)参照第(3) 、 (4) 、 (5) 、 (6) 、 (7)步在 Relea

30、se Settings对话框中设置Release版本的 Post-linker、连接地址范围、入口模块和输出文件。(10)回到如图 2-3所示的工程窗口中,选择 Targets选项卡,如图 2-10所示。选中DebugRel版本,按 Del键将其删除。DebugRel 子树是一个折衷版本,通常用不到,所以在这里删除。图 2-10 删除 DebugRel版本(11)设置完成后,可以将该新建的空工程文件作为模板保存以便以后使用。将工程文件名改为 2410 ARM Executable.mcp。然后在 ADS1.2软件安装目录下的 Stationery目录下新建名为 2410 ARM Executa

31、ble Image的模板目录,再将刚设置完的 2410 ARM Executable.mcp工程模板文件存放到该目录下即可。这样以后新建工程的时候如图 2-1所示就能看到以 2410 ARM Executable Image为名字的模板了。提示:1)建议用户直接将光盘 Template/ADS下的 2410 ARM Executable Image子目录直接拷贝到 ADS1.2安装目录下的 Stationery目录中,这样也能在图 1B-1所示的新建工程对话框中看到这个模板,其中具有已经设置好的针对本开发板的参数。注意 ARM Linker Linktype设置为 Scattered,请参阅第

32、(4)步内容。2)如果用户原来已安装了 ARM SDT软件的话,再安装 ADS1.2后可能导致 ARM SDT不能正常使用,需要用户更改系统环境变量:ARMINC 设置为%ARMSDTPATH%INCLUDE,ARMLIB 设置为 %ARMSDTPATH%LIB,其中%ARMSDTPATH%指 ARM SDT的安装目录。(12)新建工程后,可以执行菜单 Project | Add Files把和工程相关的所有文件即除 inti的所有文件加入到工程中。ADS1.2 不能自动按文件类别对这些文件进行分类,需要的话用户可以执行菜单 Project | Create Group创建文件组,然后分别将不

33、同类的文件加入到不同的组,以方便管理。如图 2-11所示。更为简单的办法是,在新建工程时 ADS创建了和工程同名的目录,在该目录下按类别创建子目录并存放工程文件。选中所有目录拖动到任务栏上的 ADS任务条上,不要松开鼠标当 ADS窗口恢复后再拖动到工程文件窗口,松开鼠标。这样 ADS将以子目录名建立同名文件组并以此对文件分类。24图 2-11 加入工程文件(13)编译并双击图 2-11中的 Main.c打开该文件,可以查看 Main()函数的内容,这时也可运行程序。图 2-11的例程是 ARM的串口实验。读者可以查看其他源文件的内容以对系统运行有所了解。可以发现 ADS的文本编辑器已经有了很大

34、的改善,文本按语法分颜色显示,读者可以根据喜好在 Edit菜单下的 Preferences窗口中进行设置。并可以很好的支持中文注释。2 、AXD 调试器介绍1)配置 JTAG 仿真器(1) 添加驱动首先 安装 UarmJtag2.0软件,默认安装路径:Program FilesUarmJtagdriverLPTJtag.inf其次 开始控制面板添加硬件下一步选是我已经连接了此硬件下一步选中添加新的硬件设备下一步选中安装我手动从列表选择的硬件下一步选择显示所有设备选择(过程比较长)从磁盘安装-浏览,指定驱动为C:Program FilesUArmJtagdriverLPTJtag文件,点击确定,

35、然后点击下一步,安装好驱动。 (以Windows XP 为例)注意:调试过程中,需要保持 UarmJtag 软件为开启状态,处理器选择 arm9,否则AXD 会提示出错。(2)AXD 配置在 AXD中,选择菜单 OptionsConfig target 如图 2-1225图 2-12图 2-13在弹出的对话框中选择 configure 如上图 2-1326图 2-14配置 Remote方式,如上图 2-14 选择以太网驱动,配置 IP地址为:127.0.0.1,自回环地址。点击确定后,系统开始下载仿真程序。2)AXD 调试器介绍打开一个 ADS工程,启动 Uarmjtag软件,选择 arm9处

36、理器然后最小化。在已打开 ADS的工程中选择 dubug 如下图 2-15图 2-15后会弹出 AXD对话框如图 2-1627图 2-16如果载入.ses 文件失败,重新对 target 进行配置。在 AXD 我们会看到所要查找的信息其显示为如图 2-1728图 2-17(1) CPU 寄存器窗口在 AXD 中选择 processor Registers,在其左边会显示一个窗口 如图 2-18图 2-18(2) 变量窗口 在 AXD 中选择 context Variables ,在其左边会显示出如图 2-19 信息 29图 2-19(3) 查看内存内容在 AXD 中选择 Memory,在其下方会显示出如图 2-20 信息图 2-20(4)设置断点在 AXD中选择 Toggle Breakpoint,显示信息如图 2-2130图 2-212.3超级终端设置及映象文件下载方法一、超级终端设置

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

当前位置:首页 > 企业管理 > 管理学资料

本站链接:文库   一言   我酷   合作


客服QQ:2549714901微博号:道客多多官方知乎号:道客多多

经营许可证编号: 粤ICP备2021046453号世界地图

道客多多©版权所有2020-2025营业执照举报