由买买提看人间百态

boards

本页内容为未名空间相应帖子的节选和存档,一周内的贴子最多显示50字,超过一周显示500字 访问原贴
EE版 - embedded language trend - What's wrong with C++?
相关主题
Embedded, RTOS应该怎么准备 (转载)EE想转偏CS方向,该找什么工作和选什么研究方向?
请教如何转embedded software engineer为什么这儿很少人讨论嵌入式的东东?
发个LA附近嵌入式软件方面的招人信息新手问题
嵌入式embedded为啥算EE非CS学EE的MASTER在美国 需要考什么证书吗?哪个方向就业比较好?
帮忙看看!是继续找embedded还是转CS请教大家一个方向的问题--后续
嵌入式编程请问:嵌入式,无线传感器网络,物联网3者的联系
请问Embedded System是什么样的一个研究方向呢?怎么准备GE 的嵌入式 phone/ onsite面试
国内有什么便宜好用的公司写嵌入式软件吗?为什么EE的不好找工作?
相关话题的讨论汇总
话题: c++话题: matlab话题: embedded话题: what话题: java
进入EE版参与讨论
1 (共1页)
Q****r
发帖数: 7340
1
最近看杂志说,嵌入式设计C还是占大多数,十几年前以为C最后会被C++代替,然后在
被Java代替,结果Embedded System Design杂志每年调查的数据显示,C的使用率曾经
下降过一段时间,后来又稳步上升了,C++上升过一段时间,05年后就是稳步下降了,
现在只有20%的项目在使用C++。Java略为上升,基本上就是Assembly的下降而已。
没想到C还这么坚挺。
What's wrong with C++?
d****i
发帖数: 4809
2
C++在嵌入式设计上比C的overhead还是多了一些,另外,由于绝大多数的RTOS都是C写
的,自然C的使用率高一些,不过往上层走的话C++用的会多一点,至于Java完全不可能
代替C和C++的地位,由于多了一层虚拟机,overhead多得不是一点点,嵌入式需要的是
实时,绝对容不得latency高。现在所谓的Java在嵌入式的应用,那是指用Java写的
Android的应用,这个不能算嵌入式编程。

【在 Q****r 的大作中提到】
: 最近看杂志说,嵌入式设计C还是占大多数,十几年前以为C最后会被C++代替,然后在
: 被Java代替,结果Embedded System Design杂志每年调查的数据显示,C的使用率曾经
: 下降过一段时间,后来又稳步上升了,C++上升过一段时间,05年后就是稳步下降了,
: 现在只有20%的项目在使用C++。Java略为上升,基本上就是Assembly的下降而已。
: 没想到C还这么坚挺。
: What's wrong with C++?

s********k
发帖数: 6180
3
除了overhead,还有一个是C++确实东西太多太复杂,embedded有用C++,也是基本上用
最简单的,像什么RAII,STL之类的肯定不碰,就是virtual都能少用就少用。由于
embedded主要是数理逻辑,而不是软件类型的业务逻辑,所以强大的类模块封装继承组
合等等C++强项优势不大

【在 Q****r 的大作中提到】
: 最近看杂志说,嵌入式设计C还是占大多数,十几年前以为C最后会被C++代替,然后在
: 被Java代替,结果Embedded System Design杂志每年调查的数据显示,C的使用率曾经
: 下降过一段时间,后来又稳步上升了,C++上升过一段时间,05年后就是稳步下降了,
: 现在只有20%的项目在使用C++。Java略为上升,基本上就是Assembly的下降而已。
: 没想到C还这么坚挺。
: What's wrong with C++?

b*****e
发帖数: 1193
4
现在复杂的嵌入式项目开发C,C++融合了,C开发底层和中间件,C++做GUI,很多例子。
楼主在想啥呢?C++有啥问题?还是多参与实际项目吧。
Q****r
发帖数: 7340
5
C++的UI都少,UI直接上Java了。

子。

【在 b*****e 的大作中提到】
: 现在复杂的嵌入式项目开发C,C++融合了,C开发底层和中间件,C++做GUI,很多例子。
: 楼主在想啥呢?C++有啥问题?还是多参与实际项目吧。

