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

作者&投稿:潜苑 (若有异议请与网页底部的电邮联系)
嵌入式开发的门槛高吗?嵌入式开发好学吗~

通常专科以上学历都可以学习的,掌握了正确的学习方法,通常就不难学了。正确的学习方法主要有以下几点:
学习态度方面,学习态度一定要端正,不骄不躁认真的学好每一个知识点;
在学习中遇到问题要及时与老师同学交流,在交流的过程中成长与学习。

 1、安装jdk
  jdk(java development kit)即java开发包,其中包含了运行eclipse所需要的jre. ubuntu缺省安装的gnu版本的jre运行效率不高,所以需要安装sun公司的jre. 首先从sun的网站上下载安装包jdk-6u7-linux-i586.bin,然后如下进行安装:
  # mkdir -p /opt/java
# ./jdk-6u7-linux-i586.bin // 执行自解压文件,生成目录
# mv jdk1.6.0_07 /opt/java // 把目录移到/opt/java下
# cd /opt/java
# ln -s jdk1.6.0_07 jdk
# mv /etc/alternatives/java /etc/alternatives/java.gnu
# ln -s /opt/java/jdk/bin/java /etc/alternatives/java
# export JAVA_HOME=/opt/java/jdk // 设置环境变量
  2、安装eclipse和cdt
  从eclipse网站上下载安装包eclipse-SDK-3.4-linux-gtk.tar.gz 和cdt-master-5.0.0.zip
  # cd /opt
# tar zxvf eclipse-SDK-3.4-linux-gtk.tar.gz // 解压生成eclipse目录
# export PATH=/opt/eclipse:$PATH
# mkdir -p /opt/cdt
# cd /opt/cdt
# unzip cdt-master-5.0.0.zip
# cp -r plugins/* /opt/eclipse/plugins/
# cp -r features/* /opt/eclipse/features/
  二、创建c/c++工程
  假设已经在linux上安装好了arm交叉工具链,下面介绍如何创建、交叉编译和调试c/c++工程,进入eclipse安装路径后,运行eclipse。

  创建c 工程
  

  使用缺省的Linux GCC工具链
  

  进入c/c++ 界面
  

  添加源代码文件1
  

  添加源代码文件2

  编辑代码

  设置工程属性,指定交叉工具链1

  设置工程属性,指定交叉工具链2

  设置工程属性,指定交叉工具链3

  编译工程

  已生成arm平台可执行代码

  配置调试选项

  设置Debugger和 GDB debugger选项

  设置连接类型为TCP,目标板的ip地址和调试端口号。端口号任意指定,通常大于1024(避免和系统所用端口号冲突)

  在开发板上运行程序,格式如上图所示:gdbserver是交叉调试辅助程序;192.168.0.150是主机的ip地址;1234是调试端口号,和eclipse调试选项里设定的端口号要一致

  点击Debug,进入调试界面

  执行到断点
  eclipse的调试界面和操作和在windows下开发类似。
  所需开发工具及环境
  虚拟机Linux:Fedora 9
  交叉编译工具:arm-linux-gcc-3.4.1.tar.bz2
  集成开发工具:Eclipse(Linux安装包中自带的,安装Linux时选中安装)
  安装ARM交叉编译器
  1. 安装。其实很简单,就是将下载的arm-linux-gcc-3.4.1.tar.bz2解压到Linux根目录即可(因为解压后已经包含了/usr/local目录,所以要解压到根目录),如下命令:

  tar -jxvf arm-linux-gcc-3.4.1.tar.bz2 -C /

  解压后的目录/usr/local/arm/3.4.1/
  2. 设置环境变量。就是把交叉编译器的路径设置到系统环境变量里面去。

  echo $PATH

  查看现有的环境变量

  如果只想临时添加交叉编译器的环境变量(注:临时添加的系统重启或注销后又没有了),只需在命令行输入如下命令:

  export PATH=$PATH:/usr/local/arm/3.4.1/bin

  如果想这个环境变量永久的添加到系统的环境变量中,则你只需把这个命令添加到/root/.bashrc文件的最后一行即可(这个文件是隐藏文件,你要在文件浏览器中单击查看菜单,勾选显示隐藏文件才能看到)
  3. 测试建立的交叉编译环境。新建一个c程序,文件名:test.c, 如下:

  #include
