一、简单介绍

  CSL是函数,宏和符号常数的集合,用来控制和配置片上外设。(Chip Support Library)

  每一个外设都有自己对应的CSL模块。每个模块有自己的支持符,来表示对于给定的设备,该模块是否被支持。比如若当前的设备支持DMA模块,则_DMA_SUPPORT为1,否则为0。表1-1为各CSL模块的介绍、头文件、模块支持符。

  表1-2为CSL支持的C5000系列的设备、每个设备对应的库文件(分小存储模式和大存储模式)和每个设备的设备支持符(在CCS中设置编译选项时使用)。

二、命名规则

CSL中函数、宏和数据类型的命名规则如表1-3所示。

三、数据类型

CSL的数据类型定义于stdinc.h文件中,如表1-4所示。数据类型均以大写字母开头。

四、函数

CSL中常用的函数如表1-5所示。[handle]只用于基于句柄的外设:DAT,DMA,MCBSP和TIMER。[priority]只用于DAT外设。

使用CSL函数对外设进行编程有两种方法:

1.PER_config() 函数。直接对寄存器初始化。

初始化一个外设的所有寄存器。如例1-1所示。

2.PER_setup() 函数。使用函数参数进行初始化。PER_setup()是基于参数的函数中最常用的,其他特定模块中的此类函数有PLL_setFreq()和ADC_setFreq()等。

五、CSL中的宏

PER:外设

REG:寄存器

REG#:带通道号的寄存器

FIELD:字段

regval:寄存器的值[整数,整型变量,符号常数PER_REG_DEFAULT,宏值PER_REG_RMK()](MK表示make)

fieldval:字段的值[整数,整型变量,符号常数PER_REG_FIELD_SYMVAL,宏值PER_FMK()]

上表中使用REG#来标识该寄存器属于哪一个通道。除此之外,还可以使用句柄来标识。如表1-7所示。

六、CSL中符号化的常数

功能:便于在程序中数值的初始化

SYMVAL:寄存器字段的符号化的值。

七、CSL中句柄的使用

  句柄用于多通道的外设中。

  PER_open 函数以通道号或者端口号作为形参,返回一个指向句柄的指针。首先检查in_use标志位,当该通道或者端口可用时,返回该外设预定义的句柄,否则返回的是无效句柄INV(符号化的常数)。

  PER_close 函数释放该通道或者端口以供其他进程使用,并清零in_use标志位。

步骤:

1.首先定义一个句柄对象:DMA_Handle = myDma;

2.通过调用PER_open函数给句柄赋值:

myDma = DMA_open(DMA_CHA0,DMA_OPEN_RESET);

3.然后此句柄可以用于其他的API函数中:

DMA_start(myDma);

...

DMA_close(myDma);

