2018-2019-1 20165309 20165312 20165330 实验一 开发环境的熟悉
小组成员
- 20165309吴思佳
- 20165312曹歌
- 20165330张羽昕
实验目的
- 理解gcc和交叉编译器编译的区别
- 理解并使用file命令
- 学会使用ping命令
实验步骤
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!\n");
printf("\n20165309吴思佳\n20165312曹歌\n20165330张羽昕\n");
return 0;
}
- 使用
./linuxhello
和./armhello
运行,并使用file armhello
查看
2-目标机宿主机联通
-
用
ifconfig
在超级终端中查看实验箱IP(目标机),在Ubuntu中(宿主机)中用ifconfig
在命令行查看IP
-
用网线连接实验室台式机(或自己笔记本电脑)和ARM实验箱的网口NET1(最大屏旁边的)
-
用ping命令保证目标机和宿主机能互相ping通
实验中遇到的问题及解决方法
- 在启用win7系统时虚拟机无法联网
- 解决办法:是因为虚拟机默认网络连接为桥接模式,打开虚拟机--设置,在网适配器中网络连接改为NAT模式,随后开启虚拟机,若还不能联网,则使用电脑的网络诊断,诊断后即可上网。
- Ubuntu虚拟机无法上网,网络状态显设备示未托管
- 解决方法:先将网络连接改为NAT模式,然后按照Ubuntu网络连接显示“设备未托管”解决办法后解决网络问题
新学到的知识点
- file命令
- 用来识别文件类型,也可用来辨别一些文件的编码格式
- 命令格式:
file [-bcLvz][-f <名称文件>][-m <魔法数字文件>...][文件或目录...]
- 命令参数
-b
:列出辨识结果时,不显示文件名称。-c
:详细显示指令执行过程,便于排错或分析程序执行的情形。-f
:列出文件中文件名的文件类型-F
:使用指定分隔符号替换输出文件名后的默认的":"分隔符。-L
:查看对应软链接对应文件的文件类型。-i
:输出mime类型的字符串-v
:显示版本信息。-z
:尝试去解读压缩文件的内容。-help
:显示命令在线帮助
- 超级终端
- 将用户输入随时发向串口(采用TCP协议时是发往网口,这里只说串口的情况),但并不显示输入
- 它显示的是从串口接收到的字符
- 交叉编译
- 即在一个平台上生成另一个平台上的可执行代码
- 交叉编译链与gcc便以类似,下图为流程
- 宿主机(host):编辑和编译程序的平台,一般是基于X86的PC机,通常也被称为主机。
- 目标机(target):用户开发的系统,通常都是非X86平台。host编译得到的可执行代码在target上运行。