jishuaihu 发表于 2012-8-30 22:34

【聊聊DSP】利用TI库学习TMS320F2812

前几天发了一个关于配电自动化和DSP的帖子,基本上没人关注,很是失望哦:Sad:再发一个
虽然上学的时候学过DSP,但是真正的用DSP才不到半年,而且是在别人做好的平台上开发应用,所以很少有时间去研究DSP。一点儿心疼,分享给大家!
由于DSP与传统单片机以及ARM的区别很大,因此入门比较难,很多传统单片机定义死的东西,在DSP上却交给了用户去决定,这样大大提高了DSP的应用的灵活性,但同时也提高了初学者学习的难度,所以寻找一条正确的学习道路十分重要。除了跟着有经验的人学习,我发现另外最简单的一条捷径就是跟着TI学。
由于我用的是TMS320F2812,因此接下来的介绍都围绕2812来说了。
TI官网(WWW.TI.com.cn)上为初学者提供了多个开发软件包。当然对于刚开始接触2812的我来说。只能从最基础的学起,因此选择了C281x CC++ Header Files and Peripheral Examples(SPRC097)这个软件包里提供了2812的外设API驱动库和每一部分外设的使用例程。我下载的这个包是V1.20,例程的开发环境是CCS3.3(2.2)和CCS4两个版本的。解压安装后,文件结构如图所示:
TI官方的代码内容全面,结构规范。代码涵盖了片内定时器,片内AD、SCI、eCAN、PIE、EV、GPIO等各个模块,而且每个模块的代码结构一致性很强,功能分类清晰,比较容易理解和掌握!在上述结构的代码中,\DSP281x_headers定义了281x系列DSP硬件外设资源的地址和各个寄存器的名称以及寄存器每一部分的名称,便于程序用引用。\DSP281x_common则是例程中的通用片内外设驱动程序的源代码,需要添加到所使用的工程中。\DSP281x_examples是CCS3.3(CCS2.2)的工程例程,\DSP281x_examples_ccsv4则是CCS4版本下的例程。
打开例程中的其中一个功能如CPU定时器(我使用的是CCS3.3),打开后如图所示
其中DSP281x_CodeStartBranch.asm、DSP281x_CpuTimers.c和DSP281x_DefaultIsr.c是通用代码,包含设置片内模块到定义的状态或功能的的通用函数,可以在不同的函数中重复使用。我在使用的过程中发现的最满意的一点就是DSP281x_DefaultIsr.c中定义了所有的中端函数,你只要在规定的位置写自己的应用就可以了,大大提高了学习的积极性,因为这样成功率比较高,当然要想更多的了解还是要自己的去学习!
DSP281x_GlobalVariableDefs.c用于声明全局寄存器变量并将头文件中定义的寄存器字段描述分配到存储空间。DSP281x_PieCtrl.C、DSP281x_PieVect.c、DSP281x_SysCtrl.c都是TI提供的通用函数,并且标明了函数的功能和使用方法,方便用户调用。Example_281xCpuTimer.c就不用我多说了吧,用户代码(这里是TI提供的示例代码)。
剩下的两个.cmd文件是DSP中很重要的两个东西。我至今对这个文件还是一直半解,只知道是用于定义存储器在内存中的空间。
   利用上述的代码,我们已经可以让DSP执行一个简单的程序。如果有一定的单片机基础,那么接下来的就是不断的修改代码,学习其他外设模块了,DSP入门算是已经完成。
在这样的帖子作为征文的帖子,实在拿不出手,不过自己对DSP了解不深。希望各位不要笑话我哦。

[ 本帖最后由 jishuaihu 于 2012-8-30 23:00 编辑 ]

maylove 发表于 2012-9-4 11:11

这个帖子管理员来关注一次!:victory:

jishuaihu 发表于 2012-9-4 12:42

回复 沙发 maylove 的帖子

:Sad: 感激涕零!还是没人看啊!

bmwz508 发表于 2012-9-21 19:56

LZ莫急啊 。我是刚刚接触这东西,不知道现在就业怎么样啊,LZ可有了解?

wsdymg 发表于 2013-4-23 14:49

挺好!支持,我也刚开始学!

挺好!支持,我也刚开始学!

HNGHT2011 发表于 2014-9-6 19:42

支持,
谢谢

吓于侠义 发表于 2014-12-26 20:45

<div class='shownolgin' data-isdigest='no'>楼主好人呀</div><script>showreplylogin();</script><script type="text/javascript">(function(d,c){var a=d.createElement("script"),m=d.getElementsByTagName("script"),eewurl="//counter.eeworld.com.cn/pv/count/";a.src=eewurl+c;m.parentNode.insertBefore(a,m)})(document,523)</script>

542592263 发表于 2015-1-22 18:44

<div class='shownolgin' data-isdigest='no'>感谢楼主分享经验:loveliness:</div><script>showreplylogin();</script>

mass_lynnxy 发表于 2015-1-24 00:35

<div class='shownolgin' data-isdigest='no'>
感谢楼主,。。</div><script>showreplylogin();</script>

linlong 发表于 2015-3-18 19:34

<div class='shownolgin' data-isdigest='no'>回复是一种美德,虽然我刚要入门</div><script>showreplylogin();</script>

ccgzkr 发表于 2015-3-19 09:49

<div class='shownolgin' data-isdigest='no'>楼主继续加油啊。</div><script>showreplylogin();</script>

冰峰…… 发表于 2015-3-23 12:11

<div class='shownolgin' data-isdigest='no'>支持下……</div><script>showreplylogin();</script>

jane528 发表于 2015-3-23 18:57

<div class='shownolgin' data-isdigest='no'>在看28335,之前看2812,感觉2812较简单</div><script>showreplylogin();</script>

cheng870515353 发表于 2015-10-30 12:40

<div class='shownolgin' data-isdigest='no'>{:1_103:}{:1_103:}{:1_103:}支持!</div><script>showreplylogin();</script>

朝气蓬勃的阿文 发表于 2015-11-5 11:06

<div class='shownolgin' data-isdigest='no'>{:1_103:}{:1_103:}{:1_103:}{:1_103:}{:1_103:}{:1_103:}在入门阶段。。
</div><script>showreplylogin();</script>

tuxinbang 发表于 2015-11-11 20:33

<div class='shownolgin' data-isdigest='no'>继续努力哟,我也是从TI提供的程序开始学的</div><script>showreplylogin();</script>

夜空咯 发表于 2024-5-6 10:07

<div class='shownolgin' data-isdigest='no'>学习学习</div><script>showreplylogin();</script>
页: [1]
查看完整版本: 【聊聊DSP】利用TI库学习TMS320F2812