一、简单介绍

  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. delphi常用函数过程

    数据类型转化 1.1.         数值和字符串转化 Procedure Str(X [: Width [ : Decimals ]]; var S); 将数值X按照一定格式转化成字符串S.Wid ...

  2. 【摘抄】Application.StartupPath和System.Environment.CurrentDirectory的区别

    System.Environment.CurrentDirectory的含义是获取或设置当前工作路径,而Application.StartupPath是获取程序启动路径,表面上看二者没什么区别,但实际 ...

  3. Learning Scrapy笔记(五)- Scrapy登录网站

    摘要:介绍了使用Scrapy登录简单网站的流程,不涉及验证码破解 简单登录 很多时候,你都会发现你需要爬取数据的网站都有一个登录机制,大多数情况下,都要求你输入正确的用户名和密码.现在就模拟这种情况, ...

  4. xcode4.5应用程序本地化

    我们在开发一款APP的时候,总是会涉及应用程序国际化的事情,用ios里专业术语叫做本地化,其实都是一个意思,简而言之就是不同的系统语言,显示不同的应用名称.字符串名称.图片名称.等等,除了代码,ios ...

  5. python的http请求应用--每日签到

    写点python吧,python其实是个很好用的工具,作为浇水语言,跟其他语言联系也很紧密,想用什么包直接import,导入ctypes调用底层函数库,导入web相关的包可以轻松写爬虫,今天我们写的跟 ...

  6. MVC中用ajax提交json对象数组

    应用场景:在前端用ajax向服务器提交json对象数组,在controller的以对象数组作为函数的参数,提交的json数组直接转为服务器端的对象数组. 如: 要将json对象数组[{Id:1,Nam ...

  7. spring debug

    DispatcherServlet{ getHandler()}handlerMappings{ RequestMappingHandlerMapping BeanNameUrlHandlerMapp ...

  8. linux kernel 0.11 bootsect

    bootsect作用 ①将自己移动到0x90000处 ②将setup从磁盘读到0x90200处 ③将system从磁盘读到0x10000处 寄存器 汇编代码中存在:数据段data seg 栈段 sta ...

  9. CSS3中新出现的技术

    CSS3中新出现的技术 CSS媒体查询 媒体查询 包含了一个媒体类型和至少一个使用如宽度.高度和颜色等媒体属性来限制样式表范围的表达式.CSS3加入的媒体查询使得无需修改内容便可以使样式应用于某些特定 ...

  10. 4.FPGA芯片管脚解释

    用户I/O:不用解释了.   配置管脚: MSEL[1:0] 用于选择配置模式,比如AS.PS等. DATA0 FPGA串行数据输入,连接到配置器件的串行数据输出管脚. DCLK FPGA串行时钟输出 ...