没有合适的资源?快使用搜索试试~ 我知道了~
首页TMS320C6000系列芯片支持库(CSL)-中文
TMS320C6000系列芯片支持库(CSL)-中文

TMS320C6000系列芯片支持库(CSL)-中文,详细的介绍了C6000系列芯片支持库的使用,对于不习惯查看英文文档的DSP开发人员是很不错的选择,希望对你有所帮助。
资源详情
资源评论
资源推荐

1
TMS320C6000 系列芯片支持库(CSL)
应用程序接口参考向导
序言
关于本文档
TMS320C6000 系列芯片支持库(CSL)是一组应用程序接口(API),用于配置和控制片上外
设。使用 CSL 可以为开发者除去冗长乏味的硬件相关工作,包括:外设更容易使用,在器件
层上相互兼容,缩短开发周期,易移植和标准化。一个版本的 CSL 可以应用于全系列的
TMS320C6000 器件。
本文档按下列所示组织:
□ 介绍--CSL高层次概述
□ 27个CSL API模块章节
□ HAL宏模块章节
□ 在没有DSP/BIOS情况下使用CSL API
□ 寄存器描述
□ 怎样使用CSL
□ 新旧CACHE寄存器对照
□ 术语表
怎样使用本文档
在本文中描述的TMS320C6000系列芯片支持库(CSL)如下:
□ 第1章为CSL概述,包括CSL API模块所支持的各种C6000系列芯片列表和API模块列表。
□ 接下来的每一章讨论一个单一的CSL API模块,并提供:
. API模块的描述
. 模块的API函数表和每个函数参考页码
. 模块的宏表和每个宏的参考页码
. 以字母顺序列出CSL API函数的功能,参数,类型定义,结构、常量和全局变量。并举
例说明
□ 第28章讨论硬件抽象层(HAL),并列出了HAL宏的参考章节。
□ 附录A举例说明在没有DSP/BIOS情况下使用CSL API
□ 附录B列出了与TMS320C6000系列DSP芯片相关的寄存器
□ 附录C为新旧CACHE寄存器对照
□ 附录D为术语表
符号约定
本文档使用下列约定:
□ 程序清单,例子程序和交互显示采用专用字体。
□ 在语法描述中,函数和宏采用粗体字,参数挂在圆挂号中
□ 宏名用大写字母,函数名用小写字母
□ TMS320C6000系列芯片涉及到C6021,C6202等芯片的参考向导
TI公司的相关文档
下列文档描述了TMS320C6000系列芯片相关资料和支持工具,可以通过拨打TI公司电话(800)
477-8924获取。更多的资料可以登陆英特网http://www.ti.com
查找。
第一章
CSL 概述
本章概述了 TMS320C6000 系列芯片支持的各种应用接口函数和各个 API 模块。
1.1 SCL 引言

2
芯片支持库(CSL)提供了一个用于配置和控制片上外设的 C 语言的接口。它由各个分立的
模块组成,并被编译保存为库文件。每个模块对应一个单独的外设,除了个别提供通用程序
支持的模块。如:中断请求模块(IRQ)包括中断管理接口函数和用于芯片全局设置的 CHIP
模块。
1.1.1 CSL 的益处
采用 CSL 的益处包括:可以方便片上外设的使用,缩短开发周期,提高程序的可移植性,硬
件抽象,在硬件层标准化并相互兼容。CSL 还提供了如下特性:
① 标准协议用于外设编程
CSL 提供一个标准的协议用于片上外设的编程,包括数据类型、宏和函数。
② 基本的资源管理
通过打开和关闭函数可以管理很多片上外设。这特别有助于多通道外设的管理。
③ 符号外设描述
采用符号描述所有外设寄存器和相应字段。你会发现用高层次的协议来描述是非常有益的,
因为这将更少的关注设备本身的细节。所以移植代码到一个新的 TI DSP 版本上将会更容易。
这些用于外设编程的符号常数列在他们各自的外设参考指南中。
1.1.2 CSL 的体系结构
在芯片支持库中每个外设都有一个单一的 API 模块与之对应。因此,有一个直接存储器存取
(DMA)API 模块对应于 DMA 外设,一个多通道缓冲串口(McBSP)API 模块对应于 McBSP 外
设,等等。
图 1-1 举例说明了一些单独得 API 模块(完整列表参考 1.8 节)。这样的架构考虑了 CSL 以
后的扩展。因为当新的外设出现时,可以加入新的 API 模块。
图 1-1.API 模块的架构
我们应当注意到:并不是所有的器件支持所有的 API 模块,这依赖于器件实际所拥有的外设。
例如:增强的直接存储器存取(EDMA)API 模块不支持 C6201,因为该芯片没有 EDMA 外设。
其他模块,如:中断请求(IRQ)模块在所有器件上都支持。
表 1-1.CSL 模块及所在文件
外设模块(PER) 描述 所在文件 模块支持符号†
CACHE 缓存模块 csl_cache.h CACHE_SUPPORT
CHIP 芯片相关模块 csl_chip.h CHIP_SUPPORT
CSL 顶层模块 csl.h NA
DAT 设备无关拷贝/填充模块 csl_dat.h DAT_SUPPORT
DMA 直接存储器存取模块 csl_dma.h DMA_SUPPORT
EMAC 以太网介质访问控制模块 csl_emac.h EMAC_SUPPORT
EDMA 增强的直接存储器存取模块 csl_edma.h EDMA_SUPPORT
EMIF 外存储器接口模块 csl_emif.h EMIF_SUPPORT
EMIFA 外存储器接口模块 A csl_emifa.h EMIFA_SUPPORT
EMIFB 外存储器接口模块 B csl_emifb.h EMIFB_SUPPORT
GPIO 通用输入输出模块 csl_gpio.h GPIO_SUPPORT

