英飞凌 开发工具的使用(DAvE Keil FLOAD MEMTOOL)[1]
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
开发工具的使用英飞凌XC800系列单片机
写在前面
本篇内容为英飞凌科技有限公司(Infineon Technologies CO., LTD.)的XC800系列单片机的基础篇之一。
如无特别说明,所指的产品为XC800系列单片机中的首款型号:XC866。
由于后续芯片会有更多的改进/增加措施,如需要关注其它产品,需要再结合相应的产品数据手册(Data Sheet)和用户手册(User Manual)! 由于版本更新等原因,可能会出现各版本间的资料说法有略微差异,请以英飞凌网站公布的最新英文版本的产品数据手册(Data Sheet)和用户手册(User Manual)为准!
内容
英飞凌8位单片机硬件的连接
基本的硬件连接方式
DAvE的安装与使用
DAvE软件用于配制项目文件,设置端口,定时器工作方式等 Keil软件的安装与使用
Keil软件编辑(插入)用户代码实现用户目标功能
编译源文件,生成目标代码
软件仿真
下载工具的安装与使用
FLOAD软件下载程序到目标芯片
MEMTOOL软件下载程序到目标芯片
硬件的连接
XC866评估板(Starter Kit)结构图:
直流:8~18V/300mA
硬件连接连接步骤
将串口和电脑串口连接
连接电源。
当连接好电源时,电源指示灯点亮
OCDS接口的连接
XC866使用16针的标准JTAG接口。
信号排列如下:
JTAG 接信号线定义:
接地信号线GND
OCDS 配置(XC800中不使用)OCDSE
保留(留作特殊应用时使用)RCAP1/2
电源VCC
测试系统复位信号TRST
目标系统复位信号RESET
测试时钟TCK
测试机时钟CPU_CLOCK
测试数据串行输入TDI
测试数据串行输出TDO
测试模式选择TMS
在连接OCDS调试接口时,需要注意,应该将箭头端连接到开发板上针脚1处。
使用OCDS调试接口,同样能够下载程序到单片机,不一定需要通过串口下载程序到目标机,再进行调试。
为了方便学习,下面介绍一个程序的基本流程。
包括创建,编译,仿真,下载并运行一个工程项目。
在项目中,将要实现试验板上LED灯闪烁功能。
LED灯连接到XC866单片机的P3_0到P3_7口。
在工程完成后,LED 灯将不断闪烁。
英飞凌公司(Infineon)的DAvE(Digital Application Virtual Engineer,数字应用虚拟工程师)免费软件是该公司针对其8位
(C500/C800/XC800系列)、16位(C166/XC166/XE166系列)和32位(XC2000/TriCore系列)微控制器家族而推出的应用代码生成器。
它可提供初始化配置和驱动程序代码,以便轻松地实现编程。
使用DAvE软件,方便用户快速、轻松地配置复杂的接口设备,缩短各种控制装置软件开发时间,保证用户集中精力开发具体应用软件。
DAvE的安装软件,进入DAvE的安装界面。
安装完成以后,在桌面出现DAvE 的图标,双击图标进入DAvE 软件的使用界面。
在首次进入时,需要安装相应的DIP 文件。
选择“View →Setup Wizard ”。
DAvE.lnk
在进入设置界面后,选择“Install”然后点击“Forward >”进入到安装方式选择界面,需要选择“I want to install products from the DAvE’s web site”。
当进入到选择文件界面的时候,选择DIP文件的存放文件夹。
在选择安装产品界面,不同的DIP文件可以安装XC866,XC886CLM, XC888CLM和XC878CLM等产品。
选中安装“XC866”或其它型号的产品,然后点击“Forward >”进行安装。
在完成DAvE安装后,就可以进入到DAvE的使用界面了。
首先建立一个新工程。
选择“File→New”进入建立工程选项。
选择“Create”后进入到DAvE软件主界面。
在这里进行基本的设置。
首先需要设置的
是“Project
Settings”。
在该
选项卡中,选择
单片机的型号,
如:选用的型号
为XC866-4FR。
设置项目自动生
成的C程序文件的
名称,以及头文
件的名称等。
设置完成后,关闭选项卡,进入到各个分项目的设置
在这里,特别需要修改几个地方:
选择“UART”选项,
选中:Use pin P1.1
Use pin P1.0
Enable Receiver
该选项设置评估板上
单片机与电脑串口
连接实际使用的引脚。
在“BRG”选项卡中需要修改UART的波特率重载值(Reload Value)。
填入实际需要使用的波特率:9.6(并按“回车”键),这里DAvE会自动生成重载值为0xAD,避免了手工计算,降低了工作难度。
在“Function”选项卡中,需要在“UART_vInit”前面打勾。
UART_vlint函数用于UART的初始化设置。
完成修改,
关闭选项卡
DAvE进行端口设置:选择“Port”进入端口设置,选择“Configure Port 3”,将端口3(P3.0~P3.7)全部设置为输出。
端口模式配制:这里,需要将P3.6口设置成为“Tristate”,使用三态模式。
设置完成后,
关闭该选项
卡返回上层。
函数配制:选择“Functions”选项卡,可以选择DAvE自带函数选择。
这时,移动光标到该函数体处,这时会自动显示该函数的说明。
选择函数:
IO_vInit
(端口初始化)
IO_vWritePort
(写端口)
IO_vTogglePin
(端口状态取反)
文件保存:选择“File→Save”进行文件保存。
这里,保存为“blinky”。
保存后,点击“”图标生成代码。
在保存目录下看到11个文件:
blinky.asm,blinky.rtf,blinky.dav,blinky.dpt,IO.C,IO.H,UART.C,UART.H,MAIN.C,MAIN.H和START_XC.A51
其中blinky.asm、blinky.rt、blinky.dav、blinky.dpt四个文件包含了创建工程的基本信息,在某些工程中会用到,不需要进行修改。
IO.H文件中,包含各个端口,针脚的定义。
IO.C文件中,包含端口的初始化。
如果需要对一些端口进行初始化设置,可以在IO.C文件中的void IO_vInit(void) 函数中添加代码实现。
// USER CODE BEGIN (IO_Init,3)
SFR_PAGE(_pp1, noSST);// switch to page 1
P3_PUDSEL = 0xBF;// load pull up/down select register P3_PUDEN = 0x00;// load pull up/down enable register //设置端口3状态
SFR_PAGE(_pp0, noSST);// switch to page 0
P3_DIR = 0xFF;// load direction register
//设置端口3为输出
// USER CODE END
UART.H文件包含通讯函数的原形等,除需要添加之外建议不要修改。
UART.C文件中具体包含了通信的一些基本设置。
包括传输模式,传输使用的波特率等。
// USER CODE BEGIN (UART_Init,3)
SFR_PAGE(_pp0, noSST);// switch to page 0 without saving P1_DIR |= (ubyte)0x02;// set output direction
//设置P1口为输出端口
MODPISEL &= ~(ubyte)0x01;// configure peripheral input select
//register
BCON = 0x00;// reset baudrate timer/reload
// register
//设置波特率
SCON = 0x50;// load serial channel control register //寄存器SCON中,含有T0, T1中断状态标准等。
// USER CODE END
START_XC.A51 文件中定义了一些标准SFR寄存器符号以及其他的基本参数。
使用这些定义好的符号提高程序的可读性。
; Standard SFR Symbols
ACC DATA0E0H
B DATA0F0H
SP DATA81H
DPL DATA82H
DPH DATA83H
; XC8xx specific SFR Symbols used in STARTUP code
sfr SCU_PAGE= 0xBF
sfr PLL_CON= 0xB7
sfr OSC_CON= 0xB6
sfr PASSWD= 0xBB
MAIN.H文件包含所用到的目标芯片的端口地址,特殊功能寄存器的地址。
另外MAIN.H文件中,包含了一些头文件,提供一些其他函数的调用。
同时也可以添加一些代码,用于程序调用。
代码需要添加到USER CODE BEGIN--USER CODE END之间,当重新修改DAvE并生成代码时,用户代码可以得到保留。
#include <intrins.h>
#include “IO.H”
#include “UART.H”
// USER CODE BEGIN (MAIN_Header,11)
// 添加用户代码
// USER CODE END
在MAIN.C文件中,具体包括两部分:
头文件:
¬在自动生成的头文件中,一般都只包含一句
#include “MAIN.H”
¬如果需要添加一些函数原形,则在这句之后添加。
函数:
¬自动生成的main.c文件中,包含有两个函数。
–void MAIN_vInit(void); 该函数用于初始化。
可以将一些初始化任务添加到该函数中。
–void main(void); 该函数为主函数,程序将从这个函数开始执行。
下面编写的代码,也主要添加到这个函数中。
使用Keil的优点:
Keil软件是目最流行开发80C51系列单片机的软件,Keil提供了包括C 编译器、宏汇编、连接器、库管理和一个功能强大的仿真调试器等在内的完整开发方案,通过一个集成开发环境(µVision)将这些部份组合在一起。
Keil生成的目标代码效率非常之高,多数语句生成的汇编代码很紧凑,容易理解。
在开发大型软件时更能体现高级语言的优势。
首先从/网站,下载Keil编译评估软件,双击安装软件,进入安装界面。
在安装过程中,需要填写使用者资料,才能继续正常安装。
安装完成后,可以在桌面上找到Keil软件的快捷方式。
双击快截方式后进入Keil主界面。
代码区
工程文件区
编译信息区
选择打开一个工程“Project→Open Project”,选择在DAvE中建立的文件。
需要注意的是,文件类型选择“DAvE Project Files (*.dpt)”。
选择单片机型号:
由于使用了DAvE软件,本步骤可以省略。
如果选择“Project→
Options for Target ‘Target 1’→Device”,你可以看到目标芯片的型号已经被自动指定为“Infineon→XC866-4FR”,与前面DAvE的设置是一致的。
设定目标的选项
选择“Project→Options for Target ‘Target 1’→Output”页,使能“Create HEX Files”,这样在编译文件后会创建HEX文件用于下载。
编辑插入用户代码
在工程文件区选择main.c进入到编程区编辑插入用户代码。
这里需要编写一个控制LED灯交替亮灭的简单程序。
在mian函数中,自动生成有whlie(1)函数,在while函数内部
(MAIN_Main,4)处插入如下代码:
//USER CODE BEGIN (MAIN_Main,4)
IO_vWritePort(P3, 0xAA);
delay();
IO_vWritePort(P3, 0x55);
delay();
// USER CODE END
在main函数之后的(MAIN_General,10)处添加void delay();函数
// USER CODE BEGIN (MAIN_General,10)
void delay()
{int i, j;
for(i= 0; i < 1000; i ++)
{ for(j= 0; j < 500; j ++)
{/* empty */;};
}
}
// USER CODE END
这里void delay();函数的作用是延时。
注意:只有在USER CODE BEGIN/END中间添加代码,当重新修改DAvE 并生成代码时,用户代码才可以得到保留。
编译项目文件
代码添加编辑后,开始编译项目文件生成目标代码。
选择“Project→Rebuild all target files”编译项目文件。
编译失败的处理:
进行编译的过程中,由于某些原因导致程序编译失败,这时能从编译信息区找到错误原因,双击错误原因,定位错误行,方便进行修改。
编译成功并生成目标代码
修改源文件:在“MAIN_General,2”处添加void delay(void);函数,再次编译并成功。
软件仿真:
为了减少逻辑错误,需要进行软件仿真。
选择“Debug→Start/Stop Debug Session”,开始软件仿真。
状态察看:
在软件仿真界面“Peripherals”选项下,选择察看的端口状态,SFR寄存器状态,定时/计数器当前值等参数。
调试运行:
在“Debug”菜单下,可以选择运行的模式。
包括RUN, STEP, STEP OVER, STEP OUT OF CURRENT FUNCTION等。
RUN 直接运行
在该模式下,程序将直接运行。
STEP 单步跟踪
在该模式下,将只运行一个语句。
通过单步运行,我们可以更方便和清楚的知道程序运行和跳转等。
STEP OVER 将函数作为单个实体调用
在该模式下,不会进入子程序的跳转,使用这个选项,可以很方便的跳过我们已经调试通过的程序段和延时程序等。
STEP OUT OF CURRENT FUNCTION 跳出当前函数
使用该选项,会跳出当前被调用函数,返回上一层函数。
RUN TO CURSOR LINE 运行到光标所在行
使用该选项,程序将直接运行到光标所在行。
可以帮助我们更方便调试已经定位的错误。
时序仿真:
Keil提供了时序仿真功能。
在调试模式下,点击图标进入时序仿真界面。
选择“Setup”按钮,编辑查看选项。
点击图标
添加需要查看
的端口。
选择好查看端口后,点击“Debug→Run”进入仿真。
在波型下方,可以切换查看源程序和波型文件。