版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、嵌入式系统实验指导书编写:白海峰计算机与通信工程系实验中心 2011年5月第一章 EasyARM2100 开发实验板硬件结构一、概述EasyARM2100 开发实验板是一款简单的32 位ARM 单片机实验板,采用的是PHILIPS的ARM7TDMI-S 核单片机LPC2114,具有JTAG 调试,ISP 编程等功能。板上提供了一些键盘、LED、RS232 等常用功能部件,帮助用户学习32 位单片机从简单的开始,一步一步的过渡到32 位ARM 嵌入式系统开发领域。LPC2114/2124/2119/2129/2194 是世界首款可加密的ARM 芯片,具有零等待128K/256K字节的片内FLAS
2、H,16K 的SRAM,无需扩展存储器,使系统更为简单、可靠;内部具有UART、硬件I2C、SPI、PWM、ADC、定时器、CAN(LPC2119/2129/2194)等众多外围部件,功能更强大;64 管脚LQFP 封装,体积更小;3.3V 和1.8V 系统电源,内部PLL 时钟调整,功耗更低。功能特点:(1)使用CPU PACK,可以使用多种兼容芯片(LPC2114/2124/2119/2129/2194 等);(2)标配PHILIPS 的LPC2114,可进行JTAG 仿真调试,支持ADS1.2 集成开发环境;(3)完全自主设计的软硬件、拥有自主版权的JTAG 仿真技术,用户使用没有后顾之
3、忧;(4)可选CAN 接口板,方便组装现场总线(5)所有I/O 全部引出,可以和用户的外部电路连接搭配;(6)4 个独立LED、6 个独立键盘控制;(7)具有RS232 转换电路,可与上位机进行通讯;(8)可以与标准串行MODEM 直接接口,方便远程通讯(9)具有I2C 器件、SPI 器件接口器件;(10)具有滤波电路,PWM 输出可实DAC 转换功能;(11)板上的功能部件可使用跳线器连接或断开连接;(12)提供基于PC 的人机界面,方便调试实时时钟、串口通信等功能;(13)提供详细的使用教材,实验例程。(14)可进行GPIO 的控制实验,如LED 控制、键盘输入、蜂鸣器控制、模拟SPI 等
4、;(15)可进行外部中断实验,学习向量中断控制器(VIC);(16)定时器控制实验,如定时控制LED、匹配比较输出等;(17)使用RS232 转换电路,完成UART 通讯实验;(18)使用板内的CAT24WC02,完成I2C 总线的实验;(19)使用74HC595 芯片,实现SPI 接口数据发送、接收实验;(20)具有PWM 输出测试点及滤波电路,实现PWM 输出、PWM DAC 实验;(21)实时时钟控制实验;(22)WDT 及低功耗控制实验;(23)ADC 数据采集实验。二、硬件原理1. 原理图EasyARM2100 开发实验板电路原理图如图1 所示。图 1 EasyARM2100 开发实
5、验板电路原理图2. 原理说明(1) 电源电路LPC2114/2124/2119/2129/2194 要使用两组电源,I/O 口供电电源为3.3V,内核及片内外设供电电源为1.8V,所以系统设计为3.3V 应用系统。首先,由CZ1 电源接口输入9V 直流电源,二极管D2 防止电源反接,经过C1、C3 滤波,然后通过78M05 将电源稳压至5V,再使用LDO 芯片(低压差电源芯片)稳压输出3.3V 及1.8V 电压。LDO 芯片采用了LM1117MPX-1.8 和LM1117MPX-3.3,其特点为输出电流大,输出电压精度高,稳定性高。系统电源电路如图2 所示。图2 系统电源电路LM1117系列L
6、DO芯片输出电流可达800mA,输出电压的精度在±1%以内,还具有电流限制和热保护功能,广泛用户在手持式仪表、数字家电、工业控制等领域。使用时,其输出端需要一个至少10uF的钽电容来改善瞬态响应和稳定性。注意:EasyARM2100开发实验板使用的电源是9V直流电源,由CZ1电源接口输入,接头上的电源极性为外正内负。(2) 复位电路由于 ARM 芯片的高速、低功耗、低工作电压导致其噪声容限低,对电源的纹波、瞬态响应性能、时钟源的稳定性、电源监控可靠性等诸多方面也提出了更高的要求。本实验板的复位电路使用了专用微处理器电源监控芯片MAX708SD,提高系统的可靠性。由于在进行JTAG调试
7、时,nRST、TRST是可由JTAG仿真器控制复位的,所以使用了三态缓冲门74HC125进行驱动,电路如图3 所示。图 3 系统复位电路如图 3,信号nRST 连接到LPC2114 芯片的复位脚 ,信号nTRST 连接到LPC2114芯片内部JTAG 接口电路复位脚 。当复位按键RST 按下时,MAX708SD 立即输出复位信号,其引脚输出低电平导致74HC125C、74HC125D 导通,信号nRST、nTRST 将输出低电平使系统复位。平时MAX708SD 的 输出高电平,74HC125C、74HC125D 截止,由上拉电阻R4、R5 将信号nRST、nTRST 上拉为高电平,系统可正常运
8、行或JTAG 仿真调试。(3) 系统时钟电路LPC2114/2124/2119/2129/2194 可使用外部晶振或外部时钟源,内部PLL 电路可调整系统时钟,使系统运行速度更快(CPU 最大操作时钟为60MHz)。倘若不使用片内PLL 功能及ISP 下载功能,则外部晶振频率范围是1MHz30MHz,外部时钟频率范围是1MHz50MHz;若使用了片内PLL 功能或ISP 下载功能,则外部晶振频率范围是10MHz25MHz,外部时钟频率范围是10MHz25MHz。EasyARM2100 开发实验板使用了外部11.0592MHz 晶振,电路如图4 所示,用1M电阻R6 并接到晶振的两端,使系统更容
9、易起振。用11.0592MHz 晶振的原因是使串口波特率更精确,同时能够支持LPC2114/2124/2119/2129/2194 芯片内部PLL 功能及ISP 功能。图4 系统时钟电路(4) JTAG 接口电路采用ARM 公司提出的标准20 脚JTAG 仿真调试接口,JTAG 信号的定义及与LPC2114的连接如图5 所示。图中,JTAG 接口上的信号nRST、nTRST 与开发实验板的复位电路连接(参考图3),形成线与的关系,达到共同控制系统复位的目的。根据 LPC2114 的应用手册说明,在RTCK 引脚接一个4.7K的下拉电阻,使系统复位后LPC2114 内部JTAG 接口使能,这样就
10、可以直接进行JTAG 仿真调试了。如果用户需要使用P1.26P1.31 作I/O,不进行JTAG 仿真调试,则可以在用户程序中通过设置PINSEL2寄存器来使LPC2114 内部JTAG 接口禁能。另外,在TRACESYNC 引脚通过跳线器JP12接一个4.7K的下拉电阻,可以在系统复位时使能/禁能跟踪调试端口,禁能时(JP12 断开)方可使用P1.16P1.25 作I/O。图5 JTAG 接口电路(5) 串口及 MODEM 接口电路由于系统是3.3V 系统,所以使用了MAX3232 进行RS232 电平转换,MAX3232 是3V工作电源的RS232 转换芯片。另外,LPC2114/2124
11、/2119/2129/2194 的UART1 带有完整的调制解调器(MODEM) 接口, 所以要使用8 路的RS232 转换芯片SP3243ECA ( 或MAX3243ECA)。如图6 所示,JP5、JP6 分别为UART0、UART1 口线连接跳线,当把它们断开时,这些口线保留给用户作为其它功能使用。图6 串口及MODEM 接口电路当要使用 ISP 功能时,请把JP5 短接,然后将PC 的串口(如COM1)与开发实验板的CZ2相连,使用UART0 进行通讯。同时还要把JP8 短接,使ISP 的硬件条件得到满足。用户通过 CZ3 直接连接MODEOM,由LPC2114/2124/2119/21
12、29/2194 的UART1 控制MODEM 拔号、通讯等等。需要注意的是,LPC2114/2124/2119/2129/2194 的ISP 使能管脚(P0.14 口)与DCD1 功能脚复用,在系统复位时若P0.14 口为低电平,则进入ISP 状态;同样,在程序仿真调试过程中,若把JP8 短接,则DCD1 保持为低电平,影响MODEM 接口正确使用。(6) 键盘电路EasyARM2100 开发实验板具有6 个独立按键,分别为KEY1KEY6,如图7 所示。由于GPIO 作为输入时,内部无上拉电阻,所以要使用R17R22 等6 个上拉电阻,当没有按键时,口线值为1,当按键按下时为0;而R11R1
13、6 为口线保护电阻,即当连接按键的I/O设置为输出时,这几个电阻保证了输出口不会直接对地短路。其中,KEY1、KEY5 所连接的口线为P0.16、P0.20,这两个口分别与外部中断EINT0、EINT3 复用,所以可用这两个按键进行外部中断的实验、唤醒掉电CPU 的实验。图7 键盘电路(7) LED 显示电路在显示方面,EasyARM2100 开发实验板采用了一片74HC595 驱动一位静态共阳LED数码管,如图8 所示,其时钟(SCK)、数据(SI)分别接到LPC2114 的SPI 接口的SCLK0、MOSI0,这样就可以发送数据到74HC595;片选(RCK,即74HC595 输出触发端)
14、与P0.29口连接,由P0.29 控制74HC595 数据锁存输出;而最高位输出(SQH)连接到LPC2114 的SPI接口的MISO0,可用来读回数据。这样连接就可以进行SPI 接口控制实验,并能把74HC595的移位输出读回来(由MISO0 读回)。这一部份电路可用JP3 跳开。在使用硬件 SPI 接口主方式时,要把SPI0/1 的4 个I/O 口均设置为SPI 功能,如P0.4、P0.5、P0.6、P0.7,而且SSEL0/1 引脚不能为低电平,一般要接一个10K的上拉电阻。图8 SPI 驱动显示电路另外,EasyARM2100 开发实验板还具有4 个独立的发光二极管LED1LED4,分
15、别由P0.22P0.25 输出控制,输出1 时对应的LED 熄灭,输出0 时对应的LED 点亮,电路如图9 所示。这一部份电路可用JP4 跳开。电路采用了 I/O 口灌电流的驱动方式来驱动LED,这样做主要是因为I/O 口能提供的灌电流大于其拉电流,保证了LED 的显示亮度。如图9,限流电阻为470,则当I/O 输出0时,流过LED 的电流计算公式如公式1 所示。图9 LED 控制电路 (公式1)其中, V led 为发光二极管的导通压降值,一般为1.7V。 (公式2)若需要进行大量数据显示,则可使用EasyARM.exe 软件进行模拟显示。EasyARM.exe是一款用于EasyARM210
16、0 开发实验板的上位机软件,具有8 位模拟数码管显示,全仿真DOS 屏显示,模拟日历时钟显示屏等,并且有20 个模拟按键输入等,这一切均通过串口通讯控制操作。(8) 蜂鸣器及 PWM 电路如图10 所示,蜂鸣器使用PNP 三极管Q1 进行驱动控制,当P0.7 控制电平输出0 时,Q1 导通,蜂鸣器蜂鸣;当P0.7 控制电平输出1 时,Q1 截止,蜂鸣器停止蜂鸣;若把JP7断开,Q1 截止,蜂鸣器停止蜂鸣。Q1 采用开关三极管8550,其主要特点是放大倍数高hFE=300,最大集电极电流ICM=1500mA,特征频率fT=100MHz。R36 用于限制Q1 的基极电流,当P0.7 输出0 时,流
17、过R36 的电流如公式3 所示,Ir为2.6mA,假设Q1 工作在放大区,则;而一般直流蜂鸣器在3.3电压下工作电流约为28mA,反过来说,只要= 28 mA,蜂鸣器上的电压即可达到3.3V,此时Uec0V,即Ueb>Uec,Q1 为深度饱和导通,为蜂鸣器提供足够的电流。 (公式3)由于P0.7 口与SPI 部件的SSEL0 复用,所以此管脚上接一上拉电阻R2,防止在使用硬件SPI 总线时由于SSEL0 引脚悬空导致SPI 操作出错。图 10 蜂鸣器控制电路如图 11 所示,在 PWM 输出实验上,使用 PWM6(即 P0.9 引脚)输出,经过 R39、C27进行 RC 滤波,实现 PW
18、M DAC 控制,而 JP11 可以断开这部份电路。PWM 测试点可直接测试 PWM 波形,PWMDAC 测试点可以测量 PWM DAC 的电压值。图 11 PWM DAC 电路(9) I2C 电路LPC2114/2124/2119/2129/2194 具有支持 400K 高速模式的硬件 I2C 接口,所以设计了一片 CSI24WC02/CAT24WC02 与其连接,实现 I2C 的读写操作实验。如图 12,总线上拉电阻R37、R38 放在 JP9 跳线之后,当不使用 CAT24WC02 时,把 JP9 断开,两个上拉电阻就不会影响口线了(P0.2、P0.3)。注意,P0.2和 P0.3 设置
19、为输出时为开漏输出,若需要控制输出 1,则必须连接上拉电阻。为了支持高速 I2C 总线操作,总线上拉电阻 R37、R38 的大小为 3K,这样总线变化时上升/下降的速度就变快了。若使用标准 100KHz 总线速度时,一般其总线上拉电阻为 5.1K或 10K,以减小总线操作时的功耗。图12 I2C接口实验电路(10) ADC 电路LPC2114/2124/2119/2129/2194 具有 4 路 10 位 ADC 转换器,其参考电压为 3.3V(由 V3a引脚提供),参考电压的精度会影响 ADC 转换结果。EasyARM2100 开发实验板提供了两路直流电压测量电路,如图13 所示,可调电阻W
20、1、W2 用于调整ADC 的输入电压,可以在VIN1、VIN2 测试点上用万能表检查当前电压值。R10、R35 为I/O 口保护电阻,当ADC 输入电压调整到3.3V 或0V 时,而P0.27 或P0.28 作为GPIO 输出0/1,这两个电阻保证电路不产生短路故障。JP10 可以断开这部份电路。图 13 ADC 实验电路EasyARM2100 开发实验板中微控制器的所有I/O 全部引出,用户可以从用户接口J5 找到4 路ADC 通道对应的I/O。(11) CAN 接口电路LPC2119/2129 具有 2 路 CAN 接口,LPC2194 具有 4 路 CAN 接口,EasyARM2100
21、开发实验板中微控制器的所有 I/O 全部引出,用户可以从用户接口 J5 找到 4 路 CAN 接口对应的 I/O,如图 14 所示。将 CAN 接口与 CAN 收发器连接(如 TJA1050),即可进行 CAN 总线通讯操作。图 14 CAN 接口电路三、硬件结构1. 布局图EasyARM2100 开发实验板布局图如图15 所示。图 15 EasyARM2100 开发实验板布局图2. 跳线器及连接器说明(1) 跳线器说明EasyARM2100 开发实验板跳线器说明如表1,跳线器分布如图16 所示。表1 跳线器一览表 (2) 连接器说明EasyARM2100 开发实验板连接器说明如表2,跳线器分
22、布如图17 所示。另外,J1J4 为CPU PACK,J8 为SP3243ECA 接口信号测试点。图17 EasyARM2100 实验板连接器四、其它1. EasyARM2100 开发实验板电源EasyARM2100 开发实验板电源输入接口为CZ1,输入的电源为DC 9V,接头上的电源极性为外正内负,当正确连接电源后,POWER 灯点亮。连接器J5 有电源输出,可以向用户板提供电源,但要求负载不要过重,也不要与其它电源连接,否则可能导致器件损坏。2. 跳线器EasyARM2100 开发实验板上的功能部件基本上都有相应的连接跳线,当用户使用某个功能部件时,将相应的跳线器短接即可,当用户需要这些口
23、线作为其它用途时,可以将跳线断开,然后通过J5 连接到用户的器件上。其中P0.8P0.15 是UART1 的MODEM 接口I/O,同时其它器件复用部分口线,如P0.14、P0.9,所以在不使用UART1 的MODEM 功能时,最好断开JP6 所有跳线。3. CPU PACK 的安装CPU PACK 是有方向性的,安装时要特别小心,以免插反导致CPU 损坏。CPU PACK板上印有“Easy ARM2100”的字符,安装到开发实验板上时这该字符是正面方向的,如图18 所示。图 18 CPU PACK 安装方向第2章EasyJTAGH 仿真器的使用一、EasyJTAGH 仿真器的安装与应用1.1
24、 EasyJTAGH 简介EasyJTAGH 仿真器是一款新的仿真器,目前,可以支持LPC2000 系列ARM7 微控制器和部分ARM9 芯片,支持ADS1.2 集成开发环境,支持单步、全速及断点等调试功能,支持下载程序到片内FLASH和特定型号的片外FLASH,采用ARM公司提出的标准20 脚JTAG仿真调试接口。这款仿真器需要HJTAG 软件(调试代理)的支持。1.2 安装HJTAG 软件在 PC 上运行安装文件H-JTAG V0.3.2.EXE,如图 1.1 所示,根据安装提示完成安装即可。图 1.1 HJTAG 软件安装界面安装好的 HJTAG 软件包含有HJTAG Server(下文
25、简称为HJTAG)和HFlasher,在桌面上有它们的快捷图标。运行程序HJTAG 和HFlasher 后,用户任务栏中将出现图1.2 所示图标。图 1.2 HJTAG 提示图标1.3 配置HJTAG 软件将计算机并口与 EasyJTAGH 仿真器相连,然后再将EasyJTAGH 仿真器的JTAG 接口连1.3.1 HJTAG 配置HJTAG 设置较简单,只要进行以下两步操作,其它采用默认设置即可。(1) 单击任务栏的H 提示图标,将看见HJTAG 的主窗口,如图 1.3 所示。单击放大镜图标按钮后应能看见调试代理发现ARM7 处理器。图 1.3 HJTAG 主窗口(2) 选择【Flasher
26、】->【Auto Download】选择自动下载项,如图 1.4 所示。图 1.4 打开自动下载功能1.3.2 HFlasher 配置HFlasher 的配置有两种方法,直接加载配置文件与手动配置。1 加载配置文件配置单击任务栏的 F 提示图标将看见HFlasher 的主窗口。单击Load 菜单装载目标板配置文件,如LPC2100.hfc,配置HFlasher 如图 1.5 所示。图 1.5 装载配置文件2 手动配置这是通用配置方法。单击任务栏的F 提示图标,确认目标板的CPU 型号后,打开HFlasher 的Flash Selection 选项,选择正确的CPU 型号即可。如:开发板上
27、的CPU 型号为LPC2114,操作如图 1.6 所示。说明:如果目标板上使用了有外部总线的LPC2200 系列的芯片,且外部扩展有Flash,若要将程序烧写到其外部Flash 中,请在Flash Selection 选项中选择正确的Flash 型号。另外,还要在Memory Config 中设置Flash 的地址,在Init Script 中设置目标板的初始化命令。图 1.6 选择Flash 型号1.3.3 验证并启用配置验证调试代理配置是否正确,打开 HFlasher 的Programming 选项单击Check 按钮,如果正常,可看到所使用的Flash 芯片的型号如图 1.7 所示。单击
28、Check 按钮时,HFlasher就会启用当前新的配置值。到此配置完成。图 1.7 Flash 编程选项1.3.4 H-Flasher 菜单说明(1) 主菜单New:新建一个配置文件。 Load:载入配置文件。HFlasher 在启动时,总是自动载入最近一次的配置信息。Save:将当前的配置信息保存为一个文件。Save As:将配置信息另存为一个文件。Option:调试程序时,是否使能自动计算向量表前32 字的累加和。默认为使能。(2) Flash 编程选项的菜单Check:检测芯片内核。如果EasyJTAGH 连接正确,且芯片型号正确,则Check后会显示芯片的基本信息。Type:烧写文件
29、的类型。Auto Flash Down:自动下载方式Intel Hex Format:下载Hex 文件Plain Binary Format:下载Bin 文件Src File:烧写文件的路径,如果Type 选择为Auto Flash Down 时,该项无效。Dst Addr:目标地址信息,只有Type 选择为Plain Binary Format 时,该项才有效。Program:对芯片进行编程操作。 Erase:对选中(由“From To”指定)的扇区进行擦除操作。1.4 EasyJTAGH 仿真器的使用(1) 将计算机并口与EasyJTAGH 仿真器相连,再将EasyJTAGH 仿真器的JT
30、AG 接口连接到开发板上,并给开发板上电。然后打开HJTAG 软件,单击放大镜图标按钮,如果正常就会检测到芯片内核信息,如图 1.8 所示。然后可以最小化或关闭 HJTAG 和HFlasher 窗口(注意:不能使用Exit 菜单关闭)。图 1.8 启动HJTAG Server(2) 选择Windows 系统的【开始】->【程序】->【ARM Developer Suite v1.2】->【AXD Debugger】启动AXD 软件。在AXD 软件中,打开【Options】->【Configure Target.】,弹出Choose Target 对话框,单击Add 添加
31、仿真器的驱动程序,在添加文件窗口选择如C:Program FilesH-JTAG V0.3.2 目录下的H-JTAG.dll,如图 1.9 所示,接着单击“打开”即可。注意:若在添加文件窗口中没有显示DLL 文件,请设置WINDOWS 文件浏览窗口的“文件夹选项(O).”,将查看页中的“隐藏文件”项选用“显示所有文件”。图 1.9 为AXD 添加HJTAG 驱动(3) 添加完HJTAG 驱动后,选择该驱动程序,如图 1.10 所示,然后单击OK,如果正常就会出现图 1.11 所示的界面,红线框内的提示信息表示EasyJTAGH 仿真器检测到CPU内核。图 1.10 Choose Target
32、窗口图 1.11 EasyJTAGH 检测到CPU 内核(4) 关闭AXD 窗口。以后调试就直接在ADS 中打开一个工程,编译链接通过后,单击Debug 或按下“F5”即可启动AXD 调试软件,进行JTAG 仿真调试。注意:如果工程文件的路径中存在中文,进入AXD 调试环境会出现错误。因此,建议工程路径中不要包含中文。1.5 EasyJTAGH 常见问题(1) 在进行AXD 仿真调试前,需要先打开HJTAG 检测芯片内核,并且要选择Auto Download 选项,同时要正确配置HFlasher,否则无法进入AXD 正常调试。(2) 如果ARM 芯片进入到Power Down 模式,或者目标板
33、没有上电,或者JTAG 仿真器没有连接好,HJTAG 会出现错误,如图 1.12 所示。(3) 如果在ADS 启动AXD 仿真调试时出现如图 1.13 所示的错误,单击“确定”按钮,然后会弹出Load Session 对话框,如图 1.14 所示。图 1.13 启动仿真时出错图 1.14 Load Session 窗口此时不必选择 Session 文件,直接单击“取消”,然后进入到AXD 调试界面。在AXD中重新选择一次HJTAG 驱动,如图 1.15 所示。选择 HJTAG 驱动后,EasyJTAGH 会重新连接目标板,弹出连接成功界面,如图 1.11所示。如果此时连接错误,则需要检查目标板
34、自身的电路,以及判断芯片是否加密、是否进入Power Down 模式。说明:如果使用RelInChip 或RelInFlash 生成目标编译工程,并在内部Flash 进行仿真调试,就会把CPU 加密了。加密之后,只能通过ISP 软件对芯片进行全片擦除,才能恢复JTAG 仿真调试。图 1.15 选择HJTAG 驱动成功连接目标板后,关闭 AXD 界面,然后再次从ADS 中启动AXD 仿真调试即可。第三章 ARM实验实验一 ARM开发环境及指令实验一、实验目的1、 掌握ARM集成开发环境ADS1.2的使用方法。2、 掌握ARM的汇编指令及编译调试方法。3、 掌握ARM实验教学设备的硬件原理和使用方
35、法。二、实验仪器设备PC机 ADS1.2 EasyARM2100开发实验板三、实验原理ADS 集成开发环境是ARM 公司推出的ARM 核微控制器集成开发工具,英文全称为ARM Developer Suite,成熟版本为ADS1.2。ADS1.2 支持ARM10 之前的所有ARM 系列微控制器,支持软件调试及JTAG 硬件仿真调试,支持汇编、C、C+源程序,具有编译效率高、系统库功能强等特点,可以在Windows98、Windows XP、Windows2000 以及RedHat Linux上运行。这里将简单介绍使用 ADS1.2 建立工程,编译连接设置,调试操作等等。一、ADS 1.2 集成开
36、发环境的组成ADS 1.2 由6 个部分组成,如表1 所示。表 1 ADS 1.2 的组成部分由于用户一般直接操作的是 CodeWarrior IDE 集成开发环境和AXD 调试器,所以这一章我们只介绍这两部分软件的使用,其它部分的详细说明参考ADS 1.2 的在线帮助文档或相关资料。1. CodeWarrior IDE 简介ADS 1.2 使用了CodeWarrior IDE 集成开发环境,并集成了ARM 汇编器、ARM 的C/C+编译器、Thumb 的C/C+编译器、ARM 连接器,包含工程管理器、代码生成接口、语法敏感(对关键字以不同颜色显示)编辑器、源文件和类浏览器等等。CodeWar
37、rior IDE 主窗口如图1 所示。图 1 CodeWarrior 开发环境2. AXD 调试器简介AXD 调试器为ARM 扩展调试器(即ARM eXtended Debugger),包括ADW/ADU 的所有特性,支持硬件仿真和软件仿真(ARMulator)。AXD 能够装载映像文件到目标内存,具有单步、全速和断点等调试功能,可以观察变量、寄存器和内存的数据等等。AXD 调试器主窗口如图2 所示。图 2 AXD 调试器二、工程的编辑1. 建立工程点击 WINDOWS 操作系统的【开始】->【程序】->【ARM Developer Suite v1.2】->【CodeWar
38、rior for ARM Developer Suite】起动Metrowerks CodeWarrior,或双击“CodeWarrior for ARM Developer Suite”快捷方式起动。启动ADS1.2 IDE 如图3 所示。图3 启动ADS1.2 IDE点击【File】菜单,选择【New】即弹出New 对话框,如图4 所示。选择工程模板为ARM 可执行映象(ARM Executable Image)或Thumb 可执行映象(Thumb Executable Image),或Thumb、ARM 交织映象(Thumb ARM Interworking Image),然后在【Loc
39、ation】项选择工程存放路径,并在【Project name】项输入工程名称,点击【确定】按钮即可建立相应工程,工程文件名后缀为mcp(下文有时也把工程称为项目) 。图 4 New 对话框2. 建立文件建立一个文本文件,以便输入用户程序。点击“New Text File”图标按钮,如图5 所示。图5 “New Text File”图标按钮然后在新建的文件中编写程序,点击“Save”图标按钮将文件存盘(或从【File】菜单选择【Save】),输入文件全名,如TEST1.S。注意,请将文件保存到相应工程的目录下,以便于管理和查找。当然,您也可以New 对话框选择【File】页来建立源文件,如图4
40、 所示,或使用其它文本编辑器建立或编辑源文件。3. 添加文件到工程如图 6 所示,在工程窗口中【Files】页空白处右击鼠标,弹出浮动菜单,选择“Add Files”即可弹出“Select files to add”对话框,选择相应的源文件(可按着Ctrl 键一次选择多个文件),点击【打开】按钮即可。另外,用户也可以在【Project】菜单中选择【Add Files】来添加源文件,或使用New对话框选择【File】页来建立源文件时选择加入工程(即选中“Add to Project”项)。添加文件操作如图6、图7 所示。图6 在工程窗口中添加源文件图 7 Select files to add对
41、话框4. 编译连接工程如图 8 所示为工程窗口中的图标按钮,通过这些图标按钮,您可以快速的进行工程设置、编译连接、启动调试等等(在不同的菜单项上可以分别找到对应的菜单命令)。它们从左至右分别为:DebugRel Settings 工程设置,如地址设置、输出文件设置、编译选项等,其中 DebugRel 为当前的生成目标(target system)。Synchronize Modification Dates 同步修改日期,检查工程中每个文件的修改日期,若发现有更新(如使用其它编辑器编辑源文件),则在Touch 栏标记“”。Make 编译连接(快捷键为F7)。Debug 启动AXD 进行调试(快
42、捷键为F5)。Run 启动AXD 进行调试,并直接运行程序。Project Inspector 工程检查,查看和配置工程中源文件的信息。图8 工程窗口中的图标按钮图 9 DebugRel Settings 窗口点击“DebugRel Settings”图标按钮,即可进行工程的地址设置、输出文件设置、编译选项等,如图9 所示。在“ARM Linker”对话框设置连接地址,在“Language Settings”中设置各编译器的编译选项。对于简单的软件调试,可以不进行连接地址的设置,直接点击工程窗口的“Make”图标按钮,即可完成编译连接。若编译出错,会有相应的出错提示,双击出错提示行信息,编辑窗
43、即会使用光标指出当前出错的源代码行,编译连接输出窗口如图10 所示。同样,您可以在【Project】菜单中找到相应的命令。图10 编译连接输出窗口如图 11 所示,Touch 栏用于标记文件是否已编译,若打上“”则表明对应文件需要重新编译。Touch 栏用于标记文件是否已编译,若打上“”则表明对应文件需要重新编译。可以通过单击该栏位置来设置/取消符号“”,或将工程目录下的*.tdt 文件删除也可以使整个工程源文件均打上“”。图 11 工程窗口中Make 操作5. 打开旧工程点击【File】菜单,选择【Open】即弹出“打开”对话框,找到相应的工程文件(*.mcp),单击【打开】即可。在工程窗口
44、的【Files】页中,双击源程序的文件名即可打开该文件进行编辑。三、工程的调试1. 选择调试目标图 12 Choose Target 窗口当工程编译连接通过后,在工程窗口中点击“Debug”图标按钮,即可启动AXD 进行调试(也可以通过【开始】菜单起动AXD)。点击菜单【Options】选择【Configure Target】,即弹出Choose Target 窗口,如图12 所示。在没有添加其它仿真驱动程序前,Target 项中只有两项,分别为ADP(JTAG 硬件仿真)和ARMUL(软件仿真)。选择仿真驱动程序后,点击【File】选择【Load Image】加载ELF 格式的可执行文件,即
45、*.axf 文件。说明:当工程编译连接通过后,在“工程名工程名_Data当前的生成目标”目录下就会生成一个*.axf 调试文件。比如工程TEST,当前的生成目标Debug,编译连接通过后,则在TESTTEST_DataDebug 目录下生成TEST.axf 文件。2. 调试工具条AXD 运行调试工具条如图13 所示,调试观察窗口工具条如图14 所示,文件操作工具条如图15 所示。图13 运行调试工具条 全速运行(Go) 停止运行(Stop) 单步运行(Step In),与Step 命令不同之处在于对函数调用语句,Step In 命令将进入该函数。 单步运行(Step),每次执行一条语句,这时函
46、数调用将被作为一条语句执行。 单步运行(Step Out),执行完当前被调用的函数,停止在函数调用的下一条语句。 运行到光标(Run To Cursor),运行程序直到当前光标所在行时停止。 设置断点(Toggle BreakPoint)。图14 调试观察窗口工具条 打开寄存器窗口(Processor Registers) 打开观察窗口(Processor Watch) 打开变量观察窗口(Context Variable) 打开存储器观察窗口(Memory) 打开反汇编窗口(Disassembly)图15 文件操作工具条 加载调试文件(Load Image) 重新加载文件(Reload Cur
47、rent Image)。由于AXD 没有复位命令,所以通常使用Reload 实现复位(直接更改PC 寄存器为零也能实现复位)。二、汇编指令ARM汇编指令有32位汇编指令和16位Thumb汇编指令两种格式。32位ARM指令集由13种基本指令类型组成,分成4大类:3种类型的存储器访问指令:控制存储器和寄存器之间的数据传送。一种类型用于优化的灵活寻址,另一种用于快速上下文切换;第三种类型用于交换数据。3种类型的数据处理指令:使用片内ALU,桶形移位器和乘法器针对31个寄存器完成高速数据处理操作。4种类型的分支指令:控制程序执行流程、指令优先级以及ARM代码和Thumb代码的切换。3种类型的协处理器指
48、令:专用于控制外部协处理器。这些指令以开放和统一的方式扩展了指令集的片外功能。四、实验内容1、使用ADS创建工程。2、存储器访问汇编指令的使用3、数据运算和跳转指令的使用五、操作步骤1、使用ADS创建工程。启动ADS1.2,新建工程。新建汇编源文件,添加到工程,编写汇编文件。配置生成目标。编译连接工程。2、存储器访问汇编指令的使用启动ADS1.2,新建工程。新建汇编源文件,添加到工程,编写汇编文件。配置生成目标。编译连接工程。调试,观察寄存器内数值变化。3、数据运算和跳转指令的使用启动ADS1.2,新建工程。新建汇编源文件,添加到工程,编写汇编文件。配置生成目标。编译连接工程。调试,观察寄存器
49、内数值变化和程序的跳转。六、实验报告要求写出实验目的、实验仪器设备、实验原理、实验内容、源代码和操作步骤,调试结果。七、参考程序AREA Example1,CODE,READONLY;声明代码段Example1ENTRY;标识程序入口CODE32 ;声明32 位ARM 指令START MOV R0,#15 ;设置参数MOV R1,#8ADDS R0,R0,R1 ;R0=R0+R1B STARTEND2COUNT EQU 0x8000 AREA Example1,CODE,READONLY ENTRY CODE32START LDR R1,=COUNT MOV R0,#0 STR R0,R1LO
50、OP LDR R1,=COUNT LDR R0,R1 ADD R0,R0,#1 CMP R0,#10 MOVHS R0,#0 STR R0,R1 B LOOP END3.X EQU 9n EQU 7 AREA Example3,CODE,READONLY ENTRY CODE32START LDR SP,=0x8f00 LDR R0,=X LDR R1,=n BL POWHALT B HALTPOW STMFD SP!,R1-R12,LR MOVS R2,R1 MOVEQ R0,#1 BEQ POW_END MOV R1,R0 SUB R2,R2,#1POW_L1 BL DO_MUL SUBS
51、 R2,R2,#1 BNE POW_L1POW_END LDMFD SP!,R1-R12,PCDO_MUL MUL R0,R1,R0 MOV PC,LR END实验二 C语言程序实验一、实验目的1通过实验了解使用ADS1.2 编写C 语言程序,并进行调试。2通过实验掌握JTAG仿真器的调试使用方法。3熟悉ARM 芯片I/O 口配置方法,掌握ARM 芯片I/O 读写控制的方法。4学习使用LPC2100 系列ARM7 微控制器的工程模板二、实验仪器设备PC机 ADS1.2 EasyARM2100开发实验板三、实验原理1. C语言程序ARM的集成开发环境支持C和C+语言程序设计。ARM中的C语言是在
52、标准C语言的基础上做了修改,改进了ARM环境下的库函数的支持和改进。通过增加库,增加对特殊功能寄存器的定义,使用特殊功能寄存器也较为方便。2. EasyJTAGH 简介EasyJTAGH 仿真器是一款新的仿真器,目前,可以支持LPC2000 系列ARM7 微控制器和部分ARM9 芯片,支持ADS1.2 集成开发环境,支持单步、全速及断点等调试功能,支持下载程序到片内FLASH和特定型号的片外FLASH,采用ARM公司提出的标准20 脚JTAG仿真调试接口。这款仿真器需要HJTAG 软件(调试代理)的支持。3.GPIO(1)管脚连接模块 管脚连接模块允许将微控制器的管脚配置为不同的功能。配置寄存
53、器控制连接管脚和片内外设的多路开关。应当在激活外设以及使能任何相关的中断之前,将外设连接到相应的管脚。任何一个被使能的外设,如果其功能没有映射到相关的管脚,对它的激活将被认为是未定义的。管脚连接模块寄存器管脚描述(2)通用并行I/O口 (GPIO) 没有连接到特定外设功能的管脚由GPIO寄存器进行控制。管脚可以动态配置为输入或输出。寄存器可以同时对任意个输出口进行置位或清零。输出寄存器的值以及管脚的当前状态都可以读出。可单个位的方向控制 ,输出置位和清零可单独控制 。IO0DIR 寄存器中的方向控制位只有在管脚选择GPIO 功能时才有效。LPC2114/2124 有2 个32 位的通用I/O
54、口。PORT0 使用了30 个管脚,PORT1 有多达16 个管脚可用作GPIO功能。PORT0 和PORT1 由2 组 (4 个) 寄存器控制,如图68 所示。除PORT0 和PORT1 外,LPC2212/2214还包含另外两个端口PORT2 和PORT3。通过配置,这两个端口可用作外部存储器数据的地址和数据总线或GPIO(与少数数字和模拟功能共用管脚)。有关PORT2 和PORT3 的详细使用见管脚配置和管脚连接模块的内容。IO0PIN , IO1PIN:GPIO 管脚值寄存。该寄存器提供GPIO 管脚的值。它反映了外部环境对管脚的影响。IO0SET ,IO1SET: GPIO 输出置位寄存器。当管脚配置为GPIO 输出模式时,可使用该寄存器从管脚输出高电平。写入1 使对应管脚输出高电平。写入0 无效。如果一个管脚被配置为输入或第二功能,写IOSET 无
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025年度绿色农业土地租赁与生态保护合同
- 2025年度智能门禁系统与停车场管理系统集成合同4篇
- 2025年音乐流媒体市场的未来格局
- 二零二五年度木工产品售后服务与技术支持合同
- 课题申报参考:南疆牧区乡村干部国家语言文字能力调查及提升对策研究
- 2025年度电子烟具喷漆定制合同
- 2025年度苗木种植基地绿色认证合作合同4篇
- 2025年版城市绿地门卫及环境安全维护合同4篇
- 2025年个人住宅防水工程验收合同范本2篇
- 二零二五年度棉被产品展示与体验店合作经营合同4篇
- 《白蛇缘起》赏析
- 海洋工程用高性能建筑钢材的研发
- 苏教版2022-2023学年三年级数学下册开学摸底考试卷(五)含答案与解析
- 英语48个国际音标课件(单词带声、附有声国际音标图)
- GB/T 6892-2023一般工业用铝及铝合金挤压型材
- 冷库安全管理制度
- 2023同等学力申硕统考英语考试真题
- 家具安装工培训教案优质资料
- 在双减政策下小学音乐社团活动有效开展及策略 论文
- envi二次开发素材包-idl培训
- 医院手术室医院感染管理质量督查评分表
评论
0/150
提交评论