|
技术交流 | 电路欣赏 | 工控天地 | 数字广电 | 通信技术 | 电源技术 | 测控之家 | EMC技术 | ARM技术 | EDA技术 | PCB技术 | 嵌入式系统 驱动编程 | 集成电路 | 器件替换 | 模拟技术 | 新手园地 | 单 片 机 | DSP技术 | MCU技术 | IC 设计 | IC 产业 | CAN-bus/DeviceNe |
C6000的软件开发 |
作者:leassun 栏目:DSP技术 |
看了几天的6000软件开发,有些疑惑. 由于对于TI公司的其他系列DSP习惯于直接写汇编进行开发调试,汇编有汇编的优势.汇编更接近底层,容易对寄存器以及程序流的直接控制,因此方便了调试,更踏实,能直接查看DSP各种状态. 6000的开发,好像用C的更多,虽然C的效率已经有了改善,但是毕竟是高级语言,程序的调用非常方便,但是无法一目了然的对DSP的状态与程序执行过程相关联.无法掌握DSP底层的实际操作过程以及状态.因此给调试带来不便. 几天的学习,依旧试着用汇编写程序,但居然发现C6000的汇编居然不提供子程序调用语句(例如3000中的CALL,2000中的CALA).使得汇编程序难以组织.给编写汇编程序带来了很多不方便的地方.其次初次用C写的话,许多格式和内部事先定义好的子程序看起来太费劲了.另外对最终汇编程序不容易控制,例如在在_c_int00的汇编中居然对SP和DP赋值,可是我找了半天也没有发现6000中有这个寄存器. 因此在写程序时,不知所措.有什么办法可以解决汇编中无法实现子程序调用的问题[尽管可以用跳转指令代替,但返回时比较麻烦,而且不知道SP地址:(]不知各位有没有好的建议!如何来安排程序结构. |
2楼: | >>参与讨论 |
作者: leassun 于 2005/7/14 11:03:00 发布:
有人可以聊聊嘛? 一起讨论一下吧!C的格式要求好像比asm更复杂些,也或许是我上手比较难!大家有什么好建议可以一起探讨探讨! |
3楼: | >>参与讨论 |
作者: dsp5509 于 2005/7/15 21:21:00 发布:
6000的如何编写高效率代码里面有方法论 ti建议先用C写,这样维护方便,速度快。然后看能否满足性能,不能则优化C函数,如还不能满足要求,再用线性汇编优化关键代码,一般这样都能满足要求。不推荐直接用汇编。因为ti的6000汇编优化做的很好,用C可以达到极致的70%到90% |
4楼: | >>参与讨论 |
作者: shixiudong 于 2005/7/16 14:45:00 发布:
看来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 于 2005/7/16 15:18:00 发布:
用CSL会使程序变得超级大啊 |
6楼: | >>参与讨论 |
作者: leassun 于 2005/7/29 17:13:00 发布:
非常感谢大家的讨论 看了大家的留言,受益匪浅!按照我的理解,汇编更加直接,调试方便,可以清楚的控制底层寄存器,了解其工作过程,但维护起来非常困难;c,和多数高级语言一样,简单明了,易于实现,但无法从底层的视角去解释程序运行过程,最怕底层的冲突。看来还是得不断的学习,感觉最好从汇编入手,熟悉了之后再开始高级语言的开发!大家说呢! |
7楼: | >>参与讨论 |
作者: shixiudong 于 2005/7/30 16:33:00 发布:
玩6000不建议从汇编入手 直接用dsp6000的汇编编程,非常困难,相信一般人坚持不下来的,更不可能编写很大的程序。 这就像在windowsXP环境下,用8086汇编编写一个复杂的可视化程序一样不切实际。 但是在编写dsp6000的bootloader程序的时候,往往必须用汇编来写,但这时候想必已经非常熟练dsp6000的c编程了。 史修栋 |
8楼: | >>参与讨论 |
作者: leassun 于 2005/7/31 16:23:00 发布:
硬件工程的开发 我觉得硬件与软件工程师最大的区别在于调试时是否与计算机独立!很多编写DSP的程序员在我看来应该属于硬件工程师,因为他们在工作过程中,必须学会使用一大堆的仪器,必须和硬件相结合,说到底也就是应该知道各状态控制寄存器以及内存的分配!而软件工程师往往只需要一台独立的电脑就可以完成工作。所以就我看来,编写DSP程序必须了解DSP结构、概念以及底层的硬件操作,譬如中断相应过程等等……所以在学习6000的过程中,最好从汇编开始,学会观察各控制器的设置以及作用,更加帮助熟悉c6000的结构特点。以次在以后设计中完善对C6000的使用配置。 当然,就目前趋势而言,大有社会分工,技术分工更加细致,最理想的情况就是独立C6000的功能结构来编写程序,这样可以大大提高效率,降低企业成本,培养独立的软件工程师。 而我所说的,硬件工程师参与软件的编制,可以更为深刻的了解DSP功能结构,对硬件可以灵活配置,提高硬件水平! 扯远了,呵呵! 正所谓术业有分工!硬件与软件的独立对社会来说是件好事,可对于人来说,未必是件好事! 此愚之拙见! |
9楼: | >>参与讨论 |
作者: dsp5509 于 2005/8/1 22:56:00 发布:
一点感觉 其实这没有什么好不好的事情。关键是你要能最好的完成项目。如果有时间,当然可以用汇编尽可能优化程序性能。特别是在图像处理领域。如果不是这样,简单的在6000上实现基站算法,大概就不用汇编了:) |
10楼: | >>参与讨论 |
作者: wyj21st 于 2005/8/15 16:26:00 发布:
一点体会 对于初学者先从C入手,然后搞汇编.如果只是实现一些基本功能而对实时性要求不高,大可不必用汇编.如果你是搞图像的,对算法的实时性要求很高,往往需要用汇编来优化算法,这就需要你掌握汇编了.当然boot_loader是用汇编编写的. |
11楼: | >>参与讨论 |
作者: lygany 于 2005/8/15 22:20:00 发布:
来这个14615902 dsp群讨论吧,里面高人还是很多di 呵呵,非广告 |
|
|
免费注册为维库电子开发网会员,参与电子工程师社区讨论,点此进入 |
Copyright © 1998-2006 www.dzsc.com 浙ICP证030469号 |