Ⅰ 谁能给我说一下嵌入式linux的开发流程包括哪些步骤请详细介绍,谢谢了
嵌入式Linux开发流程
在一个嵌入式系统中使用Linux开发,根据应用需求的不同有不同的配置开发方法,但是一般都要经过如下的过程:
1.建立开发环境
操作系统一般使用RedHat-Linux,版本从7到9都可以,选择定制安装或全部安装,通过网络下载相应的GCC交叉编译器进行安装(例如arm-Linux-gcc、arm-μclibc-gcc),或者安装产品厂家提供的交叉编译器。
2.配置开发主机
配置MINICOM,一般的参数为波特率为115 200bps,数据位为8位,停止位为1,无奇偶校验,软件硬件流控设为无。在Windows下的超级终端的配置也是这样的。MINICOM软件的作用是作为调试嵌入式开发板的信息输出的监视器和键盘输入的工具。配置网络,主要是配置NFS网络文件系统,需要关闭防火墙,简化嵌入式网络调试环境设置过程。
3.建立引导装载程序BOOTLOADER
从网络上下载一些公开源代码的BOOTLOADER,如U-BOOT、BLOB、VIVI、LILO、ARM-BOOT、RED-BOOT等,根据自己具体的芯片进行移植修改。有些芯片没有内置引导装载程序,例如三星的ARM7、ARM9系列芯片,这样就需要编写开发板上Flash的烧写程序,网络上有免费下载的Windows下通过JTAG并口简易仿真器烧写ARM外围Flash芯片的烧写程序,也有Linux下的公开源代码的J-Flash程序。如果不能烧写自己的开发板,就需要根据自己的具体电路进行源代码修改。这是系统正常运行的第一步。如果购买了厂家的仿真器当然比较容易烧写Flash,这对于需要迅速开发自己产品的人来说可以极大地提高开发速度,但是其中的核心技术是无法了解的。
4.下载别人已经移植好的Linux操作系统
如μCLinux、ARM-Linux、PPC-Linux等,如果有专门针对所使用的CPU移植好的Linux操作系统那是再好不过的,下载后再添加自己的特定硬件的驱动程序,进行调试修改,对于带MMU的CPU可以使用模块方式调试驱动,对于μCLinux这样的系统则需编译进内核进行调试。
5.建立根文件系统
从www.busybox.net下载使用BUSYBOX软件进行功能裁减,产生一个最基本的根文件系统,再根据自己的应用需要添加其他程序。默认的启动脚本一般都不会符合应用的需要,所以就要修改根文件系统中的启动脚本,它的存放位置位于/etc目录下,包括:/etc/init.d/rc.S、/etc/profile、/etc/.profile等,自动挂装文件系统的配置文件/etc/fstab,具体情况会随系统不同而不同。根文件系统在嵌入式系统中一般设为只读,需要使用mkcramfs、genromfs等工具产生烧写映像文件。
6.建立应用程序的Flash磁盘分区
一般使用JFFS2或YAFFS文件系统,这需要在内核中提供这些文件系统的驱动,有的系统使用一个线性Flash(NOR型)512KB~32MB,有的系统使用非线性Flash(NAND型)8~512MB,有的两个同时使用,需要根据应用规划Flash的分区方案。
7.开发应用程序
应用程序可以放入根文件系统中,也可以放入YAFFS、JFFS2文件系统中,有的应用不使用根文件系统,直接将应用程序和内核设计在一起,这有点类似于μCOS-II的方式。
8.烧写内核、根文件系统、应用程序
9.发布产品
Ⅱ 嵌入式学习路线如何学好嵌入式开发
1、嵌入式系统开发基础理
2、嵌入式系统应用核心课程
3、嵌入式linux底层开发核心课程
4、嵌入式系统开发拓展与实践
1.嵌入式系统开发基础理论:基础课程:嵌入式linux操作系统的使用,嵌入式linuxc语言高级编程,进阶课程;数据结构及经典算法表述,Java高级语言编程
2.嵌入式系统应用核心课程:基础课程:嵌入式linux文件I/O,嵌入式linux库的制作和使用,嵌入式程序并发设计.进阶课程:嵌入式linux网络编程,嵌入式数据库开发,嵌入式linux综合案例,android应用基础开发
3.嵌入式linux底层开发核心课程:基础课程:ARM处理器编程,ARM硬件接口编程,物联网基础,进阶课程:嵌入式linux系统移植,嵌入式linux内核开发,嵌入式linux驱动开发,android移植开发
4.嵌入式系统开发拓展与实践:创建物联网项目,公交一卡通充值系统,基于android智能家具,便携式智能医疗系统
Ⅲ 嵌入式linux系统开发的具体步骤
第一步、建立交叉编译环境
没有交叉开发经验的读者,可能一时很难接受这个概念。首先,要明白两个概念:一般
我们工作的机器,称为开发机、主机;我们制作好的系统将要放到某台机器,如手机或另一
台PC机,这台机我们称为目标主机。
我们一般开发机上已经有一套开发工具,我们称之为原生开发套件,我们一般就是用它
们来写程序,那么,那什么又是交叉编译环境呢?其实一点也不神秘,也就是在开发机上再
安装一套开发工具,这套开发工具编译出来的程序,如内核、系统工作或者我们自己的程序,
是放在目标主机上运行的。
那么或许有初学者会问,直接用原生开发工具为目标主机编译程序不就完了?至少我当
初是这么想的。一般来说,我们的开发机都是X86
平台,原生开发套件开发的工具,也针
对X86
平台,而我们的目标主机可能是PowerPC、IXP、MIPS……所以,我们的交叉编译
环境是针对某一类具体平台的。
一般来讲,交叉开发环境需要二进制工具程序、编译器、C链接库,嵌入式开发常用的
这三类软件是:
Binutils
Gcc
uClibc
当然,GNU包含的工具套件不仅于此,你还要以根据实际需要,进行选择
第二步、编译内核
开发工具是针对某一类硬件平台,内核同样也是。这一步,我们需要用第一步中建立的
工具,对内核进行编译,对于有内核编译经验的人来说,这是非常简单的;
第三步、建立根文件系统
也就是建立我们平常看到的bin、dev、proc……这一大堆目录,以及一些必备的文件;
另外,我们还需要为我们的目标系统安装一些常用的工具软件,如ls、ifconfig……当然,
一个办法是找到这些工具的源代码,用第一步建立的交叉编译工具来编译,但是这些软件一
是数量多,二是某些体积较大,不适合嵌入式系统,这一步,我们一般都是用busybox来完
成的,包括系统引导软件init;
最后,我们为系统还需要建立初始化的引导文件,如inittab……
Ⅳ 嵌入式里做linux内核开发有没有前途
搜索“linux”,更可以获得近2000条记录。从这些职位上看,市场上需要的嵌入式人才必须具备C语言编程经验、嵌入式操作系统(嵌入式Linux)、具有内核裁剪经验、具有驱动程序开发经验。这些都是在学校无法学到的知识。尽管很多大学的电子、计算机专业都开设了程序设计、微机原理、单片机等课程,但高校输送的人才与企业需要的人才却始终没有对应上。
根据《2011-2012年中国嵌入式开发从业人员调查报告》得出结论:在社会生活压力不断增大、大学生就业难的今天,随着高校专业学科建设更加趋于灵活高效,嵌入式及相关专业在大学校园内的普及和发展也达到了前所未有的速度。在高校更加贴近企业需求的实训模式的引导下,越来越多的计算机、电子、自动化等相关专业的本科生和研究生开始将自己的职业规划定位到高薪诱人且发展前景极为广阔的专业嵌入式开发领域。
Ⅳ Linux嵌入式开发和Linux内核/驱动开发有什么区别
前者强调的是产品(linux嵌入式产品),而后者强调的是软件(内核和驱动)。
一般做linux嵌入式产品时都要涉及linux驱动和内核,当然不仅仅是内核驱动,还有gui系统,和其他软件等。
而做linux内核驱动则不一定用于嵌入式产品,也可以用于开发pc机(也就是一般的x86架构)软件。
Ⅵ 嵌入式里做linux内核开发有没有前途
搜索“linux”,更可以获得近2000条记录。从这些职位上看,市场上需要的嵌入式人才必须具备C语言编程经验、嵌入式操作系统(嵌入式Linux)、具有内核裁剪经验、具有驱动程序开发经验。这些都是在学校无法学到的知识。尽管很多大学的电子、计算机专业都开设了程序设计、微机原理、单片机等课程,但高校输送的人才与企业需要的人才却始终没有对应上。
根据《2011-2012年中国嵌入式开发从业人员调查报告》得出结论:在社会生活压力不断增大、大学生就业难的今天,随着高校专业学科建设更加趋于灵活高效,嵌入式及相关专业在大学校园内的普及和发展也达到了前所未有的速度。在高校更加贴近企业需求的实训模式的引导下,越来越多的计算机、电子、自动化等相关专业的本科生和研究生开始将自己的职业规划定位到高薪诱人且发展前景极为广阔的专业嵌入式开发领域。
一个做应用,一个做底层移植(注意哦是移植,谁敢从0开始写),两者都会更有前途,反正单纯搞应用最没前途
没有吧?其实软件并不总是需要创新,干的时间长了,好多软件都做成了模块,大多数新工程都是重新搭建一下,新写的东西比较少。
标准的答案!1:嵌入式是必须要和处理器架构打交道的!和处理器有关的电路可以说都是数字电路;所以嵌入式必须要懂数字电路; 2:linux内核开发:个人感觉还是要懂的!因为linux内核有两部分代码:和处理器架构有关的:~/arch/目录下面的代码;和通用代码;和架构相关的就是和硬件打交道了; 3:个人感觉能高Linuxkernel开发的人都是特别大神级的人物;中国好像不多;搞LinuxDriver的倒是挺多!但真正大牛(像linux社区的大牛)也不多! 4:个人感觉你问这个问题问的有点问题……把自己的目标放的太大了!
当然有区别了:linux应用开发是上层软件应用的开发,主要利用linux中的开源代码进行软件开发,是一些应用性的,跟人的需求关系有关系。
linux内核开发是开发系统底层的软件开发,用硬件关系很大,主要跟底层的硬件有关,比如:操作寄存器,驱动一些模块等。
底层较难,主要跟兴趣有关,linux内核开发的前途很好,转行业比较好转,灵活性很强
在中国真正有内核开发需求的公司并不多。
但是真正做的好的话,钱一定少不了
内核开发难度更大,首先是你要整体掌握linux结构层次,还需要对硬件很熟悉
网络编程相对简单一些
《嵌入式系统Linux内核开发实战指南(ARM平台)》凝聚了作者12年的工作经验和学习心得与体会,内容覆盖了嵌入式系统Linux内核开发的各个方面。作者根据自己11年的一线工作经验,介绍了嵌入式系统的概念、组织架构、工作原理、软硬件设计流程、开发调试方法以及嵌入式Linux的开发方法与技能,其中列举了许多作者工作中的实际案例;
●对于经验非常丰富的高手,可以参照详细目录直接阅读代码透析Linux内核实现原理的相关章节
●对于入行多年的工程师,本书包含作者10多年的实战经验与技能,让你遇到难题不求人
●对于刚起步的初学者,本书详细介绍了嵌入式Linux开发流程和方法,让你快速入门,不走弯路
这两个方向都是比较好的方向,但学起来确实不容易。不知道你的基础如何。做开发的人不要永远在一线做开发,做到一定的程度应该转型搞管理。Windows内核、驱动开发我不了解,前景如何不得而知;VxWorks我倒是了解一些,这个方向不错,它代表了嵌入式操作系统的最高水平。能熟练掌握VxWorks平台下的嵌入式系统研发,你就真成牛人了,不是象牛一样工作哦,而是牛B哦
linux开发前景不错的,个人建议你这个时期主要是学习,丰富自己的开发经验,内核开发会让你更深入扎实的了解linux系统,嵌入式开发经验能给你更多的硬件知识的补充,建议你在这2方面若有机会有好的环境来学习的话就优先先学习吧,这2方面我认为前景更远大
就是赚点打工钱,提高些经验,也没什么坏处,但前途还是在国内,很多人都回来了,毕竟软件都是外包给我们做的,核心架构人家不用我们开发。
Ⅶ 求嵌入式linux开发详细流程(步骤)
1.首先,建立交叉编译环境:交叉编译是指:在PC机上编译,在目标板上执行,我PC是linux+ arm-elf-gcc编译器.扳子是ARM3000.板子上的系统是uclinux,这时一个剪裁的很小的实时嵌入式linux操作系统.推荐使用这个.
2.然后就是你写程序喽,不过注意可能有些库函数不能用,因为哪个编译器稍微受限一点,不是所由的c库函数都支持,不过一般开发的都有.
3.连起你的主机和开发板,这个你会不?要连两个:串口(用来控制板子)和以太口(用来下载程序),我们板子上这些外设都有,你要使没有可以用其他的口代替传程序,但串口可是该有的阿!
4.在你主机上编译程序生成目标代码,建议用makefile文件来组织你的联编关系.
5.把生成代码下载到目标板执行调试.我是用的主机的NFS(网落文件)服务,下载到目标板的.
6.注:目标板是怎么控制的呢?是用串口控制的,可用minicom,设置好你要控制的串口,也应该是你连板子的那个.在命令行里敲上minicom,即进入minicom截面,开启你的板子,应该就是板子uclinux系统解压安装的画面了.然后用ifconfig eth0.....
配置ip,这个ip就是你板子的ip了,注意与主机一个网段.然后mount -t nfs 主机ip:/uclinux /板子上的一个目录,就把主机的 uclinux目录放到板子上了(这么说其实不合理,应该叫挂载). 然后找到你刚才一经编译好的哪个目标代码执行即可.
因不了解你的具体环境和配置,暂说这些,有问题可再联系:)
Ⅷ 想学linux嵌入式开发培训,去哪个培训机构
想学linux嵌入式开发培训,推荐粤嵌IT培训,国内嵌入式学习知名品牌!十余年开发经验的双师型老师(工程师型导师)亲自教学,丰富的育人与研发经验,17年教育与技术沉淀为嵌入式技术学习提供强大教学质量保障!科学的学习管理模式,最大化提升学习效率。师资力量强大,口碑极佳。Ⅸ 嵌入式开发需要掌握哪些知识
嵌入式系统是计算机软件和硬件的综合体,岗位包括:ESE(嵌入式软件工程师);ADE(嵌入式应用开发工程师);FWE(嵌入式底层开发工程师);FEC(嵌入式固件开发工程师),你可以先下载全套嵌入式视频课自学,看是否感兴趣。
课程内容主要包括:
①C,Java核心编程:c语言核心编程,Java核心编程;
②Linux核心操作与算法:Linux系统使用,Linux-c编程核心技术,精品数据结构,Linux-c编程精髓;
③核心操作与算法:Linux系统编程,Linux网络编程核心技术,UI编程,Java核心编程,安卓核心技术;
④ARM+Linux底层开发:数字电路,ARM编程核心,Linux系统开发,嵌入式Linux驱动开发;
⑤大型项目实践:每期安排各类型真实的项目,详细可以点我下载资料。
互联网行业目前还是最热门的行业之一,学习IT技能之后足够优秀是有机会进入腾讯、阿里、网易等互联网大厂高薪就业的,发展前景非常好,普通人也可以学习。
想要系统学习,你可以考察对比一下开设有相关专业的热门学校,好的学校拥有根据当下企业需求自主研发课程的能力,能够在校期间取得大专或本科学历,中博软件学院、南京课工场、南京北大青鸟等开设相关专业的学校都是不错的,建议实地考察对比一下。
祝你学有所成,望采纳。
Ⅹ linux嵌入式开发指的是什么
1.什么是嵌入式Linux系统?
嵌入式Linux系统就是利用Linux其自身的许多特点,把它应用到嵌入式系统里。
Linux做嵌入式的优势,首先,Linux是开放源代码的,不存在黑箱技术,遍布全球的众多Linux爱好者又是Linux开发者的强大技术支持;其次,Linux的内核小、效率高,内核的更新速度很快;第三,Linux是免费的OS,在价格上极具竞争力。
Linux还有着嵌入式操作系统所
需要的很多特色,突出的就是Linux适应于多种CPU和多种硬件平台,是一个跨平台的系统。到目前为止,它可以支持二三十种CPU。而且性能稳定,裁剪
性很好,开发和使用都很容易。很多CPU包括家电业芯片,都开始做Linux的平台移植工作。移植的速度远远超过Java的开发环境。也就是说,如果今天
用Linux环境开发产品,那么将来换CPU就不会遇到困扰。同时,Linux内核的结构在网络方面是非常完整的,Linux对网络中最常用的