建立嵌入式linux开发环境实验
- 格式:docx
- 大小:29.00 KB
- 文档页数:7
2009级网络工程韩培培091124004 实验报告课程: Linux嵌入式系统开发学号: 09116436姓名: 李军专业: 网络工程班级: 2009级洛阳师范学院信息技术学院实验时间:___2012 年 3 _月__20_日星期_ 3 ___实验地点:逸夫楼A706实验名称:嵌入式系统开发环境的建立实验目的: 1.了解嵌入式系统开发环境的建立流程;2.为嵌入式系统的开发做好准备。
实验准备:宿主机:①选择嵌入式Linux发行版;②熟悉交叉开发环境和工具。
目标机:熟悉目标板引导程序bootloader,Linux 内核,Linux根文件系统,建立应用程序分区。
实验环境:宿主机(开发平台)目标机(运行平台)串口线网线商业的linux发行版为开发者提供了可靠的软件和完整的开发工具包。
交叉开发环境是嵌入式linux开发的基本模型。
我们需要设置linux 的环境配置及各种gnu工具链。
初始化硬件平台,引导linux内核的启动,由于硬件平台是专门定制的,所以要下载、修改和编译bootloader,并用烧写程序烧写倒flash 中。
嵌入式Linux开发一般需要重新定制和裁剪Linux内核,所以需要配置、编译和移植内核。
通常都是下载别人已经移植好的然后再添加自己的特定硬件的驱动程序,进行调试修改。
高级一点儿的操作系统一般都有文件系统的支持,系统启动必须的程序和文件都必须放到根文件系统中,因此需要构建自己的根文件系统。
可以用专门的busybox软件进行剪裁定制。
在根文件系统基础上建立应用程序的flash磁盘分区,一盘使用jffs2或者yaffs文件系统。
这需要在内核中提供这些文件系统的驱动。
烧写bootloader、内核、根文件系统和应用程序,最后发布产品。
宿主机环境搭建:1、安装linux发行版本redhat linux。
2、安装跨平台开发工具链。
由于嵌入式开发系统的限制,在裁剪和定制嵌入式linux系统之前,通常要先在pc机上建立一个用于目标机的交叉编译环境,也就是将各种二进制工具程序集成为工具链。
实验三搭建嵌入式系统开发环境一、实验目的:1.掌握嵌入式开发环境的配置;2.掌握开发工具链的安装与配置;3.掌握嵌入式系统内核和根文件系统的烧写的过程。
二、实验内容:1)安装配置嵌入式开发环境;2)安装与配置工具链;3)内核和根文件系统的烧写三、实验设备及工具:硬件:UP-NETARM2410-S嵌入式实验仪、PC机pentumn500以上、硬盘40G以上、内存大于256M。
软件:PC机操作系统Red Hat Enterprise Linux 4、MINICOM 、AMRLINUX开发环境。
四、实验步骤:1.共享windows下内核文件至linux环境下,并将文件复制至个人开发目录中2.进入目录,输入make menuconfig,对内核进行裁剪配置3.编译内核之前输入make clean清理编译环境4.输入make dep 编译相关依赖文件5.输入make zImage 输出最终编译后的镜像文件6.将镜像文件共享至windows环境下7.在windows打开超级终端,进入vivi,将镜像文件烧录至实验箱开发板中五、实验总结:通过本次实验,熟悉了Linux 开发环境,学会了如何进行linux内核的烧写。
在实验过程中了解到Linux内核模块的组成结构,通过本次实验,初步了解嵌入式开发的基本过程。
实验四嵌入式驱动程序设计一、实验目的:1.学习在LINUX 下进行驱动设计的原理2.掌握使用模块方式进行驱动开发调试的过程二、实验内容:在PC 机上编写简单的虚拟硬件驱动程序并进调试,实验驱动的各个接口函数的实现,分析并理解驱动与应用程序的交互过程。
三、实验设备及工具:硬件:UP-NETARM2410-S嵌入式实验仪、PC机pentumn500以上、硬盘40G以上、内存大于256M。
软件:PC机操作系统Red Hat Enterprise Linux 4、MINICOM 、AMRLINUX开发环境。
四、预备知识:1.有 C 语言基础。
实验一嵌入式 Linux 开发环境的搭建及 Makefile 应用一、实验目的:1.熟悉嵌入式 Linux 开发基本过程及基本命令。
2.了解嵌入式 Linux 开发中各种工具的基本用途。
3.搭建好嵌入式 Linux 的开发环境。
4.通过对包含多文件的 Makefile 的编写,熟悉各种形式的Makefile 编写,加深对 Makefile 中用户自定义变量、自动变量及预定义变量的理解。
二、实验内容:1.安装 Vmware 及 Ubuntu;2.熟悉 Linux 下相关命令:属性查询、修改,路径、目录的查询、修改、删除,压缩、解压等;3.熟悉编辑工具;4.熟悉 makefile 文件的基本作用(编写一个包含多文件的Makefile)。
三、Make 工程管理器:Makefile如今能得以广泛应用,这还得归功于它被包含在Unix系统中。
在make诞生之前,Unix系统的编译系统主要由“make”、“install”shell脚本程序和程序的源代码组成。
它可以把不同目标的命令组成一个文件,而且可以抽象化依赖关系的检查和存档。
这是向现代编译环境发展的重要一步。
1977年,斯图亚特·费尔德曼在1贝尔实验室里制作了这个软件。
2003年,斯图亚特·费尔德曼因发明了这样一个重要的工具而接受了美国计算机协会(ACM)颁发的软件系统奖。
Makefile文件是可以实现自动化编译,只需要一个“make”命令,整个工程就能完全自动编译,极大的提高了软件开发的效率。
目前虽有众多依赖关系检查工具,但是make是应用最广泛的一个。
一个程序员会不会写makefile,从一个侧面说明了这个程序员是否具备完成大型工程的能力。
1.Makefile 基本规则一个简单的 Makefile 语句由目标、依赖条件、指令组成。
smdk6400_config :unconfig@mkdir -p $(obj)include $(obj)board/samsung/smdk6400其中:smdk6400_config:目标;unconfig:先决条件;@mkdir -p $(obj)include $(obj)board/samsung/smdk6400:指令。
LINUX嵌入式实验报告目录目录 (1)实验一:嵌入式Linux开发流程 (2)实验二:嵌入式Linux开发环境搭建 (6)实验三:串行端口程序设计 (11)实验四:A/D D/A接口实验 (16)实验五:图形界面应用程序设计 (18)实验六:内核与根文件系统实验 (23)实验七:驱动程序设计实验 (29)实验八:无线通信实验 (33)实验一:嵌入式Linux开发流程一.实验目的了解嵌入式Linux的开发流程,会进行简单的开发。
二.实验内容进行Linux的开发流程的简单介绍。
三.实验步骤嵌入式Linux开发,根据应用需求的不同有不同的配置开发方法,但是一般都要经过以下过程:建立开发环境,操作系统一般使用REDHAT-LINUX,版本7到9都可以,选择定制安装或全部安装,通过网络下载相应的GCC交叉编译器进行安装(比如arm-linux-gcc、arm-uclibc-gcc),或者安装产品厂家提供的交叉编译器。
使用Linux的Red Linux 9的开发界面截图如下:配置开发主机,配置MINICOM,一般参数为波特率115200,数据位8位,停止位1,无奇偶校验,软硬件控制流设为无。
在WINDOWS下的超级终端的配置也是这样,MINICOM 软件的作用是作为调试嵌入式开发板信息输出的监视器和键盘输入的工具;配置网络,只要是配置NFS网络文件系统,需要关闭防火墙,简化嵌入式网络调试环境设置过程。
系统配置截图如下:建立引导装载程序BOOTLOADER,从网络上下载一些公开源代码的BOOTLOADER,如-BOOT、BLOB、VIVI、LILO、ARM-BOOT、RED-BOOT等,根据自己具体芯片进行移植修改。
有些芯片没有内置引导装载程序,比如三星的ARM7、ARM9系列芯片,这样就需要编写烧写开发板上的flash的烧写程序,网络上有免费下载的WINDOWS下通过JTAG并口简易仿真器烧写ARM外围flash芯片程序。
嵌入式系统实验报告课程名称:嵌入式系统班级:姓名:学号:实验一. ARM 实验板卡资源及程序调试1.实验目的熟悉嵌入式Linux 开发环境,学会基于IMX6UL 教学平台的Linux 开发环境的配置和使用;利用arm-poky-linux-gnueabi-gcc 交叉编译器编译程序,使用基于NFS 的挂载方式进行实验,了解嵌入式开发的基本过程2. 实验内容本次实验使用ubuntu 操作系统环境,创建一个新目录,并在其中编写hello.c 和Makefile 文件。
学习在Linux 下的编程和编译过程,以及ARM 开发板的使用和开发环境的设置。
将已经编译好的文件通过NFS 方式挂载到目标开发板上运行2.实验环境硬件:IMX6 教学平台,PC 机酷睿i3 以上, 硬盘120G 以上,内存2G 以上软件:Vmware Workstation +Yocto 项目3硬件接线:电源线接到“12V电源线”,网线接到网口,串口线接到com1,4.实验原理4.1 嵌入式开发方式嵌入式开发当中通常会使用2 种方式来运行应用程序:1、下载;2、挂载。
4.2下载的方式:使用FTP、TFTP 等软件,利用宿主机与目标机的网络硬件进行,此种方法通常是将宿主机端编译好的目标机可执行的二进制文件通过网线或串口线下载固化到目标机的存储器(FLASH)中。
在目标机嵌入式设备存储资源有限的情况下受到存储容量的限制,因此,在调试阶段通常的嵌入式开发经常使用NFS 挂载的方式进行。
而在发布产品阶段才使用下载方式。
4.3 NFS 挂载方式:利用宿主机端NFS 服务,在宿主机端创建一定权限的NFS 共享目录,在目标机端使用NFS 文件系统挂载该目录,从而达到网络共享服务的目的。
这样做的好处是不占用目标机存储资源,可以对大容量文件进行访问。
缺点是由于实际并没有将宿主端文件存储到目标机存储设备上,因此掉电不保存共享文件内容。
通常在嵌入式开发调试阶段,采NFS 挂载方式进行。
嵌入式开发环境搭建实验报告实验报告:嵌入式开发环境搭建实验目的:本实验旨在通过搭建嵌入式开发环境,使学生对嵌入式系统的开发流程和环境有更深入的了解,并能够进行简单的嵌入式开发实践。
实验材料:1. 一台支持嵌入式开发的电脑2. 开发板(如Arduino、Raspberry Pi等)3. USB数据线4. 开发软件(如Arduino IDE、Raspbian等)5. 软件安装包(如果需要单独安装)实验步骤:1. 准备开发环境软件:根据使用的开发板选择相应的开发软件,并从官方网站下载安装包。
将安装包保存到电脑上指定的路径。
2. 安装开发软件:运行安装包,按照安装向导的提示进行软件的安装。
完成安装后,打开软件,检查是否安装成功。
3. 连接开发板:使用USB数据线将开发板连接到电脑上,并确保连接良好。
4. 配置开发环境:打开开发软件,进入设置或配置界面。
根据使用的开发板,选择正确的开发板型号,并设置串行端口。
保存设置。
5. 编写并调试代码:使用开发软件创建一个新的代码文件或打开一个现有的示例代码文件。
编写嵌入式程序代码,并进行调试与测试。
根据需要,可以使用调试器、仿真器等进行代码调试。
6. 上传程序到开发板:完成代码编写和调试后,将程序通过USB数据线上传(烧录)到开发板上。
等待上传过程完成。
7. 运行程序:断开USB数据线,将开发板与目标设备(如传感器、电机等)连接。
开启目标设备的电源,观察目标设备的动作与反应。
8. 实验结果分析:根据实验结果,对比设计预期和实际观测,分析代码的执行情况,查找问题并提出解决方案。
实验总结:通过本实验,我们成功搭建了嵌入式开发环境,并进行了基本的嵌入式开发实践。
通过编写代码、调试和运行程序,我们能够控制目标设备进行特定的操作。
在实验过程中,我们对嵌入式系统的开发流程和环境有了更深入的了解,并具备了一定的嵌入式开发能力。
需要注意的是,在实际的嵌入式开发中,可能还需要考虑更多的因素,如硬件接口、通讯协议、资源管理等。
嵌入式linux实验报告嵌入式Linux实验报告一、引言嵌入式系统是指嵌入在各种设备中的计算机系统,它通常包括硬件和软件两部分。
而Linux作为一种开源的操作系统,被广泛应用于嵌入式系统中。
本实验报告将介绍嵌入式Linux的相关实验内容和实验结果,以及对实验过程中遇到的问题的解决方法。
二、实验目的本次实验旨在通过搭建嵌入式Linux系统,了解Linux在嵌入式领域的应用,并掌握相关的配置和调试技巧。
具体目标如下:1. 理解嵌入式系统的基本概念和原理;2. 掌握Linux内核的编译和配置方法;3. 熟悉交叉编译环境的搭建和使用;4. 实现简单的应用程序开发和调试。
三、实验环境1. 硬件环境:嵌入式开发板、计算机;2. 软件环境:Ubuntu操作系统、交叉编译工具链、嵌入式Linux内核源码。
四、实验步骤与结果1. 内核编译与配置通过下载嵌入式Linux内核源码,使用交叉编译工具链进行编译和配置。
在编译过程中,需要根据实际需求选择合适的内核配置选项。
编译完成后,生成内核镜像文件。
2. 系统烧录与启动将生成的内核镜像文件烧录到嵌入式开发板中,并通过串口连接进行启动。
在启动过程中,可以观察到Linux内核的启动信息,并通过串口终端进行交互。
3. 应用程序开发与调试在嵌入式Linux系统中,可以通过交叉编译工具链进行应用程序的开发。
开发过程中,需要注意与目标平台的兼容性和调试方法。
通过调试工具,可以实时监测应用程序的运行状态和调试信息。
五、实验结果与分析在本次实验中,我们成功搭建了嵌入式Linux系统,并实现了简单的应用程序开发和调试。
通过观察实验结果,我们可以得出以下结论:1. 嵌入式Linux系统的搭建需要一定的配置和编译知识,但通过合理的配置选项和编译参数,可以实现系统的定制化;2. 应用程序的开发过程中,需要注意与目标平台的兼容性和调试方法,以确保程序的正确运行和调试的有效性;3. 嵌入式Linux系统的稳定性和性能受到硬件和软件的综合影响,需要进行系统级的优化和调试。
实验三嵌入式Linux开发环境配置一、实验目的1、学会安装、配置、测试交叉编译环境;2、配置宿主PC机端的minicom,使宿主PC机与S3C2410-RP目标板可以通过串口通讯;3、学会配置NFS服务。
二、实验重点与难点重点:交叉编译环境,minicom,NFS服务配置;难点:交叉编译环境,NFS服务配置。
三、实验环境硬件:PC机一台,一套S3C2410嵌入式实验箱;软件:宿主PC机安装Redhat9.0。
四、实验内容1、安装、配置、测试交叉编译环境(1)配置网络和挂载光盘(或者配置smb 服务器)。
(2)共享光盘中Linux 文件夹的内容,进入文件夹内执行./install 指令安装环境,如下图1.4.4 和1.4.5 所示。
///*执行开发环境自动安装脚本*/当开发环境安装完毕后,会在根目录下生成一个目录/2410RP_linux:/*该目录中包含以下目录*/1)CDROM :该目录中包括光盘中的所有内容。
2)Experiment_Key :该目录中包含了所有S3C2410-RP 目标板所使用的实验代码。
3)JFLASH_vivi::该目录中包含了所有可以下载并烧写到S3C2410-RP 目标板上运行的内核和文件系统。
4)kernel :该目录中包含了嵌入式Linux 操作系统的源码,在此目录中可以重新定制编译内核。
5)Qt :该目录中包含了嵌入式图形化界面应用程序开发所需要的软件安装包。
6)root :该目录包含了2410RP 的文件系统。
7)vivi :该目录是BootLoader的源码目录,在此目录中重新编译vivi。
在/opt/下产生一个目录:host :嵌入式系统叉编译器。
这里包含armv4l-unknown-linux-gcc,armv4l-unknown-linux-g++等常用ARM 交叉编译器,编译出来的可执行二进制代码只能运行在以ARM 为核心处理器上。
我们为了可以在任何目录下直接使用上述编译器,我们需要修改文件/etc/profile 这个文件,在上面同一个终端窗口中,请您输入下列 1 条命令:①vi /etc/profile这时,您将进入vi 编辑器所显示的profile 文件中,单击键盘 A 键,进入vi 编辑器的输入状态(Insert),通过键盘上下键移动光标到有pathmunge 的命令语句处,单击回车另起一行,输入以下命令语句:请您加入:pathmunge /opt/host/armv4l/bin ,如图4-7,如图4-8:2、配置minicom(1)硬件连接,完成宿主PC机与S3C2410目标板的连接。
嵌入式linux开发环境的建立
一、创建文件:vi hello.c如下:
二、安装交叉编译器:
arm-linux-gcc-3.4.6-glibc-2.3.6.tar 步骤1、把交叉编译链考贝到任意目录下,并解压:tar zxvf
arm-linux-gcc-3.4.6-glibc-2.3.6.tar –C /
2、把以上路径添加到/etc/profile文件的最后:export
PATH=$PATH:/gcc-3.4.6-glibc-2.3.6/arm-linux/bin
3、输入命令使环境变量立即生效:source /tec/profile
4、测试是否安装成功:arm-linux-gcc–v 如果显示版本号,则安装成功。
5、编译C文件:arm-linux-gcc hello.c–o hello
三、配置tftp服务步骤
1、检查系统有无安装包:用命令:rpm –aq | grep tftp,如有安装包的版本号,说明系统已有相应的安装包;
2、配置服务器,打开文件:vi /etc/xinetd.d/tftp,显示如下桌面service tftp
{
socket_type = dgram
protocol = udp
wait = yes
user = root
server = /usr/sbin/in.tftpd
server_args = -s /tftpboot
disable = yes
}
然后编辑将disable改为no,其他不变
3、重启xinetd服务:service xinetd restart,
停止 xinetd: [ 确定 ]
启动 xinetd: [ 确定 ]
4、输入如下命令:netstat –a | grep tftp,如果出现如下画面
“udp 0 0 *:tftp *:*”则说明tftp服务已经正常运行(输入命令chkconfig --list也能在列表中看到tftp启动字样)。
接下来建立默认的tftp根目录,要跟上面的server_args的路径一样,这里是/tftpboot:
[root@localhost /]# mkdir tftpboot
[root@localhost /]# /etc/rc.d/init.d/xinetd restart(或service xinetd restart)
停止 xinetd: [ 确定 ]
启动 xinetd: [ 确定 ]
[root@localhost /]#
5、把hello拷贝到/tftpboot下
6、用以下命令tftp –r hello –g 192.168.1.12下载IP为192.168.1.12的虚拟机的/tftpboot/目录下的hello文件到实验箱当前目录。
7、在开发板上运行./hello
四、配置NFS
步骤:1、检查有无安装包:rpm –qa | grep nfs_utils,如显示版本号,说明系统已下载了安装包。
2、nfs配置:打开文件vi /etc/exports并在文件中添加/home 192.168.1.*(rw,sync,no_root_squash)
其中/home允许其他计算机访问的目录,192.168.1.*被允许访问该目录的客户端IP地址,rw表示可读可写,sync同步写磁盘(async,表示资料会先暂存于内存当中而非直接写入硬盘),no_root_squash 表示客户端root用户对该目录具备写权限。
3、启动nfs:/etc/init.d/nfs start(重启/etc/initd/nfs restart)或者service nfs start(重启service nfs restart)
4、把hello拷贝到/arm2410cl下
5、挂载:mount –o
nolock,rsize=4096,wsize=4096 192.168.1.12:/arm2410cl /mnt/nfs 如果挂载不上,先在宿主机端执行route del default
6、在开发板上运行:./hello
五、配置smba服务
1、检查有无安装包:rpm –qa | grep samba,如显示版本号,说明系统已下载了安装包。
2、配置(匿名)
Vi /etc/samba/smb.cof
[global]
Security = share(不需密码)
Passdb bachend = tdbsam
[share]
comment = aa备注(可以任何字符)
writable = yes
browseable = yes
available = yes
path = /home/share
public = yes
3、chmod 777 share
4、重启service smb start(使设置生效)
5、关闭防火墙:vi /etc/selinux/config
SELINUY = disabled(重启,使之生效)
6、重启linux系统。
7、设置虚拟机与PC机的IP地址为同一网段。
并ping通。
在PC机端运行\\192.168.1.12进行共享。
8、(非匿名)
Vi /etc/samba/smb.cof
[global]
Security = users
Passdb bachend = tdbsam
[share]
comment = aa备注(可以任何字符) writable = yes
browseable = yes
available = yes
path = /home/share
valid = users = 用户名
3、添加samba密码
Smbpasswd –a 用户名
3、chmod 777 share
4、重启service smb start(使设置生效)
5、关闭防火墙:vi /etc/selinux/config
SELINUY = disabled(重启,使之生效)
6、重启linux系统。
7、设置虚拟机与PC机的IP地址为同一网段。
并ping通。
在PC机端运行\\192.168.1.12并输入用户名及密码进行共享。