基于物联网的安保系统软件设计-测控模块_毕业论文 下载本文

西安欧亚学院本科毕业论文(设计)

4.2.1 J-Link ARM主要特点

? IAR EWARM集成开发环境无缝连接的J-Link仿真器。

? 支持所有ARM7/ARM9内核的芯片,以及cortexM3,包括Thumb模式。 ? 支持ADS,IAR,KEIL,WINARM,REALVIEW等几乎所有的开发环境。 ? 下载速度高达ARM7:600kB/s,ARM9:550kB/s,通过DCC最高可达800kB/s。 ? 最高JTAG速度12MHz。

? 开发板安全电压区间1.2V–3.3V,兼容5V。 ? 自动快速识别功能。

? 监测所有J-Link信号和开发板电压。 ? 可以实现即插即用。 ? 使用USB电源。

? 带USB连接线和20芯扁平电缆。 ? 支持多J-Link器件串行连接。 ? 标准20芯J-Link仿真插头。 ? 选配14芯J-Link仿真插头。

? 带J-LinkTCP/IPserver,允许通过TCP/IP网络使用J-Link。 4.2.2 J-Link支持ARM内核

? ARM7TDMI(Rev 1) ? ARM7TDMI(Rev 3) ? ARM7TDMI-S(Rev 4) ? ARM720T/ARM920T ? ARM926EJ-S ? ARM946E-S ? ARM966E-S ? ARM11 ? Cortex-M3

表4-1 速度信息

Revision J-Link Rev. 1-4 J-Link Rev. 5-8 J-Trace Rev. 1 ARM7 Memory download 150.0 kB/s (4MHz JTAG) 720.0 kB/s (12MHz JTAG) 420.0 kB/s (12MHz JTAG) ARM9 Memory download 75.0 kB/s (4MHz JTAG) 550.0 kB/s (12MHz JTAG) 280.0 kB/s (12MHz JTAG 4.2.3 J-Link在IAR开发环境调试过程

17

西安欧亚学院本科毕业论文(设计)

在IAR既可以使用IAR提供的JLINK的驱动,也可以使用RDI接口的驱动,推荐使用RDI接口的驱动,因为IAR版本的JLINK对速度和功能做了限制。

首先打开一个工程,然后按照下图开始进入设置页面:

图4-4 选项设置界面

图4-5 选项设置界面

18

西安欧亚学院本科毕业论文(设计)

5 程序设计

5.1 LPC1768芯片底层代码

ARM芯片开发应用的重要环节之一底层开发,即用汇编和C语言混合编程来启动代码,系统配置及部份启动代码程序如下:

config.h

#ifndef __CONFIG_H #define __CONFIG_H #ifndef TRUE #define TRUE 1 #endif

#ifndef FALSE #define FALSE 0 #endif

typedef unsigned char uint8; /* 无符号8位整型变量 */ typedef signed char int8; /* 有符号8位整型变量 */ typedef unsigned short uint16; /* 无符号16位整型变量 */ typedef signed short int16; /* 有符号16位整型变量 */ typedef unsigned int uint32; /* 无符号32位整型变量 */ typedef signed int int32; /* 有符号32位整型变量 */ typedef float fp32; /* 单精度浮点数(32位长度) */ typedef double fp64; /* 双精度浮点数(64位长度) */ #include \#include \

#include \ // ARM核特征头函数

/*****************************************************************************

系统时钟配置:Fosc、Fcclk、Fcco、Fpclk/

*****************************************************************************/

#define Fosc 12000000 // 时钟频率:12MHz(晶振频率范围:10MHz~25MHz)。

#define Fcclk (Fosc*5) // 系统时钟:60MHz(系统频率范围:Fcclk=(1~32)*Fosc,且<=60MHZ)。

19

西安欧亚学院本科毕业论文(设计)

#define Fcco (Fcclk*4) // 流控振荡频率:240MHz(允许频率范围:Fcco=156MHz~320MHz,且必须为Fcclk的2、4、8、16倍)。

#define Fpclk (Fcclk/4)*2 // 外设时钟频率:30MHz(Fpclk必须为 (Fcclk/4)的 1、2、4 倍,且不能高于Fcclk)。

#define KOM_H IO1SET_bit.P1_24=1; #define KOM_L IO1CLR_bit.P1_24=1; void ZLG7289_cmd_dat(char cmd, char dat); void ZLG7289_Init(); #endif 部份启动代码

MODE_MSK DEFINE 0x1F

USR_MODE DEFINE 0x10 FIQ_MODE DEFINE 0x11 IRQ_MODE DEFINE 0x12 SVC_MODE DEFINE 0x13 ABT_MODE DEFINE 0x17 UND_MODE DEFINE 0x1B SYS_MODE DEFINE 0x1F mrs r0,cpsr bic r0,r0,#MODE_MSK orr r0,r0,#SVC_MODE msr cpsr_c,r0 ldr sp,=SFE(SVC_STACK) bic r0,r0,#MODE_MSK orr r0,r0,#ABT_MODE msr cpsr_c,r0 ldr sp,=SFE(ABT_STACK) bic r0,r0,#MODE_MSK orr r0,r0,#UND_MODE msr cpsr_c,r0 ldr sp,=SFE(UND_STACK) bic r0,r0,#MODE_MSK orr r0,r0,#FIQ_MODE msr cpsr_c,r0 ;//设置比特位CPSR模式 ;//用户模式

;//快速中断请求模式 ;//中断请求模式 ;//管理模式 ;//终止模式 ;//未定义模式 ;//系统模式 ;//原始PSR值 ; //清除模式位 ; //设置管理模式位 ; //改变模式

; //SVC_STACK结束 ; //清除模式位 ; //终止模式设置位 ; //改变模式

; //ABT_STACK结束 ; //清除模式位 ; //未定义模式设置位 ; //改变模式 ; //UND堆栈结束 ; //清除模式位 ; //设置有限脉冲响应位 ; //改变模式位

20