linux嵌入式实验指导书doc.doc_第1页
linux嵌入式实验指导书doc.doc_第2页
linux嵌入式实验指导书doc.doc_第3页
linux嵌入式实验指导书doc.doc_第4页
linux嵌入式实验指导书doc.doc_第5页
已阅读5页,还剩25页未读 继续免费阅读

下载本文档

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

文档简介

实验一、嵌入式 Linux开发环境的建立1、在 WINDOWS下安装虚拟机后,再在虚拟机中安装 LINXUX操作系统; 2、直接安装LINUX操作系统。 预备知识绝大多数Linux 软件开发都是以native 方式进行的,即本机(HOST)开发、调试,本机运行的方式。这种方式通常不适合于嵌入式系统的软件开发,因为对于嵌入式系统的开发,没有足够的资源在本机(即板子上系统)运行开发工具和调试工具。通常的嵌入式系统的软件开发采用一种交叉编译调试的方式。交叉编译调试环境建立在宿主机(即一台PC 机)上,对应的开发板叫做目标板。 运行Linux 的 PC【宿主机】开发时使用宿主机上的交叉编译、汇编及连接工具形成可执行的二进制代码(这种可执行代码并不能在宿主机上执行,而只能在目标板上执行),然后把可执行文件下载到目标机上运行。调试时的方法很多,可以使用串口,以太网口等,具体使用哪种调试方法可以根据目标机处理器提供的支持作出选择。宿主机和目标板的处理器一般不相同,宿主机为Intel 处理器,而目标板如 UP-NetARM2410-S开发板为三星S3c2410.GNU 编译器提供这样的功能,在编译器编译时可以选择开发所需的宿主机和目标VMware虚拟机安装Linux系统VMware软件安装使用VMware虚拟机可以在Windows系统下面再安装其他的操作系统,而不会对原有的操作系统造成任何影响。本小节将讲述在Windows XP上安装VMware虚拟软件。安装好VMvare软件以后,可以使用VMware建立一个虚拟计算机。在建立虚拟机时,需要注意虚拟硬件的设置。下面的步骤可以建立一个虚拟机新建了虚拟机以后,需要注意VMware使用方法。本小节将介绍VMware中常用工具的使用方法。常用工具提供了虚拟机的管理功能。启动虚拟机系统以后,在虚拟机中的操作与本地计算机的操作是相似的。在VMware安装Linux系统时,对硬盘的分区、格式化操作,都是在虚拟硬盘上进行的。对硬盘上的数据没有任何影响。在学习Linux安装时,可以使用VMware虚拟机进行练习。本小节将在VMware虚拟机上安装Red Hat Linux 9.0系统。完成光盘完整性检查以后,Red Hat Linux 9.0的图形安装界面如图 选择软件包组完成安装 是Red Hat Linux 9.0的用户桌面 实验二、构建嵌入式Linux开发环境嵌入式 LINUX开发环境有几个方案: 1、基于 PC机 WINDOWS操作系统下的CYGWIN;2、在 WINDOWS下安装虚拟机后,再在虚拟机中安装 LINXUX操作系统; 3、直接安装LINUX操作系统。 基于 WINDOWS的环境要么有兼容性问题,要么速度有影响,所以我推荐大家使用纯 LINUX操作系统开发环境。我们实际的开发环境为REDHAT9,它已经支持中文,并且包含了绝大部分的开发工具,不用担心装了 LINUX就不能使用 WINDOWS的问题。一般的情况都是用户已经有了 WINDOWS操作系统,再安装LINUX,LINUX会自动安装一个叫作 GRUB的启动引导软件,可以选择引导多个操作系统。 预备知识绝大多数Linux 软件开发都是以native 方式进行的,即本机(HOST)开发、调试,本机运行的方式。这种方式通常不适合于嵌入式系统的软件开发,因为对于嵌入式系统的开发,没有足够的资源在本机(即板子上系统)运行开发工具和调试工具。通常的嵌入式系统的软件开发采用一种交叉编译调试的方式。交叉编译调试环境建立在宿主机(即一台PC 机)上,对应的开发板叫做目标板。 运行Linux 的 PC【宿主机】开发时使用宿主机上的交叉编译、汇编及连接工具形成可执行的二进制代码(这种可执行代码并不能在宿主机上执行,而只能在目标板上执行),然后把可执行文件下载到目标机上运行。调试时的方法很多,可以使用串口,以太网口等,具体使用哪种调试方法可以根据目标机处理器提供的支持作出选择。宿主机和目标板的处理器一般不相同,宿主机为Intel 处理器,而目标板如 UP-NetARM2410-S开发板为三星S3c2410.GNU 编译器提供这样的功能,在编译器编译时可以选择开发所需的宿主机和目标机从而建立开发环境。所以在进行嵌入式开发前第一步的工作就是要安装一台装有指定操作系统的PC 机作宿主开发机,对于嵌入式LINUX,宿主机上的操作系统一般要求为 REDHAT LINUX。嵌入式开发通常要求宿主机配置有网络,支持NFS(为交叉开发时mount 所用)。然后要在宿主机上建立交叉编译调试的开发环境。环境的建立需要许多的软件模块协同工作,这将是一个比较繁杂的工作,但现在已通过博创嵌入式教学套件中光盘的安装而自动完成了。 对开发 PC机的性能要求由于Redhat9.0 安装后占用空间约为 2.4G5G之间,还要安装 ARM-LINUX开发软件,因此对开发计算机的硬盘空间要求较大。 硬件要求: CPU:高于奔腾 500M,推荐高于赛扬1.7G; 内存:大于128M,推荐256M; 硬盘:大于10G,推荐高于 40G。 开发工具软件的安装与配置 1.REDHAT LINUX 9.0的安装在一台PC 上安装RedHatLINUX9.0,选择Custom 定制安装,在选择软件Package 时最好将所有包都安装,需要空间约2.7G,如果选择最后一项:everything,即完全安装,将安装 3张光盘的全部软件,需要磁盘空间大约5G。因此建议提前为REDHAT LINUX 的安装预留大约515G的空间,具体视用户的硬盘空间大小来确定,在安装完 Redhat后还要安装Linux的编译器和开发库以及 ARM-Linux的所有源代码,这些包安装后的总共需要空间大约为 800M。 2.开发工具软件的安装将博创兴业科技有限公司提供的附带开发工具光盘插入CDROM,然后执行以下命令: mount /dev/cdrom /mnt 若系统不识别/dev/cdrom 的话,可以用如下命令,假设CDROM为从盘,即为/dev/hdb,则: mount t iso9660 /dev/hdb /mnt 安装脚本程序将自动建立/arm2410s目录,并将所有开发软件包安装到/arm2410s目录下,同时自动配置编译环境,建立合适的符号连接。 注意:安装完成后看一下主编译器 Armv4l-unknown-linux-gcc是否在 /opt/host/armv4l/bin/,如果不是这个路径,请使用 vi修改/root/.bash_profile文件中 PATH变量为 PATH=$PATH:$HOME/bin:/opt/host/armv4l/bin/,存盘后执行: source /root/.bash_profile,则以后 armv4l-unknown-linux-gcc会自动搜索到,可以在终端上输入 armv,然后按 tab键,会自动显示 armv4l-unknown-linux-3.开发环境配置配置网络,包括配置 IP地址、NFS服务、防火墙。网络配置主要是要安装好以太网卡,对于一般常见的RTL8139 网卡,REDHAT9.0 可以自动识别并自动安装好,完全不要用户参与,因此建议使用该网卡。然后配置宿主机 IP为192.168.0.121。如果是在有多台计算机使用的局域网环境使用此开发设备,IP地址可以根据具体情况设置。如图 1.4.1所示:图 1.4.1 网络配置双击设备 eth0的蓝色区域,进入以太网设置界面,如图1.4.2,1.4.3所示:图 1.4.2 以太网常规设置界面图 1.4.3 以太网路由设置界面对于REDHAT9.0,它默认的是打开了防火墙,因此对于外来的IP 访问它全部拒绝,这样其它网络设备根本无法访问它,即无法用 NFS mount 它,许多网络功能都将无法使用。因此网络安装完毕后,应立即关闭防火墙。操作如下:点击红帽子开始菜单,选择安全级别设置,选中无防火墙。如图 1.4.4所示: 图 1.4.4 安全级别设置在系统设置菜单中选择服务器设置菜单,再选中服务菜单,将 iptables服务的勾去掉,并确保 nfs选项选中。 配置 NFS: 点击主菜单运行系统设置-服务器设置-NFS服务器(英文为:SETUP-SYSTEM SERVICE-NFS),点击增加出现如下在界面,在目录(Drictory):中填入需要共享的路径,在主机(Hosts):中填入允许进行连接的主机 IP地址。并选择允许客户对共享目录的操作为只读(Readonly)或读写(Read/write)。如图 1.4.5所示:图 1.4.5 NFS基本设置图 1.4.6是对客户端存取服务器的一些其他设置,一般不需要设置,取默认值。 图 1.4.6 NFS用户访问设置当将远程根用户当作本地根用户时, 对于操作比较方便,但是安全性较差。最后退出时则完成 NFS 配置。配置好后,界面应显示如图 1.4.7所示: 图 1.4.7 远程根用户当作本地根用户图 1.4.8配置好的 NFS 1我们也可以手工编写/etc/exports文件,其格式如下: 共享目录 可以连接的主机(读写权限,其他参数) 例如: /arm2410s 192.168.0.*(rw,sync) 表示将本机的/arm2410s目录共享给 ip地址为192.168.0.1192.168.0.254的所有计算机,可以读取和写入。 配置完成后,可用如下办法简单测试一下NFS 是否配置好了:在宿主机上自己mount 自己,看是否成功就可以判断NFS 是否配好了。例如在宿主机/目录下执行: mount 192.168.0.10:/arm2410s /mnt 其中 192.168.0.10应为主机的 IP地址。 然后到/mnt/目录下看是否可以列出/arm2410s目录下的所有文件和目录,可以则说明mount 成功,NFS 配置成功。 配置 MINICOM: 1 .在 linux操作系统 Xwindow界面下建立终端(在桌面上点击右键 新建终端),在终端的命令行提示符后输入 minicom,回车,你就会看到 minicom的启动画面(见图 1.4.9)。若没有启动 Xwindow则在命令行提示符后直接输入 minicom即可。图 1.4.9 minicom启动画面2 .minicom启动后,先按 CtrlA键,再按 Z键(注意不是连续按, Ctrl+A松开后才按 Z),进入主配置界面(见图 1.4.10)。图 1.4.10主配置界面按“O”进入配置界面,如图 1.4.11配置界面图 1.4.11配置界面按上下键选择 Serial port setup,进入端口设置界面,这里有几个重要选项改为如下值(见图 1.4.12):(在 Change which setting后按哪个字母就进入哪项的配置,如按 A进行端口号配置。) ASerial Device :/dev/ttyS0 (端口号使用串口 1) EBPS/par/bits:/115200 8N1 (波特率) F,E硬件流,软件流都改为 NO,若要使用 PC 机的串口 2 来接板子的串口 1 做监控,改为:/dev/ttyS1即可。 3.选好后按 ESC键退出到图 1.4.11所示画面,选择 Save setup as df1保存退出,以后只要启动 minicom就是该配置,无需再做改动。 4.配置完成后,用串口线连接好 pc机和 2410S,启动 2410S,即可在 minicom上看到启动信息,并可以执行操作控制。图 1.4.12 端口设置界面Linux开发软件的安装目录结构表格 1.4.1均以/arm2410s 目录为起点: 表 1.4.1 /arm2410s下的文件说明目录名 说明 busybox-1.00-pre10 Busybox-1.00源代码 doc arm2410-S linux 使用说明书、pdf原理图以及芯片资料 microwindows-0.9microwindows图形系统源代码 Qt Qt应用程序和库的源代码 insight-6.0 Linux下源代码查看器 root 2410-S平台根文件系统 kernel-2410s2410-S平台 linux内核源代码 demos 所有实验演示程序 img vivi 系统引导程序 zImage ARMLINUX-2.4内核压缩映象文件 root.cramfs 根文件系统映象文件 yaffs.tar.bz2 demos演示程序的压缩文件 exp 实验例程源码 sh mount-dos.sh linux下挂装 windows的分区示例脚本 mnt_udisk.shMOUNT U盘 mkroot.sh 制作根文件系统的脚本 编译器安装路径说明如表 1.4.2所示: 表 1.4.2 编译器安装路径说明编译器 安装目录 说明 arm-elf-gcc-2.95.3 /opt/host/armv4l 应用开发库和头文件 Armv4l-unknown-linux-gcc /opt/host/armv4l/bin 主编译器 上述诸多程序的源代码都在光盘中提供. 在安装完成 LINUX后,就是对 LINUX的网络环境的配置,最主要是配置 NFS服务器。实验三LinuxC程序设计一,使用Vi编辑器完成以下4个文件的内容输入:hello.hstarfun.hhello.cstar.cStarfun.h 文件内容如下:/*starfun.h*/#ifndef STARFUN_H#define STARFUN_H#define NUM 4#define NUMBER 3int star1() int i,j,k;for(k=1;k=NUM;+k) for(i=1;i=(NUM-k);+i)printf( );for(j=1;j=0;-k) for(i=1;i=(NUMBER-k+1);+i) printf( );for(j=1;j=(2*k-1);+j)printf(*);printf(n);return 0;#endifhello.h文件内容如下:/*hello.h*/#ifndef HELLO_H#define HELLO_Hvoid hello() star1();printf(hello,my friendsn); #endifhello.c 文件内容如下:void showhello() hello();star.c文件内容如下:#include starfun.h#include hello.h#include int main() star1();star2();showhello();return 0;Vi编辑器的使用,可以参考PPT和Vi.doc文档,在使用Vi编辑器的过程中,注意使用Vi的单行和多行复制命令,练习字符串查找替换命令,删除一个字符,删除光标后整个内容命令,删除一行命令,恢复删除,保存和退出命令等命令,并尝试使用其他命令。掌握#ifndef STARFUN_H #define STARFUN_H的宏定义用法二使用gcc编译器,编译程序第一种方法:分步进行1由star.c starfun.h 文件生成star.o 目标文件gcc -c star.c -o star.o2由hello.c hello.h starfun.h生成hello.o目标文件gcc -c hello.c -o hello.o3由hello.o star.o 生成应用程序myproggcc star.o hello.o -o myprogrootlocalhost 01_hello# ./myprog * * * * * * * * *hello,my friends第二种方法:一条命令完成以上操作gcc star.c hello.c -o myprog结合本次课的PPT关于gcc部分,体会gcc编译器编译的过程,并在实验报告中描述在以上编译中尝试rootlocalhost 01_hello# gcc star.c hello.c -o myprogrootlocalhost 01_hello# gcc -w star.c hello.c -o myprogrootlocalhost 01_hello# gcc -Wall star.c hello.c -o myprogIn file included from star.c:1:starfun.h: In function star1:starfun.h:13: warning: implicit declaration of function printfstar.c: In function main:star.c:8: warning: implicit declaration of function showhellohello.c: In function showhello:hello.c:4: warning: implicit declaration of function hello体会-Wll -w选项的作用查阅当前的gcc版本命令rootlocalhost 01_hello# gcc -vReading specs from /usr/lib/gcc-lib/i386-redhat-linux/3.2.2/specsConfigured with: ./configure -prefix=/usr -mandir=/usr/share/man -infodir=/usr/share/info -enable-shared -enable-threads=posix -disable-checking -with-system-zlib -enable-_cxa_atexit -host=i386-redhat-linuxThread model: posixgcc version 3.2.2 20030222 (Red Hat Linux 3.2.2-5)三 使用动态库(1)rootlocalhost 01_hello# gcc -c -fpic hello.crootlocalhost 01_hello# lsamake hello.c hello.h hello.o makefile_01 makefile_02 makefile_03 Makefile_rule star.c starfun.h(2)rootlocalhost 01_hello# gcc -shared -s -o libhello.so hello.o rootlocalhost 01_hello# lsamake hello.c hello.h hello.o libhello.so makefile_01 makefile_02 makefile_03 Makefile_rule star.c starfun.h注意libhello.so库文件的命名格式,(1)(2)也可以用下边命令替代gcc -fpic -shared -s hello.c -o libhello.sorootlocalhost 01_hello# cp libhello.so /usr/lib 注意/usr/lib为用户库自动搜索路径rootlocalhost 01_hello# gcc -lhello star.c -o mystarrootlocalhost 01_hello# ldd mystar libhello.so = /usr/lib/libhello.so (0x4002d000) libc.so.6 = /lib/tls/libc.so.6 (0x42000000) /lib/ld-linux.so.2 = /lib/ld-linux.so.2 (0x40000000)rootlocalhost 01_hello# ./mystar * * * * * * * * *hello,my friendsrootlocalhost 01_hello#四,使用静态库rootlocalhost 01_hello# rm *.orm:是否删除一般文件hello.o? yrootlocalhost 01_hello# rm mystar rm:是否删除一般文件mystar? yrootlocalhost 01_hello#rootlocalhost 01_hello# rm libhello.*rootlocalhost 01_hello# gcc -c hello.c -o hello.orootlocalhost 01_hello# ar -rc libhello.a hello.orootlocalhost 01_hello# gcc star.c libhello.a -o mystarrootlocalhost 01_hello# ./mystar * * * * * * * * *hello,my friends五 调试器的使用1gdb进入02_gdb 目录执行rootlocalhost 02_gdb# gcc -g eg1.c -o eg1rootlocalhost 02_gdb# gdb eg1GNU gdb Red Hat Linux (5.3post-0.20021129.18rh)Copyright 2003 Free Software Foundation, Inc.GDB is free software, covered by the GNU General Public License, and you arewelcome to change it and/or distribute copies of it under certain conditions.Type show copying to see the conditions.There is absolutely no warranty for GDB. Type show warranty for details.This GDB was configured as i386-redhat-linux-gnu.(gdb) runStarting program: /home/qianzg/ARM2410DEMO/02_gdb/eg1 Program received signal SIGFPE, Arithmetic exception.0x0804833f in wib (no1=8, no2=8) at eg1.c:66 result = no1 / diff; 参考“使用 GDB 调试 Linux 软件.htm ”使用gdb六,Makefile文件的编写1使用Makefile理论部分请参阅PPT和“熟悉Linux开发环境.doc”编写Makefile文件由该Makefile文件编译第一节中的hello.h starfun.h hello.c star.c 四个文件2使用automakerootlocalhost hello#vi hello.crootlocalhost hello# lshello.crootlocalhost hello# autoscan rootlocalhost hello# lsautoscan.log configure.scan hello.crootlocalhost hello# vi configure.scan rootlocalhost hello# lsautoscan.log configure.scan hello.crootlocalhost hello# mv configure.scan configure.inrootlocalhost hello# lsautoscan.log configure.in hello.c rootlocalhost hello# vi configure.in rootlocalhost hello# aclocalrootlocalhost hello# lsaclocal.m4 autoscan.log configure.in hello.crootlocalhost hello# autoconf rootlocalhost hello# lsaclocal.m4 autom4te.cache autoscan.log configure configure.in hello.crootlocalhost hello# vi Makefile.am rootlocalhost hello# lsaclocal.m4 autom4te.cache autoscan.log configure configure.in hello.c Makefile.amrootlocalhost hello# automake -add-missing configure.in: installing ./install-shconfigure.in: installing ./mkinstalldirsconfigure.in: installing ./missingMakefile.am: installing ./depcomprootlocalhost hello# lsaclocal.m4 autoscan.log configure.in hello.c Makefile.am missingautom4te.cache configure depcomp install-sh Makefile.in mkinstalldirsrootlocalhost hello# ./configure checking for a BSD-compatible install. /usr/bin/install -cchecking whether build environment is sane. yeschecking for gawk. gawkchecking whether make sets $(MAKE). yeschecking for gcc. gccchecking for C compiler default output. a.outchecking whether the C compiler works. yeschecking whether we are cross compiling. nochecking for suffix of executables. checking for suffix of object files. ochecking whether we are using the GNU C compiler. yeschecking whether gcc accepts -g. yeschecking for gcc option to accept ANSI C. none neededchecking for style of include used by make. GNUchecking dependency style of gcc. gcc3configure: creating ./config.statusconfig.status: creating Makefileconfig.status: executing depfiles commandsrootlocalhost hello#makesource=hello.c object=hello.o libtool=no depfile=.deps/hello.Po tmpdepfile=.deps/hello.TPo depmode=gcc3 /bin/sh ./depcomp gcc -DPACKAGE_NAME= -DPACKAGE_TARNAME= -DPACKAGE_VERSION= -DPACKAGE_STRING= -DPACKAGE_BUGREPORT= -DPACKAGE=hello -DVERSION=1.0 -I. -I. -g -O2 -c test -f hello.c | echo ./hello.cgcc -g -O2 -o hello hello.o rootlocalhost hello# ./hello Hello, GNU!rootlocalhost hello#关于configure.in的内容rootlocalhost hello# cat configure.in# -*- Autoconf -*-# Process this file with autoconf to produce a configure script. AC_INIT(hello.c)AM_INIT_AUTOMAKE(hello,1.0) # Checks for programs.AC_PROG_CC # Checks for libraries. # Checks for header files. # Checks for typedefs, structures, and compiler characteristics.# Checks for library functions.AC_OUTPUT(Makefile)实验四熟悉 Linux交叉开发环境配置和使用一、实验目的熟悉 Linux开发环境,学会基于 S3C2410的 Linux开发环境的配置和使用。使用 Linux的armv4l-unknown-linux-gcc编译,使用基于 NFS方式的下载调试,了解嵌入式开发的基本过程。 二、实验内容本次实验使用 Redhat Linux 9.0操作系统环境,安装 ARM-Linux的开发库及编译器。创建一个新目录,并在其中编写 hello.c和 Makefile文件。学习在Linux下的编程和编译过程,以及 ARM开发板的使用和开发环境的设置。下载已经编译好的文件到目标开发板上运行。 三、预备知识C语言的基础知识、程序调试的基础知识和方法,Linux的基本操作。 四、实验设备及工具(包括软件调试工具)硬件:UP-NETARM2410-S嵌入式实验平台、PC机Pentium 500以上, 硬盘10G以上。 软件:PC机操作系统REDHAT LINUX 9.0MINICOMARM-LINUX开发环境 五、实验步骤 1、建立工作目录 rootzxt smile# mkdir hello rootzxt smile# cd hello 2、编写程序源代码实际的 hello.c源代码较简单,如下: include main() printf(“hello world n”); 我们可以是用下面的命令来编写 hello.c的源代码,进入 hello目录使用 vi命令来编辑代码: rootzxt hello# vi hello.c 按“i”或者“a”进入编辑模式,将上面的代码录入进去,完成后按 Esc键进入命令状态,再用命令“:wq”保存并退出。这样我们便在当前目录下建立了一个名为 hello.c的文件。 3、编写 Makefile要使上面的 hello.c程序能够运行,我们必须要编写一个 Makefile文件,Makefile文件定义了一系列的规则,它指明了哪些文件需要编译,哪些文件需要先编译,哪些文件需要重新编译等等更为复杂的命令。使用它带来的好处就是自动编译,你只需要敲一个“make”命令整个工程就可以实现自动编译,当然我们本次实验只有一个文件,它还不能体现出使用 Makefile的优越性,但当工程比较大文件比较多时,不使用 Makefile几乎是不可能的。下面我们介绍本次实验用到的 Makefile文件。 CC= armv4l-unknown-linux-gcc EXEC = hello OBJS = hello.o CFLAGS += LDFLAGS+= static all: $(EXEC) $(EXEC): $(OBJS) $(CC) $(LDFLAGS) -o $ $(OBJS) clean: -rm -f $(EXEC) *.elf *.gdb *.o 下面我们来简单介绍这个 Makefile文件的几个主要部分: CC 指明编译器 EXEC 表示编译后生成的执行文件名称 OBJS 目标文件列表 CFLAGS 编译参数 LDFLAGS 连接参数 . all:编译主入口 . clean:清除编译结果注意:“$(CC) $(LDFLAGS) -o $ $(OBJS)”和“-rm -f $(EXEC) *.elf *.gdb *.o”前空白由一个 Tab制表符生成,不能单纯由空格来代替。与上面编写 hello.c的过程类似,用 vi来创建一个 Makefile文件并将代码录入其中 rootzxt hello# vi Makefile 4、编译应用程序在上面的步骤完成后,我们就可以在 hello目录下运行 “make”来编译我们的程序了。如果进行了修改,重新编译则运行: rootzxt hello# make clean rootzxt hello# make 注意:编译、修改程序都是在宿主机(本地 PC机)上进行,不能在 MINICOM下进行。 5、下载调试在宿主 PC计算机上启动 NFS服务,并设置好共享的目录,具体配置请参照前面第一章第四节中关于嵌入式 Linux环境开发环境的建立。在建立好 NFS共享目录以后,我们就可以进入 MINICOM中建立开发板与宿主 PC机之间的通讯了。 rootzxt hello# minicom /mnt/yaffs mount -t nfs -o nolock 192.168.0.56:/arm2410s /host 注意: IP地址需要根据宿主 PC机的实际情况修改成功挂接宿主机的 arm2410s目录后,在开发板上进入 /host目录便相应进入宿主机的 /arm2410s目录,我们已经给出了编辑好的 hello.c和 Makefile文件,它们在 /arm2410s/exp/basic/01_hello目录下。用户可以直接在宿主 PC上编译生成可执行文件,并通过上面的命令挂载到开发板上,运行程序察看结果。如果不想使用我们提供的源码的话,可以再建立一个 NFS共享文件夹。如/root/share,我们把我们自己编译生成的可执行文件复制到该文件夹下,并通过 MINICOM挂载到开发板上。 rootzxt hello# cp hello /root/share rootzxt hello# minicom /mnt/yaffs mount -t nfs -o nolock 192.168.0.56:/root/share /host 再进入/host目录运行刚刚编译好的 hello程序,查看运行结果。 /mnt/yaffs cd /host /host ./hello hello world 注意:开发板挂接宿主计算机目录只需要挂接一次便可,只要开发板没有重起,就可以一直保持连接。这样可以反复修改、编译、调试,不需要下载到开发板。六、思考题 1Makefile是如何工作的?其中的宏定义分别是什么意思?Beijing Universal Pioneering Technology Co.,LTD.实验五BOOTLOADER 烧制超级终端的建立开机启动 1 硬件连接:连接电源,将5V电源线的连到UP-NETARM2410-S的电源接口;连接串口线,一端连接PC的串口,另一端连接到UP-NETARM2410-S的串口(上面的);连接网线,将随机附带的交叉网线把UP-NETARM2410-S靠近于电源接口的网口和PC机的网口连接好。2 建立超级终端:运行Windows系统下(以WindowsXP为例)开始所有程序附件通讯超级终端(HyperTerminal)。 . 请大家注意:在 windows xp操作系统下,当初次建立超级终端的时候,会出现如下对话框,请在中打上,并选择“否”。 5.2.1 新建一个通信终端。如果要求输入区号、电话号码等信息请随意输入,出现如图 5.2.1所示对话框时,为所建超级终端取名为arm,可以为其选一个图标。单击“确定”按钮。在接下来的对话框中选择ARM开发平台实际连接的PC机串口(如COM1),按确定后出现如图 5.2.2所示的属性对话框,设置通信的格式和协议。这里波特率为 115200,数据位8,无奇偶校验,停止位 1,无数据流控制。按确定完成设置。图5.2.2设置串行口完成新建超级终端的设置以后,可以选择超级终端文件菜单中的另存为,把设置好的超级终端保存在桌面上,以备后用。用串口线将PC机串口和平台UART0正确连接后,就可以在超级终端上看到程序输出的信息了。启动: 打开电源开关,系统会由VIVI开始引导。正常启动时会显示启动信息到“Press Return to start the LINUX now, any other key for vivi”,不进行任何操作等待30S或按回车则启动进入linux系统,按除回车键外的其它键则进入vivi控制台,如图5.3.1。在这里输入“boot”,进入LINUX系统;输入“bootucos”进入ucos系统。输入“boot”后会引导kernel,启动linux系统,见5.3.2.5.3.3是在应用程序目录下,可以通过“ls”查看,如图:JTAG烧写vivi:在windows xp下进行,需要的文件在光盘中的Linux-V6.0img目录和Linux-V6.0img flashvivi目录下提供。 烧写2410S linux 操作系统包括烧写vivi,kernel,root三个步骤,除此我们还要烧写yaffs.tar,这四个文件在Linux-V6.0img目录中。 vivi -linux系统的bootloader;zImage-linux系统内核; root.cramfs-根文件系统; yaffs.tar-应用程序JTAG烧写vivi: 7.1.1 把并口线插到pc机的并口,并把并口与JTAG相连,J

温馨提示

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

评论

0/150

提交评论