3
HPI 主机接口模块 csl_hpi.h HPI_SUPPORT
I2C I2C模块 csl_i2c.h I2C_SUPPORT
IRQ 中断控制模块 csl_irq.h IRQ_SUPPORT
McASP 多通道音频串口 csl_mcasp.h MCASP_SUPPORT
McBSP 多通道缓冲串口 csl_mcbsp.h MCBSP_SUPPORT
MDIO 数据I/O管理模块 csl_mdio.h MDIO_SUPPORT
PCI PCI模块 csl_pci.h PCI_SUPPORT
PWR 电源控制模块 csl_pwr.h PWR_SUPPORT
TCP TCP模块 csl_tcp.h TCP_SUPPORT
TIMER 定时器模块 csl_timer.h TIMER_SUPPORT
UTOP UTOP模块 csl_utop.h UTOP_SUPPORT
VCP VCP模块 csl_vcp.h VCP_SUPPORT
VIC VCXO内插控制 csl_vic.h VIC_SUPPORT
VP 视频端口模块 csl_vp.h VP_SUPPORT
XBUS 总线扩展模块 csl_xbus.h XBUS_SUPPORT
†参考CSL相关模块的定义
1.1.3 相关性
尽管每个 API 模块是独立的,但他们之间还是存在一些相关的。例如:DMA 模块依赖于 IRQ
模块,并在链接代码时起作用。因为当你使用 DMA 模块时,IRQ 模块将被自动链接。
1.2 CSL 命名约定
表 1-2 列出了命名 CSL 函数、宏和数据的规则。
表 1-2.CSL 命名规则
对象类型 命名规则
函数 PER_funcName()
变量 PER_varName
宏 PER_MACRO_NAME
类型定义 PER_Typename
函数参数 funcArg
结构体成员 memberName
注:PER为对应模块名占位符
□ 所有函数、变量、宏和数据类型都以大写字母“PER_”开头(PER 代表模块或外设名)。
□ 函数名跟在“PER_”(外设名)后,用小写字母表示。当函数名由两个及以上单词组成时,
后面的单词首字母用大写。如:PER_getConfig()。
□ 宏名跟在“PER_”(外设名)后,全部用大写字母表示。如:DMA_PRICTL_RMK。
□ 数据类型首字母大写,后面的用小写。如:DMA_Handle 。
CSL宏和常数名在每个包含文件中已经定义。所以,不要用类似的名字重新定义宏。
因为很多CSL函数在CSL库中已经预定义,所以在定义自己的函数名时要格外小心。
1.3 CSL 数据类型
CSL 库在 stdinc.h 文件中定义了自己的数据类型,如表 1-3。这些数据类型对所有 CSL 模块
都适用,增加的数据类型在每个模块中定义,并在各自章节中描述。

