❶ 嵌入式linux系统开发平台有几种形式请分别给出示意图
一、之所以选linux平台,是因为我们可以在linux平台上编译嵌入式linux内核、软件,linux也是用C写的,在linux平台上能更好的运用编译工具(虽然有些能在windows上用:gvim之类的)
❷ 什么是linux嵌入式开发,有那些内容
嵌入式的linux主要有几点:
1)你要学会根据你硬件电路及应用的需要对内核进行裁减。
2)学会安装linux系统及为了嵌入式应用而需要的相关软件,如GCC编译器,交叉编译工具,TFTP服务器等,这些东西的操作和windows有挺大区别的。
3)找本linux C编程的书,学一下linux中C的编程以及编译的方法,其中Makefile的制作是其与其他系统区别较大的。
4)学会根据电路修改你的bootloader,现在一般是标准的硬件,往往可以省略了
5)其实内核的移植也是挺重要的,不过往往做核心板的人已经帮你做好了
6)尝试如何使用bootloader下载程序,包括串口,以太网等方式。
7)当然学习使用Qt做界面也是必不可少的。
8)。。。。。。。
❸ 如何选择嵌入式Linux开发工具
嵌入式Linux具有稳定、可伸缩及开放源代码等特点,可兼容多种处理器和主机,广泛适用于各种产品和应用。但是,交叉编译、设备驱动程序开发/调试,以及更小尺寸等要求对嵌入式Linux开发者来说都是严峻的挑战。为应对这些挑战,针对嵌入式Linux开发的专用工具应运而生,而且发展十分迅猛。
但是,许多这类开发工具都不兼容非X86平台,而且也没有很好地实现归档备案或集成。在其它开发环境下,组件间的高度集成并没有完全兑现。因此,要想完全从这些免费的软件组件开始创建一个完整的跨平台开发环境,开发者应意识到这将需要大量的调研、实施、培训和维护方面的工作。
Linux是少数既可以在嵌入式设备上运行也可作为开发环境的操作系统之一。这一特性可让开发者在转向此开发系统之前于常用硬件(比如X86桌面系统)之上开发、调试和测试应用程序和库,因此可减少对标准参考平台和指令集仿真器的依赖。这一技术仅适用于应用程序和库,但不适用于设备驱动程序,因为后者的开发依赖于Linux架构。
开放源代码团体及一些软件供应商可提供设备驱动程序开发工具。由于设备驱动程序比标准应用程序距离硬件更近,因此它们的开发比较困难。所幸的
是,Linux桌面系统可以利用一些Windows及其它操作系统所没有的工具。有足够经验开发设备驱动程序的开发人员可能已经习惯将
Linux作为他们的桌面开发系统了。
Linux的快速发展及其桌面方案的不断涌现提出了一个重要问题:所选择的工具方案怎样在不同的Linux分布式系统上运行?它们依赖于主机平台的软件配置吗?
有些Linux工具提供独立于主机平台的开发环境,包括一系列可支持开发工具的应用软件、库和实用程序。这一方法几乎将开发环境与主机配置完全隔离开来,因此主机可以是任何Linux分布式系统,而且任何更新和修改都不会影响开发环境的功能。
这种方法的主要缺点是对存储空间的要求有所增加――约200MB,因为它自己实际上相当于一个微型Linux分布式系统。
可用的工具
一个嵌入式Linux产品的开发需要几个阶段,包括为目标板配置和构建基本Linux OS;调试应用程序、库、内核及设备驱动程序/内核模块;出货前最终方案的优化、测试和验证。
有数百种开放源代码开发工具可供选择。只要开发者原意花时间和精力去调研、实施和维护一系列各不相同的工具,总能找出一个完整的解决方案,完成几乎任何开发任务。图1:开发者必须精确地考虑到这些工具的松散集合能提供什么样的功能,以及需要付出多大的努力才能形成完整的解决方案。
在Linux应用程序和库的调试方面,GNU Debugger(GDB)作为一种标准已有几年的历史。它是一种命令行程序,由多个不同的图形用户界面前端予以支持,每个前端都能以多种方式提供调试控制功能。尽管GDB不是一个完美的方案,但它足够应对各种调试任务,而且已经得到开放源代码团体的广泛支持。
Linux内核或设备驱动程序的调试要比应用程序的调试繁琐得多。
在做调研时,以下方面应特别注意:
什么调试方法支持要开发产品的硬件?需要什么内核补丁程序?还需要其它什么补丁程序?调试界面怎么样,如何使用?该工具需要调试内核模块及处理虚拟地址转换吗?还需要其它什么工具才能提供完整的方案?
经过进一步的调查,开发者往往发现工具A和工具B并没有提供完全一致的功能,因为它们是在彼此独立的情况下开发的。结果,开发者必须精确地考虑到这些工具的松散集合能提供什么样的功能,还需要付出多大的努力才能形成完整的解决方案。
如果不同处理器类型间的集成、可用性、互操作性和移植性很关键的话,开发者应考虑购买商用开发工具。这主要是因为将开发一个“免费”方案所付出的努力考虑进去,商用开发工具并不算贵。
Linux BSP
Linux系统有两大主要部分:带设备驱动程序的Linux内核;以及根文件系统,包括系统所需的全部支持应用程序、服务和库。除了驻留在目标
板上的OS组件外,还需要创建一个由GNU Compiler
Collection构成的交叉编译环境,为库和二进制程序(binutils)提供支持。
虽然几乎每一个组件都可在网上找到,但在硬件或设备驱动程序支持、集成测试信息、交叉编译指南或软件兼容性方面却很难收集到太多信息。尽管开发
者可从网上免费下载各种组件以配置嵌入式Linux操作系统,但每个组件在版本、支持、稳定性和测试等方面的状态则需要开发者自己决定。然后,开发者还要
完成最后的OS集成和测试,以及为所开发产品提供终身Linux OS维护。
另一方面,嵌入式Linux供应商所提供的商用Linux板支持工具包一般都是经过预先安装和测试的,而且提供支持和维护。其它须考虑的因素包括Linux桌面主机将会添加不同的库和内核功能,以及由于组织内的开发者变动而引起的长期维护问题。
品质保证部门一般会执行一系列严格的验证和性能测试,其中包括存储器泄漏检测/纠正、代码优化和任务跟踪等。那些想利用开放源代码工具开发面向
非X86平台的嵌入式Linux产品开发者将会发现这一任务甚至要比选择开放源代码调试方案难得多。Linux Trace
Toolkit、Valgrind工具及其它存储器分析程序可完成部分测试和验证任务。但总的来说,它们缺乏关键特性、集成功能及广泛的硬件支持。这些开
放源代码分析工具的评估过程与评估调试方案的过程基本相同。
最后的分析就是,一个设计得恰到好处的开发环境应能够提供商用和开放源代码两个世界所具有的最好特性:
◆交钥匙开发能力;◆易于使用和集成;◆大型工程组织的协调控制;◆品质和支持保证;◆持续性;◆按照自己的判断力使用开放源代码的能力
❹ 现在做嵌入式Linux一般用什么工具链有Windows下的开发工具吗
没有 ,都是标准的GNU工具连,gcc \ld 等等
❺ 嵌入式Linux系统开发有哪些
嵌入式Linux(Embedded Linux)是标准Linux经过小型化裁剪处理之后的专用Linux操作系统,能够固化于容量只有几KB或者几MB的存储器芯片或者单片机中,适合于特定嵌入式应用场合。目前已经开发成功的嵌入式系统中,大约一半的系统使用嵌入式Linux。
这与它的父辈 — Linux自身的优良特性是分不开的。
❻ 在linux下用C语言做嵌入式开发 一般用什么IDE开发工具
linux下,一般都是用的是编辑器:vi 写代码,写make编译器:gcc 不用说了吧调试器:GDB -------------------------------------------要用到方便的图形界面的IDE呢用eclipse + CDT + GCC + GDB 配置开发环境有点麻烦,不过只要配置好呢开发效率都几不错的.找到在windows下开发的感觉. 用eclipse + CDT, makefile的可以自动生成的.
❼ linux开发嵌入式系统要装什么工具
我X,六月旅者你害人啊!
楼主,你至少需要一套较差编译环境。
这个环境最简单的是 gcc + glibc + linux-header + make 。另外还要看你的目标环境。
另外目标设备也是问题,可以是模拟器,也可以是开发板。arm、power、mips、x86 架构都可以成为嵌入式开发的目标。
具体的搭配,要看你实际的要求了。
一般装一套 Fedora Linux ,之后安装他的开发部分(新手这样省事……)。Fedora 版本选择建议选择最新版 - 1 或者 -2 的版本。比如现在 Fedora 最新的是 11 。那你就选择 Fedora 10 或者 Fedora 9 。这是为了保证你找到某些资料不会因为系统太新而不能用。如果你确定你能找到最新的资料,那么直接用最新版即可。
之后自己手工编译较差编译环境。这个建议网上找资料搞定。
工具版本的选择,也是个看情况的东西。
比如 gcc 建议 3.2 3.4 或者 4.2 。非常古老的环境要求,可以选择 gcc 2.95(大概 10年前的)。现在 gcc 4.4.1 是最新版。
内核也有 2.4 系列和 2.6 系列选择,每个系列都有无数的小版本可以选择。kernel-header 就要根据你目标内核选择了。
binutils 一般配合 gcc 出现时间选择即可。
glibc 是所有软件的基础,太新的旧软件不支持,太旧了新软件不支持。
剩下的还有 gdb 调试器,或者其他的辅助程序了。
宿主系统也需要很多附加的软件来支持嵌入式开发,比如 sed 、diff、patch、cvs或者svn或者git ,都是某些辅助需要的。
总的来说就是普通台式机开发的全套东西 + 目标系统需要的交叉编译器和调试器。
这些工具都需要按情况准备的……
❽ 学习linux嵌入式开发什么软件好
用Linux平台就行了,C语言一定要学好,指针一定要明确,像指针数组、数组指针、指针函数、函数指针数组、函数返回值是个指针,结构体指针(主要是链表)、文件操作指针(FILE *其实是typedef结构体的指针)等,要灵活运用typedef 定义类型、灵活运用结构体。
再学习Linux的系统编程,主要是文件操作,文件描述符fd,对文件的操作write,read,open.close等,然后学习进程fork();vfork();创建进程和管理父子进程,进程之间的通信无名管道、命名管道、消息队列、共享内存、信号量、套接字等;都掌握之后要学线程以及线程的互斥和同步,线程之间共享进程的资源,就要对资源进行合理的分配,例如信号量sem和线程互斥锁pthread_mutex,信号是用来检测信号的ISGNAL的,常见的信号例如ctrl+c,中断前台的进程和kill中断后台的进程,如果对网络感兴趣,可以学习下Linux的网络套接子Socket,实现多台主机之间进程的通信,例如QQ和IPMSG都是对网络套接字的操作,熟悉一下TCP、UDP协议和TFTP、HTTP的网络层的传输协议,个人觉得解析buff最费时间,可以自己做一下IPMSG,单用户和并发server,echo服务器。
感兴趣GUI的可以学习一下C++和Qt,Qt被nokia收购,nokia被微软收购,Qt支持很多的平台,很实用,C++主要是对类的操作,和C中的结构体相似,class 类名{};// 声明类class 类名:继承方式 基类{};//继承类类中包含私有成员、公有成员、受保护的成员,类是对事物共性的一种抽象,对象是共性的一种实体化,是类的一个实例,老师的共性是:教书,吃饭,睡觉等,可以抽象成一个类,个性是年龄、性别、名字等,是老师类的一个实例,C++还有很多的内容,Qt是用C++来写的,其中的窗口都是派生于QWidget的,具体的不多说了。
学完C++和Qt,有了面向对象的概念后,可以去学Java和android系统,做手机的应用软件和游戏开发,和Java 和C++类似,去掉c++中指针部分,完全脱离了内存的操作,完全的面向对象,android和Qt类似,具体内容不多说了。
说说底层的吧:
底层主要用到的是C语言和arm汇编主要是v4版本以后的汇编标准语言,首先清楚底层是怎么引导Linux系统的,嵌入式很大一部分使用缩减版的Linux内核主要是稳定版本的,千万不要去追求最新,最适合的才是最好的,前部分由汇编语言引导C语言,主要设置开发板软硬件的环境,主要是bootloader(vivi、uboot.bin),然后把设置好的param参数传给内核,内核调用这些参数去找相应的文件,进行相应的操作,然后就是Linux的根文件系统了,最后是软件的移植。
用到的软件:vmplayer (Linux redenterp版)、windows下的超级终端,LSJF24X0.exe(下载bootloader时使用,也可以用H-Jtag)、tftpd32.exe(做windows下的server用,用于u-boot网线下载)等工具。
以上是个人的体会,仅供参考!
❾ linux下嵌入式开发工程中 常用到的工具有哪些比如CRT、文件校对工具
串口调试工具,secureCRT,写ARM程序的话要装KeiluVision4.代码编辑器的话用Sourceinsight
❿ 在linux操作系统下嵌入式开发工具用哪个比较好linux操作系统下的C/c++界面编程工具有哪些
linux下面的C/C++图形界面的话可以考虑QT!QT的应用范围还是比较广