5706|15

57

帖子

0

TA的资源

一粒金砂(初级)

楼主
 

请教一些DSP编程中不解的问题 [复制链接]

刚有机会接触一个做DSP开发的公司,遇到许多不明白的问题,想来请教一下这里的高手。

他们的产品大多数用的TI的DSP芯片。他们的程序在eclipse里开发,却不在那里调试,全部要到DOS环境下编译运行,要做许多的make文件,看得头很晕。开发出的程序却都是有界面的。他们好像用subversion来管理程序,有一个叫repository的地方专门用来放不同项目的程序,管理看起来很科学,虽然不是很明白。

他们在开发时用C++,然后用code composer把他翻译成汇编语言装到板子上运行。这种C++却是可以和硬件打交道的,比如他们可以控制数据的内存区,以改善运行速度,所以感觉这不是普通的C++。常常在TI的资料上看到equivalent C的字样,不知道他们用的是不是属于equivalent C呢,而这个equavalent C是不是也属于一种介于C和汇编之间的一种高级汇编语言呢。

更加困惑的是他们在程序里尽量避免使用动态内存分配,从没看见过new int[xx], 只看到过 int  a[xx],甚至 static int a[xx].,这里的xx通常还是上k的数字。记得学习编程的时候在数组很大时是不建议用堆栈的,他们为什么不忌讳这个问题呢,是环境不同吗。

他们还会大量地使用全局变量和静态数组,感觉这都是编程十分敏感的地方,为什么他们可以不加思索地到处用呢。

总之现在很着急,有点无从下手的感觉,如果能得到大家有关问题的一点点提示,相信对我都是很大的帮助,谢谢!



最新回复

谢谢你,原来是这个意思,下次看见它再也不用疑惑了:)   详情 回复 发表于 2009-9-26 00:03
点赞 关注

回复
举报

78

帖子

0

TA的资源

一粒金砂(初级)

沙发
 
Just know about Embedded C++, answering one of my questions.

Embedded C++(EC++) is a dialect of the C++ programming language for embedded systems. It was defined by an industry group led by major Japanese CPU manufacturers, including NEC, Hitachi, Fujitsu, and Toshiba, to address the shortcomings of C++ for embedded applications. The goal of the effort is to preserve the most useful object-oriented features of the C++ language yet minimize code size while maximizing execution efficiency and making compiler construction simpler
 
 

回复

61

帖子

0

TA的资源

一粒金砂(初级)

板凳
 
说的跟真的似的!
 
 
 

回复

76

帖子

0

TA的资源

一粒金砂(初级)

4
 
真心地请教大侠,Embedded C++申请内存和在windows里有什么不同的规范吗,为什么他们不管多大都用静态数组呢,谢谢

引用 2 楼 zyzhang365 的回复:
说的跟真的似的!

 
 
 

回复

69

帖子

0

TA的资源

一粒金砂(初级)

5
 
个人觉得对于实时系统,这里是用的是类似于空间换时间的概念,首要的追求的是实时性。
如果使用动态内存分配与释放,是需要花时间的,很多情况下满足不了要求。
动态内存管理是比较复杂的一件事。
 
 
 

回复

70

帖子

0

TA的资源

一粒金砂(初级)

6
 
Thanks very much!!

I guess the stack is not a problem in embedded system, otherwise it will cause problems in stack, right?

Sorry to bother you by my rubbish English. No Chinese input right now.

引用 4 楼 zyzhang365 的回复:
个人觉得对于实时系统,这里是用的是类似于空间换时间的概念,首要的追求的是实时性。
如果使用动态内存分配与释放,是需要花时间的,很多情况下满足不了要求。
动态内存管理是比较复杂的一件事。
 
 
 

回复

82

帖子

0

TA的资源

一粒金砂(初级)

7
 
堆栈是任何时候都需要当心的。
全局数组与静态数组和堆栈的空间不是一回事。
 
 
 

回复

69

帖子

0

TA的资源

一粒金砂(初级)

8
 
再次感谢你的耐心! 重新复习了一下有关的问题,发现我很多概念本来就不清,现在更是一团乱麻,不过我明白了只有自动数组才和堆栈有关,以前学C的时候记得很大的数组最好动态分配,因为堆栈没有那么大,现在才知道这和静态数组是没有关系的,就如你所说不是一回事。

说到静态数组,除了全程可见还有什么优越性呢,因为是图像处理程序,每个数组都有几百K那么大,一个算法里而往往需要许多个这么大的空间,申请静态数组时总担心内存不够用。最不理解的是连成员函数都定义成静态的,一律都是  static fun(); 你能想明白为什么吗。

感谢你的多次停留,可惜不在一个城市,否则一定请你吃饭谢过:)

 
 
 

回复

62

帖子

0

TA的资源

一粒金砂(初级)

9
 
