20145215&20145307《信息安全系统设计基础》实验二 固件设计

20145215&20145307《信息安全系统设计基础》实验二 固件设计

20145215&20145307《信息安全系统设计基础》实验二 固件设计

实验目的与要求

  • 了解多线程程序设计的基本原理,学习 pthread 库函数的使用。

  • 了解在 linux 环境下串行程序设计的基本方法。

  • 掌握终端的主要属性及设置方法,熟悉终端I /O 函数的使用。学习使用多线程来完成串口的收发处理。

  • 熟悉linux开发环境,学会基于S3C2410的linux开发环境的配置和使用。使用linux的armv4l-unknown-linux-gcc编译,使用基于NFS方式的下载调试,了解嵌入式开发的基本过程

实验过程

开发环境的配置

1、连接arm开发板

将arm开发板电源线接好,保持开发板开关处于闭合状态。再分别将串口线、并口线和网线与pc机连接好。

2、建立超级终端

运行windows XP系统下“开始”、“所有程序”、“附件”、“通讯”、“超级终端”。

新建一个通信终端,取名为arm。在属性对话框中,将波特率设为115200,数据位设为8,无奇偶校验,停止位为1,无数据流控制。

3、启动实验平台

打开超级终端,打开arm机电源开关。等待一分钟,arm机的信息会显示在超级终端的窗口中。

继续等待,输入ifconfig命令,记录下arm机的ip

20145215&20145307《信息安全系统设计基础》实验二 固件设计

4、修改xp系统与redhat虚拟机的ip,使得它们均与arm机的ip在同一网段。修改完IP,重启一下虚拟机,IP才能启作用。重启后在命令行中使用ifconfig确认修改正确

5、安装arm编译器。在pc机中“开始”、“运行”,输入虚拟机的ip,输入用户名bc,密码123456然后确定 就可以访问虚拟机的文件了。然后把所需文件解压缩拷贝到共享文件夹bc中。

20145215&20145307《信息安全系统设计基础》实验二 固件设计

进入虚拟机,在命令行中输入./install.sh,安装脚本程序将会自动建立目录,配置编译环境。

6、配置环境变量在虚拟机中使用vi修改/root/.bash_profile文件中的PATH变量为PATH=$PATH:$HOME/bin:/opt/host/armv4l/bin/ (因为该文件为隐藏系统文件,所以使用ls命令不可见),存盘后执行:source/root/.bash_profile,则以后armv4l-unknown-linux-gcc 会自动搜索到,可以在终端上输入。

验证实验代码

1.将实验代码拷贝到共享文件夹中。

2、在虚拟机中编译代码。对于多线程相关的代码,编译时需要加-lpthread的库

下载调试在超级终端中运行可执行文件pthread!

运行可执行文件term。

20145215&20145307《信息安全系统设计基础》实验二 固件设计

遇到的问题及解决方法

  • 问题1:03_tty代码使用编译工具armv4l编译时无法通过
  • 解决:实验中为了简便把03_tty文件夹放在了桌面上,代码存储路径包含了中文就无法通过编译,所以我们把代码文件夹放到了c盘根目录下,成功编译。

  • 问题2:在超级终端运行term时出现错误
  • 解决:开发板中没有ttyS0设备导致出现问题,于是我们在超级终端进入了/dev文件夹后输入:ln –sf /dev/tts/0 ttyS0后建立了开发板和超级终端的连接,最终解决了问题。

心得体会

这一个实验步骤很简单,主要是省去了环境搭建步骤。而且有了exp1的实验操作,一切就很简单,也没有遇到什么问题,只要一步一步按部就班即可。另外,本次实验学到了命令中加入-lpthread的用法,在第十章的学习中,我们就遇到了头文件找不到、编译不出来这类的问题,同理,在这次实验中,我们发现实验中需要用到-lpthread的原因也是因为代码与多线程相关。 ​

上一篇:仿OpenStack开发云计算管理软件


下一篇:20145215实验二 Java面向对象程序设计