CSL 3.x

为适应新的DSP平台(C64x+,C67x+和OMAP器件),TI使用了CSL 3.X的结构,早期的器件依然用CSL 2.X来支持.

目前需要CSL 3.X支持的具体器件是,C6445,C672X和OMAP5912.新版本在轻便性,层次性,效率,空间,易用方面做了一些改善.

 

 Timer Example Using CSL 2.x
#include <csl.h>
#include <csl_timer.h>
/* −−−−−−−−−−−−−−−−−−−−−−−−−−− CSL 2.x Example −−−−−−−−−−−−−−−−−−−−−−−−−−−−−−− */
:
:
TIMER_Handle myhTim ; /* Handle is pointer to timer object */
TIMER_Config timCfg = { /* Initialize Config structure */
TIMER _TCR_RMK ( /* Timer Control Register */
TIMER_TCR_IDLEEN_DEFAULT,
TIMER_TCR_FUNC_OF(0),
:
:
TIMER_TCR_DATOUT_0),
0x4000u, /* Period */
0x0010 /* Prescalar */
};
TIMER_Config readCfg; /* Un-initialized, to be used with getConfig API */
:
:
void main()
{
int newPreScalar; /* Local variable */
CSL_init(); /* Initialize CSL */
/* Open timer0, initialize the registers to power-on reset values */
myTim = TIMER_open (TIMER_DEV0, TIMER_OPEN_RESET);
/* Use initialized structure to configure the timer */
TIMER_config (myTim, &timCfg);
:
TIMER_start (myhTim); /* Start the timer */
:
TIMER_stop (myhTim); /* Stop the timer */
:
TIMER_getConfig (myTim, &readCfg); /* Read the prescalar value */
newPreScalar = readCfg.prsc * 2; /* Double the prescalar */
/* Update the register */
TIMER_RSETH (myhTim, PRSC, newPreScalar);
:
TIMER_start (myhTim); /* Start the timer again */
:
:
TIMER_close (myhTim); /* Close the timer, after the usage is over */
}

 

 

Timer Example Using CSL 3.x
#include <csl_timer.h>
/* −−−−−−−−−−−−−−−−−−−−−−−−−−− CSL 3.x Example −−−−−−−−−−−−−−−−−−−−−−−−−−−−−−− */
:
:
CSL_Status st = CSL_SOK; /* Status code returned by ‘open’ */
CSL_TimerObj hTimerObj; /* TIMER object defined in user data space */
CSL_TimerHandle hTimer; /* Handle will point to TIMER object on
successful ‘open’ */
CSL_TimerHwSetup myTimSetup = { /* Initialize HwSetup structure */
0xFFFF; /* Load value – counting starts from here */
CSL_TIMER_PRESCALE_CLKBY4, /* Prescalar */
CSL_TIMER_LOADMODE_RELOAD, /* Reload mode */
CSL_TIMER_EMUMODE_RUNFREE, /* Emulation halt setting */
CSL_TIMER_EXTCLOCK_ENABLE /* External clock setting */
};
:
:
void main()
{
int preScalar; /* Local variable */
CSL_sysInit(); /* CSL system initialization */
CSL_timerInit(); /* Timer module initialization */
/* Open timer0 */
hTimer = CSL_timerOpen (&hTimerObj, CSL_TIMER_0, CSL_EXCLUSIVE,
NULL, &st);
/* Configure timer using initialized HwSetup structure */
CSL_timerHwSetup (hTimer, &myTimSetup);
:
/* Start timer */
CSL_timerHwControl (hTimer, CSL_TIMER_CMD_START, NULL);
:
/* Stop timer */
CSL_timerHwControl (hTimer, CSL_TIMER_CMD_STOP, NULL);
:
/* Read current prescalar value */
CSL_timerHwStatus (hTimer, CSL_TIMER_QUERY_PRESCALE, &preScalar);
preScalar = preScalar * 2; /* Double the prescalar */
/* Configure timer with new prescalar */
CSL_timerHwControl (hTimer, CSL_TIMER_CMD_SETPRESCALE,
(int *) &preScalar);
:
/* Start timer again */
CSL_timerHwControl (hTimer, CSL_TIMER_CMD_START, NULL);
:
:
/* Close the timer after the usage is over */
CSL_timerClose (hTimer);

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
C64x CSL支持库是一种用于C64x数字信号处理器的软件开发工具。C64x是德州仪器(Texas Instruments)公司推出的一款高性能、低功耗的数字信号处理器。CSL(Chip Support Library)是一种软件开发库,提供了一系列用于C64x的功能模块和接口,帮助开发人员更方便地使用C64x进行软件开发。 C64x CSL支持库包含了多个功能模块,包括硬件抽象层(HAL)、片上总线(On-Chip Bus)、中断管理器(Interrupt Manager)、数据管理器(DMA Manager)等。这些模块可以帮助开发人员更好地管理C64x的硬件资源,并提供了一些常用功能的封装和接口供开发人员使用。 其中,硬件抽象层(HAL)提供了对C64x硬件资源的抽象和管理,使得开发人员可以更方便地访问和配置硬件资源,如片上存储器、GPIO、定时器等。片上总线(On-Chip Bus)模块提供了对C64x片上总线的访问接口,用于高效地传输数据和指令。中断管理器(Interrupt Manager)模块用于管理处理器的中断,并提供了对中断处理的接口。数据管理器(DMA Manager)模块用于管理数据的传输,使用DMA(Direct Memory Access)技术可以提高数据传输效率。 C64x CSL支持库的使用可以大大简化C64x软件开发的过程,并提高开发效率。开发人员只需调用相应的函数接口,而不用关心底层硬件的具体配置和操作。同时,C64x CSL支持库还提供了一些示例代码和文档,帮助开发人员快速上手和理解库的使用方法。 总而言之,C64x CSL支持库是一种为C64x数字信号处理器提供的软件开发工具,通过封装底层硬件资源和提供常用功能的接口,帮助开发人员更方便地开发C64x的应用程序。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值