i*****t
发帖数: 24265
6
俺嵌入当然C,其他的UI一般C++或其他语言,哪个方便,资源多就用哪个
i*****t
发帖数: 24265
7
为啥用C搞?
1 运行速度快
2 编程简单,原始积累直接拿来用
3 程序简单所以调试方便
4 运行可靠
5 程序简单明了
......
一句话,简单运行速度快方便调试就好,一切尽在掌握中。
d***a
发帖数: 13752
8
楼上几位说了不少。还有两个原因:第一,单从个数来看,大多数嵌入式
系统是用microcontroller的低端系统,比如说一个汽车里会用几十个到上百
个microcontroller,内存以KB来计算。这样的系统,只能用C。
另外一个原因是能耗,如果系统是用电池供电的话。C++的运行效率还是
比C低几十个百分点(具体多少就不争了),这就意味着做同样的计算,CPU
上要多耗几十个百分点的能耗。

【在 Q****r 的大作中提到】
: 最近看杂志说,嵌入式设计C还是占大多数,十几年前以为C最后会被C++代替,然后在
: 被Java代替,结果Embedded System Design杂志每年调查的数据显示,C的使用率曾经
: 下降过一段时间,后来又稳步上升了,C++上升过一段时间,05年后就是稳步下降了,
: 现在只有20%的项目在使用C++。Java略为上升,基本上就是Assembly的下降而已。
: 没想到C还这么坚挺。
: What's wrong with C++?

Q****r
发帖数: 7340
9
没外加内存?还是因为控制逻辑简单,用microcontroller,不少大的系统还直接用
matlab generate code,那效率更低了。汽车行业用matlab还是满多的吧

【在 d***a 的大作中提到】
: 楼上几位说了不少。还有两个原因:第一,单从个数来看,大多数嵌入式
: 系统是用microcontroller的低端系统,比如说一个汽车里会用几十个到上百
: 个microcontroller,内存以KB来计算。这样的系统,只能用C。
: 另外一个原因是能耗,如果系统是用电池供电的话。C++的运行效率还是
: 比C低几十个百分点(具体多少就不争了),这就意味着做同样的计算,CPU
: 上要多耗几十个百分点的能耗。

i*****t
发帖数: 24265
10
matlab生成的难道不是C么?

【在 Q****r 的大作中提到】
: 没外加内存?还是因为控制逻辑简单,用microcontroller,不少大的系统还直接用
: matlab generate code,那效率更低了。汽车行业用matlab还是满多的吧

相关主题
嵌入式编程EE想转偏CS方向,该找什么工作和选什么研究方向?
请问Embedded System是什么样的一个研究方向呢?为什么这儿很少人讨论嵌入式的东东?
国内有什么便宜好用的公司写嵌入式软件吗?新手问题
进入EE版参与讨论
Q****r
发帖数: 7340
11
自动生成的效率不高吧,waste很多的

【在 i*****t 的大作中提到】
: matlab生成的难道不是C么?
g****t
发帖数: 31659
12
很多嵌入式应用讲究环境物理事件和内部指令的混合时序.
C++写的code,很多简直可以说是没办法分析.
我当年曾帮coding组手算过一些corner cases.
C的code都太痛苦了。
C在这方面其实也不是最合适的。
但个方面综合下来,可能在大多数情况下,C的价值最好。

最近看杂志说,嵌入式设计C还是占大多数,十几年前以为C最后会被C++代替,然后在
被Java代替,结果Embedded System Design杂志每年调查的数据显示,C的使用率曾经
下降过一段时间,后来又稳步上升了,C++上升过一段时间,05年后就是稳步下降了,
现在只有20%的项目在使用C++。Java略为上升,基本上就是Assembly的下降而已。
没想到C还这么坚挺。
What's wrong with C++?

【在 Q****r 的大作中提到】
: 最近看杂志说,嵌入式设计C还是占大多数,十几年前以为C最后会被C++代替,然后在
: 被Java代替,结果Embedded System Design杂志每年调查的数据显示,C的使用率曾经
: 下降过一段时间,后来又稳步上升了,C++上升过一段时间,05年后就是稳步下降了,
: 现在只有20%的项目在使用C++。Java略为上升,基本上就是Assembly的下降而已。
: 没想到C还这么坚挺。
: What's wrong with C++?

g****t
发帖数: 31659
13
汽车用matlab生成code的是强大的central CPU.
他说的是外围小芯片。和你说的不是一回事儿。
而且汽车的matlab 生成的code,
必须是专人检查过,优化过的。

没外加内存?还是因为控制逻辑简单,用microcontroller,不少大的系统还直接用
matlab generate code,那效率更低了。汽车行业用matlab还是满多的吧

【在 Q****r 的大作中提到】
: 没外加内存?还是因为控制逻辑简单,用microcontroller,不少大的系统还直接用
: matlab generate code,那效率更低了。汽车行业用matlab还是满多的吧

d***a
发帖数: 13752
14
C++的worst-case timing,确实是非常难分析。

