嵌入式Linux的开发流程包括哪些步骤?请详细介绍.doc_第1页
嵌入式Linux的开发流程包括哪些步骤?请详细介绍.doc_第2页
嵌入式Linux的开发流程包括哪些步骤?请详细介绍.doc_第3页
嵌入式Linux的开发流程包括哪些步骤?请详细介绍.doc_第4页
嵌入式Linux的开发流程包括哪些步骤?请详细介绍.doc_第5页
免费预览已结束,剩余1页可下载查看

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

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目录放到板子上了(这么说其实不合理,应该叫挂载). 然后找到你刚才一经编译好的哪个目标代码执行即可.1.流程:明确需求-分析硬件软件可行性(速度,内存,算法等)-硬件选型-原理图设计,layout,制板(同时软件功能模块可开始)-开发BSP(即所谓的启动程序,各硬件芯片的driver等)-放操作系统上去(如果需要的话)-软件模块加入-测试,,改bug-生产-over。2.首先,小的功能的话,不需要操作系统,一般一个while(1)配合中断完事。如果要移植,主要是修改与BSP层相连接的部分(如物理内存映射,启动点衔接等),然后在你的开发环境下编译过就行了。3.移植后,你创建出来进程后,把你要跑的简单任务挂到进程中就行了。即:进程主函数设为你的任务函数,这样进程跑起来后就是跑你的任务。4.linux相对庞大,不易掌握,但功能强大;ucos短小精悍,但对底层支持度不高。很适合学习时使用。基本原理都是一样的。5.心得:经验很重要,动手不动口。细心,勤于学习,多问,很多很多。6.如有其他问题,随时Hi我。我的嵌入式linux开发步骤:1. 安装虚拟机,见,选择桥接模式 2. 虚拟机串口设置,见; 3. 用交叉网线连接PC&开发板. 4.NFS(PC)设置:见& 备注: a.nfs的文件权限设置777 b.挂载/卸载nfs时候,注意当前所在文件夹,以免不成功让PC linux的/etc/rc.d/rc.local里面增加了部分命令,随机启动.如下:rootlocalhost rc.d# more rc.local#!/bin/sh# This script will be executed *after* all the other init scripts.# You can put your own initialization stuff in here if you dont# want to do the full Sys V style init stuff.touch /var/lock/subsys/localifconfig eth0 69ifconfig eth0 netmask /etc/rc.d/init.d/smb start/etc/rc.d/init.d/nfs start/etc/rc.d/init.d/portmap start/etc/rc.d/init.d/iptables stopecho nfs setup OK from /etc/rc.d/rc.local.rootlocalhost rc.d# 4. NFS(开发板)设置:见在开发板设置脚本/usr/yangchu.sh,这样开机运行该脚本来自动挂载#!/bin/shifconfig eth0 70mount -t nfs 69:/home/myth /mnt -o nolock echo “nfs ok!”此时由于NFS的缘故,可以在开发板mnt文件里看到实时变化的69:/home/myth文件夹的情况. 在开发板/etc/init.d/rcS的最后加入了执行上述脚本的语句,开机会自动运行 这里发现一个问题:发现板子启动时,不会去执行/usr/etc/rc.local文件,而且/etc/init.d/rcS文件包含了/usr/etc/rc.local的所有语句.不晓得这个是不是板子的一个bug,所以开发商把后者的语句都让前者去执行完毕了. 此外一个小发现记录下来:之前用minicom连上板子后,一直是看不到光标的,这给操作带来很大不便,但无意中发现在minicom执行一个非法操作:cat /usr/1.jpg后会自动退出minicom.不过重新进入minicom后就可以看到光标了. 5.在PC上编辑hello.c文件分别见虚拟机myth文件,用autotools生成makefile,并用GDB调试.见& 6.在PC上安装交叉编译工具,见: 一般情况下,主机和目标机是同一类型的计算机,这就是正常的编译,没有什么好说的。所谓交叉编译就是在主机上为目标机编译,比如在PC上编译,然后在手机上运行,这种编译就叫交叉编译.交叉编译需要交叉编译器,不同的目标机(主要是看芯片类型)需要不同的交叉编译器,比如我们这里要介绍的arm-linux交叉编译,所用的交叉编译器就是arm-linux-gcc系列。使用稳定版本cross-2.95.3.tar.bz2来建立交叉编译环境: a.将cross-2.95.3.tar.bz2解压到/usr/local/arm,会在该文件夹生成文件夹2.95.3,并删除压缩包cross-2.95.3.tar.bz2 b.在/etc/profile最后行增加环境变量export PATH=$PATH:/usr/local/arm/2.95.3/bin 7.利用交叉编译工具,在PC上将步骤6生成的hello.c的makefile生成可在开发板运行的hello a.修改makefile里的gcc工具 b./configure -host=arm-linux -prefix=/xxx -host:指定目标机的平台类型。一般格式为CPU类型-操作系统名称。比如,目标机的CPU为arm,操作系统为linux,可以这样写-host=arm-linux。 -prefix:这是安装路径的前缀,即编译结果放置的位置。默认值是/usr或者/usr/local,交叉编译时不能使用默认值,否则它会覆盖你本机的文件,所以要指定一个路径。比如,可以指定为-prefix=/work/cross/rootfs/usr.配置完成后,运行make编译,运行make install安装。 8.做几个里的实验. 9.内核模块编译:见: 10.驱动:本文来自CSDN博客,转载请标明出处:/zhang810413/archive/2009/02/27/3942942.aspx嵌入式设计及Linux驱动开发指南ARM的开发步骤1 做个最小系统板:如果你从没有做过ARM的开发,建议你一开始不要贪大求全,把所有的应用都做好,因为ARM的启动方式和dsp或单片机有所不同,往往会遇到各种问题,所以建议先布一个仅有Flash,SRAM或SDRAM、CPU、JTAG、和复位信号的小系统板,留出扩展接口。使最小系统能够正常运行,你的任务就完成了一半,好在ARM的外围接口基本都是标准接口,如果你已有这些硬件的布线经验,这对你来讲是一件很容易的事情。 2 写启动代码,根据硬件地址先写一个能够启动的小代码,包括以下部分: 初始化端口,屏蔽中断,把程序拷贝到SRAM中;完成代码的重映射;配置中断句柄,连接到C语言入口。也许你看到给你的一些示例程序当中,bootloader会有很多东西,但是不要被这些复杂的程序所困扰,因为你不是做开发板的,你的任务就是做段小程序,让你的应用程序能够运行下去 3 仔细研究你所用的芯片的资料,尽管ARM在内核上兼容,但每家芯片都有自己的特色,编写程序时必须考虑这些问题。尤其是女孩子,在这儿千万别有依赖心理,总想拿别人的示例程序修改,却越改越乱。 4 多看一些操作系统程序,在ARM的应用开放源代码的程序很多,要想提高自己,就要多看别人的程序,linux,uc/os-II等等这些都是很好的原 码。 6.如果你是作硬件,每个厂家基本上都有针对该芯片的DEMO板原理图。先将原理图消化。这样你以后做设计时,对资源的分配心中有数。器件的DATSHEET一定要好好消化。 7.如果做软件最好对操作系统的机理要有所了解。当然这对软件工程师来说是小菜一碟。但如果是硬件出身的就有点费劲。 问:做最小系统板是2层还是4层好? 答:只有AT91可以用两层板,其他的最少4层;44b0的地和电源处理好也可用两层板; 谈四层板和33欧电阻: 选用四层板不仅是电源和地的问题,高速数字电路对走线的阻抗有要求,二层板不好控制阻抗。33欧电阻一般加在驱动器端,也是起阻抗匹配作用的;布线时要先布数据地址线,和需要保证的高速线; 在高频的时候,PCB板上的走线都要看成传输线。传输线有其特征阻抗,学过传输线理论的都知道,当传输线上某处出现阻抗突变(不匹配)时,信号通过就会发生反射,反射对原信号造成干扰,严重时就会影响电路的正常工作。采用四层板时,通常外层走信号线,中间两层分别为电源和地平面,这样一方面隔离了两个信号层,更重要的是外层的走线与它们所靠近的平面形成称为“微带”(microstrip) 的传输线,它的阻抗比较固定,而且可以计算。对于两层板就比较难以做到这样。这种传输线阻抗主要于走线的宽度、到参考平面的距离、敷铜的厚度以及介电材料的特性有关,有许多现成的公式和程序可供计算。 33欧电阻通常串连放在驱动的一端(其实不一定33欧,从几欧到五、六十欧都有,视电路具体情况) ,其作用是与发送器的输出阻抗串连后与走线的阻抗匹配,使反射回来(假设解收端阻抗没有匹配) 的信号不会再次反射回去(吸收掉),这样接收端的信号就不会受到影响。接收端也

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论