CSL概述(翻译总结自TI官方文档)
一、简单介绍
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官方文档)的更多相关文章
- 如何使用CSL(翻译总结自TI官方文档)
为了使用CSL来进行编译和连接,必须先配置CCS开发环境. 1.指定目标设备 Project/options/complier/preprocessor,在define symbols中输入设备支持符 ...
- DSP5509的时钟发生器(翻译总结自TI官方文档)
一.C5509时钟发生器的两个功能 1.将从CLKIN引脚输入的时钟信号变换为适当频率的CPU时钟,提供给CPU.外设和其他模块使用: 2.将CPU时钟通过可编程分频器输出到CLKOUT引脚. 时钟发 ...
- 【翻译】Django Channels 官方文档 -- Tutorial
Django Channels 官方文档 https://channels.readthedocs.io/en/latest/index.html 前言: 最近课程设计需要用到 WebSocket,而 ...
- Google Android官方文档进程与线程(Processes and Threads)翻译
android的多线程在开发中已经有使用过了,想再系统地学习一下,找到了android的官方文档,介绍进程与线程的介绍,试着翻译一下. 原文地址:http://developer.android.co ...
- [转]Commons IO 官方文档
原文地址:http://ifeve.com/commons-io/ 本文翻译自 Commons IO 官方文档 译者:MagicWolf Common IO 是一个工具库,用来帮助开发IO功能 它包括 ...
- Spark官方文档 - 中文翻译
Spark官方文档 - 中文翻译 Spark版本:1.6.0 转载请注明出处:http://www.cnblogs.com/BYRans/ 1 概述(Overview) 2 引入Spark(Linki ...
- Spark SQL 官方文档-中文翻译
Spark SQL 官方文档-中文翻译 Spark版本:Spark 1.5.2 转载请注明出处:http://www.cnblogs.com/BYRans/ 1 概述(Overview) 2 Data ...
- 谷歌字体(Google Font)初探 [翻译自Google官方文档]
这个指南解释了如何使用Google Font的API,把网络字体添加到自己的页面上.你不需要任何的编码,你所要做的只是添加一个特定的CSS到HTML页面上,然后把字体关联到这个CSS样式. 一个快速的 ...
- Orleans 框架3.0 官方文档中文版系列一 —— 概述
关于这个翻译文档的一些说明: 之前逛博客园的时候,看见有个园友在自己的博客上介绍Orleans. 觉得Orleans 是个好东西. 当时心想:如果后面有业务需要的时候可以用用Orleans框架. 当真 ...
随机推荐
- lua进阶(二)
第五章 函数 函数有两种用途:1.完成指定的任务,这种情况下函数作为调用语句使用:2.计算并 返回值,这种情况下函数作为赋值语句的表达式使用. function function_name( . ...
- DELPHI XE5 FOR ANDROID 模仿驾考宝典 TMEMO 控件随着字数增多自动增高
在一个安卓需求中,需要模仿驾考宝典的详解部分.琢磨了好几天.终于搞定: MemoAns.Height:=10;//MEMO控件赋初始高度值 MemoAns.Lines.Clear; MemoAns.W ...
- C#使用SQL存储过程完整流程
存储过程就是固化在SQL数据库系统内部的SQL语句,这样做的好处是可以提高执行效率.提高数据库的安全性.减少网络流量.接下来就讲解如何在数据库中建立一个存储过程. 打开SQL2055数据库,展开“数据 ...
- yhd日志分析(一)
yhd日志分析(一) 依据yhd日志文件统计分析每日各时段的pv和uv 建hive表, 表列分隔符和文件保持一致 load数据到hive表 写hive sql统计pv和uv, 结果保存到hive表2 ...
- C 的 一些写法格式 交流
好久以前刚开始学习前辈们的代码的时候,发现好多代码感到好奇怪. 1)代码看不懂 2)代码格式看不懂 网上也没见同学们分享.当自己代码写多了,也渐渐的理解为什么要这样写了. 说主题之前 还是 说一些 题 ...
- servlet中的cookie
cookie的机制是:从客户端(浏览器)发送请求到服务器,然后服务器把接受的信息回写到客户端,这个信息在客户端跟服务器之间进行交互. 下面是一个创建cookie的小案例 //如何创建cookie pa ...
- Sql Server数据的加密与解密
Sql Server数据的加密与解密 在sql server中,我们如何为数据进行加密与解密,避免使用者窃取机密数据? 对于一些敏感数据,如密码.卡号,一般不能使用正常数值来存储.否则会有安全隐患.以 ...
- CentOS 7 + nginx + uwsgi + web2py (502 bad gateway nginx)
Web2py开发包中自带的setup-web2py-nginx-uwsgi-centos64.sh脚本, 只能运行在CentOS 6.4中使用, 如果直接在CentOS 7 中使用该脚本布署后, 访问 ...
- adb 安装失败
打开Terminal终端:Ctrl + Alt + T 按顺序执行以下三条命令: sudo add-apt-repository ppa:nilarrimogard ...
- iOS下日期的处理
NSDate存储的是世界标准时(UTC),输出时需要根据时区转换为本地时间 Dates NSDate类提供了创建date,比较date以及计算两个date之间间隔的功能.Date对象是 ...