嵌入式开发可以用c++吗?

小弟想了解一下嵌入式开发,如果可以的话看自已对这方面有没有能力,所以想请教一下大家,
嵌入式开发是不是只能用c或汇编?
初学嵌入式开发需要从哪方面入手?
学习用的硬件都用什么?
补充:以前学过点很浅的C,目前从事C#2年。

1 嵌入式开发不是只能用c或汇编
2 从计算机原理和操作系统原理入手
3 学习需要用到开发板

C#太高级了,编译器和库帮你做的工作太多了,使用起来不用关心硬件相关的东西,你不用考虑被人是什么显示器,也不用考虑内存有多大,但是嵌入式开发,你要关心的东西很多,不可能提供那么的库给你用,因为ROM有限,各种硬件限制很严格。

看你的题目“嵌入式开发可以用c++吗?”,我感觉你要走的路还是有点长的~~~
温馨提示:内容为网友见解,仅供参考
第1个回答  2015-12-04

  嵌入式开发可以用c++。

  嵌入式开发分三种:

    嵌入式应用开发,即c++或android等精通一门面向对象语言。

    嵌入式内核移植,底层驱动开发,会看懂一些数字电路,能写一些简单的汇编语言,精通c语言,了解arm的基本架构,linux内核了解越深越好,会编写驱动。

    嵌入式硬件开发,即芯片的外围电路设计。

第2个回答  2023-07-07
目前,单片机的主流编译语言可预见的长期仍然是C和少量汇编的结合体,而嵌入式Linux领域的未来在我看来更倾向于多语言范式的混合应用编程,内核模块使用C,应用层逻辑使用C++, Python, nodejs的混合编程,而界面的话使用java和QT/C++。随着市场需求的增加,目前嵌入式行业对于C++工程师的需求量依然是非常大的。
在单片机领域C++不太流行既有历史原因,也有工业界的需求,对于单片机是从51发展到现在,主流的flash容量仍然在64KB~256KB左右,目前的容量限制注定了C++中的模板,泛型编程和STL等很难被运用到开发中,但如果不使用这些,只使用支持class的C++,在C语言是有结构体+函数指针可以替代的情况下,从C换成C++并没有迫切的需求,而python和js的推广困难,也有着类似的理由,此外在加上调试困难。
单片机优势不仅仅是实时可控,而是价格便宜,对于出货量十万甚至上百万的设备,flash容量也是可观的成本,所以工业界更**是用最小的成本做最多的事,从这方面来说,C是比C++,python, js有明显优势的。
在嵌入式Linux领域, C++绝对是应用层主力之一,QT/C++虽然目前因为芯片性能的提升,逐渐被Android/Java所替代,但仍然在医疗,工控,车载导航等领域占据主流地位,而且这也是目前C++的重要应用领域之一,说嵌入式比较难,而C++也十分困难,所以嵌入式人员学习C++比较少是十分片面客观的印象。
另外C++难的地方是移动语义,模板偏特化,lambda, 模板元编程等知识,C++各种语法组合成的奇淫巧技如果不花大量时间去钻研,看起来是犹如天书(很少有人例外),但对于工业界,特别是嵌入式类应用来说,只使用STL封装的vector,map以及算法等方便开发,封装些模板函数或者类帮助复用,很多时候C++11的新特性都用不全,说困难就有点夸大其词了。
工业界的难点***是如何把产品的需求转换成具体的任务分解(满足性能,成本和功能的平衡,同时能够长期稳定性),而不是使用何种语言来实现任务,当需求导向任意语言,无论是python,js,C++还是java,面向工资编程,只要有需求,总会有人会踏入这个方向,难度不是问题,需求和薪水才是问题。
目前,针对于市场上对于C++/QT工程师的缺口是非常大的,很多公司都需要大量的C++/QT工程师,并且C++/QT工程师的薪资相对来说也是比较高的,对于嵌入式开发人员来说未来的职业规划也是非常好的。
第3个回答  2009-03-06
嵌入式系统是为特定应用定制的软硬件可裁剪的计算机系统

所以笼统来说嵌入式系统还是计算机系统, 那么什么开发语言都可以应用上去, 只是在什么层面的问题

目前一般最底层(最直接控制硬件的象bootloader)会使用ASM, 驱动和OS部分用C/C++多一些, 应用层的用C/C++/JAVA/C#都有

初学可以从学习MCU和一些硬件驱动开始
第4个回答  2015-10-26
可定可以的啊,不过用c的比较多,看具体厂商的接口和实现方式,不过大都是c/c++一族
相似回答