linux嵌入式开发到底学些什么东西啊_嵌入式linux开发是做什么的
你是入门吧,我正在读研究生,研究方向是嵌入式,可以给你些好的建议,呵呵不知道你想研究哪个呢?FPGA和ARM都不错,我学的是ARM。学习嵌入式一定要有平台,现在学习一般用linux,要是你没学过,建议赶紧看。还有WinCE平台目前也比较吃香!三本教材:1.嵌入式Linux应用程序开发标准教程,华清远见编的,光盘资料也不错!2.ARM嵌入式系统基础教程,周立功编著的;3.学嵌入式硬件原理也要知道,嵌入式系统原理及接口技术,符意德编著的,基于S3C2410的,硬件讲的比较好!还有就是要学嵌入式一定要软硬兼备才行!动手能力很重要,要是能力够的话,买个开发板,自己烧写程序进行调试,可以事半功倍。再给你几个建议,你们学校要是有研究生,可以向他们请教,研究生都有实验室,有开发板和实验箱,硬件资源丰富。学生一般都很乐于助人的,不过你一定要很谦虚,只要你有诚心,我相信他们会帮你的。呵呵
linux嵌入式开发需要学哪些东西_嵌入式linux开发是做什么的
嵌入式系统的定义:“用于控制、监视或者辅助操作机器和设备的装置”(原文为:DevicesUsedtoControl,MonitororAssisttheOperationofEquipment,MachineryorPlants)。这主要是从应用对象上加以定义,从中可以看出嵌入式系统是软件和硬件的综合体,还可以涵盖机械等附属装置。国内普遍认同的嵌入式系统定义为:以应用为中心,以计算机技术为基础,软硬件可裁剪,适应应用系统对功能、可靠性、成本、体积、功耗等严格要求的专用计算机系统。嵌入式主要用到的是C语言,C,但Java也用于嵌入式技术,主要是用在嵌入式游戏开发,移动开发等,主要侧重JAVA的J2ME方向。嵌入式的发展前景跟就业前景很不错,目前国内这方面的人才也比较紧缺。所以你学这方面的专业比较好。嵌入式主要分为三大块:1.嵌入式Linux系统开发:侧重开发环境搭建、内核原理、交叉编译等2.嵌入式Linux应用开发:侧重Linux应用编程、内核编译、系统调用。3.嵌入式Linux驱动开发:侧重嵌入式Linux系统下的驱动开发、内核的深入分析。目前市场上专业的嵌入式培训很多很乱,因为是最近几年发展起来的。据我所知最权威最专业的要数东方赛富嵌入式培训学院了,位于清华大学东门,跟清华大学有很深的渊源关系。特别是师资,师资团队是整个嵌入式培训领域最好的。80%的老师来自清华大学、世界500强企业和中国顶尖的IT公司。如果时间及经济条件允许的话,培训一下还是有很好的,既学到了专业知识,同时也解决了就业问题,就业单位也比自己找的要好很多!如需要培训他们是不二的选择!
嵌入式设备的嵌入式设备上的Linux系统开发
Linux正在嵌入式开发领域稳步发展。因为Linux使用GPL(请参阅本文后面的参考资料),所以任何对将Linux定制于PDA、掌上机或者可佩带设备感兴趣的人都可以从因特网免费下载其内核和应用程序,并开始移植或开发。许多Linux改良品种迎合了嵌入式/实时市场。它们包括RTLinux(实时Linux)、uclinux(用于非MMU设备的Linux)、MontavistaLinux(用于ARM、MIPS、PPC的Linux分发版)、ARM-Linux(ARM上的Linux)和其它Linux系统嵌入式Linux开发大致涉及三个层次:引导装载程序、Linux内核和图形用户界面(或称GUI)。引导装载程序通常是在任何硬件上执行的第一段代码。在象台式机这样的常规系统中,通常将引导装载程序装入主引导记录(MasterBootRecord,(MBR))中,或者装入Linux驻留的磁盘的第一个扇区中。通常,在台式机或其它系统上,BIOS将控制移交给引导装载程序。专用软件可以直接与远程系统上的闪存设备进行交互并将引导装载程序安装在闪存的给定位置中。闪存设备是与存储设备功能类似的特殊芯片,而且它们能持久存储信息—即,在重新引导时不会擦除其内容。某些种类的嵌入式设备具有微小的引导代码—根据几个字节的指令—它将初始化一些DRAM设置并启用目标上的一个串行(或者USB,或者以太网)端口与主机程序通信。然后,主机程序或装入程序可以使用这个连接将引导装载程序传送到目标上,并将它写入闪存。设置工具链在主机机器上创建一个用于编译将在目标上运行的内核和应用程序的构建环境—这是因为目标硬件可能没有与主机兼容的二进制执行级别。工具链由一套用于编译、汇编和链接内核及应用程序的组件组成。这些组件包括:Binutils—用于操作二进制文件的实用程序集合。它们包括诸如ar、as、objmp、objcopy这样的实用程序。G—GNUC编译器。Glibc—所有用户应用程序都将链接到的C库。避免使用任何C库函数的内核和其它应用程序可以在没有该库的情况下进行编译。构建工具链建立了一个交叉编译器环境。本地编译器编译与本机同类的处理器的指令。交叉编译器运行在某一种处理器上,却可以编译另一种处理器的指令。重头设置交叉编译器工具链可不是一项简单的任务:它包括下载源代码、修补补丁、配置、编译、设置头文件、安装以及很多很多的操作。另外,这样一个彻底的构建过程对内存和硬盘的需求是巨大的。如果没有足够的内存和硬盘空间,那么在构建阶段由于相关性、配置或头文件设置等问题会突然冒出许多问题。因此能够从因特网上获得已预编译的二进制文件是一件好事(但不太好的一点是,它们大多数只限于基于ARM的系统,但迟早会改变的)。一些比较流行的已预编译的工具链包括那些来自Compaq(FamiliarLinux)、LART(LARTLinux)和Embedian(基于Debian但与它无关)的工具链—所有这些工具链都用于基于ARM的平台。从用户的观点来看,图形用户界面(GUI)是系统的一个最至关重要的方面:用户通过GUI与系统进行交互。所以GUI应该易于使用并且非常可靠。但它还需要是有内存意识的,以便在内存受限的、微型嵌入式设备上可以无缝执行。所以,它应该是轻量级的,并且能够快速装入。另一个要考虑的重要方面涉及许可证问题。一些GUI分发版具有允许免费使用的许可证,甚至在一些商业产品中也是如此。另一些许可证要求如果想将GUI合并入项目中则要支付版税。最后,大多数开发人员可能会选择XFree86,因为XFree86为他们提供了一个能使用他们喜欢的工具的熟悉环境。但是市场上较新的GUI,象CenturySoftware的(Nano-X)和TrolltechQT/Embedded,与X在嵌入式Linux的竞技舞台中展开了激烈竞争,这主要是因为它们占用很少的资源、执行的速度很快并且具有定制窗口构件的支持。
嵌入式设备的嵌入式设备上的Linux系统开发
Linux 正在嵌入式开发领域稳步发展。因为 Linux 使用 GPL(请参阅本文后面的参考资料),所以任何对将 Linux 定制于 PDA、掌上机或者可佩带设备感兴趣的人都可以从因特网免费下载其内核和应用程序,并开始移植或开发。许多 Linux 改良品种迎合了嵌入式/实时市场。它们包括 RTLinux(实时 Linux)、uclinux(用于非 MMU 设备的 Linux)、Montavista Linux(用于 ARM、MIPS、PPC 的 Linux 分发版)、ARM-Linux(ARM 上的 Linux)和其它 Linux 系统嵌入式 Linux 开发大致涉及三个层次:引导装载程序、Linux 内核和图形用户界面(或称 GUI)。引导装载程序通常是在任何硬件上执行的第一段代码。在象台式机这样的常规系统中,通常将引导装载程序装入主引导记录(Master Boot Record,(MBR))中,或者装入 Linux 驻留的磁盘的第一个扇区中。通常,在台式机或其它系统上,BIOS 将控制移交给引导装载程序。 专用软件可以直接与远程系统上的闪存设备进行交互并将引导装载程序安装在闪存的给定位置中。闪存设备是与存储设备功能类似的特殊芯片,而且它们能持久存储信息 — 即,在重新引导时不会擦除其内容。某些种类的嵌入式设备具有微小的引导代码— 根据几个字节的指令 — 它将初始化一些 DRAM 设置并启用目标上的一个串行(或者 USB,或者以太网)端口与主机程序通信。然后,主机程序或装入程序可以使用这个连接将引导装载程序传送到目标上,并将它写入闪存。设置工具链在主机机器上创建一个用于编译将在目标上运行的内核和应用程序的构建环境 — 这是因为目标硬件可能没有与主机兼容的二进制执行级别。工具链由一套用于编译、汇编和链接内核及应用程序的组件组成。 这些组件包括:Binutils— 用于操作二进制文件的实用程序集合。它们包括诸如ar、as、objmp、objcopy这样的实用程序。G— GNU C 编译器。Glibc— 所有用户应用程序都将链接到的 C 库。避免使用任何 C 库函数的内核和其它应用程序可以在没有该库的情况下进行编译。构建工具链建立了一个交叉编译器环境。本地编译器编译与本机同类的处理器的指令。交叉编译器运行在某一种处理器上,却可以编译另一种处理器的指令。重头设置交叉编译器工具链可不是一项简单的任务:它包括下载源代码、修补补丁、配置、编译、设置头文件、安装以及很多很多的操作。另外,这样一个彻底的构建过程对内存和硬盘的需求是巨大的。如果没有足够的内存和硬盘空间,那么在构建阶段由于相关性、配置或头文件设置等问题会突然冒出许多问题。因此能够从因特网上获得已预编译的二进制文件是一件好事(但不太好的一点是,它们大多数只限于基于 ARM 的系统,但迟早会改变的)。一些比较流行的已预编译的工具链包括那些来自 Compaq(Familiar Linux )、LART(LART Linux)和 Embedian(基于 Debian 但与它无关)的工具链 — 所有这些工具链都用于基于 ARM 的平台。从用户的观点来看,图形用户界面(GUI)是系统的一个最至关重要的方面:用户通过 GUI 与系统进行交互。所以 GUI 应该易于使用并且非常可靠。但它还需要是有内存意识的,以便在内存受限的、微型嵌入式设备上可以无缝执行。所以,它应该是轻量级的,并且能够快速装入。 另一个要考虑的重要方面涉及许可证问题。一些 GUI 分发版具有允许免费使用的许可证,甚至在一些商业产品中也是如此。另一些许可证要求如果想将 GUI 合并入项目中则要支付版税。最后,大多数开发人员可能会选择 XFree86,因为 XFree86 为他们提供了一个能使用他们喜欢的工具的熟悉环境。但是市场上较新的 GUI,象 Century Software 的 (Nano-X)和 Trolltech QT/Embedded,与 X 在嵌入式 Linux 的竞技舞台中展开了激烈竞争,这主要是因为它们占用很少的资源、执行的速度很快并且具有定制窗口构件的支持。