DSP一般都是做单一任务的,要求可靠性高。使用的静态数组是正常的,因为所需的RAM是已知的,只要硬件有那么多RAM就可以了。动态分配的不确定性比较多。容易产生BUG。
 
 
 

回复

79

帖子

0

TA的资源

一粒金砂(初级)

10
 
严格讲,堆栈是指栈(stack), 堆是指(heap),这个区别你应该已经明白了。这个是指数据的存储区域。
找本C语言的书看看吧。
static fun(); 这是指函数是局部函数,文件外不可见;
static 修饰变量表示静态变量,如果在函数内部只表示在函数内部可见,在函数外部只表示在本文件内可见。
 
 
 

回复

73

帖子

0

TA的资源

一粒金砂(初级)

11
 
非常感谢你的回复,现在明白了:)头像上的宝宝好可爱呵呵


引用 8 楼 azmao 的回复:
DSP一般都是做单一任务的,要求可靠性高。使用的静态数组是正常的,因为所需的RAM是已知的,只要硬件有那么多RAM就可以了。动态分配的不确定性比较多。容易产生BUG。
 
 
 

回复

77

帖子

0

TA的资源

一粒金砂(初级)

12
 
再次谢谢你,本来准备去温习功课再回来问你了,可是临走前想再多问一句,静态函数是局部函数,文件外不可见,难道是说我在其他文件里不能调用这个函数吗?



引用 9 楼 zyzhang365 的回复:
严格讲,堆栈是指栈(stack), 堆是指(heap),这个区别你应该已经明白了。这个是指数据的存储区域。
找本C语言的书看看吧。
static fun(); 这是指函数是局部函数,文件外不可见;
static 修饰变量表示静态变量,如果在函数内部只表示在函数内部可见,在函数外部只表示在本文件内可见。

 
 
 

回复

84

帖子

0

TA的资源

一粒金砂(初级)

13
 
引用 11 楼 karen99 的回复:
再次谢谢你,本来准备去温习功课再回来问你了,可是临走前想再多问一句,静态函数是局部函数,文件外不可见,难道是说我在其他文件里不能调用这个函数吗?


引用 9 楼 zyzhang365 的回复:
严格讲,堆栈是指栈(stack), 堆是指(heap),这个区别你应该已经明白了。这个是指数据的存储区域。
找本C语言的书看看吧。
static fun(); 这是指函数是局部函数,文件外不可见;
static 修饰变量表示静态变量,如果在函数内部只表示在函数内部可见,在函数外部只表示在本文件内可见。




在其它文件里不能调用。
 
 
 

回复

69

帖子

0

TA的资源

一粒金砂(初级)

14
 
equivalent C
-----------
这是讲操作原理时的代码吧? 意思是你可以用任何语言,但他们只给出C的代码示范.........
 
 
 

回复

62

帖子

0

TA的资源

一粒金砂(初级)

15
 
这个我真的不懂了,如果我们定义一个类用一个文件,然后一个.h 文件,那么我们开发其他程序不都是在另一个文件里吗,怎么不能调用静态类成员函数呢。

引用 12 楼 zyzhang365 的回复:
引用 11 楼 karen99 的回复:
再次谢谢你,本来准备去温习功课再回来问你了,可是临走前想再多问一句,静态函数是局部函数,文件外不可见,难道是说我在其他文件里不能调用这个函数吗?


引用 9 楼 zyzhang365 的回复:
严格讲,堆栈是指栈(stack), 堆是指(heap),这个区别你应该已经明白了。这个是指数据的存储区域。
找本C语言的书看看吧。
static fun(); 这是指函数是局部函数,文件外不可见;
static 修饰变量表示静态变量,如果在函数内部只表示在函数内部可见,在函数外部只表示在本文件内可见。




在其它文件里不能调用。
 
 
 

回复

84

帖子

0

TA的资源

一粒金砂(初级)

16
 
谢谢你,原来是这个意思,下次看见它再也不用疑惑了:)

引用 13 楼 great_bug 的回复:
equivalent C
-----------
这是讲操作原理时的代码吧? 意思是你可以用任何语言,但他们只给出C的代码示范.........
 
 
 

回复
您需要登录后才可以回帖 登录 | 注册

随便看看
查找数据手册?

EEWorld Datasheet 技术支持

相关文章 更多>>
关闭
站长推荐上一条 1/9 下一条

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

About Us 关于我们 客户服务 联系方式 器件索引 网站地图 最新更新 手机版

站点相关: 国产芯 安防电子 汽车电子 手机便携 工业控制 家用电子 医疗电子 测试测量 网络通信 物联网

北京市海淀区中关村大街18号B座15层1530室 电话:(010)82350740 邮编:100190

电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2025 EEWORLD.com.cn, Inc. All rights reserved
快速回复 返回顶部 返回列表