写在前面:娄老师您好,上周四的实验由于机器不够,我后面和5202马超、5234黄斐一组了,忘记和您说了,还麻烦您做下登记,不好意思。
一、实验原理
交叉编译,就是在一个平台上生成另一个平台上的可执行代码。同一个体系结构可以运行不同的操作系统;同样,同一个操作系统也可以在不同的体系结构上运行。在Linux PC上,利用arm-linux-gcc编译器,可编译出针对Linux ARM平台的可执行代码。
二、实验内容与步骤
实验一:
- 连接arm开发板
将arm开发板电源线接好,保持开发板开关处于闭合状态。再分别将串口线、并口线和网线与pc机连接好 - 建立超级终端
运行windows XP系统下“开始”、“所有程序”、“附件”、“通讯”、“超级终端”。新建一个通信终端,取名为arm。
在属性对话框中,将波特率设为115200,数据位设为8,无奇偶校验,停止位为1,无数据流控制,另存在桌面。 - 启动实验平台
打开超级终端,打开arm机电源开关等待一会,输入ifconfig命令,记录下arm机的ip。 - 修改xp系统与redhat虚拟机的ip
xp系统与redhat虚拟机的ip均与arm机的ip在同一网段 。 - 安装arm编译器
在pc机中“开始”、“运行”,输入虚拟机的ip,输入用户名bc,密码123456
访问虚拟机,把所需文件解压缩拷贝到共享文件夹bc中
进入虚拟机,在命令行中输入./install.sh,安装脚本程序将会自动建立目录,配置编译环境 - 配置环境变量
在虚拟机中使用 vi 修改 /root/.bash_profile
文件中的 PATH变量为 PATH=$PATH:$HOME/bin:/opt/host/armv4l/bin/
存盘后执行: source /root/.bash_profile - 建立hello.c文件并编译
在虚拟机中进入文件夹/root/bc,在此目录下编写hello.c文件
利用命令armv4l-unknown-linux-gcc对hello.c进行编译,生成hello可执行文件。 - 下载调试
在超级终端中将共享文件夹挂载好,建立开发板与虚拟机之间的通讯
输入命令“mount -t nfs -o nolock 192.168.0.234:/home/bc /host”在超级终端中运行编译通过的hello可执行文件
实验二:
实验目的与要求
1、初步掌握硬件开发平台的搭建和硬件开发的流程
2、能够编译、运行简单程序;掌握程序调试与测试方法
3、掌握程序的烧写方法
4、能够实现Bootloader
5、实现密码学中常见算法的固化
实验步骤
1.继续使用exp1中的实验环境
2.将实验代码拷贝到共享文件夹
3.在虚拟机中编译代码,编译时需要加-lpthread的库
4、下载调试
遇到的问题及解决:
(1)超级终端问题及解决方案
问题:打开超级终端后,arm机的信息始终没有显示在超级终端的窗口中。
解决:找到了原因,是串口线接错了位置,不应该接1,改为接0后,超级终端就显示正常了。
(2)IP问题及解决方案
问题:需要把实验箱、虚拟机Redhat、WinXP的IP设置为同一网段。
解决:首先查看实验箱的IP地址,设置另外两个的地址使其处于同一网段,注意这里设置完后需重启,再重新查看各个IP地址,确保处于同一网段后才能接着做,否则后面的步骤也会出现问题。
(3)环境变量配置问题及解决方案
问题:用arm编译器编译的时候出现问题。
解决:找到问题来源,是在设置环境变量时出现错误,修改PATH变量时路径输入有误,导致后来使用编译命令时找不到这条命令,重新设置PATH变量后就可以进行编译了。
心得体会:
细节决定成败,
团结就是力量。
时间: 2024-10-13 16:47:26