4
表 1-3. CSL 数据类型
数据类型 说明 数据类型 说明
Uint8 unsigned char Int8 char
Uint16 unsigned short Int16 short
Uint32 unsigned int Int32 int
Uint40 unsigned long Int40 long
1.4 CSL 函数
表 1-4 列出了通用的 CSL 函数,详细的描述见各个模块的章节。
在表 1-4 中,约定如下:
□ 变量名用斜体字
□ 括在[…]中的为可选参数
□ [handle]只用在基于句柄的外设上,如:DAT,DMA,EDMA,GPIO,McBSP,TIMER等,具
体参考1.7.1节
□ [priority] 只用在DAT外设上。
表1-4.通用CSL函数
函数 说明
handle = PER_open(
channelNumber, [priority]
flags )
打开一个外设通道,并根据标志为做相应的操作,并返回一句
柄。该操作必须在使用通道之前调用。priority参数仅用于DAT
模块。
PER_config( [handle,]
*configStructure )
将配置结构值写入外设寄存器中。可以采用下列方式初始化配
置结构:
□ 整形常量
□ 整形变量
□ CSL符号常数,PER_REG_DEFAULT(参见1.6节 CSL 符号常
数值)
□ 由PER_REG_RMK宏创建的合并字段值
PER_configArgs( [handle,]
regval_1, . . . regval_n )
将单个的值(regval_n)写入外设寄存器。写入值可以是下列
形式:
□ 整形常量
□ 整形变量
□ CSL符号常数,PER_REG_DEFAULT
□ 由PER_REG_RMK宏创建的合并字段值
PER_reset( [handle] ) 复位外设到初始上电状态
PER_close( handle ) 关闭一个由PER_open()打开的外设通道。其寄存器复位到初始
上电状态,并清除所有被挂起的中断。
1.4.1 通过寄存器初始化外设
CSL提供两种类型的函数来初始化外设寄存器:PER_config()和PER_configArgs()。
□ PER_config()初始化CSL模块的外设控制寄存器。该函数需要一个地址参数来指定外设寄
存器的地址。每个模块的配置结构数据类型定义中包含PER_config()函数。例1-1为该函
数的一个示例。
例1-1.PER_config()函数使用

5
PER_Config MyConfig =
{ reg0, reg1,
…
};
…
PER_config(&MyConfig);
□ PER_configArgs()将单个的寄存器值写入寄存器中。例 1-2 为该函数的一个示例。
例1-2.PER_configArgs()函数使用
PER_configArgs(reg0, reg1, …);
这两个初始化函数可以交替使用,但是寄存器值仍然需要创建。为了简化外设寄存器值的定
义,CSL提供了PER_REG_RMK(make)宏合并参数列表的值。参见1.5节CSL宏。
1.5 CSL 宏
表1-5提供了通用CSL宏的一般描述:其中:
□ PER表示一个外设(如:DMA);
□ REG表示一个寄存器名(如:PRICTL0、AUXCTL);
□ FIELD表示一个寄存器字段(如:ESIZE);
□ regval表示一个整形常量、整形变量、符号常数(PER_REG_DEFAULT)或由PER_FMK宏创
建的合并字段值;
□ fieldval表示一个整形常量、整形变量或符号常数(PER_REG_FIELD_SYMVAL)所有的字
段值均右对齐;
□ X表示一个整形常量、整形变量;
□ sym表示一个符号常数;
□ CSL提供与表1-5列出的等价的宏,但是它使用句柄值代替寄存器名来确定寄存器属于哪
个通道。句柄值由PER_open()函数返回(参见1.7节)。这些宏在表1-6中列出。
表1-5. 通用CSL宏
宏 说明
PER_REG_RMK( fieldval_n, . . .
fieldval_0 )
创建一个存储外设寄存器值的对象;_RMK宏使这样的操
作更加便捷。_RMK宏应遵守下列规则:
□ 只能包含可写字段;
□ Specify field arguments as most-significant bit
first.
□ 必须包含所有的可写字段,不管是否使用;
□ 如果传递的字段比特数超过允许的比特数,_RMK宏将
舍去多余部分。
PER_RGET(REG) 返回外设寄存器中的值
PER_RSET(REG, regval) 将值写入外设寄存器中
PER_FMK (REG, FIELD, fieldval) 创建fieldval的一个移位版, Creates a shifted
version of fieldval that you could OR with the result
of other _FMK macros to initialize register REG. 该
操作可以This allows the user to initialize few
fields in REG as an alternative to the _RMK macro,
which requires that ALL register fields be
剩余26页未读,继续阅读















安全验证
文档复制为VIP权益,开通VIP直接复制

评论4