登录 免费注册 首页 | 行业黑名单 | 帮助
维库电子市场网
技术交流 | 电路欣赏 | 工控天地 | 数字广电 | 通信技术 | 电源技术 | 测控之家 | EMC技术 | ARM技术 | EDA技术 | PCB技术 | 嵌入式系统
驱动编程 | 集成电路 | 器件替换 | 模拟技术 | 新手园地 | 单 片 机 | DSP技术 | MCU技术 | IC 设计 | IC 产业 | CAN-bus/DeviceNe

C6000的软件开发

作者:leassun 栏目:DSP技术
C6000的软件开发
   看了几天的6000软件开发,有些疑惑.
   由于对于TI公司的其他系列DSP习惯于直接写汇编进行开发调试,汇编有汇编的优势.汇编更接近底层,容易对寄存器以及程序流的直接控制,因此方便了调试,更踏实,能直接查看DSP各种状态.
   6000的开发,好像用C的更多,虽然C的效率已经有了改善,但是毕竟是高级语言,程序的调用非常方便,但是无法一目了然的对DSP的状态与程序执行过程相关联.无法掌握DSP底层的实际操作过程以及状态.因此给调试带来不便.
   几天的学习,依旧试着用汇编写程序,但居然发现C6000的汇编居然不提供子程序调用语句(例如3000中的CALL,2000中的CALA).使得汇编程序难以组织.给编写汇编程序带来了很多不方便的地方.其次初次用C写的话,许多格式和内部事先定义好的子程序看起来太费劲了.另外对最终汇编程序不容易控制,例如在在_c_int00的汇编中居然对SP和DP赋值,可是我找了半天也没有发现6000中有这个寄存器.
   因此在写程序时,不知所措.有什么办法可以解决汇编中无法实现子程序调用的问题[尽管可以用跳转指令代替,但返回时比较麻烦,而且不知道SP地址:(]不知各位有没有好的建议!如何来安排程序结构.

2楼: >>参与讨论
leassun
有人可以聊聊嘛?
一起讨论一下吧!C的格式要求好像比asm更复杂些,也或许是我上手比较难!大家有什么好建议可以一起探讨探讨!


3楼: >>参与讨论
dsp5509
6000的如何编写高效率代码里面有方法论
ti建议先用C写,这样维护方便,速度快。然后看能否满足性能,不能则优化C函数,如还不能满足要求,再用线性汇编优化关键代码,一般这样都能满足要求。不推荐直接用汇编。因为ti的6000汇编优化做的很好,用C可以达到极致的70%到90%

4楼: >>参与讨论
shixiudong
看来leassun对于c6000的编程没概念
c6000编程,很类似标准的c语言编程,需要掌握很多的ti提供的api函数,才能得心应手。

1、对于底层寄存器的控制,你根本不需要直接对控制寄存器操作,而只要采用相应的API函数操作,即可。这类API函数称作CSL,具体参看文档(SPRU401):
TMS320C6000 Chip SUPPORT Library API Reference Guide.pdf

2、在C6000中是不可能用汇编编写大型程序的。另外,如果采用了BIOS这种RTOS,只能采用C来写主要程序。我的体会,如果采用了BIOS+RF5+TCP/IP这种架构,需要个人编写的程序,一般只占总程序量的四分之一或者更少。


史修栋
www.MachineVision.cn

* - 本贴最后修改时间:2005-7-16 14:58:12 修改者:shixiudong

5楼: >>参与讨论
jodyking
用CSL会使程序变得超级大啊
 
6楼: >>参与讨论
leassun
非常感谢大家的讨论
看了大家的留言,受益匪浅!按照我的理解,汇编更加直接,调试方便,可以清楚的控制底层寄存器,了解其工作过程,但维护起来非常困难;c,和多数高级语言一样,简单明了,易于实现,但无法从底层的视角去解释程序运行过程,最怕底层的冲突。看来还是得不断的学习,感觉最好从汇编入手,熟悉了之后再开始高级语言的开发!大家说呢!

7楼: >>参与讨论
shixiudong
6000不建议从汇编入手

直接用dsp6000的汇编编程,非常困难,相信一般人坚持不下来的,更不可能编写很大的程序。

这就像在windowsXP环境下,用8086汇编编写一个复杂的可视化程序一样不切实际。

但是在编写dsp6000的bootloader程序的时候,往往必须用汇编来写,但这时候想必已经非常熟练dsp6000的c编程了。



史修栋


8楼: >>参与讨论
leassun
硬件工程的开发
我觉得硬件与软件工程师最大的区别在于调试时是否与计算机独立!很多编写DSP的程序员在我看来应该属于硬件工程师,因为他们在工作过程中,必须学会使用一大堆的仪器,必须和硬件相结合,说到底也就是应该知道各状态控制寄存器以及内存的分配!而软件工程师往往只需要一台独立的电脑就可以完成工作。所以就我看来,编写DSP程序必须了解DSP结构、概念以及底层的硬件操作,譬如中断相应过程等等……所以在学习6000的过程中,最好从汇编开始,学会观察各控制器的设置以及作用,更加帮助熟悉c6000的结构特点。以次在以后设计中完善对C6000的使用配置。
当然,就目前趋势而言,大有社会分工,技术分工更加细致,最理想的情况就是独立C6000的功能结构来编写程序,这样可以大大提高效率,降低企业成本,培养独立的软件工程师。
而我所说的,硬件工程师参与软件的编制,可以更为深刻的了解DSP功能结构,对硬件可以灵活配置,提高硬件水平!
扯远了,呵呵!
正所谓术业有分工!硬件与软件的独立对社会来说是件好事,可对于人来说,未必是件好事!
此愚之拙见!

9楼: >>参与讨论
dsp5509
一点感觉
其实这没有什么好不好的事情。关键是你要能最好的完成项目。如果有时间,当然可以用汇编尽可能优化程序性能。特别是在图像处理领域。如果不是这样,简单的在6000上实现基站算法,大概就不用汇编了:)

10楼: >>参与讨论
wyj21st
一点体会
对于初学者先从C入手,然后搞汇编.如果只是实现一些基本功能而对实时性要求不高,大可不必用汇编.如果你是搞图像的,对算法的实时性要求很高,往往需要用汇编来优化算法,这就需要你掌握汇编了.当然boot_loader是用汇编编写的.

11楼: >>参与讨论
lygany
来这个14615902 dsp群讨论吧,里面高人还是很多di
呵呵,非广告

参与讨论
昵称:
讨论内容:
 
 
相关帖子
cpu的程序要用什么语言编才更好
DSP6711片子实现视频采集与处理,输入A/D与视频输出该用什么片子
关于用汇编编写程序
选什么样的DSP可以实现实时视频处理和显示啊??
周期寄存器的值是怎么算得?
免费注册为维库电子开发网会员,参与电子工程师社区讨论,点此进入


Copyright © 1998-2006 www.dzsc.com 浙ICP证030469号