1、 CSL命名规则
|
类型 |
命名规则 |
|
函数 |
PER_funcName() |
|
变量 |
PER_varName |
|
宏 |
PER_MACRO_NAME |
|
Typedef类型 |
PER_Typename |
|
函数传递参数 |
funcArg |
|
结构体成员 |
memberName |
² 所有函数、变量、宏及数据类型都是以“PER_“开始,其中PER是模块或外设的名字
² 外设名后面的函数名,用小写字母表示;只有当函数包括两个单词时才能用大写字母如PER_getConfig()
² 外设名后面的宏名要用大写;如DMA_PRICTL_RMK
² 数据类型用大写字母开头;如DMA_Handle
注意:CSL库中每个寄存器和每个域的宏名和常量名都定义在了CSL文件中,因此,在重新定义时不要重名,由于许多CSL函数都已在CSL库中定义,因此在创建自己的函数时也要当心。
2、 CSL 数据类型
|
数据类型 |
描述 |
|
Uint8 |
unsigned char |
|
Uint16 |
unsigned short |
|
Uint32 |
unsigned int |
|
Uint40 |
unsigned long |
|
Int8 |
char |
|
Int16 |
short |
|
Int32 |
int |
|
Int40 |
long |
3、 CSL函数
|
Function |
Description |
|
handle=PER_open( channelNumber [priority] Flags) |
打开一个外设通道,根据flag进行操作,在使用通道前必须先调用该函数,返回值将在下面的API调用中唯一的标识设备名称 注:[priority]参数只适用于DAT模块 |
|
PER_config( [handle,] *configStructure) |
将配置结构体的值写入外设寄存器,可以用整数常量、整数变量、CSL标识常量PER_REG_DEFAULT等初始化配置结构体 |
|
PER_configArgs( [handle,] regval_1 . . regval_n) |
将一系列值(regval_n)写入外设寄存器中 参数可以是整数常量、整数变量、CSL标识常量PER_REG_DEFAULT等 |
|
PER_reset ( [handle]) |
将一个外设复位成上电初的默认值 |
|
PER_close ( handle ) |
关闭由PER_open()函数打开的通道,此时,通道寄存器的值复位成上电默认值,并且所有未被处理的中断会被清除。 |
ü []表示可选项
ü [handle]只有那些基于描述符的外设使用(如DAT、DMA、EDMA、GPIO、McBSP和TIMER)
ü [priority]只有在DAT模块中才有用
4、 CSL宏
注:
PER代表一个外设(如DMA)
REG代表一个寄存器名(如PRICTL0)
FIELD代表寄存器中的一段域(如ESIZE)
regval代表一个整型常量、整型变量、一个符号常量(PER_REG_DEFAULT)
x代表一个整型常量、整型变量
sym代表一个符号常量
一般的CSL宏
|
Macro |
Description |
|
PER_REG_RMK( Fieldval_n……fieldval_0) |
将值存储到外设寄存器中,基于域构造值时,_RMK宏更加简化 有以下规则: 1、 只能包括那些可写的域 2、 首先指明的域参数做为最重要的位 3、 无论是否可用,所有可写域的值都必须被包括 |
|
PER_RGET ( REG ) |
返回外设寄存器中的值 |
|
PER_RSET(REG, regval) |
将值写入外设寄存器 |
|
PER_FMK(REG,FIELD,fieldval) |
|
|
PER_FGET(REG,FIFELD) |
返回外设寄存器中指定域中的值 |
|
PER_FSET(REG,FIELD,fieldval) |
将值写入寄存器指定域中 |
|
PER_REG_ADDR(REG) |
如果可用,将得到寄存器REG的存储地址 |
|
PER_FSETS(REG,FIELD,sym) |
将符号值写入寄存器指定域 |
|
PER_FMKS(REG,FIELD,sym) |
类似于PER_FMK |
一般基于handle的宏
|
Macro |
描述 |
|
PER_ADDRH(h,REG) |
返回handle代表的寄存器地址 |
|
PER_RGETH(h,REG) |
返回handle代表的寄存器中的值 |
|
PER_SGETH(h,REG,x) |
将值写入handle代表的寄存器中 |
|
PER_FGETH(h,REG,FIELD) |
返回handle代表的域中的值 |
|
PER_FSETH(h,REG,FIELD,x) |
将值x写入到handle代表的域中 |
|
PER_FSETSH(h,REG,FIELD,SYM) |
将符号值写入handle代表的域中 |