DM648应用开发之使用PSP驱动

来源:百度文库 编辑:神马文学网 时间:2024/05/02 06:15:09
作者:Free    文章来源:Free    点击数: 59    更新时间:2010-8-4    

本文一步步说明怎样初始化和使用PSP软件包。PSP包含在标准的DVSDK安装中,它提供标准的DSP/BIOS GIO 或SIO的接口程序对外设进行上层操作,PSP为每个设备提供了足够的IOM兼容的微驱动设置。
1、外设初始化
每个PSP驱动的核心都是IOM兼容的微驱动。IOM要求外设在工程的TCF文件中定义和初始化。下面的代码是I2C设备的初始化设置:

将上面的代码保存在后缀为TCI的文本文件中,如i2c0.tci。在工程的主TCF文件中下面的代码:

这样TCI文件可以被多个工程共享。
另外,TCF图形配置工具可以在工程TCF文件中自动产生上面的代码。你可以在列表中插入一个新的用户自定义设备,如下图所示:

图1 使用图形编辑器增加设备到TCF
1.1、小结
1)在工程TCF文件中定义和初始化外设;
2)设置设备的参数。
2、链接驱动库
本节说明了怎样将PSP驱动集成到工程中。因为一些PSP版本(version 1.10.xx.xx)是依据RTSC封装标准,而其它(version 1.00.xx.xx)不是,所以链接PSP驱动库的方法也不同。本文只讨论新版本,对老版本有兴趣的朋友可以去查相关资料。
2.1、使用XDCTOOLS链接PSP 1.10.xx.xx 驱动
新的PSP使用RTSC封装来加快集成。只需要增加一行代码到XDC配置文件(*.cfg)中:

个别的驱动可能好要求包含如:PAL库,EDMA3 LLD等。
你需要设置工程的Build选项中XDC项目,关键步骤如下:
1)设置目标器件:ti.targets.C64P
2)设置平台:ti.platforms.evmDM648
3)勾选包括TCF(或增加—tcf)
4)设置XDC搜索路径,例如:
--xdcpathsfile="%BIOSDVSDK_INSTALL_DIR%/xdcpaths_evmDM648.dat"
设置工程Build选项中编译项目:
1)包括自动生成编译指示:-@"=$(Proj_dir)/xdcconfig/compiler.opt"
2)将TCF从build中除去(非XDC)。
链接驱动库只完成了工作的一半。使用PSP驱动的数据类型或宏都需要相应的头文件,在RSTC封装的PSP之下,对应的头文件被列于相关的目录下。XDC生成的compiler.opt文件告诉CCS所有头文件的对应文件夹路径。对于I2C驱动,相关包括代码如下:

2.1.1、小结
1)添加封装到工程的XDC配置描述文件;
2)添加cfg文件到工程中,并使用工程Build选项配置;
3)包括在XDCTOOLS搜索路径下的相关头文件。
2.2、不使用XDCTOOLS链接PSP 1.10.xx.xx 驱动
RTSC封装的PSP,也可以不使用XDCTOOLS直接集成驱动。为了不编辑PSP头文件,需要包括PSP对应子文件夹到编译器的搜索路径:

另外,你需要包含每个头文件的相关路径到你的源文件中:

库文件的使用也相似:

3、创建和使用驱动句柄
PSP驱动通过调用GIO API在运行时接入(有些也使用SIO),通过调用GIO_create/SIO_create来创建驱动器句柄,此后外设就为I/O传输做好了准备。下面的代码说明了GIO_create的使用:

通过设备句柄调用GIO_submit及对应的命令初始化I/O传输,需要设置传输参数,使用方法参见以下代码(调用GIO_read):

要在运行中更改参数可以通过GIO_control。下面的代码更改I2C的总线频率到200kHz。

在使用PSP驱动时,应该避免直接修改寄存器来更改外设的特性。
3.1、小结
1)在C程序中使用GIO_create 或SIO_create创建设备句柄;
2)设备立即生效;
3)使用GIO_submit或SIO_submit/SIO_reclaim初始化传输;
4)使用GIO_control改变设备状态和参数。
附注:
详细的说明请参见TI公司的说明文件。