2018-2019-1 20165309 20165312 20165330 实验一 开发环境的熟悉
实验目的及步骤
1-交叉编译环境-(使用自己笔记本电脑)
- 在linux下建立实验目录:
mkdir linux_组员1学号_组员2学号_组员3学号
- 在实验目录中编写“hello word”程序,另外补充几行打印所有组员的学号姓名
- 用gcc编译的可执行文件命名linuxhello:
gcc hello.c -o linuxhello
- 用arm-none-linux-gnuenbi-gcc编译的命名为armhello:
/usr/local/toolchain/toolchain-4.3.2/bin/arm-none-linux-gnueabi-gcc hello.c -o armhello
- 代码:
#include <stdio.h>
int main()
{
printf("hello word!
");
printf("
20165309吴思佳
20165312曹歌
20165330张羽昕
");
return 0;
}
- 使用
./linuxhello
和./armhello
运行,并使用file armhello
查看
由此看出,交叉编译的armhello
只能在arm实验箱上运行。
2-目标机宿主机联通
-
用
ifconfig
在超级终端中查看实验箱IP(目标机),在Ubuntu中(宿主机)中用ifconfig
在命令行查看IP
-
用网线连接实验室台式机(或自己笔记本电脑)和ARM实验箱的网口NET1(最大屏旁边的)
-
用ping命令保证目标机和宿主机能互相ping通
实验中遇到的问题及解决方法
- 问题1:在启用win7系统时虚拟机无法联网
- 解决办法:是因为虚拟机默认网络连接为桥接模式,打开虚拟机--设置,在网适配器中网络连接改为NAT模式,随后开启虚拟机,若还不能联网,则使用电脑的网络诊断,诊断后即可上网。
- 问题2:Ubuntu虚拟机无法上网,网络状态显设备示未托管
- 解决方法:先将网络连接改为NAT模式,然后按照Ubuntu网络连接显示“设备未托管”解决办法后解决网络问题。
- 问题3:错误使用虚拟机后再次开启出现“该虚拟机似乎正在使用中”的情况
- 解决方法:到安装目录中找到后缀为
.vmx.lck
的文件夹,将其删除掉,就可以正常开启了。
新学到的知识点
- file命令
- 用来识别文件类型,也可用来辨别一些文件的编码格式
- 命令格式:
file [-bcLvz][-f <名称文件>][-m <魔法数字文件>...][文件或目录...]
- 命令参数
-b
:列出辨识结果时,不显示文件名称。-c
:详细显示指令执行过程,便于排错或分析程序执行的情形。-f
:列出文件中文件名的文件类型-F
:使用指定分隔符号替换输出文件名后的默认的":"分隔符。-L
:查看对应软链接对应文件的文件类型。-i
:输出mime类型的字符串-v
:显示版本信息。-z
:尝试去解读压缩文件的内容。-help
:显示命令在线帮助
- 超级终端
- 将用户输入随时发向串口(采用TCP协议时是发往网口,这里只说串口的情况),但并不显示输入
- 它显示的是从串口接收到的字符
- 交叉编译
- 即在一个平台上生成另一个平台上的可执行代码
- 交叉编译链与gcc便以类似,下图为流程
- 宿主机(host):编辑和编译程序的平台,一般是基于X86的PC机,通常也被称为主机。
- 目标机(target):用户开发的系统,通常都是非X86平台。host编译得到的可执行代码在target上运行。
实验感悟
我们在做这次实验的过程中仿佛遇到了重重阻碍T_T,不可抗力是两个人的笔记本电脑插不了网线,而且我的笔记本内存也不能支持同时开启两个虚拟机(这更加坚定了我要攒钱给电脑加内存条的想法),于是我们用了羽昕电脑自带的Win7系统。然而,确认操作无误并多次寻求帮助后,未果,怎么都ping不通。。时间紧急,我们只好借来了一台电脑,匆忙地完成了实验。所以,我要实名感谢借给我们电脑的那位同学,谢谢~!