嵌入式linux系统中进行开发(linux嵌入式开发是不是必须用linux才能开发_linux嵌入式开发是什么)
本文目录
linux嵌入式开发是不是必须用linux才能开发_linux嵌入式开发是什么
嵌入式linux开发,肯定是要在linux系统下操作。同楼上所说,你也可以在虚拟机环境下开发。楼主这是没学呢打算学嵌入式开发,还是已经有些基础了呢?
那么针对嵌入式开发要学哪些我简单的说一下,仅代表当前主流观点。
嵌入式开发作为新人,第一步C语言,有很多人自认为自己C语言很厉害,但是实际上一个从事嵌入式开发的老人,至少需要3-5年你才敢对C语言说精通,特别涉及到的常用的指针、数组、数据类型、运算符与表达式、控制语句时?你真的都懂么?这些是学习嵌入式最基础的知识。
第二步,有了这些代码的基础你才能能根据需求写程序,也就是常说的应用层,应用层是相对简单的。要有理解和编码调试的能力,如系统编程、标准的I/O,文件I/O,库的制作等等。一般而言这种应用层开发有1-2个月的时间都能学会。剩下的就是大量的编码来提升自己的经验。但只会这些也能找到工作,但我相信你看完下面的发现那绝对不是你的梦想!
第三步,更高级的内容也是最难的内容,前两步更多是让你会根据需求编码,但是如何能让你的程序能在硬件平台上运行,这才是真正的难题。所以每当再进一步的话,我们会发现我们什么有很多的东西都运行的是Linux系统,可是他们和我的PC运行的Linux有什么区别呢,为什么我电脑要用风扇而手机不用风扇呢,我们打开网页查找手机的详细参数的时候,会看到Cortex-A15、四核、ARM等等字眼,什么是ARM,什么是Cortex-A15,这需要进一步的了解。
对于嵌入式开发者来说,他们都经历了学习的痛苦。有句话说的好,不经历风雨怎么见彩虹。对于学习嵌入式我比较不赞成自学,他不同于一般的应用层开发。你会面临很多问题。问百度?太慢了!去机构学习虽然花了一部分钱,从时间成本和效率上来讲,无疑还是比较值得的。
嵌入式linux开发用什么linux系统
嵌入式系统通常为一个资源受限的系统。直接在嵌入式系统的硬件平台上编写软件比较困难,有时甚至是不可能的。目前,一般采用的办法是,先在通用计算机上编写程序,然后,通过交叉编译,生成目标平台上可运行的二进制代码格式,最后下载到目标平台上的特定位置上运行,下面我来做具体步骤介绍。
第一步,建立嵌入式Linux应用开发环境。目前,常用的交叉开发环境主要有开放和商业两种类型。开放的交叉开发环境的典型代表是GNU工具链,目前已经能够支持x86、ARM、MIPS、PowerPC等多种处理器。商业的交叉开发环境主要有Metrowerks CodeWarrior、ARM Software Development Toolkit、SDS Cross compiler、WindRiver Tornado、Microsoft Embedded Visual C等。交叉开发环境是指编译、链接和调试嵌入式应用软件的环境。它与运行嵌入式应用软件的环境有所不同,通常采用宿主机/目标机模式。
第二步,交叉编译和链接。在完成嵌入式软件的编码之后,就是进行编译和链接,以生成可执行代码。由于开发过程大多是在Intel公司x86系列CPU的通用计算机上进行的,而目标环境的处理器芯片却大多为ARM、MIPS、PowerPC、DragonBall等系列的微处理器,这就要求在建立好的交叉开发环境中进行交叉编译和链接。
第三步,交叉调试。
①硬件调试。如果不采用在线仿真器,可以让CPU直接在其内部实现调试功能,并通过在开发板上引出的调试端口,发送调试命令和接收调试信息,完成调试过程。目前,Motorola公司提供的开发板上使用的是DBM调试端口,而ARM公司提供的开发板上使用的则是JTAG调试端口。使用合适的软件工具与这些调试端口进行连接,可以获得与ICE类似的调试效果。
②软件调试。在嵌入式Linux应用开发系统中,Linux系统内核调试,可以先在Linux内核中设置一个调试桩(debug stub),用作调试过程中和宿主机之间的通信服务器。然后,可以在宿主机中通过调试器的串口与调试桩进行通信,并通过调试器控制目标机上Linux内核的运行。
嵌入式开发为什么大多数都是在Linux系统下开发
关于这个问题,可以换个方式来表述,就好比嵌入式开发是否一定需要装虚拟机并且安装linux系统这类的思考。当然回答是否定的,在windows下也能学习开发,所以不一定要安装linux;
但是,由于嵌入式产品是基于linux内核开发的,所以在开发初期为了方便,应该有一个基本的开发环境,这也是为什么要安装linux操作系统的原因了;
而为什么要虚拟机,是出于生活工作习惯了桌面的操作系统,并且不得不肯定的是windows操作系统提供了很多用户体验很高的应用程序,所以,在生活的同时,工作中,学习里,需要用linux操作系统进行开发,就直接在windows上安装虚拟机即可;
还有一点就是,开发过程中,介于跨平台的性质,很多产品也是运行在windows下的,所以也需要进行交叉编译;
综上所述,在linux操作系统进行学习开发是明智的选择。
更多文章:
nrg转iso(请问WII游戏怎么把NRG格式转换成ISO 放在移动硬盘里)
2024年6月15日 09:01
如何下载office2003(电脑怎么下载office2003)
2024年8月5日 11:50
魔兽争霸1 20补丁(魔兽争霸3冰封王座 安装完1.20补丁后,无法启动游戏,说什么无法启动game.dll)
2023年6月12日 17:40