int main(void)
{
printf("Hellow world!
");
return 0;
}

  进行交叉编译,如下:

  arm-linux-gcc -o test test.c

  将交叉编译好的目标文件test下载到ARM开发板中并运行,如下:

  ./test
  输出结果为:
  Hellow world!
  用集成开发工具Eclipse来开发嵌入式应用程序

  双击Eclipse图标启动Eclipse

  设置Eclipse的工作空间,就是选个目录,单击OK

  启动后的主界面

  开始新建一个应用程序工程

  选择新建一个C工程,单击Next

  给工程取个名字,这里我就叫test_app;然后选择工程类型,我选择了个Hellow world C工程模版,单击Next

  填写作者、版权等信息,单击Next

  没什么选的,点击Finish

  单击Yes

  新建好的项目工程

  展开左边的源代码目录,双击打开主函数。这里只是输出一句"Hello World!!!",你可以做一些其他复杂的应用

  单击Project菜单,去掉Build Automatically的勾选,因为勾选的话,每次修改一个地方工程都会自动进行编译

  打开工程的属性对话框进行编译选项的设置

  我们的应用程序最终要到嵌入式arm上运行,这里就要把gcc改成arm-linux-gcc编译器,当然前提是你要在你的开发主机上先安装arm-linux-gcc

  C连接器也要改成arm-linux-gcc

  这里的Libraries是设置你的应用程序中用到的库文件,比如应用程序中用到了线程类,则这里在上面添加pthread这个库,下面就添加这个库的路径。如果应用程序没用到任何库文件就不用管了

  选中左侧的工程名,右键,在弹出的菜单中选择Build Project编译工程

  编译好后的工程,目标文件在Debug目录下

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

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

看你的题目“嵌入式开发可以用c++吗?”,我感觉你要走的路还是有点长的~~~

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

  嵌入式开发分三种:

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

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

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



目前,单片机的主流编译语言可预见的长期仍然是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工程师的薪资相对来说也是比较高的,对于嵌入式开发人员来说未来的职业规划也是非常好的。

嵌入式系统是为特定应用定制的软硬件可裁剪的计算机系统

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

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

初学可以从学习MCU和一些硬件驱动开始

可定可以的啊,不过用c的比较多,看具体厂商的接口和实现方式,不过大都是c/c++一族


想从事嵌入式开发,C语言学算法要学到很高深吗?
想从事嵌入式开发并学习C语言来实现算法,并不需要学到非常高深的程度。嵌入式开发通常涉及编写底层代码,与硬件交互,并进行资源受限环境下的优化。学习C语言是嵌入式开发的重要基础,因为C语言具有高效、直接与硬件交互的特性。在嵌入式开发中,您需要掌握一些基本的算法和数据结构,例如搜索、排序、链表等...

嵌入式开发可以用c++吗?
1 嵌入式开发不是只能用c或汇编 2 从计算机原理和操作系统原理入手 3 学习需要用到开发板 C#太高级了,编译器和库帮你做的工作太多了,使用起来不用关心硬件相关的东西,你不用考虑被人是什么显示器,也不用考虑内存有多大,但是嵌入式开发,你要关心的东西很多,不可能提供那么的库给你用,因为ROM...

ccs用什么编程语言
该开发工具可以使用C语言。因为CCS是一款嵌入式开发工具,主要用于编写和调试嵌入式系统的软件。C语言是一种广泛应用于嵌入式系统开发的高级编程语言,具有高效、灵活和可移植等特点,因此CCS选择使用C语言作为主要开发语言。对于开发者来说,熟练掌握C语言可以更好地利用CCS的功能和特性,提高开发效率和代码...

学嵌入式开发都要学什么?
C\/C++是嵌入式开发中最常用的编程语言,通过学习这两门语言,您可以了解到嵌入式系统的开发流程、编译工具的使用以及相关的编程技巧。其次,了解嵌入式系统的硬件基础知识也非常重要。这包括处理器架构、外设接口、传感器等硬件组成部分。这些知识对于理解和实际操作嵌入式系统至关重要,能够帮助您进行硬件和软...

只学习了C语言可以从事嵌入式软件开发工作么
不可以 通俗的说,嵌入式技术就是"专用"计算机技术,这个专用,是指针对某个特定的应用,如针对网络、针对通信、针对音频、针对视频,针对工业控制等,从学术的角度,嵌入式系统是以应用为中心,以计算机技术为基础,并且软硬件可裁剪,适用于应用系统对功能、可 靠性、成本、体积、功耗有严格要求的专用...

linux嵌入式开发需要学什么
linux嵌入式开发需要学如下:一:C语言 嵌入式Linux工程师的学习需要具备一定的C语言基础,C语言是嵌入式领域最重要也是最主要的编程语言,通过大量编程实例重点理解C语言的基础编程以及高级编程知识。包括:基本数据类型、数组、指针、结构体、链表、文件操作、队列、栈等。二:Linux基础 Linux操作系统的概念...

怎么学嵌入式开发
(3)Linux操作系统就是用C语言编写的,所以你也应该先学习下Linux方面的编程,只有你会应用了,才能近一步去了解其内核的精髓。推荐书籍:《UNIX环境高级编程》(第2版)(4)了解ARM的架构,原理,以及其汇编指令,我们在嵌入式开发中,一般很少去写汇编,但是最起码的要求是能够看懂arm汇编。(5)...

请问学习ARM嵌入式开发应该准备些什么开发工具和要求?
3、嵌入式linux驱动开发嵌入式目前主要面向的几个操作系统是,LINUX,WINCE、VxWorks等等Linux是开源免费的,而且其源代码是开放的,更加适合我们学习嵌入式。自学的话你可以尝试以下路线:(1)C语言是所有编程语言中的强者,单片机、DSP、类似ARM的种种芯片的编程都可以用C语言搞定),因此必须非常熟练的掌握...

