实验一 开发环境的熟悉(小组)
小组成员:20135310陈巧然 20135305姚歌
一.实验目的与要求:
- 理解目标平台和开发平台
- 初步掌握硬件开发平台的搭建
- 初步掌握硬件开发的流程
- 能够编译、运行简单程序
- 掌握程序调试与测试方法
二.实验内容
- 基于ARM开发平台。进行软件安装、硬件连接,熟悉开发流程,掌握程序的装载,调试与测试方法
- 熟悉 linux 开发环境,学会linux 开发环境的配置和使用。使用 linux 的 armv4l-unknown-linux-gcc 编译,使用基于 NFS 方式的下载调试,了解嵌入式开发的基本过程
三. 实验步骤
-
连接 arm 开发板
将 arm 开发板电源线接好,保持开发板开关处于闭合状态。再分别将串口线、并口线和网线与 pc 机连接好 -
建立超级终端
运行 windows XP 系统下开始→所有程序→附件→通讯→超级终端。新建一个通信终端,取名为 arm。在属性对话框中,将波特率设为 115200,数据位设为 8,无奇偶校验,停止位为 1,无数据流控制。另存为在桌面
-
启动实验平台
打开超级终端,打开 arm 机电源开关。等待一分钟,arm 机的信息会显示在超级终端的窗口中。继续等待,直至出现界面。输入 ifconfig 命令,记录下 arm 机的 ip为:192.168.0.121 - 修改 xp 系统与 redhat 虚拟机的 ip,使得它们均与 arm 机的 ip 在同一网段
-
安装 arm 编译器
在 pc 机中“开始”、“运行”,输入虚拟机的 ip。\\192.168.0.234,输入用户名 bc,密码 123456 然后确定,就可以访问虚拟机的文件了。然后把所需文件解压缩拷贝到共享文件夹 bc 中。进入虚拟机,在命令行中输入./install.sh,安装脚本程序将会自动建立目录,配置编译环境 -
配置环境变量
在 虚 拟 机 中 使 用 vi 修 改 /root/.bash_profile 文 件 中的 PATH 变 量 为PATH=$PATH:$HOME/bin:/opt/host/armv4l/bin/ (因为该文件为隐藏系统文件,所以使用 ls 命令不可见),存盘后执行: source /root/.bash_profile,则以后 armv4l-unknown-linux-gcc 会自动搜索到,可以在终端上输入 -
建立 hello.c 文件并编译
在虚拟机中进入文件夹/root/bc,在此目录下编写 hello.c 文件。利用命令armv4l-unknown-linux-gcc 对 hello.c 进行编译,生成 hello 可执行文件
-
下载调试
在超级终端中将共享文件夹挂载好,建立开发板与虚拟机之间的通讯。输入命令"mount -t nfs -o nolock 192.168.0.234:/root/bc /host",在超级终端中运行编译通过的 hello 可执行文件,打印小组成员的学号
三.实验过程中遇到的问题及解决方法
-
问题:打开超级终端,打开 arm 机电源开关,等待一段时间后发现arm 机的信息没有显示在超级终端的窗口中
解决方法:重启计算机,再次建立超级终端,arm 机的信息成功显示 -
问题:"armv4l-unknown-linux"的含义是什么?与"gcc hello.c –o hello"有什么联系?
解决方法:armv4l-unknown-linux:这是交叉编译器(arm-linux-gcc)编译命令,用于开发板的程序编译。(交叉编译器用于以下情况:目的平台上不允许或不能够安装我们需要的编译器;目的平台上的资源贫乏,无法运行我们所需要编译器;目的平台还没有建立,没有操作系统)
gcc hello.c –o hello:平时在Linux系统中对C程序的编译使用的是主机编译,命令为gcc hello.c 即可 -
问题:arm 机的信息显示后输入ifconfig没有显示正确的ip信息
解决方法:arm 机的信息显示后应继续等待arm机加载。于是我们重新建立超级终端,等待所有信息加载完成再输入ifconfig,最后所得结果与实验指导书相同 -
问题:在超级终端中将共享文件夹挂载好后,建立开发板与虚拟机之间的通讯时,输入了“mount -t nfs -o nolock 192.168.0.234:/root/bc /host”命令发现在超级终端中运行 hello 可执行文件失败
解决方法:在超级终端中运行失败后,我们分析可能出现的问题是可执行文件不在root/bc目录下,于是我们查找该目录,发现该目录不存在。然后我们用了ls查找了hello的可执行文件,发现了它在home/bc下,最后运行成功
四.实验体会
通过本次实验,熟悉了Linux 开发环境,学会了Linux 开发环境的配置和使用,能够编译、运行简单程序,掌握了一些程序调试与测试方法。在实验中,学会了一种自学的方法。实验时,要有灵活应变的能力,将实践和理论密切结合,才能更好地掌握所学。实验时需要配合分工,才能准确快速的完成实验任务。既要严格根据实验指导书的内容来执行步骤,又要在每个步骤中加入自己的思考和尝试,才能收获更多。