ubuntu嵌入式开发环境,ubuntu能做什么
大家好,今天小编来为大家解答以下的问题,关于ubuntu嵌入式开发环境,ubuntu能做什么这个很多人还不知道,现在让我们一起来看看吧!
如何使用eclipse进行嵌入式Linux的开发
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<stdio.h>int main(void){ printf("Hellow world!\n"); 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目录下
嵌入式系统开发现在用的是什么平台
嵌入式系统开发现在用的是什么平台?
常见的嵌入式系统开发,分硬体和软体平台。硬体可以分为嵌入式CPU,比如微控制器,ARM, MIPS, powerPC, X86,软体一般跑嵌入式作业系统,比如linux, vxwork或QNX,ucosII,也可以跑裸机,开发工具可以选用keil,ADS等。还有DSP和FPGA,也可以属于嵌入式范畴,不同厂商有不同的产品线,开发平台也有由于厂商不同的而有不同的开发工具。
嵌入式系统开发难点有哪些嵌入式系统开发存在的问题
1、对目标系统的观察和控制
由于嵌入式硬体系统千差万别,软体模组和系统资源也多种多样,要使系统能正常工作,软体开发者必须要对目标系统具有完全的观察和控制能力,例如硬体的各种暂存器、记忆体空间,作业系统的讯号量、讯息伫列、任务、堆叠等。
2、涉及多种 CPU及多种 OS
嵌入式的CPU或处理器可谓多种多样,这包括了 Pentium、MIPS、PPC、ARM,XScale等,而且应用都很广,在其上执行的作业系统也有不少,如 VxWorks、Linux、 Nuclears、WinCE等等,即使在一个公司之内,也会同时使用好几种处理器,甚至几种嵌入式作业系统。如果需要同时除错多种型别的板子,每个板子上又执行着多个任务或程序,那复杂性是可想而知的。
3、开发工具种类繁多
不仅各种作业系统有各自的开发工具,在同一系统下开发的不同阶段也有不同的开发工具。如在使用者的目标板开发初期,需要硬体模拟器来除错硬体系统和基本的驱动程式,在除错应用程式阶段可以使用互动式的开发环境进行软体除错,在测试阶段需要一些专门的测试工具软体进行功能和效能的测试,在生产阶段需要固化程式及出厂检测等等。一般每一种工具都要从不同的供应商处购买,都要单独去学习和掌握,这无疑增加了整个公司的支出和管理的难度。
此外,嵌入式系统变化更新比较快,对开发时间要求比较紧,尤其是消费类产品更是如此,如果有一套功能强大的嵌入式软体整合开发工具可以满足嵌入式软体开发各个阶段的需求,同时又使用方便,介面友好,那是最理想不过了。
有的嵌入式系统的处理能力和储存能力较弱,不能在它上面安装开发软体;有的嵌入式系统的处理器结构特殊,没有可以在上面执行的开发工具。所以,在开发嵌入式系统时,通常需要采取交叉开发的方式进行。
如何理解嵌入式系统开发平台
硬体设计平台
硬体平台由基本系统(包括CPU和储存器)加上外围介面电路模组构成。基本系统为作业系统核心提供一个最小的除错和执行环境,外围介面模组包括目前应用较为广泛的多种硬体介面电路,如LCD液晶显示模组、触控式萤幕模组、CF卡模组、USB模组、乙太网模组、IC卡模组等,可以方便地根据开发者的需求进行选择使用。
目前,硬体平台基于摩托罗拉公司的DragonBall EZ328(16MHz)微处理器,主要配置包括8MB EDO DRAM、4MB FLASH、320×240画素单色LCD、6个输入按键、一路RS232介面、一路10M乙太网介面等。EZ328是一款得到了广泛应用的32位嵌入式微处理器,内部集成了大量的功能模组,并且具有较强的扩充套件能力。EZ328取消了记忆体管理单元(MMU),降低了硬体成本及执行功耗。EZ328所支援的引导模式也极大地方便了系统的除错。在我们的开发板上,只要驱动EZ328的EMUBRK引脚为低电平并执行系统复位,就可使EZ328进入引导模式,其内建的载入程式就会开始执行,初始化晶片上整合的UART控制器并准备接收资料。这样开发者就可以通过UART控制器写暂存器来初始化开发板,然后下载程式到开发板的RAM和FLASH中执行除错。同时,硬体平台CPU可方便地升级到VZ328(主频33MHz,EZ328的后续产品)。而且,在EZ328硬体平台上开发的软体几乎不需要修改就能使用在VZ328和ColdFire系列微处理器上,具有很广的适用面。ColdFire微处理器主要应用于网际网路装置、LAN电话技术、低端网路控制、工业控制、影象和储存等等。
软体开发平台
软体平台由嵌入式Linux作业系统、嵌入式图形使用者介面(GUI)、GNU交叉编译除错工具组成。其中嵌入式Linux作业系统包括嵌入式Linux核心,ROM/RAM档案系统。选用Linux是因为Linux高度模组化,容易定制,具有很高的可移植性。
软体平台所实现的嵌入式Linux系统核心是在mCLinux系统的基础上移植而来的。它是专门面向没有MMU的CPU的Linux作业系统,并且专为嵌入式系统做了许多小型化的工作,得到了广泛的应用,新型的蓝芽网路装置也采用了mClinux作业系统。mCLinux作为一个高度优化的、程式码紧凑的嵌入式Linux,虽然体积很小,但仍然保留了Linux的大多数优点:稳定、良好的移植性,优秀的网路功能,完备的对各种档案系统的支援,以及标准丰富的API。在我们的开发平台上,移植的作业系统核心大小约400KB,提供了通用Linux API和完整的TCP/IP协议栈,实现了对NFS、ext2、ROMfs、JFFS档案系统的支援。
GUI采用了MicroWindows,具有中文字地化支援,包括GB2312等字符集的支援,中文输入法等等。在其上又开发了基于FLTK的嵌入式GUI图形包,提供了比较完善的图形功能,如对选单、按钮、滚动条等多种GUI控制元件的支援。
采用这种图形包,我们已开发出大小仅1MB的嵌入式中文Web浏览器,并且正在整合清华文通的中文手写输入软体。
交叉编译除错工具采用通用的Linux开发套件—GNU开发套件,包括了一系列的开发除错工具。主要元件有:
● G—编译器,可以做成交叉编译的形式,即在宿主机上开发编译目标板上可执行的二进位制档案。
● Binutils—辅助工具,包括objdump(可以反编译二进位制档案),as(汇编编译器),ld(联结器)等等。
● Gdb—侦错程式,可使用多种交叉除错方式,包括使用串列埠和乙太网除错。
开发环境
本嵌入式系统开发平台的GNU开发套件运行于桌面Linux作业系统。开发者首先使用G和Gdb编译和除错bootloader程式;再通过串列埠将宿主机和目标板连线起来,使EZ328进入引导模式,通过一个简单的perl程式将除错好的Bootloader程式下载到目标板的RAM中,作为monitor监控程式,同时在宿主机上启动mini和它进行串列埠通讯,对Linux核心及驱动进行下载和除错;一旦Linux核心在目标板上执行并初始化乙太网介面,再由网线将宿主机和目标板连线起来(如图2所示)。通过乙太网,开发者可以使用NFS档案系统安装上宿主机的硬碟,这样目标板就可以通过乙太网对宿主机的硬碟直接进行操作,不需下载即可除错程式;若Linux核心启动了远端登入服务,开发者还可以登入到目标板上除错应用程式。
其是要求你在Linux作业系统环境下进行嵌入式系统的程式设计与设计。你可以自己在电脑中装个Linux系统,常见的有Ubuntu,红帽,Debian等,个人感觉Ubuntu简单易学。
嵌入式系统开发怎样入门?专科生可以从事嵌入式系统开发吗?
专科生没问题的!只要认真努力!遇到不会的知识就去学!
嵌入式系统开发需要的基础知识相对较多,不过要看你的方向是什么,是硬体还是软体,硬体比如是板级开发,系统硬体设计......软体比如linux,wince......,不过建议先找本计算机作业系统的书籍好好看一下,这会很有帮助!另外有一款好的开发板也会事半功倍的!祝你好运!
嵌入式系统开发与软体开发的区别,到底怎么学习嵌入式系统开发?
这个你得搞清楚嵌入式软体开发是什么,其实它也还是开发软体,只是它开发的是基于嵌入式系统的软体,所以叫做嵌入式软体开发,无论怎么学习,多看下行业资讯和资讯很有必要的,他的微信公众号:嵌入式资讯精选
嵌入式系统开发环境
常用的有Linux、uClinux、WinCE、PalmOS、Symbian、eCos、uCOS-II、VxWorks、pSOS、Nucleus、ThreadX、Rtems、QNX、INTEGRITY、OSE、C Executive
个人感觉Linux、uClinux、WinCE、uCOS-II比较多,但是比例最多的应该是Linux吧~
嵌入式系统开发技术是什么?
嵌入式系统开发就是对于除了电脑之外的所有电子装置上作业系统的开发,开发物件有手机,掌上电脑,机电系统等。
嵌入式系统是用来控制或者监视机器、装置、工厂等大规模装置的系统。国内普遍认同的嵌入式系统定义为:以应用为中心,以计算机技术为基础,软硬体可裁剪,适应应用系统对功能、可靠性、成本、体积、功耗等严格要求的专用计算机系统。
嵌入式系统的核心是由一个或几个预先程式设计好以用来执行少数几项任务的微处理器或者微控制器组成。与通用计算机能够执行使用者选择的软体不同,嵌入式系统上的软体通常是暂时不变的;所以经常称为"韧体"。
嵌入式系统开发与软体开发
嵌入式开发就是指在嵌入式作业系统下进行开发,一般常用的系统有WinCE,linux,android等。另外,用c,c++或汇编开发;用高阶处理器,arm7,arm9,arm11,powerpc,mips,mipsel等,或加上作业系统也属于嵌入式的开发。
………………………………
看你问的问题,应该是对嵌入式很感兴趣,其实你可以自学嵌入式。关于如何学习嵌入式,我刚才看到一篇很不错的文章,是一个专科生介绍自己如何自学嵌入式,并找到嵌入式的工作,里面介绍了他的学习方法和学习过程,希望对你有帮助。
先做个自我介绍,我07年考上一所很烂专科民办的学校,学的是生物专业,具体的学校名称我就不说出来献丑了。09年我就辍学了,我在那样的学校,一年学费要1万多,但是根本没有人学习,我实在看不到希望,我就退学了。
退学后我也迷茫,大专都没有毕业,我真的不知道我能干什么,我在纠结着我能做什么。所以辍学后我一段时间,我想去找工作,因为我比较沉默寡言,不是很会说话,我不适合去应聘做业务。我想应聘做技术的,可是处处碰壁。
一次偶然的机会,我才听到嵌入式这个行业。那天我去新华书店,在计算机分类那边想找本书学习。后来有个女孩子走过来,问我是不是读计算机的,有没有兴趣学习嵌入式,然后给我介绍了一下嵌入式现在的火热情况,告诉我学嵌入式多么的有前景,给我了一份传单,嵌入式培训的广告。听了她的介绍,我心里痒痒的,确实我很想去学会一门自己的技术,靠自己的双手吃饭。
回家后,我就上网查了下嵌入式,确实是当今比较热门的行业,也是比较好找工作的,工资也是相对比较高。我就下决心想学嵌入式了。于是我去找嵌入式培训的相关资讯,说真的,我也很迷茫,我不知道培训是否真的能像他们宣传的那样好,所以我就想了解一段时间再做打算。
后来,我在百度知道看到一篇让我很鼓舞的文章,是一个嵌入式高手介绍没有基础的朋友怎么自学入门学嵌入式,文章写的很好,包含了如何学习,该怎么学习。他提到一个方法就是看视讯,因为看书实在太枯燥和费解的,很多我们也看不懂。这点我真的很认同,我自己看书往往看不了几页。
我在想,为什么别人都能自学成才,我也可以的!我要相信自己,所以我就想自学,如果实在学不会我再去培训。
主意一定,我就去搜索嵌入式的视讯,虽然零星找到一些嵌入式的视讯,但是都不系统,我是想找一个能够告诉我该怎么学的视讯,一套从入门到精通的视讯,一个比较完整的资料,最好能有老师教,不懂可以请教的。
后来我又找到一份很好的视讯,是在IT学习联盟网站推出的一份视讯《零基础嵌入式就业班》(喜欢《零基础嵌入式就业班》的可以复制 sina.lt/qKh贴上浏览器位址列按回车键即开启)。里面的教程还不错,很完整,可以让我从基础的开始学起。视讯比较便宜。
下面介绍下我的学习流程,希望对和我一样完全没有基础的朋友有所帮助。
收到他们寄过来的光碟后,我就开始学习了,由于我没有什么基础,我就从最简单的C语言视讯教程学起,话说简单,其实我还是很多不懂的,我只好请教他们,他们还是很热心的,都帮我解决了。C语言我差不多学了一个礼拜,接下来我就学了linux的基本命令,我在他们提供linux虚拟机器上都有做练习,敲linux的基本命令,写简单的C语言程式码,差不多也就三个礼拜。我每天都在不停的写一些简单的程式码,这样一月后我基本掌握了C和linux的基本操作。
接下来我就去学习了人家的视讯的培训教程,是整套的,和去参加培训没有多大的区别,这一看就是两个月,学习了ARM的基本原理,学习嵌入式系统的概念,也掌握了嵌入式的环境的一些搭建,对linux也有更深层次的理解了,明白了嵌入式应用到底是怎么做的,但是驱动我只是有一点点的了解,这个相对难一点,我想以后再慢慢啃。
这两个月,除了吃饭睡觉,我几乎都在学习。因为我知道几乎没有基础,比别人差劲,我只能坚持努力着,我不能放弃,我必要要靠自己来养活自己,必须学好这门技术,然后我就把不懂的问题总结记下来,这样慢慢积累了一段时间,我发现自己真的有点入门了。
最后的一个月,我就去看关于实践部分的内容,了解嵌入式专案具体的开发流程,需要什么样的知识,我就开始准备这方面的知识,也就是学习这方面的视讯,同时他们建议我去找了找一些嵌入式面试的题目,为自己以后找工作做准备。我就到网上找了很多嵌入式的题目,把他们理解的记下来,这样差不多准备了20天左右
我觉得自己差不多入门了,会做一些简单的东西了。我就想去找工作看看,于是我就到51job疯狂的投简历,因为我学历的问题,专科没有毕业,说真的,大公司没有人会要我,所以我投的都是民营的小公司,我希望自己的努力有所回报。没有想过几天过后,就有面试了,但是第一次面试我失败了,虽然我自认为笔试很好,因为我之前做了准备,但是他们的要求比较严格,需要有一年的专案经验,所以我没有被选中。
后来陆续面试了几家公司,终于功夫不负有心人。我终于面试上的,是在闵行的一家民营的企业,公司规模比较小,我的职务是嵌入式linux应用开发,做安防产品的应用的。我想我也比较幸运,经理很看重我的努力,就决定录用我,开的工资是3500一个月,虽然我知道在上海3500只能过温饱的生活,但是我想我足够了。我至少不用每天都要靠父母养,我自己也能养活自己的。我想只要我继续努力,我工资一定会翻倍的。
把本文写出来,希望能让和我一样的没有基础的朋友有信心,其实我们没有必要自卑,我们不比别人笨,只要我们肯努力,我们一样会成功。
……………………………………
嵌入式系统开发的基础是什么
嵌入式系统是以应用为中心,以计算机技术为基础,并且软硬体可裁剪,适用于应用系统对功能、可靠性、成本、体积、功耗有严格要求的专用计算机系统。它一般由嵌入式微处理器、外围硬体装置、嵌入式作业系统以及使用者的应用程式等四个部分组成,用于实现对其他装置的控制、监视或管理等功能。
嵌入式系统一般指非PC系统,它包括硬体和软体两部分。硬体包括处理器/微处理器、储存器及外设器件和I/O埠、图形控制器等。软体部分包括作业系统软体(OS)(要求实时和多工操作)和应用程式程式设计。有时设计人员把这两种软体组合在一起。应用程式控制着系统的运作和行为;而作业系统控制着应用程式程式设计与硬体的互动作用。
linux嵌入式开发环境用什么linux
学习嵌入式开发,一般会面临3个阶段:
1:学习基本的编程语言C/C++,此时linux版本不重要,重要的是符合C99标准的编译器,建议使用ubuntu或者centos,免费并且都默认安装了标准g++编译器。
2:学习linux的基本环境,包括libc库等基本C库和一些标准的内核函数,建议使用ubuntu,不要使用centos,centos里面扩展了不少redhat的库,在实际嵌入式开发无法使用。
3:学习嵌入式的特定编译环境,交叉编译技巧等等,此时必须在实际的嵌入式开发板上学习,不能在发行版linux下学习,因为嵌入式开发板都是用裁剪和优化过的linux内核,编译环境也是嵌入式处理器自带的,和发行版linux有较大的不同。总的来说,学习嵌入式开发,建议使用ubuntu