请教一些6678中C语言常用库函数(含详细用法)的用法

第一次写博客,希望能够在两年内记录一下自己的学习历程。目前刚开始接触DSP,所以在学习DSP上会对多写点,如果有不对的地方 希望大家能够不吝赐教!话不多说,接触的6678板子,所以先从6678的中断部分开始写起,之前写了一个GPIO的,但是楼主发现脑子短路了,因为没有外部中断GPIO口来触发,所以改成了定时器的中断触发,同时也增加了我对于ti的csl库函数的理解 一、定时器的工作模式选择定时器一共有以下4中模式,在全局控制寄存器(global control register)TGCR中控制TIMMODE位可以选择以下工作模式,复位默认00
二、定时器使能标志A. 定时器处于64bit(00)和(11)工作模式时,两个寄存器需要配置,TGCR中TIMLORS、TIMHIRS配置为1,TCR(timer control regisetr)中ENAMODE_LO需要置01b,10b或者11b。B. 处于01模式(独立的2个定时器模块),可以分为2个部分TIMLO、TIMHI,TGCR中TIMLORS置1且TCR(timer control regisetr)中ENAMODE_LO需要置01b,10b或者11b,使能TIMLO。同样,TGCR中TIMHIRS置1且TCR(timer control regisetr)中ENAMODE_LO需要置01b,10b或者11b。可以参见图中。 说明:定时器使能后,定时器count开始计数,使能一次就是计数达到设定值就停止,持续使能就是一直计数,当达到设定值后,计数器值count置0。 三、定时器时钟选择定时器时钟是可以自己选择的,在TCR寄存器CLKSRC位、TIEN_LO位可以选择下图中的配置方式。 定时器的输出模式共分为2中模式,脉冲和时钟模式,在TCR中控制CP_LO、CP_HI位CP_LO、CP_HI = 0,脉冲模式可以自己控制脉冲宽度位来控制占空比。CP_LO、CP_HI =1,时钟模式就是50%的标准时钟占空比。 四、定时器中断如果我们需要定时性的中断产生,那么理所当然的我们需要配置定时器的工作模式处于持续模式。计数器达到配置值,就可以产生一个CPU中断。定时器初始化流程。
五、定时器csl中断根据上面所诉内容,可以配置一个64bit位定时器中断触发。定时器的中断,因此初始化工作就是:A. 选择工作模式,配置TGCR寄存器、B. 使能寄存器
第一步:对于在csl库中操作,对于外设一般第一步就是打开实例,返回句柄,接下来的工作都是对句柄进行操作。不过在打开时需要注意一点,就是先初始化CSL定时器模块,CSL_Status CSL_tmrInit ( CSL_TmrContext *
)//形参类型
Pointer to GPTIMER object.
Instance of GPTIMER CSL to be opened.
Module specific parameters.
Status of the function caltmrObj
定时器看门狗结构体pTmrParam
模块特定参数(可以不用管)
CSL_TmrHandle CSL_tmrOpen( href="file:///D:\ti\pdk_C_2_6\packages\ti\csl\docs\doxygen\html\struct_c_s_l___tmr_obj.html" CSL_TmrObj *pTmrObj,
CSL_InstNumtmrNum,
CSL_TmrParam *pTmrParam,
CSL_Status *pStatus
第二步:就是配置工作模式(一般csl中setup都是配置性参数)下面函数功能就是将例化的参数配置到硬件寄存器中。 CSL_Status CSL_tmrHwSetup (CSL_TmrHandlehTmr,
CSL_TmrHwSetup *hwSetup
CSL_TmrHwSetup 成员如图所示。
工作模式如下可以配置:
第三步:就是使能寄存器控制(一般在csl库函数中的control)
第二个形参控制字
六、结果分析出现问题:之前自定义中断函数进不去。检验办法:一、可以查看一些寄存器的值,比如查看控制寄存器中的IER中断号是否使能,NMEI是否使能,以及全局中断使能GIE寄存器是否使能。二、查看相应的定时器的上面使能寄存器位。解决办法:发现使用64bit定时器工作模式时,对定时器的period time定时周期配置太大, 高32bit位1000,低32bit位1000,这样时间太长。修改可以配置定时器的周期值(period time),在CSL_tmrHwSetup中的hwSetup. tmrTimerPeriodHi和tmrTimerPeriodLo的值。
存在问题:就是从板子开始工作定时器一直在运行,但是核0还没有开始跑。
C6678的中断控制器
C6678的中断控制器
分两层,一层是每个core内部的中断控制器,这个叫interruptcontroller,简写intc;一层是整个芯片的,属于芯片级的,在每个core的外面,这个叫ch...
简简单单学TI 多核DSP(2):TMS320C6678的时钟配置
转载自:http://bbs.eeworld.com.cn/thread--1.html
做MCU及其他DSP的设计时,可能大家觉得时钟的设计其实是很简单的。没错,比如现在很...
【DSP开发】C6678的中断控制器
分两层,一层是每个core内部的中断控制器,这个叫interrupt controller,简写intc;一层是整个芯片的,属于芯片级的,在每个core的外面,这个叫chip-level
CCS7.2软/硬件断点设置,精确计算代码运行时间及定时器定时时间验证(适用于C28x芯片)
C28x 芯片软件断点(software breakpoint)、硬件断点(hardware breakpoint)的设置方法
软件断点(software breakpoint)的设...
FPGA+DSP SRIO通信(四)——中断系统(二)
“It doesn’t matter where you are, you are nowhere compared to where you can go.”
经过上一篇博客FPGA+DS...
创龙TMS320C6748开发板———Timer配置 + Timer触发中断 + GPIO控制LED闪烁
最近一段时间忙着考试,没留意试用报告分享时间是到20号~
先把程序放上来供大家参考,等考完试我再把相关寄存器配置说明补上~~~先说声抱歉了
言归正传,这部分介绍Timer定时器,应用它的定时功...
没有更多推荐了,转载自:http://bbs.eeworld.com.cn/thread--1.html
做MCU及其他DSP的设计时,可能大家觉得时钟的设计其实是很简单的。没错,比如现在很热门的ARM系列的MCU,设计时没人单独提出来过什么时钟设计。为什么在提到TMS320C6678的时候要特别的提出时钟设计呢?
说实话,要想用好C6678,尤其是在多任务图像通信的场合,还真的得仔细研究其时钟系统。在这里,我将按照我个人在工作中的理解来写C6678的时钟系统。所以看起来会工程味道重一些,没有学术的味道。C6678的时钟系统架构,设计得非常人性化,使用也比较方便。其系统架构如下图:从架构图中可以清晰的看出,要理解C6678的时钟配置,就需要弄清楚图中各相关模块及其配置。尤其是对于多核配置,就显得更加重要了,后面将会告诉大家如何进行 配置。C6678的时钟架构是由PLL来控制,所以需要首先理解PLL以及PLL控制器。外部输入的时钟信号,经过PLL后输出时钟信号PLLOUT。PLL控制器是用户软件可编程的,所以为系统提供灵活多变的时钟信号,在系统架构图中表示为PLLDIV1到PLLDIV16.另外PLL控制器不仅仅只是对PLLOUT进行软件可编程的分频或者倍频等操作,同时包含有PLLM和SECCTL控制寄存器,驱动PLLM,OUTPUT DIVIDE以及BYPASS。整个C6678的时钟系统统一由PLL控制器来进行调度,经过PLL控制器后分配到8个C66X内核以及系统中的各个外设以及芯片内的各相关模块。下面就给大家详细介绍PLL控制器的可编程指令的一些应用。PLL控制器中应用得比较多的几个概念,主要是分频(PLLD),倍频(PLLM)和无效(DISABLE)。尽管说是可编程的,但是需要特别注意,有些时钟不是可以任意编程,必须遵循一定的规则。上图中已经标明。其中PLLDIV2,PLLDIV5,PLLDIV8各自的输出分频数分别为X、Y、Z。这是可以编程的,其余的就只能选定指定的数字。下面分别列出来:参考TMS320C6678数据手册中的介绍,我分别介绍配置main PLL的几个关键寄存器分频系数:上述PLL控制器的若干输出频率是可编程的,此时钟分频系数由寄存器PLLDIV2,PLLDIV5,PLLDIV8配置。倍频系数: PLLM寄存器控制PLL控制器的倍频值。PLL控制寄存器(PLLCTL)和二级PLL控制器(SECCTL)复位后,PLLCTL中的PLL使能位PLLEN可被修改,但是对PLL的功能没有影响,除非先将PLLENSRC控制位清零;非使能PLLEN后PLL进入旁路模式,此时可以对PLL进行配置,配置结束后PLLEN置位,PLL按照配置后的模式工作;SECCTL中的OUTPUT
DIVIDE位给出PLL的次分频系数(1或2)。
对于系统的MAIN PLL的详细配置流程,请参考TI官方的文档中的3.1:寄存器RSTYPE、RSTCTL及RSTCFG、RSISO给出了PLL复位控制逻辑配置单元。全面理解时钟系统,还需要与BOOT相关联。需要掌握C6678的BOOT相关的配置等等。也就是说,PLL的初始配置与BOOT相关。下表是从C6678的数据手册里面摘录下来的,便于理解前面说的那句话以及理解上面列出的PLLD和PLLM:PLL在BOOT模式下被置于PLL的状态下,PLL的初始参数是由BOOTMODE【12:10】决定。 TMS320C6678 main PLL初始化配置在TI的Demo程序中main函数调用KeyStone_main_PLL_init (10, 1)函数里的参数配置过程。例程对应硬件的输入时钟CORECLK为100MHz;PLLM设置为10*2-1=20-1(PLLM寄存器,20倍频);PLLD设置为1-1(MAINPLLCTN0中的PLLD字段,1分频);OUTPUT
DIVIDE(SECCTN)设置为2-1(对应2分频),可以计算PLL输出时钟PLLOUT=CORECLK*(PLLM+1)/(PLLD+1)/(OUTPUT
DIVIDE+) = 100MHz *20 / 1/2=1GHz。例程所对应的DSP CorePac主频(SYSCLK1)为1GHz;相应外设控制器时钟SYSCLK2~11是在此基础上的分频。上述寄存器设置参看TMS320C6678数据手册及用户手册.下面给大家讲解的是DDR3的时钟配置:DDR3 PLL为DDR3 存储控制器提供接口时钟;C6678上电复位后正常工作前需要为DDR3 PLL编程配置有效的时钟频率。DDR3 PLL的框图:该PLL输入时钟DDRCLK为外部输入差分时钟; 输出时钟PLLOUT驱动DDR3接口,控制DDR3的数据读写速率。DDR3 PLL配置不需要专用PLL 控制器,只需位于 BootCfg模块中的DDR3PLLCTN0和DDR3PLLCTN1,参考TMS320C6678数据手册7.7 DDR3PLL部分的说明。在对该寄存器写入配置前,需要先解锁(un-locking)KICK0/KICK1寄存器;同样修改配置寄存器后,需要锁定(locking)KICK0/KICK1寄存器。DDR3 PLL配置寄存器各参数描述参考TMS320C6678数据手册;寄存器与Main PLL配置寄存器PLLCTN和SECCTN相似。DDR3 PLL初始化流程如下:到此为止,完成了对DDR3工作时钟频率的初始化,下一篇将会接着给大家讲解DDR3的时钟如何继续进行配置直到 正常运行。
TI C6678多核DSP的架构简介
TMS320C6678是KeyStone架构的8核DSP处理器,每个CorePac核的频率最高为1.25 GHz,提供强大的定点和浮点运算能力,可以广泛地应用在通信、雷达、声纳、火控、电子对抗等领域。...
TMS320C6678基础学习——TMS320C6678 OverView
TMS320C6678 OverView花了几个小时将TMS320C6678的技术手册断断续续的看完了,主要了解了板子特性,运算单元,供电序列,引导模式等内容,关于寄存器部分的内容都没有怎么看,等要用...
TMS320C6678中Hyperlink的理解
tms320c6678 hyperlink的使用
文章主要介绍了一下,TMS320C6678 DSP的DDR3的硬件设计需要注意的问题以及相应的软件调试的问题。...
开发环境:DSP6678开发板+CC5.5+win7。
因为项目需要把数据81M的数据放入DDR3中处理,所以第一步就是如何加载数据。DSP6678识别的数据类型是dat、bin、raw、yuv。
这块板卡整板的调试,到目前为止还是相对比较顺利的,还没有遇到大的问题,也就是当时S3的JTAG有点问题,上周五把DSP和Virtex-6的JTAG都连上,下载了程序,以及XCF128也能下载进去,接下...
What's the ZQ Calibration command?
it used to calibrate DRAM Ron & ODT values. In normal operation,...
一、 问题描述: ERROR:NgdBuild:455 - logical net 'clk400m_p' has multiple driver(s) ERROR:NgdBuild:455 - lo...
没有更多推荐了,DSP C6678 中stm_d.c66xx_elf.lib库函数可以在哪找到?
[问题点数:20分]
本版专家分:0
CSDN今日推荐
匿名用户不能发表回复!
其他相关推荐
经过一段时间,DSP-C6678芯片上的驱动程序,终于调试成功了。
主要驱动外设有如下:
【详细资料,DSP C语言代码。咨询qq:】
初识TMDXEVM6678L EVM关键特性介绍:TMDXEVM6678L是一块高性能,低成本的独立开发板。
TI多核DSP TMS320C6678
512M DDR3-1333内存
64M NAND FLASH
搞数据存储密度的解决方案,读取是一次读一个块,擦除快,写入快
16M NOR FLASH 适合存储少量代码,可直接执行里面的代码,内存随机读取,读取快
两个千兆网口(10/100/10
之前测试过程中曾经遇到如下问题:
将DSP的网络IP配置设置为DHCP方式会出现错误,无法获取IP地址,打印信息如下
[C66xx_0] Service Status: DHCPC
[C66xx_0] Service Status: DHCPC
C6678多核DSP开发——hello world
本篇学习笔记主要记录在C6678实验板上实现打印“hello world”信息功能,主要目的是熟悉CCS开发环境和硬件调试过程。
板子工作需要12V稳定电源,我去拆了一个废弃的电脑主机的电源,还真的挺好使。要将P120P的插座的绿线和任意一条黑线短接,四线插座就会输出+12V电压,黄线为正,黑线为负。最好是在短接的电路上串联一个开关,以方便控
摘要:嵌入式应用中采用多处理系统所面临的主要难题是多处理器内核之间的通信。对Key-Stone架构TMS320C6678 处理器的多核间通信机制进行研究,利用处理器间中断和核间通信寄存器,设计并实现了多核之间的通信。从系统的角度出发,设计与仿真了两种多核通信拓扑结构,并分析对比了性能。对设计多核DSP 处理器的核间通信有一定的指导价值。关键词: TMS320C6678;KeyStone;处理器间中...
分两层,一层是每个core内部的中断控制器,这个叫interrupt controller,简写intc;一层是整个芯片的,属于芯片级的,在每个core的外面,这个叫chip-level
interrupt controller,缩写CIC。
分两层其实两层功能也不同,这个不用细说,intc可以直接处理一些中断,这些是每个核都同样的,但是还有一些中断,如果有需要不能让所有的核都能看到,则
从文件中读取数据,发送到DSP中,DSP处理后,返回数据,写入到输出文件中
转自:点击打开链接
GEL(Genenal Extension Language,通用扩展语言),可以配置CCS的工作环境和初始化CPU,一句话---初始化目标板。
1、初始化外部存储空间
在开始学习DSP时,有时会遇到这样的错误:Data verification failed at address 0x8XXXXXXX,仔细观察会发现,出错的地址
The Texas Instruments VLIB is an optimizedImage/Video Processing Functions Library for C programmers using c674x devices.It includes many C-callable, assembly-optimized, general-purpose image/videopro
文章主要介绍了一下,TMS320C6678 DSP的SPI FLASH的硬件设计需要注意的问题以及相应的软件调试的问题。德州仪器 (TI) 是一家跨国性的半导体设计与制造公司。因具有100,000+个以上模拟IC和嵌入式处理器而独树一帜、同时兼备软件、工具以及业界最大的销售团队/技术支持团队。
Texas Instruments Incorporated. 版权所有.德州仪器 (TI) 是一家跨国性的半导体设计与制造公司。因具有100,000+个以上模拟IC和嵌入式处理器而独树一帜、同时兼备软件、工具以及业界最大的销售团队/技术支持团队。
Texas Instruments Incorporated. 版权所有.

我要回帖

更多关于 c语言数学库函数 的文章

 

随机推荐