【在 g****t 的大作中提到】
: 很多嵌入式应用讲究环境物理事件和内部指令的混合时序.
: C++写的code,很多简直可以说是没办法分析.
: 我当年曾帮coding组手算过一些corner cases.
: C的code都太痛苦了。
: C在这方面其实也不是最合适的。
: 但个方面综合下来,可能在大多数情况下,C的价值最好。
:
: 最近看杂志说,嵌入式设计C还是占大多数,十几年前以为C最后会被C++代替,然后在
: 被Java代替,结果Embedded System Design杂志每年调查的数据显示,C的使用率曾经
: 下降过一段时间,后来又稳步上升了,C++上升过一段时间,05年后就是稳步下降了,

d****i
发帖数: 4809
15
Not really, 绝大多数嵌入式系统都不支持Java虚拟机,只能用C或C++来写GUI,而且
很多嵌入式系统本身资源有限,不可能给你在套装个虚拟机,慢慢跑Java, 并不是所有
的嵌入式都像智能手机那样有强大的硬件资源的,再说电池功耗也是一个指标,手机一
般一天就要充电一次,很多嵌入式设备要保证连续运行14天甚至更长不充电,要用Java
写UI的话肯定不行。很多Microcontroller都是8位和16位的呢。

【在 Q****r 的大作中提到】
: C++的UI都少,UI直接上Java了。
:
: 子。

a****l
发帖数: 8211
16
其实matlab生成的C代码一般只是格式上比较繁琐点,名字变长,多了很多注释,但是实际
的代码的效率还是很高的.而且很多的看上去的低效率最后经过编译器就都优化掉了.而
且实际使用中没有纯粹的matlab生成的系统,各种部件都有最适合的开发环境,各自开发
后再连接起来.也就是说,不适合用matlab直接生成的部分往往就是用别的东西生成了.
从这一点上说,C有点靠近以前大家说的汇编.

【在 Q****r 的大作中提到】
: 自动生成的效率不高吧,waste很多的
s********k
发帖数: 6180
17
matlab生成代码是主要说simulink做的 吧

【在 a****l 的大作中提到】
: 其实matlab生成的C代码一般只是格式上比较繁琐点,名字变长,多了很多注释,但是实际
: 的代码的效率还是很高的.而且很多的看上去的低效率最后经过编译器就都优化掉了.而
: 且实际使用中没有纯粹的matlab生成的系统,各种部件都有最适合的开发环境,各自开发
: 后再连接起来.也就是说,不适合用matlab直接生成的部分往往就是用别的东西生成了.
: 从这一点上说,C有点靠近以前大家说的汇编.

a****l
发帖数: 8211
18
yes, but you might have m files as part of the mdl system.

【在 s********k 的大作中提到】
: matlab生成代码是主要说simulink做的 吧
s********k
发帖数: 6180
19
simulink还是比较好生成代码,模块的代码都早就写好,你怎么搭它出什么。m file感
觉难一些,不过matlab大多简单逻辑然后调用数值计算的东西,应该也还好,比如FFT
,SVD之类的早就写好了吧。

【在 a****l 的大作中提到】
: yes, but you might have m files as part of the mdl system.
z*****n
发帖数: 7639
20
用matlab generate code是基于现在microcontroller性能都差不多
比以前的80286还强了。现在随便一个32位的microcontroller都可以
时钟弄到30Mhz,还是RISC的。让它完成一个ABS任务余量都打到
不知哪儿了。
真正到了push limit的时候还得手动优化。

【在 Q****r 的大作中提到】
: 没外加内存?还是因为控制逻辑简单,用microcontroller,不少大的系统还直接用
: matlab generate code,那效率更低了。汽车行业用matlab还是满多的吧

相关主题
学EE的MASTER在美国 需要考什么证书吗?哪个方向就业比较好?怎么准备GE 的嵌入式 phone/ onsite面试
请教大家一个方向的问题--后续为什么EE的不好找工作?
请问:嵌入式,无线传感器网络,物联网3者的联系要不要读PHD?
进入EE版参与讨论
z*****n
发帖数: 7639
21
C和C也不一样啊。
手写的时候还经常插几条“ASM”呢。

【在 i*****t 的大作中提到】
: matlab生成的难道不是C么?
z*****n
发帖数: 7639
22
no, it doesn't matter the source is matlab code or simulink.

【在 s********k 的大作中提到】
: matlab生成代码是主要说simulink做的 吧
i*****t
发帖数: 24265
23
C都能插入汇编的吧

【在 z*****n 的大作中提到】
: C和C也不一样啊。
: 手写的时候还经常插几条“ASM”呢。