c语言能用来做什么?
c语言学会了能干的事情有:1、做嵌入式开发;2、写漂亮的界面;3、做服务器开发;4、可以写游戏;5、可以写驱动程序;6、可以写外挂;7、可以做视频图片流媒体处理;8、可做网页和爬虫相关的编程;9、可以进行黑客编程等等。C语言是一种计算机程序设计语言。它既具有高级语言的特点,又具有汇编语言的...

嵌入式开发要学什么?学习嵌入式开发要学哪些?
2.C语言 C语言是嵌入式开发中最重要的编程语言,要对这门语言有深入的理解,毕竟不仅仅要会写程序,看懂他人程序也很重要。最基本的数据类型、数组、指针、结构体,链表、文件操作等都要会,掌握基本语法和语句,不然你要能区分指针数组与数组指针吗?3.单片机 单片机入门相对简单,通过单片机的学习可以...

枝江市13135566961: C++在嵌入式领域有什么用?
隗卢中风: 嵌入式领域的开发其实分为好多的方向, 不从产品考虑,单从开发的程序处于架构中的位置上考虑的话, 可以这么分: 1. 比较下层的: ・drivet的开发 ・基于具体芯片组(例如高通AMSS系列)的PF的开发 ・基于通用协议的上层协议的开发 等等,这一些基本上不会用到C++,一般用C,汇编比较多 2. 基于OEM层的开发: ・一些中间层架构的开发 ・通用中间件的开发 ・一些算法的开发(暂时放到这个分类下吧) 等等,这一些基本上不会用到C++,一般用C,当然也有基于JVM的 汇编也有应用(特别是一些算法,编解码什么的) 3.基于上层应用APP的开发,或者是OTA的开发 这一层的开发就百家争鸣了,C/C++/Java都有

枝江市13135566961: 只会C++可以做嵌入式吗? -
隗卢中风: 我个人认为做嵌入式 1、C语言一定要扎实,因为很多DSP、单片机之类的都不支持C++ 2、最好是能够看懂电路图,这对你进行开发有很大的好处,因为很多时候你要直接与硬件打交道的 3、最好会VHDL编程,因为嵌入式系统里经常会用到CPLD、FPGA等大规模可编程逻辑器件 4、尽量看看有关嵌入式操作系统方面的书籍,例如VxWorks等等 5、多动手实践,这很重要的

