1、 嵌入式系统原理 实验指导书 目 录 1实验平台 3 1.1硬件平台 3 1.2软件平台 6 2、实验部分 8 实验一、 熟悉嵌入式系统开发平台 8 实验二、Linux常用命令实验 11 实验三、linu C语言编程 16 实验四、建立交叉编译环境 19 实验五、Linux基本应用程序实验 24 1实验平台 1.1硬件平台 TQ2440开发板,全新3.5寸数字触摸屏,S3C2440是三星公司推出的一款功能强大,功耗极低的ARM9嵌入式CPU,应用范围非常广泛。TQ2440开发板我司基于三星公司S3C2440的公版电路,优化设计而来。 TQ24
2、40有V2核心板和TQ2440底板组成. CPU处理器 Samsung S3C2440AL,主频400MHz(最高可达533MHz) SDRAM内存 板载64MB SDRAM(标准配置)可根据用户需要扩展到128MB,提供完整的解决方案 32bit数据总线SDRAM,100MHZ(支持稳定运行133MHz,仅此一家) Nand Flash 板载64MB Nand Flash(标准配置),掉电非易失,有容乃大(可根据用户需要升级为128MB~1GB,提供完整的解决方案) Nor Flash 板载2MB Nor Flash(最高可升级到8MB) CorePower
3、专业1.25V核心电压供电,完美解决CPU发热现象 Power 核心板采用3.3V供电 Powerled 1个核心板电源指示灯 核心板接口 接口型号为DC-2.0双列直插 尺寸 微型核心板:37mm x 74mm 串口 板载五线异步串行口(UART0),可外接串口扩展板引出另两个串口(UART1和UART2); WINCE和Linux均有三串口驱动。 网络接口 板载100M DM9000网卡,带联接和传输指示灯; USB接口 USB HOST接口;USB Device接口。 存储接口 一个SD卡接口,支持2GB SD卡。 音频接口 采用芯片
4、UDA1341,立体声音频输出,可录音。 LCD接口 集成了4线电阻式触摸屏接口; 支持800×600、640×480、240×320、320×240等不同分辨率的TFT LCD,(目前实测最大的屏10.4寸屏,800×600的分辨率),可接VGA转接板 Camera 130W像素摄像头(标配驱动),可支持AV信号视频输入或更高像素的摄像头 时钟源 内部实时时钟(带有后备锂电池) 调试Jtag JTAG接口,支持ADS1.2,keil等软件的单步调试功能 复位电路 采用专业复位芯片811进行复位,稳定可靠 电源接口 高电流带载的5V电源供电,带电源开关指示灯 AD功
5、能 可调电阻接到ADC引脚上用来验证模数转换 IIC功能 提供AT24C02的EEPROM验证IIC功能 蜂鸣器 测试PWM功能的蜂鸣器 用户按键 4个用户按键,使用外部中断 配套LCD简介: ·尺寸:3.5寸 ·显示面积:70.08(H)mm×52.56(V)mm ·显示颜色:16.7兆色 ·分辨率:320RGB×240(横屏) ·LED 背光 ·对比度:300:1 ·亮度:320cd/m2(流明) ·使用温度:-20℃到60℃ ·触摸屏使用次数:超过100,000次 ·响应时间:≤10ms ·驱动板自带两个接口
6、40pin的0.5间距的FPC接口和50pin的2.0间距的插针接口; ·提供5V和3.3V两种电压供电,缺省状态是3.3V供电. ·提供接口部分的原理图,方便您的使用. ·LCD驱动板的尺寸:103mm×83mm 1.2软件平台 一键更新程序: bootloader,kernel, Yaffs, NK.bin等更新 首创支持usb下载内核镜像,文件系统的u-boot, 使用更方便,开发更容易! 一键式选择设置Linux启动参数 可设置开发板从Linux的 Yaffs或nfs启动参数 Linux-2.6.13内核 Linux2.6
7、25.8内核 采用Linux2.6 内核,更好兼容S3C2440 ROM/CRAM/EXT2/FAT32/NFS file system 支持ROM/CRAM/EXT2/FAT32/NFS等文件系统 YAFFS file system 支持 YAFFS文件系统 System Interrupt & Timer Driver 系统中断和系统时钟驱动 Serial device driver 三个串口驱动 MTD device Driver MTD 设备驱动 Flash memory device driver Nand Flash驱动 e
8、xternal Ethernet device driver 集成100M以太网卡驱动(DM9000) RTC (Real Time Clock) Driver 实时时钟驱动 USB Host driver USB Host驱动,支持更多USB设备 USB Slave USB Slave驱动,支持开发板模拟U盘 LEDS Drives 用户LED灯驱动 Buttons 用户按键驱动,使用外部中断. Sound Driver 声卡驱动(可以播放可以录音) LCD Driver(support 640*480, 240*320, 320*240 sol
9、ution for TFT) LCD 驱动, 可接3.5寸, 4.3寸, 7寸, 10寸等 分辨率240×320、320×240、640×480、800×480、800×600的LCD Frame Buffer Frame Buffer驱动 Touch Panel Driver 触摸屏驱动(大分辨率LCD依然精准) SD/MMC Drivers SD/MMC卡驱动 Camera Driver 摄像头驱动 TCP/IP 完整的TCP/IP协议 Telnet、FTP、inetd 网络远程登录工具及服务 boa Web服务器应用程序 se
10、rvfox 控制台下的摄像头应用程序, 可通过网络访问开发板的摄像头, 以及把摄像头获取的图像显示在LCD上, 配合USB摄像头可实现网络监控 spcacat 控制台下的摄像头抓图程序 snapshot 控制台下的LCD抓屏软件 rz和sz 控制台下使用串口接收和发送文件的程序 madplay 控制台下的MP3播放器 busybox1.2.0工具集 Busybox1.13工具集 Linux常用命令,占用空间小,命令强大 Qtopia Embedded 提供Qtopia 1.7.0和Qtopia 2.2.0,两个版本任君选择; 提供Qt
11、opia Embedded 2和4两种级别的库,更加方便您的开发。 Trolltech 开发的用于嵌入式 Linux 的图形用户界面系统,支持网页浏览器, Medialplay播放器, 文件管理器等等 储存设备 支持各种优盘, 移动硬盘直接插拔使用 USB Hub 支持各种USB Hub USB无线网卡 支持TL-WN321G+、TL-WN322G+ USB 摄像头,支持使用中芯微301P系列芯片的USB摄像头,采集动态图像并显示在lcd上 市场上销售的usb摄像头 USB鼠标,键盘 支持USB鼠标,USB键盘 开发主机:Fedora 10(内核版本为Linux 2
12、6.27) 新特性: Plymouth:带来无闪烁和极富视觉效果的启动过程,从开始启动Fedora到桌面将非常平滑。 更好的摄像头支持:在Fedora 9的基础上改善而来,对摄像头的支持更好了。 四个可供选择的桌面环境:分别是GNOME 2.24、KDE 4.1.2和新兴的轻量级桌面环境LXDE,还有一个面向OLPC的Sugar。 新的输入法ibus:Fedora 10包含了这个全新的输入法框架,目前为止已经相当适用了,并且可能在Fedora 11中成为默认输入法。 Ext4的完全支持:Fedora 10已经完全向Ext4准备好了,而不像Fed
13、ora 9一样只是技术预览。所以打算使用Ext4的朋友可以开始尝试了。 2、实验部分 实验一、 熟悉嵌入式系统开发平台 一、实验目的 1.了解虚拟机与Linux 操作系统的基础知识 2.熟悉虚拟机的安装与设置 3.掌握在 Vmware 上安装 RedHat Linux 9.0 4.掌握在Linux环境下gcc编译工具的基本使用。 二、主要实验器材 1.软件:虚拟机软件vmware-workstation 5.5.3、Red Hat Linux9.0 (shrike-i386-disc1.iso、shrike-i386-disc2.iso、shrike-i386-disc3
14、iso 镜像文件) 2.系统:CPU 主频1GHz;最小512MB;硬盘最小空闲空间10GB; Windows XP操作系统 三、实验步骤 1、虚拟机的安装与设置 1)首先,要安装VMware 软件必须要有相应的安装程序,用户可从相关网站下载安装程序vmware-workstation-5.5.5.exe。VMware 的安装很简单, 先安装并启动VMware 后,出现如下图所示主界面,在其主界面“主页”标签页中点击“新建虚拟机”按钮打开新建向导。 3)单击“下一步”按钮进入虚拟机配置界面,选择“典型”方式。 4) 单击“下一步”按钮进入虚拟机操作系统选择界面,可以看到Win
15、dows、Linux、Novell 等多种不同的系统,这里我们点选“Linux”,版本是Red Hat Linux。 5)单击“下一步”进入安装目录选择界面。该界面上面的文本框是虚拟机名称,保持 默认值(Red Hat Linux)即可,下面的文本框需要选择虚拟机操作系统的安装位置。按“浏 览”选择虚拟机的所在目录。注意:虚拟机目录所在的硬盘要有足够的空间,因为安装好的 RED HAT 9.0 本身就有近1.8G。 6)单击“下一步”进入网络连接方式选择界面,此界面中共有四种网络设置方式选项, 选择“使用桥接网络”方式。 7)单击“下一步”,这里是设置磁盘的大小,软件默认大小为
16、8GB,一般应该情况下 够用,如果你的硬盘空间足够大,也可以将磁盘空间设置在8GB以上。 该界面上还有两个选项,分别是“立即分配所有磁盘空间”和“分割磁盘为2GB的文件”, 我们可以在前一项上打钩,第二项不打钩。最后单击“完成”按钮返回 VMware 主界面。将看到主界面上多了一个“Red Hat Linux”标签页,其中显示了这台 新建虚拟机的各种配置。 点击“虚拟机”菜单中的“设置”命令,打开虚拟机设置对话框, 内存大小可根据机器的实际情况设置,内存设置得大一点,可以加快Linux运行的速度。 其余项暂不用修改。 点击界面上的“添加”按钮,再点击“下一步”,然后选择所要添
17、加的部件,通常要添 加一个串行口。 2、Linux 操作系统的安装 1) 安装前需做好准备工作,下载Red Hat Linux 9.0安装所需要的三个ISO 镜像文件。 其文件名分别为shrike-i386-disc1.iso、shrike-i386-disc2.iso、shrike-i386-disc3.iso。 2) 在“虚拟机设置” 对话框中,选择“CD-ROM”,在CD-ROM的连接选项中选择“使用ISO镜像”,点击“浏览”按钮,选择下载好的3个ISO 镜像文件中的第一个(注意:在后面安装过程中要分别选择这3个文件中的第二个和第三个时,只需要重复以上步骤即可), 找到第一个
18、文件,点击“打开”,再点击“确定”按钮。(若是采用光盘安装就直接将光盘 插入物理光驱即可,不要选择镜像文件)。 3) 启动虚拟机(即点击VMware 界面左部“启动该虚拟机”命令或工具栏上的绿色启 动按钮),VMware 的窗口就出现了虚拟机启动的界面。 4) RED HAT 会自动进入安装程序的界面。首先询问是以图形界面还是以文本界面安 装,依据提示按回车选择图形界面安装,接下来询问是否要测试光驱,这里选择不要即可。 方法是:在VMware 窗口上单击鼠标,使光标从Windows 切换到VMware,再按键盘上 的TAB 键,然后回车。 5) 依提示选择安装语言(选择简体中文
19、鼠标、键盘(使用默认值),安装类型(选 择服务器)等之后进入磁盘分区界面,安装程序问是否要自动分区,直接点的“下一步”, 这时出现“警告”,点击“是”(这是虚拟磁盘,不会破坏你硬盘上原来的数据)。下一个 界面中有关于自动分区的3 种选择,用户可根据自己的需要进行选择,选择此项以后在接下来的窗口中可以一路默认,连续点“Next”进入引导程序装载界面。 6) 在引导程序装载界面连按“Next”。设置完系统语言和时区后进入根密码的设置界 面,安装程序要求设置root密码。设置好口令后连按“Next”,出现“选择软件包组”的对话框,也就是按装选项,如下图:根据自己的实际情况,选择必要的软
20、件包,设置好后,点击“下一步”。 7) 等待一段时间直到出现更换光盘的提示,这样第一个ISO 镜像文件就安装完成。安 装程序提示换第二张光盘,方法如2),按“浏览”,选择你下载好的3个ISO 镜像文件中 的第二个,按OK,就完成了换第二个文件的工作。再用同样方法安装下载好的第三个ISO 镜 像文件。 8) 第三个文件装完后, 系统问是否做启动盘, 这个根据自己需要选择,然后就是显卡等 的设置,一路默认。最后选一个“Next”,VMware 内系统重启。 9) 重启后,系统提示你创建一个个人用户名(personal account)和密码,这里自己创建 一下。然后是选择日期和试听
21、声卡,然后问你是否注册,接着又问有无附加安装(这里建议
先还是都不要了吧), 最后VMWARE 内系统再次重启。
10) 启动后输入用户名和密码,就进入Red Hat9.0 界面。至此,Red Hat Linux 9.0 就安
装成功
3、gcc工具的基本使用
(1)用Vi/Vim编辑器编写如下代码,取名为gcc_t.c
#include
22、return 0; } (2) 默认编译gcc_t.c文件 # gcc gcc_t.c # ls a.out gcc_t.c (3)执行a.out可执行文件 #./a.out Hello World! (4) 使用-o选项:指定编译后的二进制文件名 # gcc -o test gcc_t.c # ls gcc_t.c test (5) -x 选项:忽略源文件名后缀类型 # gcc -o gcc_t.x -x c gcc_t.xyz (6) -E选项:只进行预处理 # gcc -E gcc_t.c -o gcc_t.i (7) -S选项:只进行到编译阶段
23、 # gcc -S gcc_t.c # ls gcc_t.c gcc_t.s (8) -c 选项:编译、汇编到目标代码,不进行链接 # gcc -c gcc_t.c # ls gcc_t.c gcc_t.o (9) -M 选项:生成当前编译程序文件关联的详细信息,包含目标文件所依赖的所有源代码文件,包括头文件。 # gcc -M gcc_t.c 四、实验要求 1、掌握linux虚拟机的安装方法。 2、掌握GCC编译程序的步骤和方法。 3、记录下实验运行的结果。 4、认真书写实验报告,对实验过程中出现的问题和原因及时记录。 实验二、Lin
24、ux常用命令实验 一、实验目的 掌握linux系统中常用命令的使用方法。 二、实验环境 硬件: PC机Pentium500以上,硬盘10G以上 软件:PC机操作系统Linux虚拟机开发环境。 三、实验步骤 在linux虚拟机中掌握以下常用命令的使用方法 1.cat 查看文件内容,从键盘读取数据,合并文件等 格式:cat [-b][-A][-E][-T][-n][-s][-v] 文件名 选项说明: -b 不显示文件中的空行。 -A 相当于 -v -E -T (-vET)。 -E 在文件的每一行行尾加上“$”字符。 -T 将文件中的Tab键用字符“^I”来显
25、示。 -n 在文件的每行前面显示行号。 -s 将连续的多个空行用一个空行来显示。 -v 显示除Tab和Enter之外的所有字符。 下面的命令演示了如何显示file文件中的行号 $cat -n file 2.chmod 修改文件权限 格式:chmod 选项 文件或目录名 选项说明: u 文件所有者 g 文件所属组 o 其它用户 + 增加权限 - 取消权限 = 赋给权限 a 所有用户 r 读权限 w 写权限 x 执行权限 下面的命令演示了如何使所有用户都可以读写file文件 $chmod a+rw file 3.chown 改变文件所有者 格式:chow
26、n [-R][-c][用户名][组名] 文件或目录名 选项说明: -c 文件属主改变时显示说明。 -R/r 改变目录下的文件及其子目录下所有文件的属主。 下面的命令演示了如何改变 dir 目录下的文件及其子目录下的文件的属主为 bugboy $chown -R bugboy dir 4.cp 复制文件 格式:cp 选项 源文件名 目标文件名 选项说明: -R 复制整个目录。 -f 删除己存在的目标文件。 -i 使用-f遇到删除文件时给出提示。 下面的命令演示了如何把 file 文件复制到当前用户的根目录下 $cp file ~/ 5.df 查看磁盘剩余空间 格式
27、df [-t][-x][-k][-p][-a][-m][filename] 选项说明: -t 只输出类型列在fstype中的文件系统。 -x 只输出类型没有列在fstype中的文件系统。 -k 显示空间以K为单位。 -m 显示空间以M为单位。 -a 将空间为0的文件系统也输出。 filename 指定要查看的文件的大小。 6.fdisk/sfdisk 查看硬盘分区信息 格式:fdisk -l [-u] [device ...] fdisk -s partition 选项说明: -u 列出分区表的时候以扇区的大小代替柱面大小。 -l 列出给定设备的分区表,如果没有给定
28、设备,则列出/proc/partions中设 备的分区表。 -s partition 给出partition分区的大小(以块为单位)。 7.find 查找文件 格式:find [路径][匹配表达示] 其中匹配表达示有几种类型: -name filename 查找指定名称的文件。 -user username 查找指定用户名的文件。 -group grpname 查找指定级名的文件。 -print 显示查找的结果。 -size n 查找大小为n块的文件,一块等于512字节。符号“+n”表示查找大 小大于n块的文件;符号“nc”表示查找大小为n个字符的文件,同样的也有符号
29、nc”。 -inum n 查找索引结点号(i-node)为n的文件。 -atime n 查找n天前被访问的文件。“+n”表示超过n天前被访问的文件;“-n” 表示不超过n天前被访问的文件。 -mtime n 类似于atime,但是检查的是文件内容被修改的时间。 -ctime n 类似于atime,但检查的是文件索引结点被改变的时间。 -perm mode 查找与给定权限匹配的文件,必须以八进制的形式给出访问权 限。 -newer file 查找比指定文件新的文件,即最后修改时间离现在较近。 -exec command 对匹配文件执行command命令,command后用了
30、个大括号包括 文件名。command必须以反斜杠和一个分号结尾。 -ok command 执行command的时候请求用户确认。其它与-exec相同。 例:查找当前目录下所有以.bak结尾的文件,并删除它们 $find . -name "*.bak" -exec rm {} \; 注:这里 *.bak 必须要用单引号或者双引号引起来,或者可以写成\*.bak。 8. kill 终止进程 格式:kill [-s|p][-a] PID 选项说明: -s 指明发送给进程的信号。例如-9(强行终止),默认发送TERM信号。 -p 显示进程的ID,不发送信号。 -a 终止所有进程。
31、 0 给所有在当前进程组中的进程发送信号。 -1 给所有进程号大于1的进程发送信号。 9.ln 在文件之间建立链接 格式:ln [-b][-d][-F][-f][-i][-n][-s][-v] 源文件 目录文件或目录 选项说明: -b 为删除的文件建立备份。 -d 允许root用户建立硬链接。 -F 与b相同。 -f 强行删除目标文件。 -i 在删除文件时给出提示。 -n 当目标文件是目录的符号链接时,替代该符号链接。 -s 用符号链接代替硬链接(建立符号链接)。 -v 输出被链接文件的文件名。 10.ls 用于浏览目录,查看当前目录下的文件和文件名 格式:ls
32、[选项] 选项说明: -a 显示所有文件(包括隐藏文件)。 -l 显示文件的详细信息。 -k 显示文件大小,以K为单位。 -color 显示文件时用不同颜色加以区别文件类型。 -d 将根目录作为文件显示。 11.mount 加载文件系统 格式:mount 磁盘或分区的设备文件 载入点 选项 选项说明: -t 文件系统类型(fat32为vfat) -o 选项 常用的选项有codepage,iocharset(对于中文codepage=936,iocharset=gb2312) -loop 挂载ISO文件时用。举个例子,挂载/dev/hda5到/mnt/wind目录下并且目
33、录支持中文,命令如下: #mount -t vfat /dev/hda5 /mnt/wind -o codepage=936,iocharset=gb2312 12.mv 重命名文件或移动文件 格式:mv [-b][-f][-i][-u][-v] 源文件 目标文件或文件夹 选项说明: -b 为源文件作备份 -f 文件重命名时强制覆盖己有文件。 -i 覆盖文件时给出提示。 -u 目标文件比源文件新时不覆盖。 -v 移动文件时给出相应的提示。 13.ps 查看进程状态 格式:ps [选项] 选项说明: -e/A 列出所有进程。 -u 选择有效的用户ID。 -p 选择指
34、定终端下的进程。 -C 选择指定的文件名。 -f 列出所有详细信息。 -l 按长格式显示。 -j 按job格式显示。 -x 选择没有控制终端的进程。 14.rm 删除文件或者目录 格式:rm [-d][-i][-r][-v][-f] 文件名或目录名 选项说明: -d 使用这个选项后,rm大体想当于unlink。 -i 删除每个文件时给用户提示。 -r 删除整个目录,包括文件和子目录。 -v 删除每个文件时给出提示。 -f 强制删除,并且不给提示。 15.tar 解压或压缩文件 格式:tar [选项] 文件[文件1……] 目录[目录1……] 选项说明: -A 将
35、一个tar文件追加到一个存档中。 -c 生成一个新的存档文件。 --delete 从存档中删除。 -r 将文件添加到一个存档的末尾。 -l 列出一个存档的内容。 -u 仅将些存档中内容较新的文件添加到存档中。 -x 从存档中解压缩文件。 -v 详细地列出处理过的文件的信息。 -z 用gzip来处理文件。 --remove-files 将文件解压之后就删除它们。 -Z 用compress来处理文件。 注意:选项中必须包含有A c d r t u x中的一个或多个。 16.top 查看CPU的使用率,修改进程运行优先级 格式:top 选项 选项说明: -d delay
36、 指定刷新的秒数。 -p pid 查看指定pid的CPU使用率。 默认情况下进程按CPU使用率排序,可按PID(N),时限(A),常驻内存使用率(M), 时间(T),和CPU使用率(P)来排序。 四、实验要求 1、掌握linux系统常用命令的使用方法。 2、记录下各条命令运行的结果。 3、认真书写实验报告,对实验过程中出现的问题和原因及时记录。 实验三、linu C语言编程 一、实验目的 通过此实验,学生可以掌握Linux环境下文件的基本概念、
37、文件的操作API,并且能够利用基本理论实现Linux文件的操作。 二、实验环境 硬件:TQ2440嵌入式开发板,PC机Pentium500以上,硬盘10G以上 软件:PC机操作系统Linux虚拟机开发环境。 三、实验原理 文件编程需要掌握的基本概念有文件描述符、文件流指针,还有就是跟文件相关的系统调用read及write等。 四、实验步骤 1、实现简单的文件拷贝copy命令。 cp1文件代码如下: /** cp1.c * version 1 of cp - uses read and write with tunable buffer size * *
38、 usage: cp1 src dest
*/
#include
39、IZE]; /* check args */ if ( ac != 3 ){ fprintf( stderr, "usage: %s source destination\n", *av); exit(1); } /* open files */ if ( (in_fd=open(av[1], O_RDONLY)) == -1 ) oops("Cannot open ", av[1]);
40、 if ( (out_fd=creat( av[2], COPYMODE)) == -1 ) oops( "Cannot creat", av[2]); /* copy files */ while ( (n_chars = read(in_fd , buf, BUFFERSIZE)) > 0 ) if ( write( out_fd, buf, n_chars ) != n_chars ) oops("Write error to
41、", av[2]); if ( n_chars == -1 ) oops("Read error from ", av[1]); /* close files */ if ( close(in_fd) == -1 || close(out_fd) == -1 ) oops("Error closing files",""); } void oops(char *s1, char *s2) { fprintf(stderr,"Error: %s ", s1); pe
42、rror(s2);
exit(1);
}
编译程序,生成a.out,然后在同名目录下,建立1,2两个文件,echo “111”>1,这样1中内容为111,执行a.out如下:
./a.out 1 2
这样2中的内容也为111
2、编写ls1,实现只显示当前目录下文件名功能,代码如下:
#include
43、ls( "." ); else while ( --ac ){ printf("%s:\n", *++av ); do_ls( *av ); } } void do_ls( char dirname[] ) /* * list files in directory called dirname */ { DIR *dir_ptr; /* the directory */ struct dirent *direntp; /* each entry */ if ( ( dir_ptr = opendir( dirname
44、) ) == NULL ) fprintf(stderr,"ls1: cannot open %s\n", dirname); else { while ( ( direntp = readdir( dir_ptr ) ) != NULL ) printf("%s\n", direntp->d_name ); closedir(dir_ptr); } } 编译程序,直接运行即可。 五、实验要求 1、掌握Linux系统中文件编程的方法。 2、记录下实验运行的结果。 3、认真书写实验报告,对实验过程中出现的问题和原因及时记录。
45、 实验四、建立交叉编译环境 一、实验目的 掌握crosstools_all.tar.bz2脚本工具包来制作交叉编译器的方法。 二、实验环境 硬件:TQ2440嵌入式开发板,PC机Pentium500以上,硬盘10G以上 软件:PC机操作系统Linux虚拟机开发环境。 三、实验步骤 Linux 下开发环境的建立主要就是建立交叉编译环境,在虚拟机里面建立一个能编译arm-linux 内核及驱动、应用程序等开发环境的步骤如下: 1、先将光盘下的“Linux”目录中的“crosstools_all.tar.bz2 ”交叉编译器压缩包复制到Li
46、nux系统中的“/opt/EmbedSky/”目录下,然后在该目录下解压:(下面的命令是在PC 端的终端运行的) #cd /opt/EmbedSky #tar xvfj crosstools_all.tar.bz2 -C / 执行解压命令之后,就把交叉编译器分别安装到“/usr/local/arm/”目录下的“2.95.3”和“3.3.2”目录中以及“/opt/EmbedSky/crosstools_3.4.1_softfloat/”目录下,同时,还会安装制作文件系统的软件到“/usr/local/sbin/”目录下: 然后执行命令: #gedit /etc/profile 然后在
47、profile”文件里面添加如下信息: 保存了profile 文件之后执行如下命令就可以是该交叉编译器成为当前默认的交叉编译器: #source /etc/profile 然后在执行命令,就可以检查交叉编译器是否安装成功,也可以用该命令来查看当前交叉编译器的版本了: #arm-linux-gcc -v 得到如下信息: 因为开发的需要可能要随时更改交叉编译器的版本,此时只用运行前面的指令“gedit/etc/profile”修改“/etc/profile”文件,然后使它生效“source /et
48、c/profile”就OK 了,此时运行“arm-linux-gcc -v”就可以查看到更新的交叉编译器了。 (注意:更新后,可能在同一个终端里面查看时还是刚才那个交叉编译器,此时只需打开一个新的终端,然后再查看交叉编译器,就会发现交叉编译器已经更换了。) 使用“#/etc/init.d/nfs stop”指令可以停止NFS 服务。为了在PC 开机时系统自动启动NFS 服务,操作如下: 使用指令“#redhat-config-services”打开系统服务配置窗口: 在左侧一栏中找到NFS 服务选项框,并选中它:
49、 然后再点击“文件(F)”菜单的“保存改变”选项保存设置。 2、配置PC机Linux的FTP 服务 和配置NFS 服务类似,使用“#redhat-config-services”命令,打开系统服务配置窗口,然后在左侧找到“vsftpd”选项,并选中它,然后保存设置: 3、配置PC机Linux的Telnet服务 和配置NFS 服务类是,使用“#redhat-config-services”命令,打开系统服务配置窗口,然后在左侧找到“telnet”选项,并选中它,然后保存设置: 四、实验要求 1、掌握交叉编译环境的搭建方法。 2、记录下实验运行的结果。 3、认真
50、书写实验报告,对实验过程中出现的问题和原因及时记录。 实验五、Linux基本应用程序实验 一、实验目的 通过此实验,学生可以掌握Linux环境下客户端与服务器网络编程方法和常用API的使用。 二、实验原理和方法 网络编程就是利用LINUX内核的API实现网络上的服务器和客户端的应用程序,在不了解协议栈的情况下,进行应用层的程序开发。典型的代表用TFTP服务器实现、TELNET服务器实现等。 三、实验设备 硬件:QT2440嵌入式开发板,PC机Pentium500以上,硬盘10G以上 软件:PC机操作系统Linux虚拟机开发环境。 四、实验内容