Q****r
发帖数: 7340
24
matlab 如何插入汇编 ?
所以 C和 C还是不一样

【在 i*****t 的大作中提到】
: C都能插入汇编的吧
i*****t
发帖数: 24265
25
你这就是抬杠了,C应该都可以插入汇编,matlab生成的C有没有汇编,是人家matlab乐
意不乐意问题,如果乐意照样可以插入汇编,最常用的就是nop,没有汇编的C同样是C
,有汇编的C也不代表效率就高,而是不得已为之的手段

【在 Q****r 的大作中提到】
: matlab 如何插入汇编 ?
: 所以 C和 C还是不一样

i*****t
发帖数: 24265
26
不管你什么C,俺喜欢拿C代码跟汇编机器码的list对比,查对比较效率和错误,而C++
可以么?
Q****r
发帖数: 7340
27
我是说在某些特例,你需要加入汇编,但是matlab就不可以,所以还是用C写
用matlab代替C,不是万精油

【在 i*****t 的大作中提到】
: 不管你什么C,俺喜欢拿C代码跟汇编机器码的list对比,查对比较效率和错误,而C++
: 可以么?

i*****t
发帖数: 24265
28
回到话题就是你不能说matlab生成的代码就一定效率低

【在 Q****r 的大作中提到】
: 我是说在某些特例,你需要加入汇编,但是matlab就不可以,所以还是用C写
: 用matlab代替C,不是万精油

i*****t
发帖数: 24265
29
个人认为,C之所以有时候插入汇编,只要是对特定处理器进行的优化,而matlab如果
只是注重算法并想通用于各种编译器的话,生成的C应该是标准模板代码,无需加入汇
编。
另一个个人观点就是,C里插入汇编不代表效率都一定会高,有时候纯粹就是为了跟硬
件接口而不得已为之,例如常用的nop或硬件操作。
俺用C做底层,C++做界面GUI。各种处理器芯片一般有其C编译器,但是C++却不一定有
。C代码与生成的汇编代码比较,一目了然。

【在 Q****r 的大作中提到】
: 我是说在某些特例,你需要加入汇编,但是matlab就不可以,所以还是用C写
: 用matlab代替C,不是万精油

u*******m
发帖数: 3395
30
Shit I still like Assembly.
相关主题
40多岁的ee能转行做什么请教如何转embedded software engineer
英国EE工作机会发个LA附近嵌入式软件方面的招人信息
Embedded, RTOS应该怎么准备 (转载)嵌入式embedded为啥算EE非CS
进入EE版参与讨论
s********k
发帖数: 6180
31
现在大部分芯片厂商对于某些critical code都会给出汇编和C代码两种不同的代码,只
要用特定的编译器,C出来的汇编是一模一样的

【在 Q****r 的大作中提到】
: 我是说在某些特例,你需要加入汇编,但是matlab就不可以,所以还是用C写
: 用matlab代替C,不是万精油

l***g
发帖数: 1035
32
embedded matlab can insert arbitary statement. or tlc.
there is no 'standard' assembly. so you can do it, just matlab doesn't do as
sembly for supported elements.

【在 Q****r 的大作中提到】
: matlab 如何插入汇编 ?
: 所以 C和 C还是不一样

z*****n
发帖数: 7639
33
现在讨论的是matlab插不插。

【在 i*****t 的大作中提到】
: C都能插入汇编的吧
i*****t
发帖数: 24265
34

似乎跑题了,只要是C就可以插,matlab生成的只要是C也一样可以,人家matlab之所以
不乐意干的原因俺已经说了,不是能力问题,而是没有必要。
汇: 编。

【在 z*****n 的大作中提到】
: 现在讨论的是matlab插不插。
1 (共1页)
进入EE版参与讨论
相关主题
为什么EE的不好找工作?帮忙看看!是继续找embedded还是转CS
要不要读PHD?嵌入式编程
40多岁的ee能转行做什么请问Embedded System是什么样的一个研究方向呢?
英国EE工作机会国内有什么便宜好用的公司写嵌入式软件吗?
Embedded, RTOS应该怎么准备 (转载)EE想转偏CS方向,该找什么工作和选什么研究方向?
请教如何转embedded software engineer为什么这儿很少人讨论嵌入式的东东?
发个LA附近嵌入式软件方面的招人信息新手问题
嵌入式embedded为啥算EE非CS学EE的MASTER在美国 需要考什么证书吗?哪个方向就业比较好?
相关话题的讨论汇总
话题: c++话题: matlab话题: embedded话题: what话题: java