arm实验总结.docx
- 文档编号:29476562
- 上传时间:2023-07-23
- 格式:DOCX
- 页数:126
- 大小:77.20KB
arm实验总结.docx
《arm实验总结.docx》由会员分享,可在线阅读,更多相关《arm实验总结.docx(126页珍藏版)》请在冰豆网上搜索。
arm实验总结
目录
1环境的搭建5
1.1VMwareWorkstation5
1.2超级终端5
1.3XShell5
1.3.1连接ARM开发板5
1.3.2连接虚拟机(XP的本地连接可用时)6
1.3.3连接虚拟机(XP的本地连接不可用时)6
1.3.4XShell其他配置6
1.4SourceInsight6
1.5虚拟机Samba服务器:
将虚拟机中的文件夹共享给XP7
1.6将XP中的文件夹共享给虚拟机7
1.7NFS共享:
将虚拟机中的文件夹共享给ARM开发板7
2Linux程序设计基础8
2.1在虚拟机上编辑、编译和运行程序8
2.2交叉编译(在虚拟机上编译ARM开发板上可运行的程序)9
3U-BOOT移植实验10
3.1解压u-boot源码10
3.2建立UP2410的板级支持10
3.3让up2410的u-boot支持从NandFlash启动10
3.4让up2410的u-boot支持dm9000网卡14
3.5编译up2410的u-boot16
3.6烧写u-boot16
3.7测试u-boot16
4LINUX内核移植实验17
4.1资源17
4.2解压源码包17
4.3修改Makefile文件,支持交叉编译17
4.4得到.config文件17
4.5修改NandFlash分区17
4.6添加LCD支持18
4.7添加网卡驱动19
4.8添加YAFFS文件系统支持20
4.9内核配置(即内核裁剪)20
4.10编译内核21
4.11烧写内核21
5根文件系统的制作23
5.1解压busybox23
5.2修改Makefile文件,支持交叉编译23
5.3编译23
5.4创建根文件系统的目录结构23
5.5得到etc文件夹内容24
5.6复制_install文件夹内容26
5.7拷贝动态库26
5.8制作cramfs的文件系统26
5.8烧写文件系统27
5.9重设ARM开发板启动参数27
6模块驱动实验28
6.1编辑模块驱动程序demo.c和用户测试程序test_demo.c28
6.2编译和测试驱动程序(基于Linux虚拟机的驱动程序)28
6.2.1编译Linux虚拟机上的目标文件28
6.2.2在Linux虚拟机上插入设备驱动、建立设备节点29
6.2.3在Linux虚拟机上运行测试程序29
6.3交叉编译和测试驱动程序(基于ARM开发板的驱动程序)29
6.3.1编译ARM开发板上的目标文件29
6.3.2在ARM开发板上插入设备驱动、建立设备节点29
6.3.3在ARM开发板上运行测试程序30
6.4程序源码30
6.4.1demo.c30
6.4.2test_demo.c33
7A/D转换实验35
7.1重新编译和烧写内核35
7.2编辑驱动程序和用户测试程序35
7.3编译生成目标文件35
7.4将目标文件传到ARM开发板35
7.5驱动36
7.6测试36
7.7程序源码36
7.7.1s3c2410_adc.h36
7.7.2s3c2410_adc.c36
7.7.3main.c40
8socket编程实验42
8.1demo1(假设Linux虚拟机是服务器,ARM开发板是客户端)42
8.1.1编辑skt_ser.c和skt_cli.c42
8.1.2编译42
8.1.3将客户端目标程序skt_cli传到ARM开发板42
8.1.4运行42
8.2demo2(假设ARM开发板是服务器,Linux虚拟机是客户端)43
8.2.1编辑server.c和client.c43
8.2.2编译43
8.2.3将服务器端目标程序server传到ARM开发板43
8.2.4运行43
8.3程序源码43
8.3.1skt_ser.c43
8.3.2ske_cli.c45
8.3.3server.c46
8.3.4client.c47
9帧缓冲驱动实验49
10触摸屏驱动实验50
10.1得到tslib源码50
10.2生成可执行文件50
10.3将触摸屏库挂载到arm开发板50
10.4加载触摸屏驱动51
10.5设置环境变量51
10.6触摸屏校准和测试51
11WEB实验52
11.1运行原理52
11.2编辑和编译程序52
11.2.1编辑源程序52
11.2.2编译52
11.3加载ADC驱动52
11.4得到WEB服务器boa52
11.5配置boa服务器53
11.6程序源码53
12视频实验60
12.1压缩包简介60
12.2解压并编译jpeg标准库60
12.3运行一个图像显示应用程序jpegshow61
12.4运行一个抓图应用程序mouse_capture61
12.5修改后再运行mouse_capture62
12.6更新jpeg标准库62
12.7运行一个抓图显示应用程序v4lcap63
12.8配置网络摄像头和WEB服务器64
12.9程序源码65
12.9.1jpegshow中的main.c65
12.9.2jpegshow中的fb.h66
12.9.3jpegshow中的fb.c67
12.9.4mouse_capture中的server.c68
12.9.5mouse_capture中的run.sh70
13QT实验(ForLinux)71
13.1编译QT-X11环境71
13.2编写QT-X11程序71
13.3编译、执行71
13.4程序源码72
13.4.1myqt.h72
13.4.2myqt.cpp72
13.4.3main.cpp73
14QT实验(ForARM)74
14.1挂载触摸屏库74
14.2编译和配置QT/E环境74
14.3驱动触摸屏75
14.4利用QT-X11的designer编写应用程序界面75
14.5在QT/E环境中编译75
14.6在ARM开发板上测试76
15GPRS实验77
15.1重新编译arm开发板的linux内核77
15.2将触摸屏库和QT/E库挂载到arm开发板77
15.3驱动触摸屏、设置环境变量、触摸屏校准77
15.4生成一个手机的应用程序78
15.5在ARM开发板上测试78
15.6程序源码78
15.6.1gprs.h78
15.6.2gprs.cpp80
15.6.3main.cpp86
16考核88
16.1过程简介88
16.2程序源码89
16.2.1led.c89
16.2.2myled.h93
16.2.3myled.cpp93
16.2.4main.cpp95
1环境的搭建
1.1VMwareWorkstation(用于启动RedHat9linux虚拟机)
1.启动:
双击redhat.vmx
2.配置:
打开菜单“虚拟机设置”
硬件:
(1)内存:
256M(不能大于本机内存的1/3)
(2)以太网:
选择“桥接”
(3)串口:
选择“COM1”,不要选择“打开电源连接”
选项:
(1)文件夹共享:
选择“总是启用”
共享后的文件夹在“/mnt/hgfs”文件夹内可见
3.第一次使用时,点击“打开虚拟机电源”后会有提示,“确定”即可。
用户名“root”,密码“123456”。
1.2超级终端
1.启动:
开始程序附件通讯超级终端
2.是否将HyperTerminal作为默认的telnet程序?
“否”
3.位置信息窗口。
“取消”
4.需要拨号位置的电话信息,确实要取消吗?
“是”“确定”
5.为新的连接取名:
“ttyS0”(随便取)
6.连接实验箱的串口:
“COM1”
7.端口设置(即串口COM1的设置)
串口波特率115200;数据位8;奇偶校验“无”;停止位1;数据流控制“无”。
8.进入vivi启动界面。
“文件另存为”保存该连接设置。
1.3XShell
1.3.1连接ARM开发板
1.超级终端、虚拟机、其他占用COM1的软件全部关闭,否则无法连接ARM开发板。
2.启动:
双击“XShell”
3.点击左上角图标,新建会话连接ARM开发板。
Name:
arm
Method:
SERIAL
setup(波特率=115200,Port=COM1,DataBits=8,StopBits=1,Parity=None)
4.选中“arm”,点击“connect”。
5.此时已经连接上ARM开发板了,可以使用XShell与之进行交互了,如果有问题可以重新启动ARM开发板。
1.3.2连接虚拟机(XP的本地连接可用时)
1.XP的本地IP地址192.168.1.11;子网掩码255.255.255.0;默认网关192.168.1.254
VMwareNetworkAdapterVMnet1自动获得IP地址
VMwareNetworkAdapterVMnet8自动获得IP地址
2.Linux虚拟机内运行命令ifconfig,查看虚拟机网络设置
IP地址192.168.1.12;子网掩码255.255.255.0;默认网关192.168.1.254
3.启动XShell后,点击左上角图标,新建一个会话连接虚拟机。
Name:
redhat(可以任意取名)
Method:
SSH
Host:
192.168.1.12(与Linux虚拟机的IP地址一致即可)
PortNumber:
22
Method:
Password
UserName:
root
Password:
123456
4.选中“redhat”,点“connect”,选择“Accept&Save”
5.此时已经连接上Linux虚拟机了,可以使用XShell访问Linux系统了。
1.3.3连接虚拟机(XP的本地连接不可用时)
1.XP的本地IP地址192.168.1.11;子网掩码255.255.255.0;默认网关192.168.1.254
VMnet1本地IP地址192.168.1.15;子网掩码255.255.255.0;默认网关192.168.1.254
VMnet8自动获得IP地址
2-5同上
1.3.4XShell其他配置
1.背景方案图标中可选择“白底黑字”或“黑底白字”等。
2.中文乱码的解决:
配置图标中选择“Advanced”“utf8中文简体”
字体选择“仿宋”
1.4SourceInsight
1.启动:
双击“Insight3.exe”
2.“项目”“新项目”。
名称任意,存储路径最好与源代码在同一目录。
3.共享全局配置文件
4.“项目源文件目录”右侧点击“浏览”
5.选择要编辑的源码所在目录后,点击“添加树”,“关闭”即可。
6.默认情况下,不能阅读汇编文件,解决办法:
“选项”“文档选项”,在文件过滤器中输入“*.c;*.h;*.s;*.S”,选中“加入到项目时包含”,点击“关闭”即可。
7.在菜单中选择“项目”“同步文件”,选中“自动加入新文件”和“禁止警告信息”,同步后新的汇编代码就会自动添加到我们的工程里了。
1.5虚拟机Samba服务器:
将虚拟机中的文件夹共享给XP
1.启动linux虚拟机,进入home文件夹(cd/home),创建uptech文件夹(mkdiruptech)。
2.改变uptech文件夹的权限(chmod777uptech/)。
任何用户可读可写可执行。
3.在虚拟机的红帽菜单中“系统设置”“服务器设置”“samba”
4.在Samba服务器配置中点击“添加”图标,来添加共享文件夹的名称。
(1)目录:
“/home/uptech”
(2)共享名:
“uptech”
(3)权限:
“读/写”
(4)访问:
选中“允许所有用户访问”
5.在XP的地址栏中输入“//192.168.1.12”即可访问Linux虚拟机的“/home/uptech”了。
1.6将XP中的文件夹共享给虚拟机
1.在虚拟机菜单中选择“虚拟机设置”
2.选择“选项”“文件夹共享”:
选择“总是启用”,可以添加想要共享的文件夹。
3.此时,XP的共享文件夹在linux的“/mnt/hgfs”文件夹内可见。
1.7NFS共享:
将虚拟机中的文件夹共享给ARM开发板
1.确保XP、linux虚拟机、ARM开发板三者的IP地址在同一网段,并且不冲突,能够互相ping通。
2.在虚拟机中配置NFS:
“系统设置”“服务器设置”“NFS”,点击“添加”图标
(1)目录:
/home/uptech(任意,选择要共享给ARM开发板的目录)
(2)目录主机:
*
(3)权限:
读/写
(4)常规选项中选中“允许来自高于1024的端口的连接”和“按要求同步写操作”
(5)用户访问中选中“把远程根用户当作本地根用户”
3.在Linux虚拟机中输入命令“routedeldefault”,取消虚拟机的默认路由。
4.在ARM开发板上操作如下:
(1)ifconfigeth0192.168.1.13(配置ARM开发板的IP地址)
(2)mount-onolock,rsize=4096,wsize=4096192.168.1.12:
/home/uptech/mnt/nfs(将linux虚拟机/home/uptech目录挂载到ARM开发板的/mnt/nfs目录下)
(3)cd/mnt/nfs(即可访问Linux共享的文件夹)
加载驱动insmod
2Linux程序设计基础
2.1在虚拟机上编辑、编译和运行程序
1.启动Linux
2.进入需要存放程序文件的文件夹“cd/home/uptech/……”
3.编辑:
vi文件名。
例如:
“vistarfun.h”、“vihello.h”、“vihello.c”、“vistar.c”
编辑完每个文件后,使用ESC,shift+z+z保存退出
使用ESC,:
w保存文件
使用ESC,:
q!
退出
(1)Starfun.h文件内容如下:
/*****starfun.h*****/
#ifndefSTARFUN_H
#defineSTARFUN_H
#defineNUM4
#defineNUMBER3
intstar1(){
inti,j,k;
for(k=1;k<=NUM;++k){
for(i=1;i<=(NUM-k);++i)
printf("");
for(j=1;j<=(2*k-1);++j)
printf("*");
printf("\n");
}
return0;
}
intstar2(){
inti,j,k;
for(k=NUMBER;k>=0;--k){
for(i=1;i<=(NUMBER-k+1);++i)
printf("");
for(j=1;j<=(2*k-1);++j)
printf("*");
printf("\n");
}
return0;
}
#endif
(2)hello.h文件内容如下:
/*hello.h*/
#ifndefHELLO_H
#defineHELLO_H
voidhello(){
star1();
printf("hello,myfriends\n");
}
#endif
(3)hello.c文件内容如下:
voidshowhello(){
hello();
}
(4)star.c文件内容如下:
#include"starfun.h"
#include"hello.h"
#include
intmain(){
star1();
star2();
showhello();
return0;
}
4.编译(分步编译):
(1)gcc-cstar.c-ostar.ostar.c+starfun.h生成star.o
(2)gcc-chello.c-ohello.ohello.c+hello.h+starfun.h生成hello.o
(3)gccstar.ohello.o-omyproghello.o+star.o生成应用程序myprog
编译(一步编译)star.c+hello.c+hello.h+starfun.h生成应用程序myprog
gccstar.chello.c-omyprog
5.运行程序:
“./myprog”(这个程序只能在Linux虚拟机中运行,不能在ARM中运行)
2.2交叉编译(在虚拟机上编译ARM开发板上可运行的程序)
1.在linux中编译生成ARM开发板上运行的程序:
arm-linux-gccstar.chello.c-omyprog
2.将目标文件myprog传到ARM开发板:
(1)在Linux虚拟机中将目标文件拷贝到tftpboot文件夹:
cpmyprog/tftpboot
(2)在ARM上执行“tftp–rmyprog–g192.168.1.12”
(3)在ARM开发板上修改myprog的权限:
“chmod777myprog”或“chmod+xmyprog”
在ARM开发板上运行程序:
“./myprog”
3U-BOOT移植实验
3.1解压u-boot源码
1.在虚拟机中,利用Samba共享一个文件夹给XP,例如共享“/home/uptech”文件夹
2.将该文件夹的权限设为可读可写可执行“chmod777/home/uptech”
3.在XP中,把“03/下午/src”文件夹拷贝到“//192.168.1.12”的共享文件夹uptech内,并把uptech中的“src”更名为“03u-boot”
4.在Linux虚拟机中进入该文件夹“cd/home/uptech/03u-boot”
输入“ls”命令,可见该文件夹内有3个文件:
“u-boot-1.3.2.tar.bz2”(u-boot-1.3.2源码压缩包)
“dm9000x.h”、“dm9000x.c”(dm9000网卡驱动程序)
5.解压u-boot源码压缩包,即输入命令“tarjxvfu-boot-1.3.2.tar.bz2”
3.2建立UP2410的板级支持
1.进入u-boot源码文件夹,输入命令“cdu-boot-1.3.2”
2.建立UP2410板级支持包
“cdboard”
“mkdirup2410”在board文件夹内创建“up2410”文件夹
“cpsmdk2410/*up2410/-a”将smdk2410文件夹的内容拷贝到up2410文件夹内
“cd..”返回u-boot-1.3.2目录
“cpinclude/config/smdk2410.hinclude/config/up2410.h”
以smdk2410为模板创建up2410配置文件up2410.h
3.配置UP2410开发板,即修改“u-boot-1.3.2/Makefile”文件
“viMakefile”
输入“/smdk2410”找到
smdk2400_config:
unconfig
@$(MKCONFIG)$(@:
_config=)armarm920tsmdk2400NULLs3c24x0
紧接这两行添加如下两行:
up2410_config:
unconfig
@$(MKCONFIG)$(@:
_config=)armarm920tup2410NULLs3c24x0
其中第二行开始部分的空白是按TAB键获得的!
4.保存退出Makefile文件。
ESC,shift+zz
3.3让up2410的u-boot支持从NandFlash启动
1.修改“u-boot-1.3.2/cpu/arm920t/start.S”文件
2.新建“u-boot-1.3.2/board/up2410/nand.c”文件
3.修改“u-boot-1.3.2/board/up2410/Makefile”文件
4.修改“u-boot-1.3.2/include/configs/up2410.h”文件
具体如下:
1、修改“u-boot-1.3.2/cpu/arm920t/start.S”文件(vicpu/arm920t/start.S)
ESC:
setnumber(用于显示行号)
(1)181行和201行前加上//,注释掉
181//#ifdefCONFIG_AT91RM9200
201//#endif
(2)203行(即#ifndefCONFIG_SKIP_RELOCATE_UBOOT之后)加入:
#ifdefCONFIG_S3C2410_NAND_BOOT
blcopy_myself
#else
(3)“blecopy_loop”语句之后加入:
#endif
(4)“_start_armboot:
.wordstart_armboot”语句之后加入copy_loop子程序:
/*
*************************************************************************
*
*copyu-boottoram
*
*************************************************************************
*/
#ifdefCONFIG_S3C2410_NAND_BOOT
copy_myself:
movr10,lr@savereturnaddresstor10
ldrsp,DW_STACK_START
movfp,#0
blNF_Init
ldrr0,=UBOOT_RAM_BASE
movr1,#0x0
movr2,#0x30000
blnand_read_whole
tstr0,#0x0
beqok_nand_read
1:
b1b
ok_nand_read:
movr0,#0x00000000
ldrr1,=UBOOT_RAM_BASE
movr2,#0x400
go_nex
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- arm 实验 总结