实验一 开发化境的熟悉-1-交叉编译环境-(使用实验室台式机)
1.建立实验目录"mkdir linux_组员1学号_组员2学号"。
2.在实验目录中编写“hello word”程序,另外补充几行打印所有组员的学号姓名。
3.分别用gcc和交叉编译器arm-none-linux-gnuenbi-gcc编译hello.c,用gcc编译的可执行文件命名linuxhello:gcc hello.c -o linuxhello; 用arm-none-linux-gnuenbi-gcc编译的命名为armhello: /usr/local/toolchain/toolchain4.3.2/bin/arm-none-linux-gnuenbi-gcc hello.c -o armhello。
4.分别运行linuxhello,armhello。
实验一 开发化境的熟悉-2-目标机宿主机联通
1.使用实验室机器不用安装软件,桌面上有相应图标
2.参考视频配置超级终端,用超级终端作为实验箱的显示终端
3.用ifconfig在超级终端中查看实验箱IP(目标机),在Ubuntu中(宿主机)中用ifconfig在命令行查看IP
4.用网线连接实验室台式机(或自己笔记本电脑)和ARM实验箱的网口NET1(最大屏旁边的)
5.用ping命令保证目标机和宿主机能互相ping通,提交ping通的截图
实验一 开发化境的熟悉-3-目标机运行程序
1.学习资源中第五周的“ARM实验箱实验指导书”的第二章,理解tftp和nfs的作用
2.在超级终端中用“mkdir /arm_组员1学号_组员2学号” 建立实验箱中程序运行目录“arm_组员1学号_组员2学号”
3.在超级终端中运行“mount -t nfs -o nolock 宿主机IP:/home/linux/linux_组员1学号_组员2学号 /arm_组员1学号_组员2学号”通过NFS把宿主机中的“linux_组员1学号_组员2学号” 映射到目标机中的“/arm_组员1学号_组员2学号”
4.超级终端中运行"cd /arm_组员1学号_组员2学号"
5.超级终端中运行"./armhello", 提交运行截图,并深入理解交叉编译
实验一 开发化境的熟悉-5-清理工作(只有用实验室机器的小组做)
实验结束后,把实验室原来的网线插回,否则以后做实验的同学无法开机,提交插好网线的照片。
实验中的问题
1.armlinux无法在虚拟机中编译后运行,运行出错原因是:无法执行二进制文件
通过file命令我们得知linuxhello是一个64-bit的文件,而armhello是32-bit的,我们的宿主机是64位,所以无法运行armhello。
实验总结体会
- 交叉编译:就是在一个平台上生成另一个平台上的可执行代码。同一个体系结构可以运行不同的操作系统;同样,同一个操作系统也可以在不同的体系结构上运行。
- 宿主机与目标机:在嵌入式开发过程中,有宿主机和目标机的角色之分:宿主机是执行编译、链接嵌入式软件的计算机;目标机是运行嵌入式软件的硬件平台。通常我们用的PC机就是宿主机,而我们用的开发板则是目标机
- file命令用来探测给定文件的类型。file命令对文件的检查分为文件系统、魔法幻数检查和语言检查3个过程。