嵌入式系统设计与开发实验指导书.docx
《嵌入式系统设计与开发实验指导书.docx》由会员分享,可在线阅读,更多相关《嵌入式系统设计与开发实验指导书.docx(15页珍藏版)》请在冰豆网上搜索。
![嵌入式系统设计与开发实验指导书.docx](https://file1.bdocx.com/fileroot1/2022-11/25/e9b9ac7a-4721-41de-8d2c-0e1ff07455a9/e9b9ac7a-4721-41de-8d2c-0e1ff07455a91.gif)
嵌入式系统设计与开发实验指导书
南昌工程学院
《嵌入式系统设计与开发》实验指导书
2011年9月
目录
实验一…………………………嵌入式系统基本操作(9.14)
实验二…………………………linux编程基础(9.21)
实验三…………………………设备文件和驱动程序安装(10.12)
实验四…………………………DEMO驱动程序(10.19)
实验五…………………………AD驱动程序(10.26)
实验六…………………………MiniGUI应用程序设计(11.2)
实验七…………………………嵌入式数据库程序设计(11.9)
实验八…………………………QT应用程序设计(11.16)
实验一:
嵌入式系统基本操作
一、实验目的
1.撑握实验箱的基本操作。
2.掌握利用telnet协议控制远程的计算机。
3.掌握利用nfs服务,将远程计算机的硬盘作为本地硬盘使用。
二、实验设备和仪器
1.计算机
2.UP-2410S实验箱
三、实验内容及要求
1.实验箱和宿主机的硬件连接(串行线和网络的连接),运行实验箱上的程序。
2.在终端方式学习linux命令的基本操作。
(1)画出计算机的目录结构(使用ls和cd命令)
(2)创建目录和复制文件(使用mkdir和cp命令)
(3)查看和设置IP地址(使用ifconfig命令)
(4)新增用户及修改口令(使用adduser和passwd命令)
(5)查看系统服务(使用service命令)
(6)挂载FAT分区(使用mount命令)
3.利用telnet协议操作远程计算机。
4.利用nfs服务,将远程计算机上的目录挂载到本机。
四、实验原理及步骤
1.操作实验箱
利用终端(串口协议)来操作实验箱。
具体步骤如下:
(1)连接电缆线
第一步:
将串口线,一端连接到计算机的COM1口,另一端接实验箱的COM1口。
第二步:
将网线,一端连接到计算机的RJ45接口,另一端接实验箱的NIC-1口。
第三步:
插上实验箱的电源
思考:
串口线和网线分别实现什么功能?
(2)画出实验箱的目录结构
第一步:
打开计算机(缩主机),进入进入Linux操作系统。
第二步:
单击“开始/系统工具/终端”,进入终端窗口。
第三步:
在终端下运行minicom。
注:
如果是第一次运行minicom,则要进行设置,即设置串口为:
ttyS0,传输率为:
1152008N1,数据流控制选择:
NO。
第四步:
打开实验箱电源,这时在minicom窗口,出现显示。
按“Enter”键,实验箱开始启动Linux操作系统。
第五步:
使用ls和cd命令画出目录结构。
(3)运行实验箱上的程序
第1步:
仔细分析实验箱的目录结构,看看应用程序存放在什么目录。
第2步:
运行一个动画程序(程序存放的绝对路径是:
/mnt/yaffs/mplay,播放器文件名是:
mplay,动画文件名假设是:
test.avi),输入以下命令:
[/mnt/yaffs]cdmplay
[/mnt/yaffs/mplay]./mplaytest.avi
第3步:
运行MiniGUI、MP3等其它应用程序
2.学习linux命令的基本操作
第1步:
进入终端方式
依次单击“开始/系统工具/终端”,这时会弹出一个窗口,在窗口出现如下提示:
[root@localhostroot]#
思考:
“[root@localhostroot]”的各部分(如:
root)代表什么意思?
第2步:
使用“ls”查看文件和目录。
[root@localhostroot]#ls
思考:
显示的文件和目录有好几种颜色,它们代表什么意思。
它有那些参数?
第3步:
使用“cd”命令更改路径。
思考:
它和DOS下的CD的使用有什么区别?
第4步:
使用“cp”命令复制文件
第5步:
使用“mkdir”新建文件夹
第6步:
使用“rm”命令删除文件
第7步:
使用“ifconfig”命令设置IP地址
第8步:
使用adduser和passwd命令新增加一个用户
第9步:
使用service命令查看系统服务
第10步:
使用“mount”命令挂载FAT文件系统,先使用fdisk–l查看硬盘分区信息。
3.利用telnet协议控制远程的计算
设网络连接如图1所示。
目前要利用计算机A来操作计算机B。
所以要将计算机B作为telnet服务器,然后计算机A利用telnet协议登录计算机B,并对其进行操作。
图1网络连接图
第1步:
在计算机B上设置telnet服务
进入终端方式运行setup
选中telnet服务,重启计算机。
第2步:
计算机A利用telnet协议登录计算机B
[~]telnet192.168.0.115
登录时使用普通用户,再用su命令转为根用户(su–lroot)。
第3步:
在计算机B上可以使用命令who查看有多少用户登录本机。
第4步:
这时可以用命令进行各种操作。
4.nfs服务器的设置操作
第1步:
进入终端方式运行setup
第2步:
“防火墙”设为“nofirewall”。
在systemservers项中,选中nfs和telnet服务,去除“iptables”和“ipchains”服务,然后保存设置并退出。
第3步:
修改nfs服务权限,即修改“etc/exports”的文件内容。
每一行表示一个权限设置,格式为:
提供的目录(计算机名或IP地址)(权限)
第4步:
启动nfs服务器,使其生效。
重启计算机。
第5步:
客户机使用nfs服务器的目录,使用mount目录
[~]mount–tnfsIP地址:
目录目录
或[~]mount–onolockIP地址:
目录目录
第六步:
telnet远程操作其它计算机
五、实验报告要求:
1、要求画出实验箱的目录结构。
2、nfs操作过程。
3、如何挂U盘和Windows的FAT分区。
实验二:
Linux编程基础
一、实验目的
1.撑握gcc程序编译
2.撑握gdb程序调试(选做)。
3.撑握makefile工具管理的使用。
二、实验设备和仪器
1.计算机
2.嵌入式实验箱
三、实验内容及要求
1.编写一应用程序,使用gcc进行编译,并分别使用-o,-g–static,-O2选项。
2.编写一应用程序,使用gdb对程序进行调试。
3.实现1个应用程序,这个应用程序由2个C文件构成,使用Makefile来完成文件的编译。
四、实验原理及步骤
1.gcc编译程序
具体步骤如下:
第一步:
用vi编写一个C语言应用程序hello.c。
hello.c文件内容如下:
#include
voidmain()
{
printf("helloworld\n");
return0;
}
第二步:
使用gcc编译程序
#gcc–ohellohello.c
第三步:
运行可执行程序
#./hello
第四步:
用vi编写一个C语言应用程序optimize.c。
optimize.c文件内容如下:
#include
intmain(void)
{
doublecounter;
doubleresult;
doubletemp;
for(counter=0;counter<2000.0*2000.0*2000.0/20.0+2020;counter+=(5-1)/4)
{
temp=counter/1979;
result=counter;
}
printf("Resultis%lf\\n",result);
return0;
}
第五步:
观察优化选项编译的效果,具体步骤如下:
[]gccoptimize.c–ooptimize
[]time./optimize
观察程序运行使用的时间
[]gcc–O1optimize.c–ooptimize
[]time./optimize
再观察程序运行使用的时间
第六步:
使用gcc的其它参数进行编译,gcc参如下表:
选项
说明
-oFileName
指定输出文件名,如果没有指定,缺省文件名是:
a.out
-c
只编译生成目标文件,后缀为.o
-g
在执行程序中包括标准调试信息
-O
对程序进行优化编译、链接,提高程序的执行效率。
-IDirName
将DirName加入到头文件的搜索目录列表中
-LDirName
将DirName加入到库文件的搜索目录列表中,在缺省情况下gcc只链接共享库。
-lFOO
链接名为libFOO的函数库
-static
静态链接库文件
2.GDB调试程序
具体步骤如下:
第一步:
用vi编写一个C语言应用程序GDB_test.c(教材P34)。
第二步:
带调试参数-g进行编译
#gcc–gGDB_test.c–oGDB_test
第三步:
启动GDB调试,开始调试
#gdbGDB_test
第四步:
使用用gdb的命令进行调试(教材的P35-P40)。
3.利用Makefile管理工具编译程序。
具体步骤如下:
第一步:
用vi编写4个C语言应用程序和头文件。
这4个文件分别是menu.c,menu.h,music.c和picture.c。
(文件的内容见教材P42-43)
第二步:
在当前目录用vi编写Makefile文件(文件的内容见教材P43-44)
第三步:
编译
#make
第四步:
运行可执行程序
#./menu
五、实验报告要求:
1、总结gcc常用选项及功能。
2、总结gdb常用命令及功能。
3、总结Makefile常用预定义变量及功能。
4、思考:
不同目录下文件Makefile如何编写?
实验三:
设备文件和驱动程序安装
一、实验目的
1.撑握设备文件、主设备号、驱动程序之间的关系。
2.撑握驱动程序的加载方法。
3.学习驱动开发调试的过程。
二、实验设备和仪器
1.计算机
2.嵌入式实验箱
三、实验内容及要求
1.在PC机准备一个模块驱动程序,并安装。
2.查看驱动程序的主设备号和模块名称。
3.创建一个设备文件。
4.编写一个应用程序使用设备文件。
5.在实验箱上进行相同的操作。
四、实验原理及步骤
实验箱上的直流电机、步进电机的驱动程序的加载方式是:
动态加载(模块化编译);AD驱程序是:
静态加载(直接编译)。
lsmod命令可以查看模块化驱动程序的使用情况,可以用cat/proc/devices命令查看系统所有的设备(及主设备)的使用情况。
(1)查看设备文件及主设备号
Ø进入/dev目录,
Ø用ls–l命令查看
Ø仔细观察屏幕显示,并能知道每个符号的含义
(2)查看已加载的(模块化)驱动程序
Ø使用lsmod命令,分析显示的内容
Ø运行cat/proc/devices,将显示的结果与上面进行比较。
Ø理解什么叫动态加载和静态加载
(3)加载demo.o驱动程序
Ø加载驱动程序(insmoddemo.o)
Ø查看是否加载成功(lsmod和用ls查看设备文件名是否存在)
(4)创建设备文件
Ø运行cat/proc/devices查看demo的主设备号
Ø创建设备文件(mknod/dev/democ2490)
Ø运行测试程序并观察结果
(5)在实验箱上加载直流电机驱动程序
Øinsmods3c2410-dc-motor.o
Ølsmod
Ø./dcm-main
(6)在实验箱上加载步进电机驱动程序
Øinsmods3c2410-exio.o
Ølsmod
Ø./stepmotor
五、实验报告要求:
1、简述设备文件、主设备号、驱动程序之间的关系?
实验四:
DEMO驱动程序
一、实验目的
1.撑握在linux下进行驱动程序设计的原理。
2.掌握使用模块方式进行驱动开发调试的过程。
3.掌握linux驱动程序的框架结构
二、实验设备和仪器
1.计算机
2.嵌入式实验箱
三、实验内容及要求
在PC机上编写简单的虚拟硬件驱动程序并进行调度,实验驱动的各个接口函数的实现,分析并理解驱动与应用程序的交互过程。
四、实验原理及步骤
实验箱上的直流电机、步进电机的驱动程序的加载方式是:
动态加载(模块化编译);AD驱程序是:
静态加载(直接编译)。
lsmod命令可以查看模块化驱动程序的使用情况,可以用cat/proc/devices命令查看系统所有的设备(及主设备)的使用情况。
(1)阅读源程序demo.c驱动程序
Ø理解各函数的功能
Ø了解入口和出口函数
(2)编译驱动程序
Ø编写Makefile文件
Ø运行make命令
(3)加载驱动程序
Øinsmoddemo.o
Ølsmod
(4)创建设备文件
Ømknod/dev/democ2490
(5)阅读测试程序test_demo.c
(6)编译应用程序
Øgcctest_demo.c–otest_demo
(7)运行程序
Ø运行测试程序,并理解运行的结果。
五、实验报告要求:
1、驱动程序内部有那部函数?
驱动程序给应用程序提供那些标准函数?
2、思考驱动程序和设备文件之间的关系。
实验五:
AD驱动程序
一、实验目的
1.学习AD转换的工作的原理。
2.学习AD驱动程序和编写方法。
二、实验设备和仪器
1.计算机
2.嵌入式实验箱
三、实验内容及要求
1.学习AD测试程序。
2.学习多线程控制程序。
3.编写利用电位器的电压值来控制直流电机的运行。
四、实验原理及步骤
1.实验原理
实验的硬件电路
逐次逼近型A/D转换原理S3C2410X内置的A/D转换器框图
2.实验步骤
(1)阅读AD源程序
(2)编译AD源程序成可执行程序
(3)将AD可执行程序下载到实验箱
(4)执行AD程序
(5)编写控制程序、编译并执行。
五、实验报告要求:
1、要求根据要求写出祥细具体操作步骤。
2、思考如何用C语言程序给寄存器置位(置0或置1)。
实验六:
MiniGUI应用程序设计
一、实验目的
1.学习MiniGUI程序的结构
2.学习MiniGUI程序的编译方法。
3.学习MiniGUI主窗口、对话框和菜单程序的编写方法。
二、实验设备和仪器
1.计算机
2.嵌入式实验箱
三、实验内容及要求
1. 阅读MiniGUI主窗口程序,然后编译并运行。
2.修改程序中存在的错误。
3.在dialog.c程序中增加一个名为“hello”的按钮,按钮的ID号为115。
四、实验原理及步骤
实验源程序在05_MiniguiExp/host目录下(arm目录下是编译成实验箱上运行的程序)。
(1)编译主窗口程序(在缩主机上运行)
Ø阅读主窗口源程序(host/helloworld.c)。
Ø阅读Makefile文件。
Ø进入控制台(Alt_ctrl+F1)
Ø运行程序
Ø并运行观察结果.
(2)编译主窗口程序(在实验箱上运行)
Ø阅读主窗口源程序(arm/helloworld.c)。
Ø阅读Makefile文件。
Ø操作实验箱,并挂载nfs
Ø运行程序
Ø并运行观察结果.
(3)有菜单的主窗口
Ø阅读源程序(host/menu1.cmenu2.cmenu3.c)。
Ø阅读Makefile文件。
Ø编译,并运行
实验源程序在05_MiniguiExp/host目录下(arm目录下是编译成实验箱上运行的程序)。
(1)编译对话框程序
Ø阅读主窗口源程序(host/dialog.c)。
Ø阅读Makefile文件。
Ø进入控制台(Alt_ctrl+F1)
Ø运行程序
Ø并运行观察结果.
(2)编译装载图片程序
Ø阅读主窗口源程序(host/loadbmp.c)。
Ø阅读Makefile文件。
Ø进入控制台(Alt_ctrl+F1)
Ø运行程序
Ø并运行观察结果.
五、实验报告要求:
1、要求写出对话框使用的具体函数及其功能。
2、思考如何在程序中添加一些自己的功能。
实验七:
嵌入式数据库应用
一、实验目的
1.学习嵌入式数据库的应用。
二、实验设备和仪器
1.计算机
三、实验内容及要求
1. 阅读嵌入式数据库的资料
2.学习SQLite3数据库的使用
四、实验原理及步骤
1:
安装SQLite3数据库。
2:
用SQLite3的相关命令实现:
创建一个名为stu.db的数据库,在该数据库中创建一个名为student的表,表的字段信息如表1所示,并向表中插入2条记录,详细信息如表2所示;然后把表中的记录进行查询在终端上显示出来。
表1表的字段信息
字段名
类型
说明
ID
Integer
学生学号,为主键
Name
varchar(20)
学生姓名
Age
Integer
学生年龄
Sex
varchar(20)
学生性别
表2表的记录
ID
Name
Age
Sex
10001
zhansan
20
female
10002
lisi
19
male
3:
编写C程序,通过调用SQLite的API函数完成以上功能。
五、实验报告要求:
1、请将具体步骤写在实验报告上。
2、如果在实验时遇到错误,请写在实验报告上,如果有解决错误的办法,也写在实验报告上。
实验八:
QT应用程序设计
一、实验目的
1.学习QT程序的结构
2.学习QT程序的编译方法。
3.学习QT主窗口、文本框和菜单的编写方法。
二、实验设备和仪器
1.计算机
2.嵌入式实验箱
三、实验内容及要求
1. 阅读QT主窗口程序helloworld.cpp,然后编译并运行。
2.在helloworld.cpp程序中增加一个名为“hello”的按钮。
四、实验原理及步骤
(1)编译主窗口程序(在缩主机上运行)
Ø阅读主窗口源程序(host/helloworld.cpp)。
Ø创建Makefile文件。
Ø运行程序
Ø并运行观察结果.
(2)增加按钮“hello”
Ø添加代码。
Ø创建Makefile文件。
Ø运行程序
Ø并运行观察结果.
五、实验报告要求:
1、要求写出添加按钮的具体函数及其功能。
2、思考如何在程序中添加一些自己的功能。