CSL概述(翻译总结自TI官方文档)的更多相关文章

  1. 如何使用CSL(翻译总结自TI官方文档)

    为了使用CSL来进行编译和连接,必须先配置CCS开发环境. 1.指定目标设备 Project/options/complier/preprocessor,在define symbols中输入设备支持符 ...

  2. DSP5509的时钟发生器(翻译总结自TI官方文档)

    一.C5509时钟发生器的两个功能 1.将从CLKIN引脚输入的时钟信号变换为适当频率的CPU时钟,提供给CPU.外设和其他模块使用: 2.将CPU时钟通过可编程分频器输出到CLKOUT引脚. 时钟发 ...

  3. 【翻译】Django Channels 官方文档 -- Tutorial

    Django Channels 官方文档 https://channels.readthedocs.io/en/latest/index.html 前言: 最近课程设计需要用到 WebSocket,而 ...

  4. Google Android官方文档进程与线程(Processes and Threads)翻译

    android的多线程在开发中已经有使用过了,想再系统地学习一下,找到了android的官方文档,介绍进程与线程的介绍,试着翻译一下. 原文地址:http://developer.android.co ...

  5. [转]Commons IO 官方文档

    原文地址:http://ifeve.com/commons-io/ 本文翻译自 Commons IO 官方文档 译者:MagicWolf Common IO 是一个工具库,用来帮助开发IO功能 它包括 ...

  6. Spark官方文档 - 中文翻译

    Spark官方文档 - 中文翻译 Spark版本:1.6.0 转载请注明出处:http://www.cnblogs.com/BYRans/ 1 概述(Overview) 2 引入Spark(Linki ...

  7. Spark SQL 官方文档-中文翻译

    Spark SQL 官方文档-中文翻译 Spark版本:Spark 1.5.2 转载请注明出处:http://www.cnblogs.com/BYRans/ 1 概述(Overview) 2 Data ...

  8. 谷歌字体(Google Font)初探 [翻译自Google官方文档]

    这个指南解释了如何使用Google Font的API,把网络字体添加到自己的页面上.你不需要任何的编码,你所要做的只是添加一个特定的CSS到HTML页面上,然后把字体关联到这个CSS样式. 一个快速的 ...

  9. Orleans 框架3.0 官方文档中文版系列一 —— 概述

    关于这个翻译文档的一些说明: 之前逛博客园的时候,看见有个园友在自己的博客上介绍Orleans. 觉得Orleans 是个好东西. 当时心想:如果后面有业务需要的时候可以用用Orleans框架. 当真 ...

随机推荐

  1. onActivityResult无法调用

    最新项目中使用到了Fragment.在fragment中重载了onActivityResult方法,始终无法调用到. 大体是这样:选择图片的功能纠结了很久,能正常发送选择图片,但是选择后无法调用到on ...

  2. python 逻辑运算符与比较运算符的差别

    文章内容摘自:http://www.cnblogs.com/vamei/archive/2012/05/29/2524376.html 逻辑运算符 and, or, not 比较运算符 ==, !=, ...

  3. Python学习教程(learning Python)--3.2 if-else分支语句

    if-else分支语句结构的特点是当conditon条件满足时,执行if下的语句块,当condition条件不满足时执行else下的语句块,也就是说根据条件来控制让某些语句执行,某些语句不被执行. i ...

  4. c,c++函数返回多个值的方法

    最近遇到一个问题,需要通过一个函数返回多个值.无奈C,C++不能返回多个值.所以就想有什么方法可以解决. 网上方法比较杂乱,一般有两种替代做法: 1. 利用函数的副作用, 返回值在函数外定义, 在函数 ...

  5. C/C++ 对常见字符串库函数的实现

    在c中的string.h头文件中存在很多对字符串进行操作的函数,利用这些函数可以方便的对字符串进行操作.下面将对常见的字符串函数进行解释和实现. strcpy 函数原型:char* _strcpy(c ...

  6. 菜鸟学习Spring——初识Spring

    一.概念. Spring是一个开源框架,Spring是于2003 年兴起的一个轻量级的Java 开发框架,由Rod Johnson 在其著作Expert One-On-One J2EE Develop ...

  7. ping通IP,telnet 3306不通

    一个同事装的MySQL数据库,无法连接.​​1.查看权限​​2.查看防火墙​​检查用户权限,防火墙都没问题,就是无法连接,能ping通,但是telnet 3306 端口无法成功.​​检查了下数据库配置 ...

  8. ListView的多布局中的小问题

    今天用到了ListView的多布局,我们需要额外重写两个方法 //返回多布局的个数 @Override public int getViewTypeCount() { return 3; } //用该 ...

  9. Android程序完全退出的三种方法

    很多网友可能发现自己的Android程序有很多Activity,比如说主窗口A,调用了子窗口B,在B中如何关闭整个Android应用程序呢? 这里Android123给大家三种比较简单的方法实现. 首 ...

  10. JavaScript 编码风格指南

    A.1  缩进 // 4个空格的层级缩进 if (true) { doSomething(); } A.2  行的长度 // 每行限于80个字符,超出则在运算符后换行,缩进2个层级(8个空格) doS ...