嵌入式实验指导书解析.docx
- 文档编号:11950300
- 上传时间:2023-04-16
- 格式:DOCX
- 页数:31
- 大小:2.16MB
嵌入式实验指导书解析.docx
《嵌入式实验指导书解析.docx》由会员分享,可在线阅读,更多相关《嵌入式实验指导书解析.docx(31页珍藏版)》请在冰豆网上搜索。
嵌入式实验指导书解析
嵌入式实验
指导书
2016.5
嵌入式实验是学习嵌入式系统原理及应用课程的一个重要环节。
通过实验加深嵌入式系统原理的认识,训练学生嵌入式系统应用及开发的基本技能,培养学生合理选择嵌入式处理器和接口芯片、正确设计嵌入式系统的接口电路、学会程序调试的基本方法以及解决实验中所遇到问题的能力,同时,培养学生理论联系实际、严谨认真的科学态度和良好的工作作风。
实验一搭建嵌入式开发环境实验4
实验二编译下载ubootkernelyaffs218
实验三GPIO模块驱动程序及测试23
实验四编写串口通信程序27
实验一搭建嵌入式开发环境实验
一、实验目的
1、掌握嵌入式开发环境的搭建
2、掌握嵌入式开发常用工具的使用
3、掌握嵌入式交叉编译环境的搭建
二、实验内容及原理
1.vmware虚拟机的安装及配置
2.ubuntu操作系统的安装及配置
3.windows环境中常用工具的安装及使用
三、实验步骤
(一)、vmware虚拟机的安装及配置
1)打开VMware-8.0.2-591240.exe安装程序。
2)之后操作按图进行。
3)安装完成后打开刚安装的VMware程序。
4)虚拟机使用固定IP地址的网络方式
默认情况下,虚拟机安装完成后与宿主机共享一个IP地址,没有属于自己的IP,这里首先需要设置虚拟机的网络联系方式为桥接方式。
单击VM菜单下面的Settings项,弹出虚拟机设置对话框,如下图:
选择Bridged连接,确定即可。
(二)、ubuntu的安装及配置
1)安装Ubuntu
首先准备一张Ubuntu12.04的安装光盘。
将光盘插入光驱,在PC的bios中把PC启动方式设置为光驱启动,启动PC。
启动PC后,安装盘会提示选择安装语言种类。
使用PC键盘的方向键选择在安装过程中显示的语言,在这里我们选择English>>点击“InstallUbuntu”按钮。
选择“ErasediskandinstallUbuntu”>>点击“Continue”按钮
硬盘空间以及挂载点的分配。
这里选择默认。
也可根据个人需要来进行设置.单击“InstallNow”
选择键盘布局,默认即可,单击“Continue”
选择所在地,上海,Continue
输入系统用户名和密码,这里输入的用户名:
forlinx,密码:
123456仅作为事例.点击“Continue”按钮,系统会完成安装。
2)Ubuntu12.04root用户登录设置
ubuntu12.04默认是不允许root登录的,在登录窗口只能看到普通用户和访客登录。
以普通身份登陆Ubuntu后我们需要做一些修改。
普通用户登录后,修改系统配置文件需要切换到超级用户模式,在终端窗口里面输入命令后回车:
#sudo-s
然后输入安装Ubuntu12.04时设置的系统密码,即可进入root用户权限模式。
在终端窗口中执行
#gedit/etc/lightdm/lightdm.conf
步骤4:
在文本全部内容删除并粘贴以下七行内容:
[SeatDefaults]
allow-guest=false
autologin-user=root
autologin-user-timeout=0
autologin-session=lightdm-autologin
user-session=ubuntu
greeter-session=unity-greeter
然后我们启动root帐号:
#sudopasswdroot
根据提示输入root帐号密码。
(注意:
Linux中输入密码无符号显示)
重启ubuntu,不需要手动输入root用户名密码,系统会自动进入root用户。
3)设置Ubuntu网络参数
因为每个PC的网络环境不一定一样,所以需要您根据自己的实际情况来设置Ubuntu的网络,如果设置不成功,可以去Ubuntu的官方论坛上咨询。
本手册PCLinux网络的设置方法,仅供参考。
启动Ubuntu,root用户登陆系统,单击桌面最右上端的按钮,弹出如下选项:
选择SystemSettings,双击Network进入网络设置项:
单击Options按钮
选择IPV4设置,输入您的IP地址、子网掩码、网关、DNS,点击Save...,网络设置成功。
测试一下,笔者的宿主机IP为192.168.0.30,用虚拟机来ping宿主机:
4)安装tftp服务器
检查Linux服务器是否已经安装TFTP服务器,在控制台执行以下命令检查:
Host#whichtftp↙
如果没有安装tftpserver用户使用如下命令安装:
Host#apt-getinstalltftpd-hpatftp-hpaxinetd↙
配置tftpserver:
Host#gedit/etc/default/tftpd-hpa↙
对其内容修改如下:
TFTP_DIRECTORY="/opt/DVRRDK_02.00.00.23/tftphome"
TFTP_OPTIONS="-l-c-s"
重启tftpserver:
Host#servicetftpd-hparestart↙
测试tftpserver是否配置成功:
Host#echo'hellotftpservice!
'>/opt/DVRRDK_02.00.00.23/tftphome/tftp↙
Host#tftp###.###.###.###↙
tftp>gettftp↙
tftp>quit↙
Host#cattftp↙
hellotftpservice!
其中“###.###.###.###”为本机IP。
至此,SEED-SDK开发工具安装,配置完毕。
5)安装samba服务器
apt-getremovesamba-common
apt-getremovesmbclient
apt-getremovesamba
apt-getinstallsamba
apt-getinstallsmbfs
cp/etc/samba/smb.conf/etc/samba/smb.conf_backup
gedit/etc/samba/smb.conf
用这几行取代:
security=share
[Share]
comment=SharedFolderwithusernameandpassword
path=/opt
public=yes
writable=yes
browseable=yes
/etc/init.d/smbdrestart
6)安装NFS服务器
配置NFS服务
在Ubuntu上新建一个终端,依次输入以下命令:
#sudoapt-getinstallportmap
#sudoapt-getinstallnfs-kernel-server
#sudogedit/etc/exports
在弹出的文本编辑器中编辑exports文件,在最后一行添加
/forlinx*(rw,sync,no_root_squash)
启动NFS服务
#sudo/etc/init.d/portmaprestart
#sudo/etc/init.d/nfs-kernel-serverrestart
检查服务是否已经运行
#serviceportmapstatus
#servicenfs-kernel-serverstatus
7)安装交叉编译器
将文件cross-4.2.2-eabi.tar.bz2拷贝到Ubuntu主目录下
用户光盘:
\实用工具\cross-4.2.2-eabi.tar.bz2
在Ubuntu中新建一个终端,输入下面的命令安装交叉编译器:
#cd/(进入主目录)
#mkdir/usr/local/arm(创建目录,若目录已存在会提示错误,跳过即可)
#tarjxvfcross-4.2.2-eabi.tar.bz2-C/usr/local/arm(编译器解压到/usr/local/arm)
查看arm-2009q3是否解压成功
#ls-l/usr/local/arm/
如可以看到4.2.2-eabi文件夹即解压成功
添加环境变量到Profile,执行命令打开编辑Profile
#gedit/etc/profile
最后一行添加以下内容
exportPATH=/usr/local/arm/4.2.2-eabi/bin:
$PATH
exportTOOLCHAIN=/usr/local/arm/4.2.2-eabi
exportTB_CC_PREFIX=arm-none-linux-gnueabi-
exportPKG_CONFIG_PREFIX=$TOOLCHAIN/arm-none-linux-gnueabi
在终端里面执行以下命令,验证交叉编译器安装是否成功
#arm-linux-gcc-v
下图为安装成功提示
回车,就可以使用该编译器来编译Uboot代码和内核代码了.
注意:
以上操作均是以root用户登录系统操作为例;所修改的文件仅对当前用户有效,如果通过终端切换用户,以上修改的文件对新用户无效。
(二)、windows常用工具安装
Sourceinsight安装
Ultraedit安装
Beyondcompare安装
四、实验结果及问题
1、如何更改vmware网络配置?
实验二编译下载ubootkernelyaffs2
一、实验目的
1、掌握ubootkernel的编译,文件系统的制作方法
2、掌握使用sd卡烧写ubootkernel文件系统镜像
二、实验内容及原理
1、编译uboot生成uboot镜像
2、编译kernel生成kernel镜像
3、制作文件系统镜像
4、制作SD启动卡
5、烧写镜像到目标板闪存
三、实验步骤
(一)、编译uboot
将uboot源码压缩包‘uboot_1.3.4.tar.gz’拷贝到Ubuntu的根目录下
用户光盘:
\linux\U-boot源码\uboot_1.3.4.tar.gz
解压缩uboot源码,命令如下。
#tarzxvfuboot_1.3.4.tar.gz
进入uboot1.3.4源码的目录,命令如下。
#cdcduboot_1.3.4
删除以前编译的文件,命令如下。
(!
以下两步命令任何情况都必须执行,尽管之前没有做过编译)
#makedistclean
配置config,命令如下。
#makeforlinx2416_config
编译uboot
#make
编译成功后,将在‘uboot_1.3.4’目录下产生名为‘u-boot-nand.bin’的二进制文件。
该文件改名为u-boot.bin即我们需要烧写到Nandflash的U-boot映像文件。
名为‘mmc.bin’的二进制文件。
该文件即我们做SD卡引导时所需文件。
如下图所示:
(二)、编译kernel
将压缩包‘linux3.1.8.tar.gz’拷贝到你的工作目录下,解压缩:
#tarzxvflinux3.1.8.tar.gz
路径:
2416用户光盘:
\Linux\内核源码\linux3.1.8.tar.gz
1)配置内核
首先需要复制FL2416_linux_config到.config以方便你配置你的内核,命令如下。
#makedistclean
#cpFL2416_linux_config.config
开始配置内核,命令如下。
#makemenuconfig
完成配置内核,选择exit保存退出:
2)编译内核
#make
编译结束后将在内核源码目录的arch/arm/boot中得到Linux内核映像文件:
zImage作为烧写文件。
(三)、制作文件系统镜像
将yaffs2制作工具‘mkyaffs2imag’拷贝到Ubuntu的根目录下
用户光盘:
\Linux\文件系统\mkyaffs2image
mkyaffs2image制作出的映像,适用于FL2416开发板
将文件系统源文件‘FL2416Yaffs2.tar.gz’拷贝到Ubuntu的根目录下用户光盘:
\Linux\文件系统源码\FL2416Yaffs2.tar.gz
解压文件系统源文件
#tarzxvfFL2416Yaffs2.tar.gz
开始制作yaffs2文件系统,制作命令:
#chmodu+xmkyaffs2image
#./mkyaffs2imageFL2416Yaffs2root.bin
最后生成root.bin是可以下载到开发板nandflash中的yaffs2文件系统映像。
(四)SD卡引导制作与烧写方法
把SD读卡器插在PC机的USB口中,等到PC机能够正常识别出SD卡;
格式化SD卡
通过SD_Writer.exe将mmc.bin烧写到SD卡中。
打开SD_Writer.exe。
用户光盘:
\实用工具\SD_Writer.exe
注意:
如果"Scan"没有正确设置SD卡所在盘符,就需要手动调整SDVolume,把盘符号调整为SD卡所在盘(如PC的USB口接了两个或者两个以上的U盘或者SD卡,就有可能扫描到错误的SD卡盘符)。
点击”Program”后,出现”It’sOK”表示操作成功;成功后如下图。
点击”确定”,然后点击”Quite”,退出SD_Writer.exe。
将root.bin,u-boot.bin,zImage文件拷贝到SD卡中;默认的zImage为LCD4.3吋对应zImage,由于SD一键烧写内核文件名固定为zImage,其他尺寸的LCD需将与LCD尺寸对应的映像改名,例如LCD尺寸为5.6吋,则需zImage56改名为zImage;
(五)烧写Linux到开发板的NandFlash中
将4.1.1制作好的SD卡插入开发板SD的插槽。
接好5V直流电源(请使用飞凌提供的电源)。
开发板电源连接如下图:
把核心板上(注意不是底板上)的拨码开关,设置为1(OFF)2(ON)3(OFF)4(OFF)进入SD卡启动,拨码开关位置如图:
使用串口连接控制板与电脑;
控制板上电;
继电器响两声后烧写完成。
串口打印信息如图:
关闭电源开关,开发板断电,将拨码开关设置为1(OFF)2(OFF)3(ON)4(ON)进入NandFlash启动。
重新开启电源,系统可以正常启动了。
四、实验结果及问题
1、内核各配置的意义?
2、uboot环境变量?
实验三GPIO模块驱动程序及测试
一、实验目的
1、掌握gpio驱动模块的编写方法
2、掌握Makefile的编写
3、掌握gpio驱动模块的编译加载方法
4、掌握使用gpio驱动的应用程序编写
二、实验内容及原理
1、编写gpio模块驱动程序
2、编写驱动模块的Makefile程序
3、编译驱动模块并动态加载模块
4、编写应用程序测试驱动模块
三、实验步骤
(一)编写gpio驱动程序
参考代码如下:
staticlongs3c2440_leds_ioctl(
structfile*file,
unsignedintcmd,
unsignedlongarg)
{
intgpioValue;
switch(cmd){
case0:
case1:
#if0//bob
if(arg>10){
return-EINVAL;
}
#endif
s3c2410_gpio_setpin(led_table[arg],cmd);
return0;
case5:
#if1//bob
if(cmd==5)
{
gpioValue=s3c2410_gpio_getpin(led_table[arg])?
1:
0;
//printk(KERN_ERR"giovalue:
%d\n",gpioValue);
returngpioValue;
}
#endif
default:
return-EINVAL;
}
}
(二)编写Makefile
参考代码
(三)编译驱动,生产*.ko文件
(四)加载驱动模块
insmod***.ko
lsmod
(五)编写app测试程序
参考代码
四、结论及问题
1、如何点亮板子的led灯
实验四编写串口通信程序
一、实验目的
1、掌握串口通信程序的编写方法
2、掌握蓝牙工作原理
二、实验内容及原理
1、编写串口通信程序
2、测试理解蓝牙通信原理
三、实验与步骤
1、编写蓝牙测试程序
参考代码
2、测试
使用485连接开发板与蓝牙模块,使用配置程序配置蓝牙模块,成功后使用手机扫描蓝牙设备。
五、实验结果及问题
实现蓝牙数据接收?
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 嵌入式 实验 指导书 解析