枝江市13135566961: 嵌入式系统开发,用c++的利弊在哪? -
隗卢中风: C++面向对象,对于大型工程编写难度小,但体积大,冗余代码多,速度相比C慢些,C面向过程,运行速度快,程序体积小.要是ARM32Bit的话还是用C++吧,一般提上ARM就和操作系统搭边,工程量一般小不了,要是用C51做控制的话首推C(如果会汇编的话是最好),程序体积小,响应快.

枝江市13135566961: 做嵌入式开发的语言 -
隗卢中风: c 和 汇编,还有c和汇编的混合编程(内联汇编),这些是嵌入式的底层软件用的语言.c++,java...适合做嵌入式上层应用软件.现在java语言在嵌入式领域用的不少,特别是android平台流行以后,Java语言会更加受重视,c++在linux平台上应用也不少,c在做嵌入式上层应用软件方面不如另外两种语言,但是底层软件非它莫属.上层应用层java或c++都比较好,底层就c了 每种语言都有自己的优势,使用哪种语言,由软件平台、硬件平台,共同来决定.

枝江市13135566961: 嵌入式/单片机编程要用到C++吗? -
隗卢中风: 不用,十分肯定.因为我就搞这个.但前提是底层的. 应用层可就不止c++了,java都很普通,比如说手机上的软件!!但底层肯定不用

枝江市13135566961: 请教:为什么嵌入式系统用C而不用C++ -
隗卢中风: 多数用C和汇编,也有用少部分用C++.总的来说嵌入式系统不需要用到C++面向对象的特性.C语言的面向过程的语言就满足绝大多数这类系统的需要.

枝江市13135566961: 要学习嵌入式的话要不要学习C++? 现在会模电,c语言的话想要学嵌入式要要学什么? -
隗卢中风: 一定的……C++中的CLI(俗称托管C++)便是嵌入式应用开发的不二之选…… 嵌入式系统要求内存占用小,CPU主频率较低(亦即单位时间内并行的运算数量有限,C++的OpenGL可以自动根据CPU大小分配并行任务),而且代码简洁有效,移植性强.C++凭借其简洁高效的代码,和接近于C的执行效率,成为几乎除汇编之外嵌入式开发系统的唯一选择 注:以上文字引述自 陈良乔《我的第一本C++书》,有改动

枝江市13135566961: 嵌入式开发是到底学c还是c++好 -
隗卢中风: 嵌入式软件开发具体是c好还是c++好没有统一的答案,要看是什么类型的项目和使用的硬件环境. 1、开发较小型的项目,使用诸如51、pic之类8位单片机做cpu,用c开发较好,最求的就是一个高效率,小代码,同时也不会使用较复杂的数据结构和类型. 2、开发较大型项目,使用诸如dsp、arm之类的32位cpu,用c++开发较好,因为可能会用到大量的结构、联合、类等数据结构,面向对象编程为主.

枝江市13135566961: 嵌入式开发需要结合哪种编程语言最好?
隗卢中风: 嵌入式的底层开发一般都用C,有些比较复杂一点的嵌入式系统,如果用了linux系统,那么有些会选用C++,再复杂一点的如类似于智能手机这种复杂程度,那么就什么语言都有了,c,c++,java, .net平台的各种语言等都有了.

枝江市13135566961: windows中用C做嵌入式开发需要用到什么开发工具? -
隗卢中风: TurboC等等,如果是wince,可以用platform builder4.2,5.0,6.0,也就是我们所说的PB.如果是嵌入式XP等等,直接用VC++等就可以了.看你用什么平台.windows中用C做嵌入式,要看你做出的系统运行在哪个系统,再来决定开发工具.

本站内容来自于网友发表,不代表本站立场,仅表示其个人看法,不对其真实性、正确性、有效性作任何的担保
相关事宜请发邮件给我们
© 星空见康网