苏州理工Word文档下载推荐.docx
《苏州理工Word文档下载推荐.docx》由会员分享,可在线阅读,更多相关《苏州理工Word文档下载推荐.docx(13页珍藏版)》请在冰豆网上搜索。
打开终端1,输入
ping192.168.0.100
查看是否连通,一直跳,按“Ctr+C”停止继续ping下去
打开终端2,输入如下内容新建名为fred的目录
cd/
ls
mkdirfred
并将fred设共享
打开终端1,挂载fred
mount–tnfs192.168.0.100:
/fred/host
ls
cd/host
打开终端1,新建并编译file.c文件
vifile.c
在新弹出的页面输入:
#include“stdio.h”
intmain(void)
{
printf(“Hello!
/n”);
}
注,写入先按Esc键,再按“Shift+i”;
保存退出先按Esc,再按“Shift+wq”
然后把file.c编译执行
gcc–omyfile1file.c
./myfile1
将file.c用arm编译
armv4l–unknown—gcc–omyfile2file.c
打开终端1,在箱子上用arm执行file.c
./myfile2
六、实验结果分析
实验的在箱子上用arm执行的结果与箱子上一致,说明file.c文件编写正确、挂载成功以及arm使用成功。
实验三嵌入式软件设计与交叉编译
一、实验目的:
1.掌握嵌入式Linux软件设计方法原理
2.掌握Makefile文件设计方法。
3.熟悉Linux下静态库和共享库的设计
二、实验内容:
(1)编写一个带输入、输出的由5个文件组成的嵌入式软件;
(2)写好makefile文件,并上机调试;
(3)用变量指明两种编译器。
三、实验预备知识
在宿主机(PC)上建立用户开发目录,编写嵌入式程序文件,3个C文件+2个头文件。
编写Makefile文件,指明编写分别为
CC=gcc或
CC=armv4l-unknown-linux-gcc。
编译程序,并下载到实验箱上执行
mount–tnfs主机ip:
/开发目录/host。
四、实验设备及工具
UP-NETARM2410-S嵌入式实验仪、PC机pentumn500以上、硬盘40G以上、内存大于256M。
PC机操作系统REDHATLINUX9.0、MINICOM、AMRLINUX开发环境
打开一个超级终端,输入
pwd
查看当前文件
mkdirmyname
cdmyname
cd/arm2410cl
cdexp
cdbasic
cd01-hello/
cd..
cd/
cd/myname
vimyfile.c
对main.c文件进行编译并保存退出
以main.c为主的五个文件分别如下
/*mian.c*/
#include<
stdio.h>
fcntl.h>
#include"
input.h"
output.h"
intmain()
inti=0;
charname[N];
input(name)
for(i=0;
i<
M;
i++)
output(name);
return0;
}
/*input.h*/
#defineN10
voidintput(char*s);
/*input.c*/
voidintput(char*s)
printf("
inputyourname,please:
"
);
scanf("
%s"
s);
/*output.h*/
#defineM5
voidoutput(char*s);
/*output.c*/
voidoutput(char*s)
{printf("
hello%s!
\n"
}
gcc–cmain.c
用gcc对main.c编译
gcc–omyfile.cmyfile.o
./myfile
-unknown-linux-gcc–omyfile1
打开另一个对应实验箱的终端2,输入
ifconfig
ping192.168.0.121
按“Ctr+C”停止ping
对系统进行设置文件共享,并关闭防火墙
对文件myname进行挂载
mount–tnfs192.168.0.121:
/myname/host
viMakefile
写make文件
cc=armv4l-unknown-linux-gcc
注,上句是用arm编译的,如果make用gcc编译直接将上句改为cc=gcc
myapp:
mian.oinput.ooutout.o
$(cc)-omyappmain.oinput.ooutput.o
main.o:
main.cinput.houtput.h
$(cc)-cmain.c
input.o:
input.c
$(cc)-cinput.c
output.o:
output.c
$(cc)-coutput.c
clean:
rm–rf*.omyapp
保存并退出make文件
makeclean
make
./myapp
注上面的文件可以通过先把程序保存在txt文件中,改后缀为.c或.o,再通过虚拟机与主机的相关操作放到虚拟机
六、结果分析
make命令执行后的结果与主机执行结果一致,说明加载、编makefile成功
实验四驱动程序设计
1.学习在LINUX下进行驱动设计的原理
2.掌握使用模块方式进行驱动开发调试的过程
二、实验设备及工具:
三、实验内容:
在PC机上编写简单的虚拟硬件驱动程序并进调试,实验驱动的各个接口函数的实现,分析并理解驱动与应用程序的交互过程。
四、所需知识
在PC(宿主机)上编译调试驱动程序。
使用arm编译器在实验箱调试驱动程序。
新建一个终端1,输入
cd/
ls
cd/arm2410cl/
cdexp/
cddrivers/
cd01_demo/
cd…
cp–rf01_demo//fred
cd/fred
videmo.c
vitest
vitest_demo.c
viMakefile
共享相关文件
新建终端,配实验箱,输入
minicon
mount–tnfs192.168.0.100
./fred/host/
cd/host/
insmoddemo.o
./test_demo
注:
上面的demo.c额test在系统中早已编辑好
当主机终端成功挂载后,输出的是要求的数组。
但由于部分出错,输出的数组会有部分数字是数字
实验六嵌入式GUI
1.了解在Linux下安装Qt的基本步骤;
2.学会在Qt环境在X11平台下程序设计的方法;
1.在本机Linux下编译和使用Qt例程;
2.在本机环境下编译和运行一个程序并显示运行结果;
1.熟悉使用C++语言程序设计;
2.掌握Linux下常用编辑器的使用;
3.掌握Linux下程序编译;
4.熟悉Qt程序设计;
四、实验室设备和工具
UP-ARM2410CL、PC机Pentumn500以上,硬盘80G以上。
PC机操作系统RHEL4+超级终端(或X-shell)+ARM-Linux开发环境
qt-x11-opensource-src-4.4.0.tar.gzarm-linux-gcc-3.4.6-glibc-2.3.6
编译QT-X11环境
在Trolltech公司的网站上可以下载该公司所提供的Qt/Embedded的免费版本,在安装
产品光盘以后,本次实验目录下已有要下载的文件,在/arm2410cl/gui/src下。
在做实验
前把本次实验用到的qt-x11-opensource-src-4.4.0.tar.gz文件拷贝到
/home/sprife/qt4/for_pc目录下。
实验具体目录可以自行定义,拷贝库文件:
#cd/home/
#mkdirsprife
#cdsprife
#mkdirqt4
#cdqt4
#mkdirfor_pc
#cdfor_pc
#cp/arm2410cl/gui/Qt/src/qt-x11-opensource-src-4.4.0.tar.gz./
Qt本机环境的搭建需要以下几步:
#tarxzvfqt-x11-opensource-src-4.4.0.tar.gz
#cdqt-x11-opensource-src-4.4.0
#./configure-prefix/usr/local/Trolltech/Qt-x11-4.4.0//这里自行新建目
录Trolltech/Qt-x11-4.4.0
出现安装提示时选择yes注意大小写
#gmake
#gmakeinstall
./configure是对Qt进行配置,它包括很多选项,例如可以通过添加“-no-opengl”等,
上面命令中的-prefix参数指定Qt-x11环境的安装目录。
如果想要进一步了解可以通过键
入./configure--help来获得更多的帮助信息。
gmake与gmakeinsall命令分别是编译与安装QT环境
如果上面各步都能够成功的编译通过,下面就可以通过运行Qt/Embedded自带的demo
来查看运行结果。
#cd/home/sprife/qt4/for_pc/qt-x11-opensource-src-4.4.0/examples/widgets/wiggly/
#./wiggle
将上面的步骤完成后,我们就已经建立好了在本机上开发Qt应用程序的环境,下面我
们通过编写一个“Hello”的程序来了解Qt程序设计。
Hello,Qt!
我们以一个非常简单的Qt程序开始Qt的学习。
我们首先一行行的分析代码,然后我们
将会看到怎样编译和运行这个程序。
1#include<
QApplication>
2#include<
QLabel>
3intmain(intargc,char*argv[])
4{
5QApplicationapp(argc,argv);
6QLabel*label=newQLabel("
HelloQt!
7label->
show();
8returnapp.exec();
9}
第1行和第2行包含了两个类的定义:
QApplication和QLabel。
对于每一个Qt的类,
都会有一个同名的头文件,头文件里包含了这个类的定义。
因此,你如果在程序中使用了
一个类的对象,那么在程序中就必须包括这个头文件。
第3行是程序的入口。
几乎在使用Qt的所有情况下,main()函数只需要在把控制权转
交给Qt库之前执行一些初始化,然后Qt库通过事件来向程序告知用户的行为。
argc是命
令行变量的数量,argv是命令行变量的数组。
这是一个C/C++特征。
它不是Qt专有的,无
论如何Qt需要处理这些变量
第5行定义了一个QApplication对象App。
QApplication管理了各种各样的应用程序
的广泛资源,比如默认的字体和光标。
App的创建需要argc和argv是因为Qt支持一些自
己的命令行参数。
在每一个使用Qt的应用程序中都必须使用一个QApplication对象,并
且在任何Qt的窗口系统部件被使用之前创建此对象是必须的。
App在这里被创建并且处理
后面的命令行变量(比如在X窗口下的-display)。
请注意,所有被Qt识别的命令行参数
都会从argv中被移除(并且argc也因此而减少)。
第6行创建了一个QLabel窗口部件(widget),用来显示“Hello,Qt!
”。
在Qt和Unix
的术语中,一个窗口部件就是用户界面中一个可见的元素,它相当于Windows术语中的“容
器”加上“控制器”。
按钮(Button)、菜单(menu)、滚动条(scrollbars)和框架(frame)
都是窗口部件的例子。
窗口部件可以包含其它的窗口部件。
例如,一个应用程序界面通常
就是一个包含了QMenuBar,一些QToolBar,一个QStatusBar和其它的一些部件的窗口。
绝
大多数应用程序使用一个QMainWindow或者一个QDialog作为程序界面,但是Qt允许任何
窗口部件成为窗口。
在这个例子中,QLabel窗口部件就是作为应用程序主窗口的。
第7行使我们创建的QLabel可见。
当窗口部件被创建的时候,它总是隐藏的,必须调
用show()来使它可见。
通过这个特点我们可以在显示这些窗口部件之前定制它们,这样就
不会出现闪烁的情况。
第8行就是main()将控制权交给Qt。
在这里,程序进入了事件循环。
事件循环是一种
stand-by的模式,程序会等待用户的动作(比如按下鼠标或者是键盘)。
用户的动作将会产
生程序可以做出反应的事件(也被称为“消息”)。
程序对这些事件的反应通常是执行一个
或几个函数。
为了简单起见,我们没有在main()函数的结尾处调用delete来删除QLabel对象。
这
种内存泄露是无害的,因为像这样的小程序,在结束时操作系统将会释放程序占用的内存
堆。
下面我们来编译这个程序。
建立一个名为hello的目录,在目录下建立一个名为
hello.cpp的c++源文件,将上面的代码写入文件中。
#cd/home/sprife/
#mkdirhello
#vihello.c
编辑hello.c源文件,填入上述9行代码
编译程序
#/home/sprife/qt4/for_pc/qt-x11-opensource-src-4.4.0/bin/qmake-project
#/home/sprife/qt4/for_pc/qt-x11-opensource-src-4.4.0/bin/qmake
#make
运行程序
#./hello
Qt也支持XML。
我们可以把程序的第6行替换成下面的语句:
QLabel*label=newQLabel("
<
h2>
i>
Hello<
/i>
"
fontcolor=red>
Qt!
<
/font>
/h2>
重新编译程序,我们发现界面拥有了简单的HTML风格。